mirror of
https://github.com/knightcrawler-stremio/knightcrawler.git
synced 2024-12-20 03:29:51 +00:00
[scraper] fixes periodic hs all shows scraping with disabled seeders updating
This commit is contained in:
@@ -19,7 +19,7 @@ const entryLimiter = new Bottleneck({ maxConcurrent: 10 });
|
|||||||
async function scrape() {
|
async function scrape() {
|
||||||
const scrapeStart = moment();
|
const scrapeStart = moment();
|
||||||
const lastScrape = await repository.getProvider({ name: NAME });
|
const lastScrape = await repository.getProvider({ name: NAME });
|
||||||
const lastScraped = lastScrape.lastScraped && moment.unix(lastScrape.lastScraped);
|
const lastScraped = lastScrape.lastScraped && moment(lastScrape.lastScraped);
|
||||||
|
|
||||||
if (!lastScraped || lastScraped.add(NEXT_FULL_SCRAPE_OFFSET, 'seconds') < scrapeStart) {
|
if (!lastScraped || lastScraped.add(NEXT_FULL_SCRAPE_OFFSET, 'seconds') < scrapeStart) {
|
||||||
console.log(`[${scrapeStart}] scrapping all ${NAME} shows...`);
|
console.log(`[${scrapeStart}] scrapping all ${NAME} shows...`);
|
||||||
@@ -54,7 +54,7 @@ async function _scrapeAllShows() {
|
|||||||
|
|
||||||
return Promise.all(shows
|
return Promise.all(shows
|
||||||
.map((show) => limiter.schedule(() => horriblesubs.showData(show)
|
.map((show) => limiter.schedule(() => horriblesubs.showData(show)
|
||||||
.then((showData) => _parseShowData(showData))
|
.then((showData) => _parseShowData(showData, false))
|
||||||
.catch((err) => console.log(err)))));
|
.catch((err) => console.log(err)))));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -110,7 +110,7 @@ async function enrichShow(show) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function _parseShowData(showData) {
|
async function _parseShowData(showData, updateSeeders = true) {
|
||||||
console.log(`${NAME}: scrapping ${showData.title} data...`);
|
console.log(`${NAME}: scrapping ${showData.title} data...`);
|
||||||
const showMapping = showMappings[showData.title];
|
const showMapping = showMappings[showData.title];
|
||||||
const kitsuId = showMapping && showMapping.kitsu_id;
|
const kitsuId = showMapping && showMapping.kitsu_id;
|
||||||
@@ -164,15 +164,18 @@ async function _parseShowData(showData) {
|
|||||||
})))
|
})))
|
||||||
.reduce((a, b) => a.concat(b), [])
|
.reduce((a, b) => a.concat(b), [])
|
||||||
.filter(torrent => torrent.kitsuId)
|
.filter(torrent => torrent.kitsuId)
|
||||||
.map(torrent => entryLimiter.schedule(() => processTorrentRecord(torrent))))
|
.map(torrent => entryLimiter.schedule(() => processTorrentRecord(torrent, updateSeeders))))
|
||||||
.then(() => console.log(`${NAME}: finished scrapping ${showData.title} data`));
|
.then(() => console.log(`${NAME}: finished scrapping ${showData.title} data`));
|
||||||
}
|
}
|
||||||
|
|
||||||
async function processTorrentRecord(torrent) {
|
async function processTorrentRecord(torrent, updateSeeders = true) {
|
||||||
const existingTorrent = await repository.getTorrent(torrent).catch(() => undefined);
|
const existingTorrent = await repository.getTorrent(torrent).catch(() => undefined);
|
||||||
|
|
||||||
if (existingTorrent && existingTorrent.provider === NAME) {
|
if (existingTorrent && existingTorrent.provider === NAME) {
|
||||||
return updateCurrentSeeders(torrent).then(updatedSeeders => updateTorrentSeeders(updatedSeeders))
|
if (updateSeeders) {
|
||||||
|
return updateCurrentSeeders(torrent).then(updatedSeeders => updateTorrentSeeders(updatedSeeders))
|
||||||
|
}
|
||||||
|
return Promise.resolve(torrent)
|
||||||
}
|
}
|
||||||
|
|
||||||
return updateTorrentSize(torrent)
|
return updateTorrentSize(torrent)
|
||||||
|
|||||||
Reference in New Issue
Block a user