diff --git a/src/app/torrent.js b/src/app/torrent.js
index 259851c..9e55e5c 100644
--- a/src/app/torrent.js
+++ b/src/app/torrent.js
@@ -8,6 +8,7 @@ import TorrentPage from './torrent-page'
import Spinner24 from './images/spinner_24.gif'
import LinearProgress from 'material-ui/LinearProgress';
+let rating = require('./rating');
const contentIcon = (type, category, fill = 'grey') => {
if(category == 'xxx')
@@ -218,6 +219,10 @@ export default class Torrent extends Component {
render()
{
const torrent = this.props.torrent;
+ let torrentRating = -1
+ if(torrent.good > 0 || torrent.bad > 0)
+ torrentRating = Math.round(rating(torrent.good, torrent.bad) * 100);
+
return (
0 || torrent.bad > 0)
+ &&
+
+
= 50 ? '#00E676' : '#FF3D00'}
+ style={{
+ height: '5px',
+ }}
+ />
+ = 50 ? '#00E676' : '#FF3D00', width: '190px'}}>{__('Torrent rating')}: {torrentRating}%
+
+ }
}
diff --git a/src/background/api.js b/src/background/api.js
index ba1212d..160de46 100644
--- a/src/background/api.js
+++ b/src/background/api.js
@@ -757,6 +757,10 @@ module.exports = async ({
if(torrent.hash !== record.torrentHash)
return
+ let {good, bad} = await getVotes(torrent.hash)
+ torrent.good = good
+ torrent.bad = bad
+
feed.add(torrent)
send('feedUpdate', {
diff --git a/src/background/feed.js b/src/background/feed.js
index d650ac7..51cdeb1 100644
--- a/src/background/feed.js
+++ b/src/background/feed.js
@@ -4,6 +4,12 @@ module.exports = class Feed {
this.feed = []
this.sphinx = sphinx
this.loaded = false
+ this.max = 1000
+ }
+
+ size()
+ {
+ return this.feed.length
}
async save() {
@@ -39,12 +45,35 @@ module.exports = class Feed {
}
add(data) {
- if(typeof data == 'object')
+ let index = -1
+ if(data.hash)
+ index = this.feed.findIndex(element => element.hash === data.hash)
+
+ if(index >= 0)
+ this.feed[index] = Object.assign(this.feed[index], data) // just push up element
+ else
{
- data.feedDate = Math.floor(Date.now() / 1000)
+ if(this.feed.length >= this.max)
+ {
+ //cleanup
+ for(let i = this.feed.length - 1; i <= 0; i--)
+ if(this._compare(this.feed[i]) <= 0)
+ this.feed.pop()
+ else
+ break
+
+ if(this.feed.length >= this.max)
+ return // two much for feed
+ }
+
+ if(typeof data == 'object')
+ {
+ data.feedDate = Math.floor(Date.now() / 1000)
+ }
+
+ this.feed.push(data) // insert
}
- this.feed.push(data)
this._order()
}
@@ -54,7 +83,7 @@ module.exports = class Feed {
_compare(x)
{
- const rating = 0
+ const rating = (x && x.good) || 0
const comments = 0
const time = Math.floor(Date.now() / 1000) - x.feedDate