mirror of
https://github.com/fallenbagel/jellyseerr.git
synced 2026-01-01 04:08:45 -05:00
refactor: cleans up local watchlist logic and fixes translation extractions
This commit is contained in:
@@ -865,6 +865,7 @@ discoverRoutes.get<Record<string, unknown>, WatchlistResponse>(
|
|||||||
}
|
}
|
||||||
|
|
||||||
const plexTV = new PlexTvAPI(activeUser.plexToken);
|
const plexTV = new PlexTvAPI(activeUser.plexToken);
|
||||||
|
|
||||||
const watchlist = await plexTV.getWatchlist({ offset });
|
const watchlist = await plexTV.getWatchlist({ offset });
|
||||||
|
|
||||||
return res.json({
|
return res.json({
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ const DiscoverWatchlist = () => {
|
|||||||
</Header>
|
</Header>
|
||||||
</div>
|
</div>
|
||||||
<ListView
|
<ListView
|
||||||
plexItems={titles.filter((title) => title != null)}
|
plexItems={titles}
|
||||||
isEmpty={isEmpty}
|
isEmpty={isEmpty}
|
||||||
isLoading={
|
isLoading={
|
||||||
isLoadingInitialData || (isLoadingMore && (titles?.length ?? 0) > 0)
|
isLoadingInitialData || (isLoadingMore && (titles?.length ?? 0) > 0)
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ import { defineMessages, useIntl } from 'react-intl';
|
|||||||
import useSWR from 'swr';
|
import useSWR from 'swr';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
streamdevelop: 'Overseerr Develop',
|
streamdevelop: 'Jellyseerr Develop',
|
||||||
streamstable: 'Overseerr Stable',
|
streamstable: 'Jellyseerr Stable',
|
||||||
outofdate: 'Out of Date',
|
outofdate: 'Out of Date',
|
||||||
commitsbehind:
|
commitsbehind:
|
||||||
'{commitsBehind} {commitsBehind, plural, one {commit} other {commits}} behind',
|
'{commitsBehind} {commitsBehind, plural, one {commit} other {commits}} behind',
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ const messages = defineMessages({
|
|||||||
agentenabled: 'Enable Agent',
|
agentenabled: 'Enable Agent',
|
||||||
accessToken: 'Application API Token',
|
accessToken: 'Application API Token',
|
||||||
accessTokenTip:
|
accessTokenTip:
|
||||||
'<ApplicationRegistrationLink>Register an application</ApplicationRegistrationLink> for use with Overseerr',
|
'<ApplicationRegistrationLink>Register an application</ApplicationRegistrationLink> for use with Jellyseerr',
|
||||||
userToken: 'User or Group Key',
|
userToken: 'User or Group Key',
|
||||||
userTokenTip:
|
userTokenTip:
|
||||||
'Your 30-character <UsersGroupsLink>user or group identifier</UsersGroupsLink>',
|
'Your 30-character <UsersGroupsLink>user or group identifier</UsersGroupsLink>',
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ const messages = defineMessages({
|
|||||||
'Allow users to also start a chat with your bot and configure their own notifications',
|
'Allow users to also start a chat with your bot and configure their own notifications',
|
||||||
botAPI: 'Bot Authorization Token',
|
botAPI: 'Bot Authorization Token',
|
||||||
botApiTip:
|
botApiTip:
|
||||||
'<CreateBotLink>Create a bot</CreateBotLink> for use with Overseerr',
|
'<CreateBotLink>Create a bot</CreateBotLink> for use with Jellyseerr',
|
||||||
chatId: 'Chat ID',
|
chatId: 'Chat ID',
|
||||||
chatIdTip:
|
chatIdTip:
|
||||||
'Start a chat with your bot, add <GetIdBotLink>@get_id_bot</GetIdBotLink>, and issue the <code>/my_id</code> command',
|
'Start a chat with your bot, add <GetIdBotLink>@get_id_bot</GetIdBotLink>, and issue the <code>/my_id</code> command',
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ const messages = defineMessages({
|
|||||||
toastWebPushTestSuccess: 'Web push test notification sent!',
|
toastWebPushTestSuccess: 'Web push test notification sent!',
|
||||||
toastWebPushTestFailed: 'Web push test notification failed to send.',
|
toastWebPushTestFailed: 'Web push test notification failed to send.',
|
||||||
httpsRequirement:
|
httpsRequirement:
|
||||||
'In order to receive web push notifications, Overseerr must be served over HTTPS.',
|
'In order to receive web push notifications, Jellyseerr must be served over HTTPS.',
|
||||||
});
|
});
|
||||||
|
|
||||||
const NotificationsWebPush = () => {
|
const NotificationsWebPush = () => {
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import useSWR from 'swr';
|
|||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
about: 'About',
|
about: 'About',
|
||||||
overseerrinformation: 'About Overseerr',
|
overseerrinformation: 'About Jellyseerr',
|
||||||
version: 'Version',
|
version: 'Version',
|
||||||
totalmedia: 'Total Media',
|
totalmedia: 'Total Media',
|
||||||
totalrequests: 'Total Requests',
|
totalrequests: 'Total Requests',
|
||||||
@@ -25,6 +25,7 @@ const messages = defineMessages({
|
|||||||
timezone: 'Time Zone',
|
timezone: 'Time Zone',
|
||||||
appDataPath: 'Data Directory',
|
appDataPath: 'Data Directory',
|
||||||
supportoverseerr: 'Support Overseerr',
|
supportoverseerr: 'Support Overseerr',
|
||||||
|
supportjellyseerr: 'Support Jellyseerr',
|
||||||
helppaycoffee: 'Help Pay for Coffee',
|
helppaycoffee: 'Help Pay for Coffee',
|
||||||
documentation: 'Documentation',
|
documentation: 'Documentation',
|
||||||
preferredmethod: 'Preferred',
|
preferredmethod: 'Preferred',
|
||||||
@@ -33,7 +34,7 @@ const messages = defineMessages({
|
|||||||
betawarning:
|
betawarning:
|
||||||
'This is BETA software. Features may be broken and/or unstable. Please report any issues on GitHub!',
|
'This is BETA software. Features may be broken and/or unstable. Please report any issues on GitHub!',
|
||||||
runningDevelop:
|
runningDevelop:
|
||||||
'You are running the <code>develop</code> branch of Overseerr, which is only recommended for those contributing to development or assisting with bleeding-edge testing.',
|
'You are running the <code>develop</code> branch of Jellyseerr, which is only recommended for those contributing to development or assisting with bleeding-edge testing.',
|
||||||
});
|
});
|
||||||
|
|
||||||
const SettingsAbout = () => {
|
const SettingsAbout = () => {
|
||||||
@@ -187,6 +188,54 @@ const SettingsAbout = () => {
|
|||||||
</List.Item>
|
</List.Item>
|
||||||
</List>
|
</List>
|
||||||
</div>
|
</div>
|
||||||
|
<div className="section">
|
||||||
|
<List title={intl.formatMessage(messages.supportoverseerr)}>
|
||||||
|
<List.Item
|
||||||
|
title={`${intl.formatMessage(messages.helppaycoffee)} ☕️`}
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="https://github.com/sponsors/sct"
|
||||||
|
target="_blank"
|
||||||
|
rel="noreferrer"
|
||||||
|
className="text-indigo-500 transition duration-300 hover:underline"
|
||||||
|
>
|
||||||
|
https://github.com/sponsors/sct
|
||||||
|
</a>
|
||||||
|
<Badge className="ml-2">
|
||||||
|
{intl.formatMessage(messages.preferredmethod)}
|
||||||
|
</Badge>
|
||||||
|
</List.Item>
|
||||||
|
<List.Item title="">
|
||||||
|
<a
|
||||||
|
href="https://patreon.com/overseerr"
|
||||||
|
target="_blank"
|
||||||
|
rel="noreferrer"
|
||||||
|
className="text-indigo-500 transition duration-300 hover:underline"
|
||||||
|
>
|
||||||
|
https://patreon.com/overseerr
|
||||||
|
</a>
|
||||||
|
</List.Item>
|
||||||
|
</List>
|
||||||
|
</div>
|
||||||
|
<div className="section">
|
||||||
|
<List title={intl.formatMessage(messages.supportjellyseerr)}>
|
||||||
|
<List.Item
|
||||||
|
title={`${intl.formatMessage(messages.helppaycoffee)} ☕️`}
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="https://www.buymeacoffee.com/fallen.bagel"
|
||||||
|
target="_blank"
|
||||||
|
rel="noreferrer"
|
||||||
|
className="text-indigo-500 transition duration-300 hover:underline"
|
||||||
|
>
|
||||||
|
https://www.buymeacoffee.com/fallen.bagel
|
||||||
|
</a>
|
||||||
|
<Badge className="ml-2">
|
||||||
|
{intl.formatMessage(messages.preferredmethod)}
|
||||||
|
</Badge>
|
||||||
|
</List.Item>
|
||||||
|
</List>
|
||||||
|
</div>
|
||||||
<div className="section">
|
<div className="section">
|
||||||
<Releases currentVersion={data.version} />
|
<Releases currentVersion={data.version} />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ const messages = defineMessages({
|
|||||||
experimentalTooltip:
|
experimentalTooltip:
|
||||||
'Enabling this setting may result in unexpected application behavior',
|
'Enabling this setting may result in unexpected application behavior',
|
||||||
restartrequiredTooltip:
|
restartrequiredTooltip:
|
||||||
'Overseerr must be restarted for changes to this setting to take effect',
|
'Jellyseerr must be restarted for changes to this setting to take effect',
|
||||||
});
|
});
|
||||||
|
|
||||||
const SettingsBadge = ({
|
const SettingsBadge = ({
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ const messages: { [messageName: string]: MessageDescriptor } = defineMessages({
|
|||||||
jobsandcache: 'Jobs & Cache',
|
jobsandcache: 'Jobs & Cache',
|
||||||
jobs: 'Jobs',
|
jobs: 'Jobs',
|
||||||
jobsDescription:
|
jobsDescription:
|
||||||
'Overseerr performs certain maintenance tasks as regularly-scheduled jobs, but they can also be manually triggered below. Manually running a job will not alter its schedule.',
|
'Jellyseerr performs certain maintenance tasks as regularly-scheduled jobs, but they can also be manually triggered below. Manually running a job will not alter its schedule.',
|
||||||
jobname: 'Job Name',
|
jobname: 'Job Name',
|
||||||
jobtype: 'Type',
|
jobtype: 'Type',
|
||||||
nextexecution: 'Next Execution',
|
nextexecution: 'Next Execution',
|
||||||
@@ -42,7 +42,7 @@ const messages: { [messageName: string]: MessageDescriptor } = defineMessages({
|
|||||||
command: 'Command',
|
command: 'Command',
|
||||||
cache: 'Cache',
|
cache: 'Cache',
|
||||||
cacheDescription:
|
cacheDescription:
|
||||||
'Overseerr caches requests to external API endpoints to optimize performance and avoid making unnecessary API calls.',
|
'Jellyseerr caches requests to external API endpoints to optimize performance and avoid making unnecessary API calls.',
|
||||||
cacheflushed: '{cachename} cache flushed.',
|
cacheflushed: '{cachename} cache flushed.',
|
||||||
cachename: 'Cache Name',
|
cachename: 'Cache Name',
|
||||||
cachehits: 'Hits',
|
cachehits: 'Hits',
|
||||||
@@ -76,7 +76,7 @@ const messages: { [messageName: string]: MessageDescriptor } = defineMessages({
|
|||||||
'Every {jobScheduleSeconds, plural, one {second} other {{jobScheduleSeconds} seconds}}',
|
'Every {jobScheduleSeconds, plural, one {second} other {{jobScheduleSeconds} seconds}}',
|
||||||
imagecache: 'Image Cache',
|
imagecache: 'Image Cache',
|
||||||
imagecacheDescription:
|
imagecacheDescription:
|
||||||
'When enabled in settings, Overseerr will proxy and cache images from pre-configured external sources. Cached images are saved into your config folder. You can find the files in <code>{appDataPath}/cache/images</code>.',
|
'When enabled in settings, Jellyseerr will proxy and cache images from pre-configured external sources. Cached images are saved into your config folder. You can find the files in <code>{appDataPath}/cache/images</code>.',
|
||||||
imagecachecount: 'Images Cached',
|
imagecachecount: 'Images Cached',
|
||||||
imagecachesize: 'Total Cache Size',
|
imagecachesize: 'Total Cache Size',
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ const messages = defineMessages({
|
|||||||
general: 'General',
|
general: 'General',
|
||||||
generalsettings: 'General Settings',
|
generalsettings: 'General Settings',
|
||||||
generalsettingsDescription:
|
generalsettingsDescription:
|
||||||
'Configure global and default settings for Overseerr.',
|
'Configure global and default settings for Jellyseerr.',
|
||||||
apikey: 'API Key',
|
apikey: 'API Key',
|
||||||
applicationTitle: 'Application Title',
|
applicationTitle: 'Application Title',
|
||||||
applicationurl: 'Application URL',
|
applicationurl: 'Application URL',
|
||||||
@@ -49,7 +49,7 @@ const messages = defineMessages({
|
|||||||
'Cache externally sourced images (requires a significant amount of disk space)',
|
'Cache externally sourced images (requires a significant amount of disk space)',
|
||||||
trustProxy: 'Enable Proxy Support',
|
trustProxy: 'Enable Proxy Support',
|
||||||
trustProxyTip:
|
trustProxyTip:
|
||||||
'Allow Overseerr to correctly register client IP addresses behind a proxy',
|
'Allow Jellyseerr to correctly register client IP addresses behind a proxy',
|
||||||
validationApplicationTitle: 'You must provide an application title',
|
validationApplicationTitle: 'You must provide an application title',
|
||||||
validationApplicationUrl: 'You must provide a valid URL',
|
validationApplicationUrl: 'You must provide a valid URL',
|
||||||
validationApplicationUrlTrailingSlash: 'URL must not end in a trailing slash',
|
validationApplicationUrlTrailingSlash: 'URL must not end in a trailing slash',
|
||||||
|
|||||||
@@ -49,12 +49,12 @@ const messages = defineMessages({
|
|||||||
enablessl: 'Use SSL',
|
enablessl: 'Use SSL',
|
||||||
plexlibraries: 'Plex Libraries',
|
plexlibraries: 'Plex Libraries',
|
||||||
plexlibrariesDescription:
|
plexlibrariesDescription:
|
||||||
'The libraries Overseerr scans for titles. Set up and save your Plex connection settings, then click the button below if no libraries are listed.',
|
'The libraries Jellyseerr scans for titles. Set up and save your Plex connection settings, then click the button below if no libraries are listed.',
|
||||||
scanning: 'Syncing…',
|
scanning: 'Syncing…',
|
||||||
scan: 'Sync Libraries',
|
scan: 'Sync Libraries',
|
||||||
manualscan: 'Manual Library Scan',
|
manualscan: 'Manual Library Scan',
|
||||||
manualscanDescription:
|
manualscanDescription:
|
||||||
"Normally, this will only be run once every 24 hours. Overseerr will check your Plex server's recently added more aggressively. If this is your first time configuring Plex, a one-time full manual library scan is recommended!",
|
"Normally, this will only be run once every 24 hours. Jellyseerr will check your Plex server's recently added more aggressively. If this is your first time configuring Plex, a one-time full manual library scan is recommended!",
|
||||||
notrunning: 'Not Running',
|
notrunning: 'Not Running',
|
||||||
currentlibrary: 'Current Library: {name}',
|
currentlibrary: 'Current Library: {name}',
|
||||||
librariesRemaining: 'Libraries Remaining: {count}',
|
librariesRemaining: 'Libraries Remaining: {count}',
|
||||||
@@ -67,7 +67,7 @@ const messages = defineMessages({
|
|||||||
'Optionally direct users to the web app on your server instead of the "hosted" web app',
|
'Optionally direct users to the web app on your server instead of the "hosted" web app',
|
||||||
tautulliSettings: 'Tautulli Settings',
|
tautulliSettings: 'Tautulli Settings',
|
||||||
tautulliSettingsDescription:
|
tautulliSettingsDescription:
|
||||||
'Optionally configure the settings for your Tautulli server. Overseerr fetches watch history data for your Plex media from Tautulli.',
|
'Optionally configure the settings for your Tautulli server. Jellyseerr fetches watch history data for your Plex media from Tautulli.',
|
||||||
urlBase: 'URL Base',
|
urlBase: 'URL Base',
|
||||||
tautulliApiKey: 'API Key',
|
tautulliApiKey: 'API Key',
|
||||||
externalUrl: 'External URL',
|
externalUrl: 'External URL',
|
||||||
|
|||||||
@@ -752,6 +752,7 @@
|
|||||||
"components.Settings.SettingsAbout.preferredmethod": "Preferred",
|
"components.Settings.SettingsAbout.preferredmethod": "Preferred",
|
||||||
"components.Settings.SettingsAbout.runningDevelop": "You are running the <code>develop</code> branch of Overseerr, which is only recommended for those contributing to development or assisting with bleeding-edge testing.",
|
"components.Settings.SettingsAbout.runningDevelop": "You are running the <code>develop</code> branch of Overseerr, which is only recommended for those contributing to development or assisting with bleeding-edge testing.",
|
||||||
"components.Settings.SettingsAbout.supportoverseerr": "Support Overseerr",
|
"components.Settings.SettingsAbout.supportoverseerr": "Support Overseerr",
|
||||||
|
"components.Settings.SettingsAbout.supportjellyseerr": "Support Jellyseerr",
|
||||||
"components.Settings.SettingsAbout.timezone": "Time Zone",
|
"components.Settings.SettingsAbout.timezone": "Time Zone",
|
||||||
"components.Settings.SettingsAbout.totalmedia": "Total Media",
|
"components.Settings.SettingsAbout.totalmedia": "Total Media",
|
||||||
"components.Settings.SettingsAbout.totalrequests": "Total Requests",
|
"components.Settings.SettingsAbout.totalrequests": "Total Requests",
|
||||||
|
|||||||
Reference in New Issue
Block a user