fix(feed): fix feed build

This commit is contained in:
Alexey Kasyanchuk
2018-06-13 16:37:22 +03:00
parent 027be8c3f3
commit 88c3b3e3db
4 changed files with 57 additions and 9 deletions

36
src/app/feed.js Normal file
View File

@ -0,0 +1,36 @@
import React, { Component } from 'react';
import TorrentLine from './torrent'
import {List} from 'material-ui/List';
import Divider from 'material-ui/Divider';
import Subheader from 'material-ui/Subheader';
export default class RecentTorrents extends Component {
constructor() {
super()
this.torrents = [];
}
componentDidMount() {
window.torrentSocket.emit('feed', window.customLoader((data) => {
if(data) {
this.torrents = data;
console.log(data)
this.forceUpdate();
}
}))
}
render() {
return (
<List className='animated torrents-container'>
<Subheader className='recent-title' inset={true}>
{__('Feed')}
</Subheader>
<Divider />
{
this.torrents.map((torrent, index) =>{
return <TorrentLine key={index} torrent={torrent} />;
})
}
</List>
);
}
}

View File

@ -3,7 +3,6 @@ const forBigTable = require('./forBigTable')
const compareVersions = require('compare-versions');
const getTorrent = require('./gettorrent')
const _ = require('lodash')
const Feed = require('./feed')
module.exports = async ({
sphinx,
@ -19,7 +18,8 @@ module.exports = async ({
insertTorrentToDB,
removeTorrentFromDB,
checkTorrent,
p2pStore
p2pStore,
feed
}) => {
let torrentClientHashMap = {}
@ -737,12 +737,8 @@ module.exports = async ({
});
const feed = new Feed({sphinx})
await feed.load()
feed.clear()
setInterval(() => feed.save(), 10000)
// store torrent to feed
await feed.load()
p2pStore.on('store', async ({data: record, temp}) => {
if(!temp || !temp.torrent)
return

View File

@ -3,10 +3,14 @@ module.exports = class Feed {
{
this.feed = []
this.sphinx = sphinx
this.loaded = false
}
async save() {
console.log('saving feed')
if(!this.loaded)
return // feed not loaded on begining, ignore saving
console.log('saving feed')
await this.sphinx.query('delete from feed where id > 0')
let id = 0
return Promise.all(
@ -24,10 +28,13 @@ module.exports = class Feed {
this.feed = []
this._order()
this.loaded = true
console.log('lodead feed')
}
clear()
{
console.log('clearing feed')
this.feed = []
}

View File

@ -11,6 +11,7 @@ const stun = require('stun')
const natUpnp = require('nat-upnp');
const http = require('https')
const API = require('./api')
const Feed = require('./feed')
//var sm = require('sitemap');
//var phantomjs = require('phantomjs-prebuilt')
//const disk = require('diskusage');
@ -699,6 +700,10 @@ spider.on('peer', (IPs) => {
IPs.forEach(ip => p2p.add(ip))
})
// feed
const feed = new Feed({sphinx})
// load inside api
// setup api
API({
sphinx,
@ -714,7 +719,8 @@ API({
insertTorrentToDB,
removeTorrentFromDB,
checkTorrent,
p2pStore
p2pStore,
feed
})
if(config.indexer) {
@ -744,6 +750,9 @@ this.stop = async (callback) => {
console.log('closing p2p...')
p2p.close()
// save feed
await feed.save()
// safe future peers
if(dataDirectory)
{