1
0
mirror of https://github.com/d47081/qBittorrent.git synced 2025-01-11 15:27:54 +00:00

Group setting torrents download limit

This commit is contained in:
buinsky 2015-02-01 12:45:37 -05:00
parent cf55751fbe
commit 902db2b938
5 changed files with 40 additions and 33 deletions

View File

@ -95,9 +95,9 @@ QMap<QString, QMap<QString, WebApplication::Action> > WebApplication::initialize
ADD_ACTION(command, setGlobalUpLimit); ADD_ACTION(command, setGlobalUpLimit);
ADD_ACTION(command, setGlobalDlLimit); ADD_ACTION(command, setGlobalDlLimit);
ADD_ACTION(command, getTorrentsUpLimit); ADD_ACTION(command, getTorrentsUpLimit);
ADD_ACTION(command, getTorrentDlLimit); ADD_ACTION(command, getTorrentsDlLimit);
ADD_ACTION(command, setTorrentsUpLimit); ADD_ACTION(command, setTorrentsUpLimit);
ADD_ACTION(command, setTorrentDlLimit); ADD_ACTION(command, setTorrentsDlLimit);
ADD_ACTION(command, alternativeSpeedLimitsEnabled); ADD_ACTION(command, alternativeSpeedLimitsEnabled);
ADD_ACTION(command, toggleAlternativeSpeedLimits); ADD_ACTION(command, toggleAlternativeSpeedLimits);
ADD_ACTION(command, toggleSequentialDownload); ADD_ACTION(command, toggleSequentialDownload);
@ -462,15 +462,12 @@ void WebApplication::action_command_getTorrentsUpLimit()
print(btjson::getTorrentsRatesLimits(hashes, false), Http::CONTENT_TYPE_JS); print(btjson::getTorrentsRatesLimits(hashes, false), Http::CONTENT_TYPE_JS);
} }
void WebApplication::action_command_getTorrentDlLimit() void WebApplication::action_command_getTorrentsDlLimit()
{ {
CHECK_URI(0); CHECK_URI(0);
CHECK_PARAMETERS("hash"); CHECK_PARAMETERS("hashes");
QString hash = request().posts["hash"]; QStringList hashes = request().posts["hashes"].split("|");
QTorrentHandle h = QBtSession::instance()->getTorrentHandle(hash); print(btjson::getTorrentsRatesLimits(hashes, true), Http::CONTENT_TYPE_JS);
if (h.is_valid())
print(QByteArray::number(h.download_limit()));
} }
void WebApplication::action_command_setTorrentsUpLimit() void WebApplication::action_command_setTorrentsUpLimit()
@ -490,17 +487,21 @@ void WebApplication::action_command_setTorrentsUpLimit()
} }
} }
void WebApplication::action_command_setTorrentDlLimit() void WebApplication::action_command_setTorrentsDlLimit()
{ {
CHECK_URI(0); CHECK_URI(0);
CHECK_PARAMETERS("hash" << "limit"); CHECK_PARAMETERS("hashes" << "limit");
QString hash = request().posts["hash"];
qlonglong limit = request().posts["limit"].toLongLong();
if (limit == 0) limit = -1;
QTorrentHandle h = QBtSession::instance()->getTorrentHandle(hash);
if (h.is_valid()) qlonglong limit = request().posts["limit"].toLongLong();
if (limit == 0)
limit = -1;
QStringList hashes = request().posts["hashes"].split("|");
foreach (const QString &hash, hashes) {
QTorrentHandle h = QBtSession::instance()->getTorrentHandle(hash);
if (h.is_valid())
h.set_download_limit(limit); h.set_download_limit(limit);
}
} }
void WebApplication::action_command_toggleAlternativeSpeedLimits() void WebApplication::action_command_toggleAlternativeSpeedLimits()

View File

@ -69,9 +69,9 @@ private:
void action_command_setGlobalUpLimit(); void action_command_setGlobalUpLimit();
void action_command_setGlobalDlLimit(); void action_command_setGlobalDlLimit();
void action_command_getTorrentsUpLimit(); void action_command_getTorrentsUpLimit();
void action_command_getTorrentDlLimit(); void action_command_getTorrentsDlLimit();
void action_command_setTorrentsUpLimit(); void action_command_setTorrentsUpLimit();
void action_command_setTorrentDlLimit(); void action_command_setTorrentsDlLimit();
void action_command_alternativeSpeedLimitsEnabled(); void action_command_alternativeSpeedLimitsEnabled();
void action_command_toggleAlternativeSpeedLimits(); void action_command_toggleAlternativeSpeedLimits();
void action_command_toggleSequentialDownload(); void action_command_toggleSequentialDownload();

