fix(feed): fix feed build
This commit is contained in:
36
src/app/feed.js
Normal file
36
src/app/feed.js
Normal 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>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -3,7 +3,6 @@ const forBigTable = require('./forBigTable')
|
|||||||
const compareVersions = require('compare-versions');
|
const compareVersions = require('compare-versions');
|
||||||
const getTorrent = require('./gettorrent')
|
const getTorrent = require('./gettorrent')
|
||||||
const _ = require('lodash')
|
const _ = require('lodash')
|
||||||
const Feed = require('./feed')
|
|
||||||
|
|
||||||
module.exports = async ({
|
module.exports = async ({
|
||||||
sphinx,
|
sphinx,
|
||||||
@ -19,7 +18,8 @@ module.exports = async ({
|
|||||||
insertTorrentToDB,
|
insertTorrentToDB,
|
||||||
removeTorrentFromDB,
|
removeTorrentFromDB,
|
||||||
checkTorrent,
|
checkTorrent,
|
||||||
p2pStore
|
p2pStore,
|
||||||
|
feed
|
||||||
}) => {
|
}) => {
|
||||||
let torrentClientHashMap = {}
|
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
|
// store torrent to feed
|
||||||
|
await feed.load()
|
||||||
p2pStore.on('store', async ({data: record, temp}) => {
|
p2pStore.on('store', async ({data: record, temp}) => {
|
||||||
if(!temp || !temp.torrent)
|
if(!temp || !temp.torrent)
|
||||||
return
|
return
|
||||||
|
@ -3,9 +3,13 @@ module.exports = class Feed {
|
|||||||
{
|
{
|
||||||
this.feed = []
|
this.feed = []
|
||||||
this.sphinx = sphinx
|
this.sphinx = sphinx
|
||||||
|
this.loaded = false
|
||||||
}
|
}
|
||||||
|
|
||||||
async save() {
|
async save() {
|
||||||
|
if(!this.loaded)
|
||||||
|
return // feed not loaded on begining, ignore saving
|
||||||
|
|
||||||
console.log('saving feed')
|
console.log('saving feed')
|
||||||
await this.sphinx.query('delete from feed where id > 0')
|
await this.sphinx.query('delete from feed where id > 0')
|
||||||
let id = 0
|
let id = 0
|
||||||
@ -24,10 +28,13 @@ module.exports = class Feed {
|
|||||||
this.feed = []
|
this.feed = []
|
||||||
|
|
||||||
this._order()
|
this._order()
|
||||||
|
this.loaded = true
|
||||||
|
console.log('lodead feed')
|
||||||
}
|
}
|
||||||
|
|
||||||
clear()
|
clear()
|
||||||
{
|
{
|
||||||
|
console.log('clearing feed')
|
||||||
this.feed = []
|
this.feed = []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,6 +11,7 @@ const stun = require('stun')
|
|||||||
const natUpnp = require('nat-upnp');
|
const natUpnp = require('nat-upnp');
|
||||||
const http = require('https')
|
const http = require('https')
|
||||||
const API = require('./api')
|
const API = require('./api')
|
||||||
|
const Feed = require('./feed')
|
||||||
//var sm = require('sitemap');
|
//var sm = require('sitemap');
|
||||||
//var phantomjs = require('phantomjs-prebuilt')
|
//var phantomjs = require('phantomjs-prebuilt')
|
||||||
//const disk = require('diskusage');
|
//const disk = require('diskusage');
|
||||||
@ -699,6 +700,10 @@ spider.on('peer', (IPs) => {
|
|||||||
IPs.forEach(ip => p2p.add(ip))
|
IPs.forEach(ip => p2p.add(ip))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// feed
|
||||||
|
const feed = new Feed({sphinx})
|
||||||
|
// load inside api
|
||||||
|
|
||||||
// setup api
|
// setup api
|
||||||
API({
|
API({
|
||||||
sphinx,
|
sphinx,
|
||||||
@ -714,7 +719,8 @@ API({
|
|||||||
insertTorrentToDB,
|
insertTorrentToDB,
|
||||||
removeTorrentFromDB,
|
removeTorrentFromDB,
|
||||||
checkTorrent,
|
checkTorrent,
|
||||||
p2pStore
|
p2pStore,
|
||||||
|
feed
|
||||||
})
|
})
|
||||||
|
|
||||||
if(config.indexer) {
|
if(config.indexer) {
|
||||||
@ -744,6 +750,9 @@ this.stop = async (callback) => {
|
|||||||
console.log('closing p2p...')
|
console.log('closing p2p...')
|
||||||
p2p.close()
|
p2p.close()
|
||||||
|
|
||||||
|
// save feed
|
||||||
|
await feed.save()
|
||||||
|
|
||||||
// safe future peers
|
// safe future peers
|
||||||
if(dataDirectory)
|
if(dataDirectory)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user