[scraper] upsert subtitles when updating existing file

This commit is contained in:
TheBeastLT
2020-05-02 17:56:13 +02:00
parent 2bb0570194
commit 6bd8a05ba4

View File

@@ -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 } });
}