View File

@ -20,10 +20,10 @@
<div class="clear"></div> <div class="clear"></div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
var hash = new URI().getData('hash'); var hashes = new URI().getData('hashes').split('|');
setDlLimit = function() { setDlLimit = function() {
var limit = $("dllimitUpdatevalue").value.toInt() * 1024; var limit = $("dllimitUpdatevalue").value.toInt() * 1024;
if (hash == "global") { if (hashes[0] == "global") {
new Request({ new Request({
url: 'command/setGlobalDlLimit', url: 'command/setGlobalDlLimit',
method: 'post', method: 'post',
@ -38,10 +38,10 @@
} }
else { else {
new Request({ new Request({
url: 'command/setTorrentDlLimit', url: 'command/setTorrentsDlLimit',
method: 'post', method: 'post',
data: { data: {
'hash': hash, 'hashes': hashes.join('|'),
'limit': limit 'limit': limit
}, },
onComplete: function() { onComplete: function() {
@ -55,7 +55,7 @@
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
MochaUI.addDlLimitSlider(hash); MochaUI.addDlLimitSlider(hashes);
</script> </script>
</body> </body>

View File

@ -186,7 +186,7 @@ initializeWindows = function() {
id: 'downloadLimitPage', id: 'downloadLimitPage',
title: "QBT_TR(Global Download Speed Limit)QBT_TR", title: "QBT_TR(Global Download Speed Limit)QBT_TR",
loadMethod: 'iframe', loadMethod: 'iframe',
contentURL: 'downloadlimit.html?hash=global', contentURL: 'downloadlimit.html?hashes=global',
scrollbars: false, scrollbars: false,
resizable: false, resizable: false,
maximizable: false, maximizable: false,
@ -205,7 +205,7 @@ initializeWindows = function() {
id: 'downloadLimitPage', id: 'downloadLimitPage',
title: "QBT_TR(Torrent Download Speed Limiting)QBT_TR", title: "QBT_TR(Torrent Download Speed Limiting)QBT_TR",
loadMethod: 'iframe', loadMethod: 'iframe',
contentURL: 'downloadlimit.html?hash=' + hash, contentURL: 'downloadlimit.html?hashes=' + h.join("|"),
scrollbars: false, scrollbars: false,
resizable: false, resizable: false,
maximizable: false, maximizable: false,

View File

@ -118,7 +118,7 @@ MochaUI.extend({
} }
}, },
addDlLimitSlider: function(hash) { addDlLimitSlider: function(hashes) {
if ($('dllimitSliderarea')) { if ($('dllimitSliderarea')) {
var windowOptions = MochaUI.Windows.windowOptions; var windowOptions = MochaUI.Windows.windowOptions;
var sliderFirst = true; var sliderFirst = true;
@ -135,15 +135,15 @@ MochaUI.extend({
maximum = tmp / 1024. maximum = tmp / 1024.
} }
else { else {
if (hash == "global") if (hashes[0] == "global")
maximum = 10000; maximum = 10000;
else else
maximum = 1000; maximum = 1000;
} }
} }
// Get torrent download limit // Get torrents download limit
// And create slider // And create slider
if (hash == "global") { if (hashes[0] == 'global') {
var dl_limit = maximum; var dl_limit = maximum;
if (dl_limit < 0) dl_limit = 0; if (dl_limit < 0) dl_limit = 0;
maximum = 10000; maximum = 10000;
@ -173,15 +173,21 @@ MochaUI.extend({
} }
} }
else { else {
var req = new Request({ var req = new Request.JSON({
url: 'command/getTorrentDlLimit', url: 'command/getTorrentsDlLimit',
noCache : true,
method: 'post', method: 'post',
data: { data: {
hash: hash hashes: hashes.join('|')
}, },
onSuccess: function(data) { onSuccess: function(data) {
if (data) { if (data) {
var dl_limit = data.toInt(); var dl_limit = data[hashes[0]];
for(var key in data)
if (dl_limit != data[key]) {
dl_limit = 0;
break;
}
if (dl_limit < 0) dl_limit = 0; if (dl_limit < 0) dl_limit = 0;
var mochaSlide = new Slider($('dllimitSliderarea'), $('dllimitSliderknob'), { var mochaSlide = new Slider($('dllimitSliderarea'), $('dllimitSliderknob'), {
steps: maximum, steps: maximum,