diff --git a/src/app/images/strategies/nyaa.jpg b/src/app/images/strategies/nyaa.jpg new file mode 100644 index 0000000..5c492d4 Binary files /dev/null and b/src/app/images/strategies/nyaa.jpg differ diff --git a/src/app/images/strategies/rutracker.png b/src/app/images/strategies/rutracker.png new file mode 100644 index 0000000..dbbbd59 Binary files /dev/null and b/src/app/images/strategies/rutracker.png differ diff --git a/src/app/torrent.js b/src/app/torrent.js index 0f63b9f..5d1794d 100644 --- a/src/app/torrent.js +++ b/src/app/torrent.js @@ -11,6 +11,9 @@ import LinearProgress from 'material-ui/LinearProgress'; let rating = require('./rating'); import scrollBack from './remember-scroll' +import RutrackerIcon from './images/strategies/rutracker.png' +import NyaaIcon from './images/strategies/nyaa.jpg' + const contentIcon = (type, category, fill = 'grey') => { if(category == 'xxx') { @@ -250,7 +253,7 @@ export default class Torrent extends Component { { const torrent = this.props.torrent; if(!torrent) - return null // can try draw null torrent (for example on downloading not started) + return null // can try draw null torrent (for example on downloading not started) let torrentRating = -1 if(torrent.good > 0 || torrent.bad > 0) @@ -357,7 +360,14 @@ export default class Torrent extends Component {
{this.state.downloadProgress && formatBytes(this.state.downloadProgress.downloadSpeed || 0, 0)}/s
} - } + } +
+ { + torrent.info && torrent.info.trackers && torrent.info.trackers.includes('rutracker') + && + + } +
} diff --git a/src/background/mysql.js b/src/background/mysql.js index 1e11b90..c830ac5 100644 --- a/src/background/mysql.js +++ b/src/background/mysql.js @@ -119,7 +119,7 @@ const expand = (sphinx) => { }) sphinx.replaceValues = (table, values, options = {}, callback = () => {}) => new Promise((resolve) => { - const {particial, key, merge, mergeCallback} = Object.assign({ + const {particial, key, merge, mergeCallback, sphinxIndex} = Object.assign({ particial: true, key: 'id' }, options) @@ -128,6 +128,10 @@ const expand = (sphinx) => { let names = ''; let data = ''; const parseValues = (values) => { + if(sphinxIndex) + for(const k in sphinxIndex) + values[k] = values[sphinxIndex[k]] + let valuesData = '' names = '' for(const val in values) diff --git a/src/background/spider.js b/src/background/spider.js index 01b8b3d..0486006 100644 --- a/src/background/spider.js +++ b/src/background/spider.js @@ -116,14 +116,19 @@ module.exports = function (send, recive, dataDirectory, version, env) return logT('tracker', 'found', name, 'on', tracker) - this.sphinx.replaceValues('torrents', {hash, info: data}, {particial: true, key: 'hash', merge: ['info'], mergeCallback: (n, obj) => { - if(n != 'info') - return + this.sphinx.replaceValues('torrents', {hash, info: data}, { + particial: true, + key: 'hash', + sphinxIndex: {nameIndex: 'name'}, + merge: ['info'], + mergeCallback: (n, obj) => { + if(n != 'info') + return - if(!obj.trackers) - obj.trackers = [] - obj.trackers.push(name) - obj.trackers = [...new Set(obj.trackers)] + if(!obj.trackers) + obj.trackers = [] + obj.trackers.push(tracker) + obj.trackers = [...new Set(obj.trackers)] } }) }) } @@ -149,6 +154,7 @@ module.exports = function (send, recive, dataDirectory, version, env) trackersChecked: row.trackersChecked ? row.trackersChecked.getTime() : undefined, good: row.good, bad: row.bad, + info: typeof row.info == 'string' && row.info.length > 0 ? JSON.parse(row.info) : undefined } } diff --git a/src/background/strategies/nyaa.js b/src/background/strategies/nyaa.js index 6f17597..fb446b1 100644 --- a/src/background/strategies/nyaa.js +++ b/src/background/strategies/nyaa.js @@ -14,7 +14,12 @@ module.exports = class Nyaa async parse() { - let html = await fetch('https://nyaa.si/' + (this.threadId ? `view/${this.threadId}` : (this.hash ? `?q=${this.hash}` : ''))) + let html; + try { + html = await fetch('https://nyaa.si/' + (this.threadId ? `view/${this.threadId}` : (this.hash ? `?q=${this.hash}` : ''))) + } catch(err) { + return + } if(!html) return html = await html.text() diff --git a/src/background/strategies/rutracker.js b/src/background/strategies/rutracker.js index 79d4a94..f96534b 100644 --- a/src/background/strategies/rutracker.js +++ b/src/background/strategies/rutracker.js @@ -14,7 +14,12 @@ module.exports = class Rutracker async parse() { - let html = await fetch('https://rutracker.org/forum/viewtopic.php?' + (this.threadId ? `t=${this.threadId}` : (this.hash ? `h=${this.hash}` : ''))) + let html; + try { + html = await fetch('https://rutracker.org/forum/viewtopic.php?' + (this.threadId ? `t=${this.threadId}` : (this.hash ? `h=${this.hash}` : ''))) + } catch(err) { + return + } if(!html) return html = await html.text()