Introduce client settings

This commit is contained in:
John Furrow
2016-06-06 21:01:10 -07:00
parent 30d75c124b
commit 02c3b5e4b0
27 changed files with 907 additions and 206 deletions

View File

@@ -1,11 +1,12 @@
'use strict';
let util = require('util');
let clientUtil = require('../util/clientUtil');
let fs = require('fs');
let mv = require('mv');
let path = require('path');
let util = require('util');
let clientSettingsMap = require('../../shared/constants/clientSettingsMap');
let clientUtil = require('../util/clientUtil');
let rTorrentPropMap = require('../util/rTorrentPropMap');
let scgi = require('../util/scgi');
let stringUtil = require('../../shared/util/stringUtil');
@@ -163,6 +164,27 @@ class ClientRequest {
);
}
fetchSettingsMethodCall(options) {
let requestedSettings = [];
if (options.requestedSettings) {
requestedSettings = options.requestedSettings;
} else {
requestedSettings = clientSettingsMap.defaults.map((settingsKey) => {
return clientSettingsMap[settingsKey];
});
}
// Ensure client's response gets mapped to the correct requested property.
if (options.setPropertiesArr) {
options.setPropertiesArr(requestedSettings);
}
requestedSettings.forEach((settingsKey) => {
this.requests.push(this.getMethodCall(settingsKey));
});
}
getTorrentDetailsMethodCall(options) {
var peerParams = [options.hash, ''].concat(options.peerProps);
var fileParams = [options.hash, ''].concat(options.fileProps);
@@ -251,6 +273,16 @@ class ClientRequest {
});
}
setSettingsMethodCall(options) {
console.log(options);
let settings = this.getEnsuredArray(options.settings);
settings.forEach((setting) => {
this.requests.push(this.getMethodCall(`${clientSettingsMap[setting.id]}.set`,
['', setting.data]));
});
}
setThrottleMethodCall(options) {
let methodName = 'throttle.global_down.max_rate.set';
if (options.direction === 'upload') {