feat(nyaa): support of nyaa torrents
This commit is contained in:
parent
bf23587211
commit
ffd0643c0b
30
src/background/strategies/nyaa.js
Normal file
30
src/background/strategies/nyaa.js
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
|
||||||
|
const fetch = require('node-fetch')
|
||||||
|
const cheerio = require('cheerio')
|
||||||
|
|
||||||
|
module.exports = class Nyaa
|
||||||
|
{
|
||||||
|
async findHash(hash)
|
||||||
|
{
|
||||||
|
this.hash = hash
|
||||||
|
return await this.parse()
|
||||||
|
}
|
||||||
|
|
||||||
|
async parse()
|
||||||
|
{
|
||||||
|
let html = await fetch('https://nyaa.si/' + (this.threadId ? `view/${this.threadId}` : (this.hash ? `?q=${this.hash}` : '')))
|
||||||
|
if(!html)
|
||||||
|
return
|
||||||
|
html = await html.text()
|
||||||
|
const $ = cheerio.load(html)
|
||||||
|
let topicTitle = $('.panel-title').first().text()
|
||||||
|
if(!topicTitle)
|
||||||
|
return
|
||||||
|
|
||||||
|
topicTitle = topicTitle.replace(/\t/g, '').replace(/\n/g, '')
|
||||||
|
return {
|
||||||
|
name: topicTitle,
|
||||||
|
description: $('#torrent-description').text(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
15
tests/strategies/nyaa.test.js
Normal file
15
tests/strategies/nyaa.test.js
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
const { assert } = require('chai')
|
||||||
|
const Nyaa = require('../../src/background/strategies/nyaa.js')
|
||||||
|
|
||||||
|
describe("nyaa", () => {
|
||||||
|
let nyaa = new Nyaa();
|
||||||
|
|
||||||
|
it("findHash", async function() {
|
||||||
|
const data = await nyaa.findHash('b57cc972ecc31dd31e9349017e5d26c164e08906')
|
||||||
|
assert.equal(data.name, '[HorribleSubs] One Piece - 794 [1080p].mkv')
|
||||||
|
})
|
||||||
|
|
||||||
|
it("notFound", async function() {
|
||||||
|
assert(!await nyaa.findHash('FFEDA8DF683F34A08BE89026114E6C05F881DCC0'))
|
||||||
|
})
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user