diff --git a/src/app/trackers-images.js b/src/app/trackers-images.js
index ff118de..3389526 100644
--- a/src/app/trackers-images.js
+++ b/src/app/trackers-images.js
@@ -32,6 +32,11 @@ export default (props) => {
&&
}
+ {
+ info.trackers.includes('1337x')
+ &&
+
+ }
)
}
\ No newline at end of file
diff --git a/src/background/spider.js b/src/background/spider.js
index c6cf6e4..da835d5 100644
--- a/src/background/spider.js
+++ b/src/background/spider.js
@@ -144,7 +144,7 @@ module.exports = function (send, recive, dataDirectory, version, env)
{
for(const tracker of this.trackers)
if(tracker.findHash)
- tracker.findHash(hash).then(data => callback(tracker.name(), data))
+ tracker.findHash(hash).then(data => callback(tracker.name, data))
}
async close()
diff --git a/src/background/strategies/1337x.js b/src/background/strategies/1337x.js
new file mode 100644
index 0000000..7bc1724
--- /dev/null
+++ b/src/background/strategies/1337x.js
@@ -0,0 +1,59 @@
+
+const fetch = require('node-fetch')
+const cheerio = require('cheerio')
+
+module.exports = class Stragegie
+{
+ get name() { return '1337x' }
+
+ async findHash(hash)
+ {
+ let html;
+ try {
+ html = await fetch(`https://1337x.to/srch?search=${hash}`)
+ } catch(err) {
+ return
+ }
+ if(!html)
+ return
+ html = await html.textConverted()
+ const $ = cheerio.load(html)
+
+ this.href = $($('.table-list tr td a').get(1)).attr('href')
+ if(this.href)
+ this.id = this.href.match(/\/torrent\/([0-9]+)\//)[1];
+
+ return await this.parse();
+ }
+
+ async parse()
+ {
+ let html;
+ try {
+ html = await fetch('https://1337x.to' + this.href)
+ } catch(err) {
+ return
+ }
+ if(!html)
+ return
+ html = await html.textConverted()
+ const $ = cheerio.load(html)
+ const topicTitle = $('h1').text()
+ if(!topicTitle)
+ return
+
+ let contentCategory;
+ try {
+ contentCategory = $('.torrent-category-detail .list li').first().find('span').text()
+ } catch(er) {}
+
+ return {
+ name: topicTitle.trim(),
+ poster: $('#description img').attr('data-original'),
+ description: $('#description').text(),
+ x1337ThreadId: parseInt(this.id),
+ x1337Href: this.href,
+ contentCategory
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/background/strategies/nyaa.js b/src/background/strategies/nyaa.js
index 3772a44..38c6acf 100644
--- a/src/background/strategies/nyaa.js
+++ b/src/background/strategies/nyaa.js
@@ -3,7 +3,7 @@ const cheerio = require('cheerio')
module.exports = class Nyaa
{
- name() { return 'nyaa' }
+ get name() { return 'nyaa' }
async findHash(hash)
{
diff --git a/src/background/strategies/rutor.js b/src/background/strategies/rutor.js
index ee7f3b2..0574e2e 100644
--- a/src/background/strategies/rutor.js
+++ b/src/background/strategies/rutor.js
@@ -18,7 +18,7 @@ module.exports = class Rutor
t.unref()
}
- name() { return 'rutor' }
+ get name() { return 'rutor' }
async findHash(hash)
{
diff --git a/src/background/strategies/rutracker.js b/src/background/strategies/rutracker.js
index 0493b0d..8ca4ade 100644
--- a/src/background/strategies/rutracker.js
+++ b/src/background/strategies/rutracker.js
@@ -4,7 +4,7 @@ const cheerio = require('cheerio')
module.exports = class Rutracker
{
- name() { return 'rutracker' }
+ get name() { return 'rutracker' }
async findHash(hash)
{
diff --git a/tests/strategies/1337x.test.js b/tests/strategies/1337x.test.js
new file mode 100644
index 0000000..82fee1a
--- /dev/null
+++ b/tests/strategies/1337x.test.js
@@ -0,0 +1,19 @@
+const { assert } = require('chai')
+const Strategy = require('../../src/background/strategies/1337x.js')
+
+describe("1337x", () => {
+ let strategy = new Strategy();
+
+ it("findHash", async function() {
+ const data = await strategy.findHash('1734BCCAA7B05BD4D77B86E17820C840BF0C2EF5')
+ assert.equal(data.name, 'DEgITx - Discography (01.10.2016) FLAC')
+ assert.equal(data.poster, 'http://i58.fastpic.ru/big/2014/0224/62/eec1c9dc98892d5a88b46ade2edc7662.jpg')
+ assert.equal(data.x1337ThreadId, 1821018)
+ assert(data.description.includes('licensed under Creative Commons'))
+ assert.equal(data.contentCategory, 'Music')
+ })
+
+ it("notFound", async function() {
+ assert(!await strategy.findHash('1734BCCAA7B05BD4D77B86E17820C840BF0C2EF6'))
+ })
+});