diff --git a/server/job/schedule.ts b/server/job/schedule.ts index 15bf033ed..f65cdebbd 100644 --- a/server/job/schedule.ts +++ b/server/job/schedule.ts @@ -1,6 +1,10 @@ import { MediaServerType } from '@server/constants/server'; import downloadTracker from '@server/lib/downloadtracker'; import ImageProxy from '@server/lib/imageproxy'; +import { + jellyfinFullScanner, + jellyfinRecentScanner, +} from '@server/lib/scanners/jellyfin'; import { plexFullScanner, plexRecentScanner } from '@server/lib/scanners/plex'; import { radarrScanner } from '@server/lib/scanners/radarr'; import { sonarrScanner } from '@server/lib/scanners/sonarr'; @@ -10,7 +14,6 @@ import watchlistSync from '@server/lib/watchlistsync'; import logger from '@server/logger'; import random from 'lodash/random'; import schedule from 'node-schedule'; -import { jobJellyfinFullSync, jobJellyfinRecentSync } from './jellyfinsync'; interface ScheduledJob { id: JobId; @@ -73,38 +76,38 @@ export const startJobs = (): void => { // Run recently added jellyfin sync every 5 minutes scheduledJobs.push({ id: 'jellyfin-recently-added-scan', - name: 'Jellyfin Recently Added Sync', + name: 'Jellyfin Recently Added Scan', type: 'process', interval: 'minutes', cronSchedule: jobs['jellyfin-recently-added-scan'].schedule, job: schedule.scheduleJob( jobs['jellyfin-recently-added-scan'].schedule, () => { - logger.info('Starting scheduled job: Jellyfin Recently Added Sync', { + logger.info('Starting scheduled job: Jellyfin Recently Added Scan', { label: 'Jobs', }); - jobJellyfinRecentSync.run(); + jellyfinRecentScanner.run(); } ), - running: () => jobJellyfinRecentSync.status().running, - cancelFn: () => jobJellyfinRecentSync.cancel(), + running: () => jellyfinRecentScanner.status().running, + cancelFn: () => jellyfinRecentScanner.cancel(), }); // Run full jellyfin sync every 24 hours scheduledJobs.push({ id: 'jellyfin-full-scan', - name: 'Jellyfin Full Library Sync', + name: 'Jellyfin Full Library Scan', type: 'process', interval: 'hours', cronSchedule: jobs['jellyfin-full-scan'].schedule, job: schedule.scheduleJob(jobs['jellyfin-full-scan'].schedule, () => { - logger.info('Starting scheduled job: Jellyfin Full Sync', { + logger.info('Starting scheduled job: Jellyfin Full Scan', { label: 'Jobs', }); - jobJellyfinFullSync.run(); + jellyfinFullScanner.run(); }), - running: () => jobJellyfinFullSync.status().running, - cancelFn: () => jobJellyfinFullSync.cancel(), + running: () => jellyfinFullScanner.status().running, + cancelFn: () => jellyfinFullScanner.cancel(), }); } diff --git a/server/job/jellyfinsync/index.ts b/server/lib/scanners/jellyfin/index.ts similarity index 99% rename from server/job/jellyfinsync/index.ts rename to server/lib/scanners/jellyfin/index.ts index b263ec6e4..c231ec0dc 100644 --- a/server/job/jellyfinsync/index.ts +++ b/server/lib/scanners/jellyfin/index.ts @@ -26,7 +26,7 @@ interface SyncStatus { libraries: Library[]; } -class JobJellyfinSync { +class JellyfinScanner { private sessionId: string; private tmdb: TheMovieDb; private jfClient: JellyfinAPI; @@ -675,7 +675,7 @@ class JobJellyfinSync { } } -export const jobJellyfinFullSync = new JobJellyfinSync(); -export const jobJellyfinRecentSync = new JobJellyfinSync({ +export const jellyfinFullScanner = new JellyfinScanner(); +export const jellyfinRecentScanner = new JellyfinScanner({ isRecentOnly: true, }); diff --git a/server/routes/settings/index.ts b/server/routes/settings/index.ts index dc3724207..5703cccc0 100644 --- a/server/routes/settings/index.ts +++ b/server/routes/settings/index.ts @@ -12,12 +12,12 @@ import type { LogsResultsResponse, SettingsAboutResponse, } from '@server/interfaces/api/settingsInterfaces'; -import { jobJellyfinFullSync } from '@server/job/jellyfinsync'; import { scheduledJobs } from '@server/job/schedule'; import type { AvailableCacheIds } from '@server/lib/cache'; import cacheManager from '@server/lib/cache'; import ImageProxy from '@server/lib/imageproxy'; import { Permission } from '@server/lib/permissions'; +import { jellyfinFullScanner } from '@server/lib/scanners/jellyfin'; import { plexFullScanner } from '@server/lib/scanners/plex'; import type { JobId, Library, MainSettings } from '@server/lib/settings'; import { getSettings } from '@server/lib/settings'; @@ -345,16 +345,16 @@ settingsRoutes.get('/jellyfin/users', async (req, res) => { }); settingsRoutes.get('/jellyfin/sync', (_req, res) => { - return res.status(200).json(jobJellyfinFullSync.status()); + return res.status(200).json(jellyfinFullScanner.status()); }); settingsRoutes.post('/jellyfin/sync', (req, res) => { if (req.body.cancel) { - jobJellyfinFullSync.cancel(); + jellyfinFullScanner.cancel(); } else if (req.body.start) { - jobJellyfinFullSync.run(); + jellyfinFullScanner.run(); } - return res.status(200).json(jobJellyfinFullSync.status()); + return res.status(200).json(jellyfinFullScanner.status()); }); settingsRoutes.get('/tautulli', (_req, res) => { const settings = getSettings();