Repository navigation
Expand file tree
/
Copy pathconsts.js
More file actions
186 lines (185 loc) · 7.47 KB
/
Copy pathconsts.js
File metadata and controls
186 lines (185 loc) · 7.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
const DEFAULT_SETTINGS = {
password : "raidisnotabackup",
slideDuration : 10,
playThemes : "true",
genericThemes : "true",
fade : "true",
hideSettingsLinks : "false",
theaterRoomMode : "false",
/** @deprecated Prefer mediaServers[]; kept for migration / legacy flat sync. */
mediaServerType : "plex",
plexIP : "",
plexHTTPS : "false",
plexPort : 32400,
plexToken : "",
/**
* Multi media-server connections (plex/jellyfin/emby/kodi). Up to 10 of each type.
* Empty array = no media servers (*arr / cache only).
*/
mediaServers : [],
pinNS : "false",
hideUser: "false",
/** @deprecated Prefer per-server mediaServers[].libraries */
onDemandLibraries : "",
/** On-demand library names that should be marked as 3D (comma-separated). @deprecated Prefer per-server libraries3d */
onDemand3dLibraries : "",
numberOnDemand : 2,
onDemandRefresh : 30,
sonarrURL : "",
sonarrToken : "",
sonarrCalDays : 3,
sonarrPremieres : "false",
radarrURL : "",
radarrToken : "",
radarrCalDays : 30,
lidarrURL : "",
lidarrToken : "",
lidarrCalDays : 30,
readarrURL : "",
readarrToken : "",
readarrCalDays : 60,
/** "readarr" | "chaptarr" — same API; used for UI and log labels */
bookArrKind : "readarr",
hasArt : "false",
/** When true, show principal cast (actors) on media cards when metadata includes it */
showCast: "false",
showDirectors: "false",
showAuthors: "false",
/** Album / track artist line when metadata provides it (music) */
showAlbumArtist: "false",
/** Show main cover poster for music (album / track) cards */
displayPosterAlbum: "true",
/** Show main poster for movie and TV cards (movie / episode / show) */
displayPosterVideo: "true",
/** Show main cover poster for ebooks and audiobooks cards */
displayPosterBooks: "true",
/** Small portrait image from first cast member with art (Plex / Jellyfin / Emby) */
displayPosterActor: "false",
/** Second cast portrait on Plex; Jellyfin/Emby prefers a female actor when Gender is set */
displayPosterActress: "false",
displayPosterDirector: "false",
displayPosterAuthor: "false",
/** Album / track artist portrait when the server provides separate art */
displayPosterArtist: "false",
shuffleSlides: "false",
genres: "",
custBrand: "",
titleColour: "#FAFAD2",
footColour: "#FAFAD2",
bgColour: "#000000",
enableNS: "true",
/** Insert Now Playing (media server) slides after this many other poster slides; 0 = off */
nowPlayingEveryPosters: 0,
/** Include TMDB Now Showing list on the main poster carousel */
enableNowShowingListInPoster: "false",
/** Insert one TMDB Now Showing slide every N minutes on the main poster carousel; 0 = off (when mixed with other slides). */
nowShowingListEveryMins: 0,
/** When on (and list on home is on), main poster shows only TMDB Now Showing slides when the list is non-empty */
nowShowingListOnly: "false",
/** Optional banner title override for TMDB Now Showing slides on the main poster */
nowShowingListBanner: "",
/** Dedicated /now-showing view: add random titles from on-demand library pool (global odCards) */
nowShowingFillFromServer: "false",
/** Max extra library titles to mix into /now-showing per data refresh (0–48) */
nowShowingFillLibraryMax: 12,
/** How many times more often curated (saved) titles appear vs library fillers in the rotating list (1–20) */
nowShowingCuratedWeight: 4,
/** Max future showtimes per title on /now-showing and TMDB list slides (1–6) */
nowShowingShowtimeCount: 6,
/** Show ticket prices on /now-showing cards when available */
nowShowingShowPrices: "false",
/** Auto-generate prices for titles without a saved price */
nowShowingAutoPriceEnabled: "false",
/** Minimum auto-generated ticket price */
nowShowingAutoPriceMin: 8,
/** Maximum auto-generated ticket price */
nowShowingAutoPriceMax: 18,
/** Extra amount added to displayed prices for titles marked as 3D. */
nowShowing3dPriceExtra: 0,
/** Currency code used for now-showing ticket price display */
nowShowingCurrencyCode: "USD",
/** Auto-switch from home slideshow to dedicated /now-showing page on a timer. */
enableNowShowingPageCycle: "false",
/** Minutes to stay on home before switching to /now-showing (1–1440). */
nowShowingPageCycleEveryMins: 30,
/** Minutes to stay on /now-showing before returning home (1–120). */
nowShowingPageCycleStayMins: 5,
/** When home page cycle runs: embed this dedicated view in an iframe (URL stays on `/`). */
homePageCycleDedicatedView: "now-showing",
/** Enable global view-switch hotkeys: 1=posters, 2=ads, 3=now-showing. */
enableViewHotkeys: "true",
enableOD: "true",
enableSonarr: "true",
enableRadarr: "true",
enableLidarr: "true",
enableReadarr: "true",
filterRemote: "true",
filterLocal: "true",
filterDevices: "",
filterUsers: "",
odHideTitle: "false",
odHideFooter: "false",
enableCustomPictures: "false",
enableCustomPictureThemes: "false",
customPictureTheme: "default",
customPictureEveryPosters: 0,
/** Placeholder: same shape as custom pictures; slideshow wiring added later */
enableAds: "false",
adsOnly: "false",
adsTheme: "default",
adsEveryPosters: 0,
adsCurrencyCode: "USD",
/** When "true", /ads shows a dark stroke around the ad title for contrast. */
adsTitleOutline: "false",
/** Seconds each ad stays visible on /ads before advancing (3–600). */
adsRotationSeconds: 10,
/**
* Seconds the dedicated /ads page stays open before redirecting to home posters (/).
* 0 = stay until manual navigation. When > 0, clamped 30–86400 on save and in the UI.
*/
adsPageStaySeconds: 0,
/** URL path under /custom/ads-view/… for the full-page backdrop on /ads only; empty = none. */
adsGlobalBackgroundPath: "",
serverID: "",
sleepStart: "00:00",
sleepEnd: "07:00",
enableSleep: "false",
nowScreening: "",
comingSoon: "",
onDemand: "",
recentlyAdded: "",
recentlyAddedDays: "0",
iframe: "",
playing: "",
ebook: "",
trivia: "",
triviaFrequency: 300,
triviaTimer: 15,
triviaCategories: "",
enableTrivia: "false",
triviaNumber: "",
contentRatings: "",
enableAwtrix: "false",
awtrixIP: "",
enableLinks: "false",
links: "",
/** Rotate display for portrait-mounted screens (Firestick, etc.). */
rotate: "false",
/** When rotate is on: true = counter-clockwise (left), false = clockwise (right, default). */
rotateLeft: "false",
excludeLibs: "",
/** Minutes between poster DB/cache refresh checks; 0 = disabled. Stale entries re-download from stored URL or are dropped. */
posterCacheRefreshMins: 0,
/** Minimum minutes since a poster row was last updated before we check the media server for removal or re-download the image. 0 = no extra wait (only the refresh interval applies to image checks). */
posterCacheMinAgeBeforeChangeCheckMins: 0,
/** When true, slideshow library slides come from poster cache/DB first; live on-demand from the media server is only a backup and still fills the cache. */
preferCachedPosters: "true",
/** How many cached poster slides to build when preferCachedPosters is on (actual deck is at most entries in the poster DB). */
cachedPosterSlideCount: 48,
tmdbApiKey: "",
/** Last package.json version the admin acknowledged (hides “new features” banner when it matches current version) */
newFeaturesAcknowledgedVersion: "",
/** Seasonal date ranges + tag match rules used to boost matching media in home posters and /now-showing. */
holidayRules: "[]"
};
module.exports = DEFAULT_SETTINGS;