mirror of
https://github.com/zoriya/flood.git
synced 2026-06-02 11:06:35 +00:00
Separate clientUtil.defaults into reasonable constants
This commit is contained in:
@@ -3,8 +3,9 @@
|
||||
let _ = require('lodash');
|
||||
|
||||
let clientUtil = require('../util/clientUtil');
|
||||
let torrentStatusMap = require('../../shared/constants/torrentStatusMap');
|
||||
let stringUtil = require('../../shared/util/stringUtil');
|
||||
let torrentGeneralPropsMap = require('../../shared/constants/torrentGeneralPropsMap');
|
||||
let torrentStatusMap = require('../../shared/constants/torrentStatusMap');
|
||||
let Torrent = require('./Torrent');
|
||||
|
||||
const DEFAULT_TAG = 'untagged';
|
||||
@@ -96,7 +97,7 @@ class TorrentCollection {
|
||||
let currentTime = Date.now();
|
||||
let knownHashes = [];
|
||||
let torrentData = clientUtil.mapClientResponse(
|
||||
clientUtil.defaults.torrentProperties, clientData
|
||||
torrentGeneralPropsMap.props, clientData
|
||||
);
|
||||
|
||||
this.resetStatusCount();
|
||||
|
||||
@@ -6,11 +6,14 @@ let util = require('util');
|
||||
let clientResponseUtil = require('../util/clientResponseUtil');
|
||||
let clientSettingsMap = require('../../shared/constants/clientSettingsMap');
|
||||
let ClientRequest = require('./ClientRequest');
|
||||
let clientUtil = require('../util/clientUtil');
|
||||
let formatUtil = require('../../shared/util/formatUtil');
|
||||
let scgi = require('../util/scgi');
|
||||
let Torrent = require('./Torrent');
|
||||
let TorrentCollection = require('./TorrentCollection');
|
||||
let torrentFilePropsMap = require('../../shared/constants/torrentFilePropsMap');
|
||||
let torrentGeneralPropsMap = require('../../shared/constants/torrentGeneralPropsMap');
|
||||
let torrentPeerPropsMap = require('../../shared/constants/torrentPeerPropsMap');
|
||||
let torrentTrackerPropsMap = require('../../shared/constants/torrentTrackerPropsMap');
|
||||
|
||||
let statusCount = {};
|
||||
let tagCount = {};
|
||||
@@ -168,9 +171,9 @@ var client = {
|
||||
|
||||
request.add('getTorrentDetails', {
|
||||
hash,
|
||||
fileProps: clientUtil.defaults.filePropertyMethods,
|
||||
peerProps: clientUtil.defaults.peerPropertyMethods,
|
||||
trackerProps: clientUtil.defaults.trackerPropertyMethods
|
||||
fileProps: torrentFilePropsMap.methods,
|
||||
peerProps: torrentPeerPropsMap.methods,
|
||||
trackerProps: torrentTrackerPropsMap.methods
|
||||
});
|
||||
request.postProcess(clientResponseUtil.processTorrentDetails);
|
||||
request.onComplete(callback);
|
||||
@@ -181,7 +184,7 @@ var client = {
|
||||
let request = new ClientRequest();
|
||||
|
||||
request.add('getTorrentList',
|
||||
{props: clientUtil.defaults.torrentPropertyMethods});
|
||||
{props: torrentGeneralPropsMap.methods});
|
||||
request.postProcess((data) => {
|
||||
let torrentList = [];
|
||||
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
'use strict';
|
||||
|
||||
let clientUtil = require('./clientUtil');
|
||||
let clientGeneralPropsMap = require('../../shared/constants/clientGeneralPropsMap');
|
||||
let torrentFilePropsMap = require('../../shared/constants/torrentFilePropsMap');
|
||||
let torrentPeerPropsMap = require('../../shared/constants/torrentPeerPropsMap');
|
||||
let torrentTrackerPropsMap = require('../../shared/constants/torrentTrackerPropsMap');
|
||||
let util = require('util');
|
||||
|
||||
let getFileTreeFromPathsArr = (tree, directory, file, depth) => {
|
||||
@@ -43,14 +47,14 @@ let clientResponseUtil = {
|
||||
|
||||
if (peersData && peersData.length) {
|
||||
peers = clientUtil.mapClientResponse(
|
||||
clientUtil.defaults.peerProperties,
|
||||
torrentPeerPropsMap.props,
|
||||
peersData
|
||||
);
|
||||
}
|
||||
|
||||
if (filesData && filesData.length) {
|
||||
files = clientUtil.mapClientResponse(
|
||||
clientUtil.defaults.fileProperties,
|
||||
torrentFilePropsMap.props,
|
||||
filesData
|
||||
);
|
||||
|
||||
@@ -61,7 +65,7 @@ let clientResponseUtil = {
|
||||
|
||||
if (trackerData && trackerData.length) {
|
||||
trackers = clientUtil.mapClientResponse(
|
||||
clientUtil.defaults.trackerProperties,
|
||||
torrentTrackerPropsMap.props,
|
||||
trackerData
|
||||
);
|
||||
}
|
||||
@@ -81,8 +85,10 @@ let clientResponseUtil = {
|
||||
},
|
||||
|
||||
processTransferStats(data) {
|
||||
return clientUtil.mapClientResponse(clientUtil.defaults.clientProperties,
|
||||
data);
|
||||
return clientUtil.mapClientResponse(
|
||||
clientGeneralPropsMap.props,
|
||||
data
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,226 +1,6 @@
|
||||
var util = require('util');
|
||||
|
||||
var clientUtil = {
|
||||
defaults: {
|
||||
torrentProperties: [
|
||||
'hash',
|
||||
'name',
|
||||
'message',
|
||||
|
||||
'state',
|
||||
'stateChanged',
|
||||
'isActive',
|
||||
'isComplete',
|
||||
'isHashChecking',
|
||||
'isOpen',
|
||||
|
||||
'priority',
|
||||
|
||||
'uploadRate',
|
||||
'uploadTotal',
|
||||
'downloadRate',
|
||||
'downloadTotal',
|
||||
'ratio',
|
||||
|
||||
'bytesDone',
|
||||
'sizeBytes',
|
||||
|
||||
// 'chunkSize',
|
||||
// 'chunksCompleted',
|
||||
|
||||
'connectedPeers',
|
||||
'connectedSeeds',
|
||||
// 'peerExchange',
|
||||
'peersConnected',
|
||||
// 'peersNotConnected',
|
||||
// 'trackerFocus',
|
||||
|
||||
'directory',
|
||||
'filename',
|
||||
'basePath',
|
||||
'baseFilename',
|
||||
'directoryBase',
|
||||
|
||||
'seeding',
|
||||
'added',
|
||||
|
||||
// 'leeches',
|
||||
// 'seeds',
|
||||
'creationDate',
|
||||
'freeDiskSpace',
|
||||
// 'localId',
|
||||
// 'localIdHtml',
|
||||
// 'maxFileSize',
|
||||
// 'maxSizePex',
|
||||
'throttleName',
|
||||
// 'tiedToFile',
|
||||
// 'trackerNumWant',
|
||||
// 'trackerSize',
|
||||
'isMultiFile',
|
||||
// 'isPexActive',
|
||||
'isPrivate',
|
||||
|
||||
'tags',
|
||||
'comment',
|
||||
'ignoreScheduler',
|
||||
'trackers',
|
||||
'totalSeeds',
|
||||
'totalPeers',
|
||||
// 'cat_dViews',
|
||||
|
||||
// 'mode'
|
||||
],
|
||||
torrentPropertyMethods: [
|
||||
'', // yep, rTorrent requires an empty string as the first item.
|
||||
'main',
|
||||
|
||||
'd.hash=',
|
||||
'd.name=',
|
||||
'd.message=',
|
||||
|
||||
'd.state=',
|
||||
'd.state_changed=',
|
||||
'd.is_active=',
|
||||
'd.complete=',
|
||||
'd.is_hash_checking=',
|
||||
'd.is_open=',
|
||||
|
||||
'd.priority=',
|
||||
|
||||
'd.up.rate=',
|
||||
'd.up.total=',
|
||||
'd.down.rate=',
|
||||
'd.down.total=',
|
||||
'd.ratio=',
|
||||
|
||||
'd.bytes_done=',
|
||||
'd.size_bytes=',
|
||||
|
||||
// 'd.chunk_size=',
|
||||
// 'd.completed_chunks=',
|
||||
|
||||
'd.peers_accounted=', // connnected peers
|
||||
'd.peers_complete=', // connected seeds
|
||||
// 'd.peer_exchange=',
|
||||
'd.peers_connected=', // connected peers + seeds
|
||||
// 'd.peers_not_connected=',
|
||||
// 'd.tracker_focus=',
|
||||
|
||||
'd.directory=',
|
||||
'd.base_filename=',
|
||||
'd.base_path=',
|
||||
'd.base_filename=',
|
||||
'd.directory_base=',
|
||||
|
||||
'd.custom=seedingtime',
|
||||
'd.custom=addtime',
|
||||
|
||||
// 'd.connection_leech=',
|
||||
// 'd.connection_seed=',
|
||||
'd.creation_date=',
|
||||
'd.free_diskspace=',
|
||||
// 'd.local_id=',
|
||||
// 'd.local_id_html=',
|
||||
// 'd.max_file_size=',
|
||||
// 'd.max_size_pex=',
|
||||
'd.throttle_name=',
|
||||
// 'd.tied_to_file=',
|
||||
// 'd.tracker_numwant=',
|
||||
// 'd.tracker_size=',
|
||||
'd.is_multi_file=',
|
||||
// 'd.is_pex_active=',
|
||||
'd.is_private=',
|
||||
|
||||
'd.custom1=',
|
||||
'd.custom2=',
|
||||
'd.custom=sch_ignore', // ignore scheduler
|
||||
'cat="$t.multicall=d.hash=,t.url=,cat={@!@}"', // trackers
|
||||
'cat="$t.multicall=d.hash=,t.scrape_complete=,cat={@!@}"', // seeds
|
||||
'cat="$t.multicall=d.hash=,t.scrape_incomplete=,cat={@!@}"', // peers
|
||||
// 'cat=$d.views=',
|
||||
|
||||
// 'd.mode='
|
||||
],
|
||||
fileProperties: [
|
||||
'path',
|
||||
'pathComponents',
|
||||
'priority',
|
||||
'sizeBytes',
|
||||
'sizeChunks',
|
||||
'completedChunks'
|
||||
],
|
||||
filePropertyMethods: [
|
||||
'f.path=',
|
||||
'f.path_components=',
|
||||
'f.priority=',
|
||||
'f.size_bytes=',
|
||||
'f.size_chunks=',
|
||||
'f.completed_chunks='
|
||||
],
|
||||
trackerProperties: [
|
||||
'group',
|
||||
'url',
|
||||
'id',
|
||||
'minInterval',
|
||||
'normalInterval',
|
||||
'type'
|
||||
],
|
||||
trackerPropertyMethods: [
|
||||
't.group=',
|
||||
't.url=',
|
||||
't.id=',
|
||||
't.min_interval=',
|
||||
't.normal_interval=',
|
||||
't.type='
|
||||
],
|
||||
clientProperties: [
|
||||
'uploadRate',
|
||||
'uploadTotal',
|
||||
'uploadThrottle',
|
||||
|
||||
'downloadRate',
|
||||
'downloadTotal',
|
||||
'downloadThrottle'
|
||||
],
|
||||
clientPropertyMethods: [
|
||||
'throttle.global_up.rate',
|
||||
'throttle.global_up.total',
|
||||
'throttle.global_up.max_rate',
|
||||
|
||||
'throttle.global_down.rate',
|
||||
'throttle.global_down.total',
|
||||
'throttle.global_down.max_rate'
|
||||
],
|
||||
peerProperties: [
|
||||
'address',
|
||||
'completedPercent',
|
||||
'clientVersion',
|
||||
'downloadRate',
|
||||
'downloadTotal',
|
||||
'uploadRate',
|
||||
'uploadTotal',
|
||||
'id',
|
||||
'peerRate',
|
||||
'peerTotal',,
|
||||
'isEncrypted',
|
||||
'isIncoming'
|
||||
],
|
||||
peerPropertyMethods: [
|
||||
'p.address=',
|
||||
'p.completed_percent=',
|
||||
'p.client_version=',
|
||||
'p.down_rate=',
|
||||
'p.down_total=',
|
||||
'p.up_rate=',
|
||||
'p.up_total=',
|
||||
'p.id=',
|
||||
'p.peer_rate=',
|
||||
'p.peer_total=',
|
||||
'p.is_encrypted=',
|
||||
'p.is_incoming='
|
||||
]
|
||||
},
|
||||
|
||||
mapClientResponse: (requestedKeys, clientResponse) => {
|
||||
if (clientResponse.length === 0) {
|
||||
return [];
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
'use strict';
|
||||
|
||||
const clientGeneralPropsMap = {
|
||||
props: [
|
||||
'uploadRate',
|
||||
'uploadTotal',
|
||||
'uploadThrottle',
|
||||
|
||||
'downloadRate',
|
||||
'downloadTotal',
|
||||
'downloadThrottle'
|
||||
],
|
||||
methods: [
|
||||
'throttle.global_up.rate',
|
||||
'throttle.global_up.total',
|
||||
'throttle.global_up.max_rate',
|
||||
|
||||
'throttle.global_down.rate',
|
||||
'throttle.global_down.total',
|
||||
'throttle.global_down.max_rate'
|
||||
]
|
||||
};
|
||||
|
||||
module.exports = clientGeneralPropsMap;
|
||||
@@ -0,0 +1,22 @@
|
||||
'use strict';
|
||||
|
||||
const torrentFilePropsMap = {
|
||||
props: [
|
||||
'path',
|
||||
'pathComponents',
|
||||
'priority',
|
||||
'sizeBytes',
|
||||
'sizeChunks',
|
||||
'completedChunks'
|
||||
],
|
||||
methods: [
|
||||
'f.path=',
|
||||
'f.path_components=',
|
||||
'f.priority=',
|
||||
'f.size_bytes=',
|
||||
'f.size_chunks=',
|
||||
'f.completed_chunks='
|
||||
]
|
||||
};
|
||||
|
||||
module.exports = torrentFilePropsMap;
|
||||
@@ -0,0 +1,145 @@
|
||||
'use strict';
|
||||
|
||||
const torrentGeneralPropsMap = {
|
||||
props: [
|
||||
'hash',
|
||||
'name',
|
||||
'message',
|
||||
|
||||
'state',
|
||||
'stateChanged',
|
||||
'isActive',
|
||||
'isComplete',
|
||||
'isHashChecking',
|
||||
'isOpen',
|
||||
|
||||
'priority',
|
||||
|
||||
'uploadRate',
|
||||
'uploadTotal',
|
||||
'downloadRate',
|
||||
'downloadTotal',
|
||||
'ratio',
|
||||
|
||||
'bytesDone',
|
||||
'sizeBytes',
|
||||
|
||||
// 'chunkSize',
|
||||
// 'chunksCompleted',
|
||||
|
||||
'connectedPeers',
|
||||
'connectedSeeds',
|
||||
// 'peerExchange',
|
||||
'peersConnected',
|
||||
// 'peersNotConnected',
|
||||
// 'trackerFocus',
|
||||
|
||||
'directory',
|
||||
'filename',
|
||||
'basePath',
|
||||
'baseFilename',
|
||||
'directoryBase',
|
||||
|
||||
'seeding',
|
||||
'added',
|
||||
|
||||
// 'leeches',
|
||||
// 'seeds',
|
||||
'creationDate',
|
||||
'freeDiskSpace',
|
||||
// 'localId',
|
||||
// 'localIdHtml',
|
||||
// 'maxFileSize',
|
||||
// 'maxSizePex',
|
||||
'throttleName',
|
||||
// 'tiedToFile',
|
||||
// 'trackerNumWant',
|
||||
// 'trackerSize',
|
||||
'isMultiFile',
|
||||
// 'isPexActive',
|
||||
'isPrivate',
|
||||
|
||||
'tags',
|
||||
'comment',
|
||||
'ignoreScheduler',
|
||||
'trackers',
|
||||
'totalSeeds',
|
||||
'totalPeers',
|
||||
// 'cat_dViews',
|
||||
|
||||
// 'mode'
|
||||
],
|
||||
methods: [
|
||||
'', // yep, rTorrent requires an empty string as the first item.
|
||||
'main',
|
||||
|
||||
'd.hash=',
|
||||
'd.name=',
|
||||
'd.message=',
|
||||
|
||||
'd.state=',
|
||||
'd.state_changed=',
|
||||
'd.is_active=',
|
||||
'd.complete=',
|
||||
'd.is_hash_checking=',
|
||||
'd.is_open=',
|
||||
|
||||
'd.priority=',
|
||||
|
||||
'd.up.rate=',
|
||||
'd.up.total=',
|
||||
'd.down.rate=',
|
||||
'd.down.total=',
|
||||
'd.ratio=',
|
||||
|
||||
'd.bytes_done=',
|
||||
'd.size_bytes=',
|
||||
|
||||
// 'd.chunk_size=',
|
||||
// 'd.completed_chunks=',
|
||||
|
||||
'd.peers_accounted=', // connnected peers
|
||||
'd.peers_complete=', // connected seeds
|
||||
// 'd.peer_exchange=',
|
||||
'd.peers_connected=', // connected peers + seeds
|
||||
// 'd.peers_not_connected=',
|
||||
// 'd.tracker_focus=',
|
||||
|
||||
'd.directory=',
|
||||
'd.base_filename=',
|
||||
'd.base_path=',
|
||||
'd.base_filename=',
|
||||
'd.directory_base=',
|
||||
|
||||
'd.custom=seedingtime',
|
||||
'd.custom=addtime',
|
||||
|
||||
// 'd.connection_leech=',
|
||||
// 'd.connection_seed=',
|
||||
'd.creation_date=',
|
||||
'd.free_diskspace=',
|
||||
// 'd.local_id=',
|
||||
// 'd.local_id_html=',
|
||||
// 'd.max_file_size=',
|
||||
// 'd.max_size_pex=',
|
||||
'd.throttle_name=',
|
||||
// 'd.tied_to_file=',
|
||||
// 'd.tracker_numwant=',
|
||||
// 'd.tracker_size=',
|
||||
'd.is_multi_file=',
|
||||
// 'd.is_pex_active=',
|
||||
'd.is_private=',
|
||||
|
||||
'd.custom1=',
|
||||
'd.custom2=',
|
||||
'd.custom=sch_ignore', // ignore scheduler
|
||||
'cat="$t.multicall=d.hash=,t.url=,cat={@!@}"', // trackers
|
||||
'cat="$t.multicall=d.hash=,t.scrape_complete=,cat={@!@}"', // seeds
|
||||
'cat="$t.multicall=d.hash=,t.scrape_incomplete=,cat={@!@}"', // peers
|
||||
// 'cat=$d.views=',
|
||||
|
||||
// 'd.mode='
|
||||
]
|
||||
};
|
||||
|
||||
module.exports = torrentGeneralPropsMap;
|
||||
@@ -0,0 +1,34 @@
|
||||
'use strict';
|
||||
|
||||
const torrentPeerPropsMap = {
|
||||
props: [
|
||||
'address',
|
||||
'completedPercent',
|
||||
'clientVersion',
|
||||
'downloadRate',
|
||||
'downloadTotal',
|
||||
'uploadRate',
|
||||
'uploadTotal',
|
||||
'id',
|
||||
'peerRate',
|
||||
'peerTotal',,
|
||||
'isEncrypted',
|
||||
'isIncoming'
|
||||
],
|
||||
methods: [
|
||||
'p.address=',
|
||||
'p.completed_percent=',
|
||||
'p.client_version=',
|
||||
'p.down_rate=',
|
||||
'p.down_total=',
|
||||
'p.up_rate=',
|
||||
'p.up_total=',
|
||||
'p.id=',
|
||||
'p.peer_rate=',
|
||||
'p.peer_total=',
|
||||
'p.is_encrypted=',
|
||||
'p.is_incoming='
|
||||
]
|
||||
};
|
||||
|
||||
module.exports = torrentPeerPropsMap;
|
||||
@@ -0,0 +1,22 @@
|
||||
'use strict';
|
||||
|
||||
const torrentTrackerPropsMap = {
|
||||
props: [
|
||||
'group',
|
||||
'url',
|
||||
'id',
|
||||
'minInterval',
|
||||
'normalInterval',
|
||||
'type'
|
||||
],
|
||||
methods: [
|
||||
't.group=',
|
||||
't.url=',
|
||||
't.id=',
|
||||
't.min_interval=',
|
||||
't.normal_interval=',
|
||||
't.type='
|
||||
]
|
||||
};
|
||||
|
||||
module.exports = torrentTrackerPropsMap;
|
||||
Reference in New Issue
Block a user