pandora/pandora/0xdb.jsonc
2012-02-15 20:48:08 +00:00

708 lines
24 KiB
Text

/*
Pan.do/ra Settings
You can edit this file.
*/
{
"additionalSort": [
{"key": "director", "operator": "+"},
{"key": "year", "operator": "-"},
{"key": "title", "operator": "+"}
],
"annotations": {
"showUsers": true
},
/*
Capabilities are per user level.
They can either be general:
{level: true} means a user of that level has the capability)
or related to items:
{level: x} means a user of that level has the capability
for items of a rights level up to and including x
*/
"capabilities": {
// "canClickMap": {"friend": true, "staff": true, "admin": true},
"canDeleteItems": {"admin": true},
"canDownloadVideo": {"guest": 0, "member": 0, "friend": 4, "staff": 4, "admin": 4},
"canEditAnnotations": {"staff": true, "admin": true},
"canEditEvents": {"staff": true, "admin": true},
"canEditFeaturedLists": {"staff": true, "admin": true},
"canEditMetadata": {"staff": true, "admin": true},
"canEditPlaces": {"staff": true, "admin": true},
"canEditSitePages": {"staff": true, "admin": true},
"canEditUsers": {"admin": true},
"canPlayClips": {"guest": 2, "member": 2, "friend": 4, "staff": 4, "admin": 4},
"canPlayVideo": {"guest": 1, "member": 1, "friend": 4, "staff": 4, "admin": 4},
"canSeeDebugMenu": {"staff": true, "admin": true},
"canSeeFiles": {"staff": true, "admin": true},
"canSeeItem": {"guest": 3, "member": 3, "friend": 4, "staff": 4, "admin": 4},
"canSeeExtraItemViews": {"friend": true, "staff": true, "admin": true},
"canSendMail": {"staff": true, "admin": true}
},
/*
clipKeys are the properties that clips can by sorted by.
If sortOperator is not specified, it will be + for strings and - for numbers.
*/
"clipKeys": [
{"id": "text", "title": "Text", "type": "string"},
{"id": "position", "title": "Position", "type": "float", "sortOperator": "+"},
{"id": "duration", "title": "Duration", "type": "float"},
{"id": "hue", "title": "Hue", "type": "float", "sortOperator": "+"},
{"id": "saturation", "title": "Saturation", "type": "float"},
{"id": "lightness", "title": "Lightness", "type": "float"},
{"id": "volume", "title": "Volume", "type": "float"}
],
/*
clipLayers is the ordered list of public layers that will appear as the
text of clips. Excluding a layer from this list means it will not be
included in find annotations.
*/
"clipLayers": ["subtitles"],
// fixme: either this, or filter: true in itemKeys, but not both
"filters": [
{"id": "director", "title": "Director", "type": "string"},
{"id": "country", "title": "Country", "type": "string"},
{"id": "year", "title": "Year", "type": "integer"},
{"id": "language", "title": "Language", "type": "string"},
{"id": "genre", "title": "Genre", "type": "string"},
{"id": "writer", "title": "Writer", "type": "string"},
{"id": "producer", "title": "Producer", "type": "string"},
{"id": "cinematographer", "title": "Cinematographer", "type": "string"},
{"id": "editor", "title": "Editor", "type": "string"},
{"id": "actor", "title": "Actor", "type": "string"},
{"id": "keyword", "title": "Keyword", "type": "string"}
],
/*
An itemKey must have the following properties:
id: The id of the key (as known by the server)
title: The title of the key (as displayed by the client)
type: text, string, float, integer, or array of any of these
and can have any of the following properties:
autocomplete: If true, find element will autocomplete
autocompleteSortKey: The key that suggestions will be sorted by
capability: A capability required to see this key
columnRequired: If true, the column can't be removed
columnWidth: Default column width in px
find: If true, will appear as a find option
filter: if true, one can filter results by this key
format: {type: "...", args: [...]}, for special formatting
(Ox.formatType(args) will be called)
sort: special sort rule (title, person)
sortOperator: sort operator (+, -), in case it differs from the
default for the key's type (+ for strings, - for numbers)
value: {key: "...", type: "..."}, for keys that are derived
from other keys (like number of actors), or "capability"
*/
"itemKeys": [
{
"id": "*",
"title": "All",
"type": "text",
"find": true
},
{
"id": "title",
"title": "Title",
"type": "string",
"additionalSort": [{"key": "year", "operator": "-"}, {"key": "director", "operator": "+"}],
"autocomplete": true,
"autocompleteSortKey": "votes",
"columnRequired": true,
"columnWidth": 180,
"find": true,
"sort": "title"
},
{
"id": "director",
"title": "Director",
"type": ["string"],
"additionalSort": [{"key": "year", "operator": "-"}, {"key": "title", "operator": "-"}],
"autocomplete": true,
"columnRequired": true,
"columnWidth": 180,
"filter": true,
"find": true,
"sort": "person"
},
{
"id": "country",
"title": "Country",
"type": ["string"],
"autocomplete": true,
"columnWidth": 120,
"filter": true,
"find": true
},
{
"id": "year",
"title": "Year",
"type": "year",
"additionalSort": [{"key": "director", "operator": "+"}, {"key": "title", "operator": "+"}],
"autocomplete": true,
"columnWidth": 60,
"filter": true,
"find": true
},
{
"id": "language",
"title": "Language",
"type": ["string"],
"autocomplete": true,
"columnWidth": 120,
"find": true,
"filter": true
},
{
"id": "runtime",
"title": "Runtime",
"type": "time",
"columnWidth": 60,
"format": {"type": "duration", "args": [0, "short"]}
},
{
"id": "writer",
"title": "Writer",
"type": ["string"],
"autocomplete": true,
"columnWidth": 180,
"filter": true,
"find": true,
"sort": "person"
},
{
"id": "producer",
"title": "Producer",
"type": ["string"],
"autocomplete": true,
"columnWidth": 180,
"filter": true,
"find": true,
"sort": "person"
},
{
"id": "cinematographer",
"title": "Cinematographer",
"type": ["string"],
"autocomplete": true,
"columnWidth": 180,
"filter": true,
"find": true,
"sort": "person"
},
{
"id": "editor",
"title": "Editor",
"type": ["string"],
"autocomplete": true,
"columnWidth": 180,
"filter": true,
"find": true,
"sort": "person"
},
{
"id": "actor",
"title": "Actor",
"type": ["string"],
"autocomplete": true,
"filter": true,
"find": true,
"sort": "person"
},
{
"id": "numberofactors",
"title": "Number of Actors",
"type": "integer",
"columnWidth": 60,
"value": {"key": "actor", "type": "length"}
},
{
"id": "character",
"title": "Character",
"type": ["string"],
"autocomplete": true,
"find": true,
"sort": "string"
},
{
"id": "name",
"title": "Name",
"type": ["string"],
"autocomplete": true,
"find": true
},
{
"id": "series",
"title": "TV Series",
"type": "boolean"
},
{
"id": "genre",
"title": "Genre",
"type": ["string"],
"autocomplete": true,
"columnWidth": 120,
"filter": true,
"find": true
},
{
"id": "keyword",
"title": "Keyword",
"type": ["string"],
"autocomplete": true,
"filter": true,
"find": true
},
{
"id": "summary",
"title": "Summary",
"type": "text",
"find": true
},
{
"id": "trivia",
"title": "Trivia",
"type": ["text"]
},
{
"id": "releasedate",
"title": "Release Date",
"type": "date",
"columnWidth": 120,
"format": {"type": "date", "args": ["%a, %b %e, %Y"]}
},
{
"id": "budget",
"title": "Budget",
"type": "integer",
"columnWidth": 90,
"format": {"type": "unit", "args": ["$"]}
},
{
"id": "gross",
"title": "Gross",
"type": "integer",
"columnWidth": 90,
"format": {"type": "unit", "args": ["$"]}
},
{
"id": "profit",
"title": "Profit",
"type": "integer",
"columnWidth": 90,
"format": {"type": "unit", "args": ["$"]}
},
{
"id": "rating",
"title": "Rating",
"type": "float",
"columnWidth": 60,
"format": {"type": "unit", "args": ["%", 0]}
},
{
"id": "votes",
"title": "Votes",
"type": "float",
"columnWidth": 60,
"format": {"type": "unit", "args": ["%", 2]}
},
{
"id": "id",
"title": "ID",
"type": "string",
"columnWidth": 90
},
{
"id": "subtitles",
"title": "Subtitles",
"type": "layer",
"find": true
},
{
"id": "duration",
"title": "Duration",
"type": "float",
"columnWidth": 90,
"format": {"type": "duration", "args": []}
},
{
"id": "resolution",
"title": "Resolution",
"type": ["integer"],
"capability": "canSeeFiles",
"columnWidth": 90,
"format": {"type": "resolution", "args": ["px"]}
},
{
"id": "aspectratio",
"title": "Aspect Ratio",
"type": "float",
"columnWidth": 90,
"format": {"type": "unit", "args": [":1"]}
},
{
"id": "pixels",
"title": "Pixels",
"type": "integer",
"capability": "canSeeFiles",
"columnWidth": 90,
"format": {"type": "value", "args": ["px"]}
},
{
"id": "hue",
"title": "Hue",
"type": "float",
"columnWidth": 90,
"format": {"type": "color", "args": ["hue"]},
"sortOperator": "+"
},
{
"id": "saturation",
"title": "Saturation",
"type": "float",
"columnWidth": 90,
"format": {"type": "color", "args": ["saturation"]}
},
{
"id": "lightness",
"title": "Lightness",
"type": "float",
"columnWidth": 90,
"format": {"type": "color", "args": ["lightness"]}
},
{
"id": "volume",
"title": "Volume",
"type": "float",
"columnWidth": 60
},
{
"id": "numberofcuts",
"title": "Number of Cuts",
"type": "integer",
"columnWidth": 60,
"value": {"key": "cuts", "type": "length"}
},
{
"id": "cutsperminute",
"title": "Cuts per Minute",
"type": "float",
"columnWidth": 60,
"value": {"key": "cuts", "type": "lengthperminute"}
},
{
"id": "words",
"title": "Words",
"type": "integer",
"columnWidth": 60,
"value": {"layer": "subtitles", "type": "words"}
},
{
"id": "wordsperminute",
"title": "Words per Minute",
"type": "float",
"columnWidth": 60,
"format": {"type": "unit", "args": ["wpm"]},
"value": {"layer": "subtitles", "type": "wordsperminute"}
},
{
"id": "size",
"title": "Size",
"type": "integer",
"capability": "canSeeFiles",
"columnWidth": 60,
"format": {"type": "value", "args": ["B"]}
},
{
"id": "bitrate",
"title": "Bitrate",
"type": "integer",
"capability": "canSeeFiles",
"columnWidth": 60,
"format": {"type": "unit", "args": ["kbps", 0, 0.001]}
},
{
"id": "parts",
"title": "Parts",
"type": "integer",
"capability": "canSeeFiles",
"columnWidth": 60
},
{
"id": "numberoffiles",
"title": "Number of Files",
"type": "integer",
"capability": "canSeeFiles",
"columnWidth": 60,
"value": {"key": "files", "type": "length"}
},
{
"id": "filename",
"title": "Filename",
"type": ["string"],
"capability": "canSeeFiles",
"find": true
},
{
"id": "created",
"title": "Date Created",
"type": "date",
"columnWidth": 150,
"format": {"type": "date", "args": ["%Y-%m-%d %H:%M:%S"]}
},
{
"id": "modified",
"title": "Last Modified",
"type": "date",
"columnWidth": 150,
"format": {"type": "date", "args": ["%Y-%m-%d %H:%M:%S"]}
},
{
"id": "accessed",
"title": "Last Accessed",
"type": "date",
"columnWidth": 150,
"format": {"type": "date", "args": ["%Y-%m-%d %H:%M:%S"]}
},
{
"id": "timesaccessed",
"title": "Times Accessed",
"type": "integer",
"columnWidth": 60
},
{
"id": "rightslevel",
"title": "Rights Level",
"type": "enum",
"columnWidth": 90,
"format": {"type": "ColorLevel", "args": [
["Public", "Relaxed", "Regular", "Restricted", "Private"]
]},
"sortOperator": "+",
"values": ["Public", "Relaxed", "Regular", "Restricted", "Private", "Unknown"]
},
{
"id": "canplayvideo",
"title": "Can Play Video",
"type": "boolean",
"value": "capability"
},
{
"id": "canplayclips",
"title": "Can Play Clips",
"type": "boolean",
"value": "capability"
},
{
"id": "random",
"title": "Random",
"type": "integer",
"columnWidth": 60
}
],
/*
itemName specifies how items are being referred to.
Anything excessively long may cause layout errors.
*/
"itemName": {
"singular": "Movie",
"plural": "Movies"
},
"itemViews": [
{"id": "info", "title": "Info"},
{"id": "clips", "title": "Clips"},
{"id": "video", "title": "Video"},
{"id": "timeline", "title": "Timeline"},
{"id": "map", "title": "Map"},
{"id": "calendar", "title": "Calendar"},
{"id": "data", "title": "Data"},
{"id": "files", "title": "Files"}
],
// fixme: should be renamed to annotationLayers
"layers": [
{
"id": "privatenotes",
"title": "Private Notes",
"canAddAnnotations": {"member": true, "friend": true, "staff": true, "admin": true},
"item": "Note",
"overlap": true,
"private": true,
"showInfo": true,
"type": "text"
},
{
"id": "publicnotes",
"title": "Public Notes",
"canAddAnnotations": {"member": true, "friend": true, "staff": true, "admin": true},
"item": "Note",
"overlap": true,
"showInfo": true,
"type": "text"
},
{
"id": "subtitles",
"title": "Subtitles",
"canAddAnnotations": {"staff": true, "admin": true},
"hasEvents": true,
"hasPlaces": true,
"item": "Subtitle",
"overlay": true,
"type": "text"
}
],
"listViews": [
{"id": "list", "title": "as List"},
{"id": "grid", "title": "as Grid"},
//{"id": "info", "title": "with Info"},
{"id": "clips", "title": "with Clips"},
{"id": "timelines", "title": "with Timelines"},
//{"id": "maps", "title": "with Maps"},
//{"id": "calendars", "title": "with Calendars"},
{"id": "clip", "title": "as Clips"},
//{"id": "video", "title": "as Video"},
{"id": "map", "title": "on Map"},
{"id": "calendar", "title": "on Calendar"}
],
"media": {
"importMoviePosters": true,
"importPosterFrames": true
},
"personalLists": [
{"title": "Favorites"},
{"title": "1960s", "query": {"conditions": [{"key": "year", "value": ["1960", "1970"], "operator": "="}], "operator": "&"}}
//{"title": "Movies with Video", "query": {"conditions": [{"key": "canplayvideo", "value": "true", "operator": "="}], "operator": "&"}},
//{"title": "Movies with Clips", "query": {"conditions": [{"key": "canplayclips", "value": "true", "operator": "="}], "operator": "&"}}
],
"rightsLevel": {"member": 4, "staff": 3, "admin": 2},
"rightsLevels": [
{"name": "Public", "color": [128, 255, 128]},
{"name": "Relaxed", "color": [192, 255, 128]},
{"name": "Regular", "color": [255, 255, 128]},
{"name": "Restricted", "color": [255, 192, 128]},
{"name": "Private", "color": [255, 128, 128]}
],
"sendReferrer": false,
"site": {
"description": "0xDB is an experimental - and to some degree imaginary - movie database. It is intended to help re-imagine the future of cinema on the internet, to push the boundaries of web applications, and to serve as a point of reference for individuals and institutions who are dealing with large collections of films.",
// FIXME: "from" and "to" would be more intuitive as keys here
"email": {
// E-mail address in contact form (to)
"contact": "0xdb@0xdb.org",
"footer": "-- \n0xDB - http://0xdb.org",
"prefix": "0xDB Newsletter -",
// E-mail address uses by the system (from)
"system": "0xdb@0xdb.org"
},
"id": "oxdb",
"name": "0xDB",
"url": "0xdb.org",
"videoprefix": ""
},
"sitePages": [
{"id": "about", "title": "About"},
{"id": "news", "title": "News"},
// {"id": "tour", "title": "Take a Tour"},
{"id": "faq", "title": "Frequently Asked Questions"},
{"id": "terms", "title": "Terms of Service"},
{"id": "rights", "title": "Rights Management"},
{"id": "contact", "title": "Contact"}
],
"totals": [
{"id": "items"},
{"id": "runtime"},
{"id": "files", "admin": true},
{"id": "duration", "admin": true},
{"id": "size", "admin": true},
{"id": "pixels"}
],
"tv": {
"showLogo": false
},
"user": {
"level": "guest",
"newsletter": true,
"ui": {
"annotationsFont": "small",
"annotationsRange": "position",
"annotationsSize": 256,
"annotationsSort": "position",
"clipsColumns": 2,
"columns": {
"Colors": {
"columns": ["title", "director", "country", "year", "hue", "saturation", "brightness"],
"columnWidth": {}
}
},
"filters": [
{"id": "director", "sort": [{"key": "items", "operator": "-"}]},
{"id": "country", "sort": [{"key": "items", "operator": "-"}]},
{"id": "year", "sort": [{"key": "name", "operator": "-"}]},
{"id": "language", "sort": [{"key": "items", "operator": "-"}]},
{"id": "genre", "sort": [{"key": "items", "operator": "-"}]}
],
"filtersSize": 176,
"find": {"conditions": [], "operator": "&"},
"icons": "posters",
"infoIconSize": 256,
"item": "",
"itemFind": "",
"itemSort": [{"key": "position", "operator": "+"}],
"itemView": "info",
"listColumns": ["title", "director", "country", "year", "language", "runtime", "genre"],
"listColumnWidth": {},
"listSelection": [],
"listSort": [{"key": "director", "operator": "+"}],
"listView": "grid",
"lists": {},
"mapFind": "",
"mapSelection": "",
"page": "",
"section": "items",
"showAnnotations": true,
"showBrowser": true,
"showCalendarControls": true, // fixme: should be false
"showFilters": true,
"showFlags": true, // fixme: this should be a site preference
"showHome": true,
"showIconBrowser": false,
"showInfo": true,
"showLayers": {
"privatenotes": true,
"publicnotes": true,
"subtitles": true
},
"showMapControls": false,
"showMapLabels": false,
"showFolder": {
"items": {
"personal": true,
"favorite": true,
"featured": true,
"volumes": true
}
},
"showSidebar": true,
"showSitePosters": false,
"showTimeline": true,
"sidebarSize": 256,
"theme": "modern",
"videoPoints": {},
"videoResolution": 96,
"videoScale": "fit",
"videoMuted": false,
"videoSize": "small",
"videoSubtitles": true,
"videoView": "video",
"videoVolume": 1
},
"username": "",
"volumes": []
},
// fixme: this should include colors
"userLevels": ["guest", "member", "friend", "staff", "admin"],
"video": {
"download": false,
"formats": ["webm", "mp4"],
"previewRatio": 1.7777777778,
"resolutions": [96]
}
}