add erai rss scraper

This commit is contained in:
TheBeastLT
2022-02-19 13:04:47 +01:00
parent 30fb5624ea
commit 47c05c465c
7 changed files with 134 additions and 9 deletions

View File

@@ -0,0 +1,50 @@
const Parser = require('rss-parser');
const decode = require("magnet-uri");
const parser = new Parser({
customFields: {
item: [['erai:subtitles', 'subtitles']]
}
});
const baseUrl = 'https://www.erai-raws.info';
const rssKey = process.env.ERAI_RSS_KEY;
const Categories = {
ANIMES: 'anime',
EPISODES: 'episodes'
};
function browse() {
return parser.parseURL(`${baseUrl}/feed/?type=magnet&${rssKey}`)
.then(result => result.items
.map(item => {
const decodedMagnet = decode(item.link);
const languages = parseLanguages(item.subtitles);
return {
title: decodedMagnet.name,
infoHash: decodedMagnet.infoHash,
trackers: decodedMagnet.tr,
languages: languages
}
}));
}
const languageMapping = {
'us': 'English',
'br': 'Portuguese(Brazil)',
'mx': 'Spanish(Latin_America)',
'es': 'Spanish',
'sa': 'Arabic',
'fr': 'French',
'de': 'German',
'it': 'Italian',
'ru': 'Russian'
}
function parseLanguages(languages) {
return languages.split('][')
.map(lang => lang.replace(/[\[\]]/g, ''))
.map(lang => languageMapping[lang] || lang)
.join('/');
}
module.exports = { browse, Categories };

View File

@@ -1,6 +1,6 @@
const moment = require('moment');
const Bottleneck = require('bottleneck');
const erairaws = require('./erairaws_api');
const erairaws = require('./erairaws_rss_api');
const { checkAndUpdateTorrent } = require('../../lib/torrentEntries');
const NAME = 'EraiRaws';
@@ -41,7 +41,7 @@ function untilPage(category) {
if (category === erairaws.Categories.ANIMES) {
return 45;
}
return 3;
return 1;
}
module.exports = { scrape, NAME };