Skip to content

Commit 91f97f9

Browse files
committed
refactor: jellyfin scan jobs moved from server/jobs to server/libs/scanners
1 parent f4051a1 commit 91f97f9

File tree

3 files changed

+22
-19
lines changed

3 files changed

+22
-19
lines changed

server/job/schedule.ts

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import { MediaServerType } from '@server/constants/server';
22
import downloadTracker from '@server/lib/downloadtracker';
33
import ImageProxy from '@server/lib/imageproxy';
4+
import {
5+
jellyfinFullScanner,
6+
jellyfinRecentScanner,
7+
} from '@server/lib/scanners/jellyfin';
48
import { plexFullScanner, plexRecentScanner } from '@server/lib/scanners/plex';
59
import { radarrScanner } from '@server/lib/scanners/radarr';
610
import { sonarrScanner } from '@server/lib/scanners/sonarr';
@@ -10,7 +14,6 @@ import watchlistSync from '@server/lib/watchlistsync';
1014
import logger from '@server/logger';
1115
import random from 'lodash/random';
1216
import schedule from 'node-schedule';
13-
import { jobJellyfinFullSync, jobJellyfinRecentSync } from './jellyfinsync';
1417

1518
interface ScheduledJob {
1619
id: JobId;
@@ -73,38 +76,38 @@ export const startJobs = (): void => {
7376
// Run recently added jellyfin sync every 5 minutes
7477
scheduledJobs.push({
7578
id: 'jellyfin-recently-added-scan',
76-
name: 'Jellyfin Recently Added Sync',
79+
name: 'Jellyfin Recently Added Scan',
7780
type: 'process',
7881
interval: 'minutes',
7982
cronSchedule: jobs['jellyfin-recently-added-scan'].schedule,
8083
job: schedule.scheduleJob(
8184
jobs['jellyfin-recently-added-scan'].schedule,
8285
() => {
83-
logger.info('Starting scheduled job: Jellyfin Recently Added Sync', {
86+
logger.info('Starting scheduled job: Jellyfin Recently Added Scan', {
8487
label: 'Jobs',
8588
});
86-
jobJellyfinRecentSync.run();
89+
jellyfinRecentScanner.run();
8790
}
8891
),
89-
running: () => jobJellyfinRecentSync.status().running,
90-
cancelFn: () => jobJellyfinRecentSync.cancel(),
92+
running: () => jellyfinRecentScanner.status().running,
93+
cancelFn: () => jellyfinRecentScanner.cancel(),
9194
});
9295

9396
// Run full jellyfin sync every 24 hours
9497
scheduledJobs.push({
9598
id: 'jellyfin-full-scan',
96-
name: 'Jellyfin Full Library Sync',
99+
name: 'Jellyfin Full Library Scan',
97100
type: 'process',
98101
interval: 'hours',
99102
cronSchedule: jobs['jellyfin-full-scan'].schedule,
100103
job: schedule.scheduleJob(jobs['jellyfin-full-scan'].schedule, () => {
101-
logger.info('Starting scheduled job: Jellyfin Full Sync', {
104+
logger.info('Starting scheduled job: Jellyfin Full Scan', {
102105
label: 'Jobs',
103106
});
104-
jobJellyfinFullSync.run();
107+
jellyfinFullScanner.run();
105108
}),
106-
running: () => jobJellyfinFullSync.status().running,
107-
cancelFn: () => jobJellyfinFullSync.cancel(),
109+
running: () => jellyfinFullScanner.status().running,
110+
cancelFn: () => jellyfinFullScanner.cancel(),
108111
});
109112
}
110113

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ interface SyncStatus {
2626
libraries: Library[];
2727
}
2828

29-
class JobJellyfinSync {
29+
class JellyfinScanner {
3030
private sessionId: string;
3131
private tmdb: TheMovieDb;
3232
private jfClient: JellyfinAPI;
@@ -675,7 +675,7 @@ class JobJellyfinSync {
675675
}
676676
}
677677

678-
export const jobJellyfinFullSync = new JobJellyfinSync();
679-
export const jobJellyfinRecentSync = new JobJellyfinSync({
678+
export const jellyfinFullScanner = new JellyfinScanner();
679+
export const jellyfinRecentScanner = new JellyfinScanner({
680680
isRecentOnly: true,
681681
});

server/routes/settings/index.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ import type {
1212
LogsResultsResponse,
1313
SettingsAboutResponse,
1414
} from '@server/interfaces/api/settingsInterfaces';
15-
import { jobJellyfinFullSync } from '@server/job/jellyfinsync';
1615
import { scheduledJobs } from '@server/job/schedule';
1716
import type { AvailableCacheIds } from '@server/lib/cache';
1817
import cacheManager from '@server/lib/cache';
1918
import ImageProxy from '@server/lib/imageproxy';
2019
import { Permission } from '@server/lib/permissions';
20+
import { jellyfinFullScanner } from '@server/lib/scanners/jellyfin';
2121
import { plexFullScanner } from '@server/lib/scanners/plex';
2222
import type { JobId, Library, MainSettings } from '@server/lib/settings';
2323
import { getSettings } from '@server/lib/settings';
@@ -345,16 +345,16 @@ settingsRoutes.get('/jellyfin/users', async (req, res) => {
345345
});
346346

347347
settingsRoutes.get('/jellyfin/sync', (_req, res) => {
348-
return res.status(200).json(jobJellyfinFullSync.status());
348+
return res.status(200).json(jellyfinFullScanner.status());
349349
});
350350

351351
settingsRoutes.post('/jellyfin/sync', (req, res) => {
352352
if (req.body.cancel) {
353-
jobJellyfinFullSync.cancel();
353+
jellyfinFullScanner.cancel();
354354
} else if (req.body.start) {
355-
jobJellyfinFullSync.run();
355+
jellyfinFullScanner.run();
356356
}
357-
return res.status(200).json(jobJellyfinFullSync.status());
357+
return res.status(200).json(jellyfinFullScanner.status());
358358
});
359359
settingsRoutes.get('/tautulli', (_req, res) => {
360360
const settings = getSettings();

0 commit comments

Comments
 (0)