From 6bd8a05ba4ecd36bd3ccdf07131b71e788a533bb Mon Sep 17 00:00:00 2001 From: TheBeastLT Date: Sat, 2 May 2020 17:56:13 +0200 Subject: [PATCH] [scraper] upsert subtitles when updating existing file --- scraper/lib/repository.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/scraper/lib/repository.js b/scraper/lib/repository.js index f3a26a1..1108b3e 100644 --- a/scraper/lib/repository.js +++ b/scraper/lib/repository.js @@ -1,4 +1,5 @@ const moment = require('moment'); +const Promises = require('./promises') const { Sequelize, fn, col, literal } = require('sequelize'); const Op = Sequelize.Op; @@ -201,7 +202,7 @@ function setTorrentSeeders(infoHash, seeders) { function createFile(file) { if (file.id) { - return File.upsert(file); + return File.upsert(file).then(() => upsertSubtitles(file.id, file.subtitles)); } return File.create(file, { include: [Subtitle] }); } @@ -225,6 +226,15 @@ function createSubtitles(infoHash, subtitles) { return Promise.resolve(); } +function upsertSubtitles(file, subtitles) { + if (file.id && subtitles && subtitles.length) { + return Promises.sequence(subtitles + .map(subtitle => ({ fileId: file.id, infoHash: file.infoHash, title: subtitle.path, ...subtitle })) + .map(subtitle => () => Subtitle.upsert(subtitle))); + } + return Promise.resolve(); +} + function getSubtitles(torrent) { return Subtitle.findAll({ where: { infoHash: torrent.infoHash } }); }