mirror of
https://github.com/sct/overseerr.git
synced 2025-09-17 17:24:35 +02:00
fix: clarify full sync runs every 24 hours
This commit is contained in:
@@ -20,7 +20,7 @@ export const startJobs = (): void => {
|
|||||||
jobPlexRecentSync.run();
|
jobPlexRecentSync.run();
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
// Run full plex sync every 6 hours
|
// Run full plex sync every 24 hours
|
||||||
scheduledJobs.push({
|
scheduledJobs.push({
|
||||||
name: 'Plex Full Library Sync',
|
name: 'Plex Full Library Sync',
|
||||||
job: schedule.scheduleJob('0 0 3 * * *', () => {
|
job: schedule.scheduleJob('0 0 3 * * *', () => {
|
||||||
|
@@ -28,7 +28,7 @@ const messages = defineMessages({
|
|||||||
sync: 'Sync Plex Libraries',
|
sync: 'Sync Plex Libraries',
|
||||||
manualscan: 'Manual Library Scan',
|
manualscan: 'Manual Library Scan',
|
||||||
manualscanDescription:
|
manualscanDescription:
|
||||||
"Normally, this will only be run once every 6 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. 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!",
|
||||||
notrunning: 'Not Running',
|
notrunning: 'Not Running',
|
||||||
currentlibrary: 'Current Library: {name}',
|
currentlibrary: 'Current Library: {name}',
|
||||||
librariesRemaining: 'Libraries Remaining: {count}',
|
librariesRemaining: 'Libraries Remaining: {count}',
|
||||||
@@ -143,10 +143,10 @@ const SettingsPlex: React.FC<SettingsPlexProps> = ({ onComplete }) => {
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div>
|
<div>
|
||||||
<h3 className="text-lg leading-6 font-medium text-gray-200">
|
<h3 className="text-lg font-medium leading-6 text-gray-200">
|
||||||
<FormattedMessage {...messages.plexsettings} />
|
<FormattedMessage {...messages.plexsettings} />
|
||||||
</h3>
|
</h3>
|
||||||
<p className="mt-1 max-w-2xl text-sm leading-5 text-gray-500">
|
<p className="max-w-2xl mt-1 text-sm leading-5 text-gray-500">
|
||||||
<FormattedMessage {...messages.plexsettingsDescription} />
|
<FormattedMessage {...messages.plexsettingsDescription} />
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -188,7 +188,7 @@ const SettingsPlex: React.FC<SettingsPlexProps> = ({ onComplete }) => {
|
|||||||
<form onSubmit={handleSubmit}>
|
<form onSubmit={handleSubmit}>
|
||||||
<div className="mt-6 sm:mt-5">
|
<div className="mt-6 sm:mt-5">
|
||||||
{submitError && (
|
{submitError && (
|
||||||
<div className="bg-red-700 text-white p-4 rounded-md mb-6">
|
<div className="p-4 mb-6 text-white bg-red-700 rounded-md">
|
||||||
{submitError}
|
{submitError}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
@@ -200,7 +200,7 @@ const SettingsPlex: React.FC<SettingsPlexProps> = ({ onComplete }) => {
|
|||||||
<FormattedMessage {...messages.servername} />
|
<FormattedMessage {...messages.servername} />
|
||||||
</label>
|
</label>
|
||||||
<div className="mt-1 sm:mt-0 sm:col-span-2">
|
<div className="mt-1 sm:mt-0 sm:col-span-2">
|
||||||
<div className="max-w-lg flex rounded-md shadow-sm">
|
<div className="flex max-w-lg rounded-md shadow-sm">
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
id="name"
|
id="name"
|
||||||
@@ -210,7 +210,7 @@ const SettingsPlex: React.FC<SettingsPlexProps> = ({ onComplete }) => {
|
|||||||
)}
|
)}
|
||||||
value={data?.name}
|
value={data?.name}
|
||||||
readOnly
|
readOnly
|
||||||
className="flex-1 form-input block w-full min-w-0 rounded-md transition duration-150 ease-in-out sm:text-sm sm:leading-5 bg-gray-700 border border-gray-500"
|
className="flex-1 block w-full min-w-0 transition duration-150 ease-in-out bg-gray-700 border border-gray-500 rounded-md form-input sm:text-sm sm:leading-5"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -223,8 +223,8 @@ const SettingsPlex: React.FC<SettingsPlexProps> = ({ onComplete }) => {
|
|||||||
<FormattedMessage {...messages.hostname} />
|
<FormattedMessage {...messages.hostname} />
|
||||||
</label>
|
</label>
|
||||||
<div className="mt-1 sm:mt-0 sm:col-span-2">
|
<div className="mt-1 sm:mt-0 sm:col-span-2">
|
||||||
<div className="max-w-lg flex rounded-md shadow-sm">
|
<div className="flex max-w-lg rounded-md shadow-sm">
|
||||||
<span className="inline-flex items-center px-3 rounded-l-md border border-r-0 border-gray-500 bg-gray-800 text-gray-100 sm:text-sm cursor-default">
|
<span className="inline-flex items-center px-3 text-gray-100 bg-gray-800 border border-r-0 border-gray-500 cursor-default rounded-l-md sm:text-sm">
|
||||||
{values.useSsl ? 'https://' : 'http://'}
|
{values.useSsl ? 'https://' : 'http://'}
|
||||||
</span>
|
</span>
|
||||||
<Field
|
<Field
|
||||||
@@ -232,11 +232,11 @@ const SettingsPlex: React.FC<SettingsPlexProps> = ({ onComplete }) => {
|
|||||||
id="hostname"
|
id="hostname"
|
||||||
name="hostname"
|
name="hostname"
|
||||||
placeholder="127.0.0.1"
|
placeholder="127.0.0.1"
|
||||||
className="flex-1 form-input block w-full min-w-0 rounded-r-md transition duration-150 ease-in-out sm:text-sm sm:leading-5 bg-gray-700 border border-gray-500"
|
className="flex-1 block w-full min-w-0 transition duration-150 ease-in-out bg-gray-700 border border-gray-500 form-input rounded-r-md sm:text-sm sm:leading-5"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
{errors.hostname && touched.hostname && (
|
{errors.hostname && touched.hostname && (
|
||||||
<div className="text-red-500 mt-2">{errors.hostname}</div>
|
<div className="mt-2 text-red-500">{errors.hostname}</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -254,11 +254,11 @@ const SettingsPlex: React.FC<SettingsPlexProps> = ({ onComplete }) => {
|
|||||||
id="port"
|
id="port"
|
||||||
name="port"
|
name="port"
|
||||||
placeholder="32400"
|
placeholder="32400"
|
||||||
className="form-input block w-24 rounded-md transition duration-150 ease-in-out sm:text-sm sm:leading-5 bg-gray-700 border border-gray-500"
|
className="block w-24 transition duration-150 ease-in-out bg-gray-700 border border-gray-500 rounded-md form-input sm:text-sm sm:leading-5"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
{errors.port && touched.port && (
|
{errors.port && touched.port && (
|
||||||
<div className="text-red-500 mt-2">{errors.port}</div>
|
<div className="mt-2 text-red-500">{errors.port}</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -278,13 +278,13 @@ const SettingsPlex: React.FC<SettingsPlexProps> = ({ onComplete }) => {
|
|||||||
onChange={() => {
|
onChange={() => {
|
||||||
setFieldValue('useSsl', !values.useSsl);
|
setFieldValue('useSsl', !values.useSsl);
|
||||||
}}
|
}}
|
||||||
className="form-checkbox h-6 w-6 rounded-md text-indigo-600 transition duration-150 ease-in-out"
|
className="w-6 h-6 text-indigo-600 transition duration-150 ease-in-out rounded-md form-checkbox"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="mt-8 border-t border-gray-700 pt-5">
|
<div className="pt-5 mt-8 border-t border-gray-700">
|
||||||
<div className="flex justify-end">
|
<div className="flex justify-end">
|
||||||
<span className="ml-3 inline-flex rounded-md shadow-sm">
|
<span className="inline-flex ml-3 rounded-md shadow-sm">
|
||||||
<Button
|
<Button
|
||||||
buttonType="primary"
|
buttonType="primary"
|
||||||
type="submit"
|
type="submit"
|
||||||
@@ -302,10 +302,10 @@ const SettingsPlex: React.FC<SettingsPlexProps> = ({ onComplete }) => {
|
|||||||
}}
|
}}
|
||||||
</Formik>
|
</Formik>
|
||||||
<div className="mt-10">
|
<div className="mt-10">
|
||||||
<h3 className="text-lg leading-6 font-medium text-gray-200">
|
<h3 className="text-lg font-medium leading-6 text-gray-200">
|
||||||
<FormattedMessage {...messages.plexlibraries} />
|
<FormattedMessage {...messages.plexlibraries} />
|
||||||
</h3>
|
</h3>
|
||||||
<p className="mt-1 max-w-2xl text-sm leading-5 text-gray-500">
|
<p className="max-w-2xl mt-1 text-sm leading-5 text-gray-500">
|
||||||
<FormattedMessage {...messages.plexlibrariesDescription} />
|
<FormattedMessage {...messages.plexlibrariesDescription} />
|
||||||
</p>
|
</p>
|
||||||
<div className="mt-6">
|
<div className="mt-6">
|
||||||
@@ -327,7 +327,7 @@ const SettingsPlex: React.FC<SettingsPlexProps> = ({ onComplete }) => {
|
|||||||
: intl.formatMessage(messages.sync)}
|
: intl.formatMessage(messages.sync)}
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
<ul className="mt-6 grid grid-cols-1 gap-5 sm:gap-6 sm:grid-cols-2 lg:grid-cols-4">
|
<ul className="grid grid-cols-1 gap-5 mt-6 sm:gap-6 sm:grid-cols-2 lg:grid-cols-4">
|
||||||
{data?.libraries.map((library) => (
|
{data?.libraries.map((library) => (
|
||||||
<LibraryItem
|
<LibraryItem
|
||||||
name={library.name}
|
name={library.name}
|
||||||
@@ -339,18 +339,18 @@ const SettingsPlex: React.FC<SettingsPlexProps> = ({ onComplete }) => {
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div className="mt-10">
|
<div className="mt-10">
|
||||||
<h3 className="text-lg leading-6 font-medium text-gray-200">
|
<h3 className="text-lg font-medium leading-6 text-gray-200">
|
||||||
<FormattedMessage {...messages.manualscan} />
|
<FormattedMessage {...messages.manualscan} />
|
||||||
</h3>
|
</h3>
|
||||||
<p className="mt-1 max-w-2xl text-sm leading-5 text-gray-500">
|
<p className="max-w-2xl mt-1 text-sm leading-5 text-gray-500">
|
||||||
<FormattedMessage {...messages.manualscanDescription} />
|
<FormattedMessage {...messages.manualscanDescription} />
|
||||||
</p>
|
</p>
|
||||||
<div className="mt-6">
|
<div className="mt-6">
|
||||||
<div className="bg-gray-800 p-4 rounded-md">
|
<div className="p-4 bg-gray-800 rounded-md">
|
||||||
<div className="w-full h-8 rounded-full bg-gray-600 mb-6 relative overflow-hidden">
|
<div className="relative w-full h-8 mb-6 overflow-hidden bg-gray-600 rounded-full">
|
||||||
{dataSync?.running && (
|
{dataSync?.running && (
|
||||||
<div
|
<div
|
||||||
className="h-8 bg-indigo-600 transition-all ease-in-out duration-200"
|
className="h-8 transition-all duration-200 ease-in-out bg-indigo-600"
|
||||||
style={{
|
style={{
|
||||||
width: `${Math.round(
|
width: `${Math.round(
|
||||||
(dataSync.progress / dataSync.total) * 100
|
(dataSync.progress / dataSync.total) * 100
|
||||||
@@ -358,7 +358,7 @@ const SettingsPlex: React.FC<SettingsPlexProps> = ({ onComplete }) => {
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
<div className="absolute inset-0 text-sm w-full h-8 flex items-center justify-center">
|
<div className="absolute inset-0 flex items-center justify-center w-full h-8 text-sm">
|
||||||
<span>
|
<span>
|
||||||
{dataSync?.running
|
{dataSync?.running
|
||||||
? `${dataSync.progress} of ${dataSync.total}`
|
? `${dataSync.progress} of ${dataSync.total}`
|
||||||
@@ -366,10 +366,10 @@ const SettingsPlex: React.FC<SettingsPlexProps> = ({ onComplete }) => {
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex w-full flex-col sm:flex-row">
|
<div className="flex flex-col w-full sm:flex-row">
|
||||||
{dataSync?.running && (
|
{dataSync?.running && (
|
||||||
<>
|
<>
|
||||||
<div className="flex items-center mr-0 mb-2 sm:mb-0 sm:mr-2">
|
<div className="flex items-center mb-2 mr-0 sm:mb-0 sm:mr-2">
|
||||||
<Badge>
|
<Badge>
|
||||||
<FormattedMessage
|
<FormattedMessage
|
||||||
{...messages.currentlibrary}
|
{...messages.currentlibrary}
|
||||||
|
@@ -227,7 +227,7 @@
|
|||||||
"components.Settings.jobname": "Job Name",
|
"components.Settings.jobname": "Job Name",
|
||||||
"components.Settings.librariesRemaining": "Libraries Remaining: {count}",
|
"components.Settings.librariesRemaining": "Libraries Remaining: {count}",
|
||||||
"components.Settings.manualscan": "Manual Library Scan",
|
"components.Settings.manualscan": "Manual Library Scan",
|
||||||
"components.Settings.manualscanDescription": "Normally, this will only be run once every 6 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!",
|
"components.Settings.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!",
|
||||||
"components.Settings.menuAbout": "About",
|
"components.Settings.menuAbout": "About",
|
||||||
"components.Settings.menuGeneralSettings": "General Settings",
|
"components.Settings.menuGeneralSettings": "General Settings",
|
||||||
"components.Settings.menuJobs": "Jobs",
|
"components.Settings.menuJobs": "Jobs",
|
||||||
|
Reference in New Issue
Block a user