diff --git a/backend/src/cache/MangaUpdatesCache.ts b/backend/src/cache/MangaUpdatesCache.ts index c3a3697..358d674 100644 --- a/backend/src/cache/MangaUpdatesCache.ts +++ b/backend/src/cache/MangaUpdatesCache.ts @@ -78,11 +78,13 @@ export class MangaUpdatesCache { .filter(([title, entry]) => entry.lastUpdateMs + this.MAX_CACHE_AGE_SEARCH_BY_TITLE < Date.now()) .map(([title, entry]) => title); } + getOutOfDateSeries(): string[] { return Array.from(this._seriesById.entries()) .filter(([title, entry]) => entry.lastUpdateMs + this.MAX_CACHE_AGE_SERIES_BY_ID < Date.now()) .map(([title, entry]) => title); } + getOutOfDateSeriesGroups(): string[] { return Array.from(this._seriesGroupsById.entries()) .filter(([title, entry]) => entry.lastUpdateMs + this.MAX_CACHE_AGE_SERIES_GROUPS_BY_ID < Date.now()) diff --git a/backend/src/main.ts b/backend/src/main.ts index 032254c..4c2e861 100644 --- a/backend/src/main.ts +++ b/backend/src/main.ts @@ -8,7 +8,7 @@ import * as fs from 'fs'; import {MangaDexCache} from './cache/MangaDexCache'; import mangaDexRouter from './router/MangaDexRouter'; -const config = JSON.parse(fs.readFileSync('config.json').toString()) +const config = JSON.parse(fs.readFileSync('config.json').toString()); const app = express(); const mangaDexCache = new MangaDexCache(); @@ -25,7 +25,7 @@ app.use(express.json()); app.use('/anilist', aniListRouter()); app.use('/mangadex', mangaDexRouter(mangaDexCache)); app.use('/mangaupdates', mangaUpdatesRouter(mangaUpdatesCache)); -app.use(express.static('_client')) //for production +app.use(express.static('_client')); //for production //start app.listen(config.port, config.host, () => { diff --git a/frontend/src/data/service/MangaUpdatesDataService.ts b/frontend/src/data/service/MangaUpdatesDataService.ts index 7cd93b2..09eddaa 100644 --- a/frontend/src/data/service/MangaUpdatesDataService.ts +++ b/frontend/src/data/service/MangaUpdatesDataService.ts @@ -16,17 +16,11 @@ export default class MangaUpdatesDataService { const mangaStore = new MangaStore(); const dbStore = new DbStore(); return this.findMissingRelations(mangaStore, dbStore, progress) - .catch(err => { - console.error(err); - }) + .catch(err => console.error(err)) .then(_ => this.fetchSeriesUpdates(mangaStore, dbStore, progress)) - .catch(err => { - console.error(err); - }) + .catch(err => console.error(err)) .then(_ => this.fetchSeriesChapterUpdates(mangaStore, dbStore, progress)) - .catch(err => { - console.error(err); - }) + .catch(err => console.error(err)) .then(_ => progress.onFinished()); } @@ -73,6 +67,7 @@ export default class MangaUpdatesDataService { } break; } + if (matching.length === 0) { continue; } @@ -117,7 +112,7 @@ export default class MangaUpdatesDataService { const series = await dbStore.mangaUpdatesRepository.getSeries(); let i = 0; - const cachedChapterUpdates: MangaUpdatesChapter[] = [] + const cachedChapterUpdates: MangaUpdatesChapter[] = []; for (const s of series) { try { let groups; @@ -146,7 +141,7 @@ export default class MangaUpdatesDataService { //only keep chapter with the highest chapter number per group const filtered = Array.from(groupBy(updates, c => c.group).values()) .map(chaptersOfGroup => chaptersOfGroup.reduce((l, r) => l.chapter > r.chapter ? l : r, chaptersOfGroup[0])); - cachedChapterUpdates.push(...filtered) + cachedChapterUpdates.push(...filtered); } finally { await progress.onProgress('mangaUpdates.chapters', ++i, series.length); }