mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-11-25 10:46:15 +03:00
Merge pull request #14554 from thalieht/seeding_time_webui
Seeding time in WebUI
This commit is contained in:
commit
87ad8a1495
5 changed files with 24 additions and 11 deletions
|
@ -148,6 +148,7 @@ QVariantMap serialize(const BitTorrent::Torrent &torrent)
|
||||||
{KEY_TORRENT_LAST_SEEN_COMPLETE_TIME, torrent.lastSeenComplete().toSecsSinceEpoch()},
|
{KEY_TORRENT_LAST_SEEN_COMPLETE_TIME, torrent.lastSeenComplete().toSecsSinceEpoch()},
|
||||||
{KEY_TORRENT_AUTO_TORRENT_MANAGEMENT, torrent.isAutoTMMEnabled()},
|
{KEY_TORRENT_AUTO_TORRENT_MANAGEMENT, torrent.isAutoTMMEnabled()},
|
||||||
{KEY_TORRENT_TIME_ACTIVE, torrent.activeTime()},
|
{KEY_TORRENT_TIME_ACTIVE, torrent.activeTime()},
|
||||||
|
{KEY_TORRENT_SEEDING_TIME, torrent.seedingTime()},
|
||||||
{KEY_TORRENT_LAST_ACTIVITY_TIME, adjustLastActivity(torrent.timeSinceActivity())},
|
{KEY_TORRENT_LAST_ACTIVITY_TIME, adjustLastActivity(torrent.timeSinceActivity())},
|
||||||
{KEY_TORRENT_AVAILABILITY, torrent.distributedCopies()},
|
{KEY_TORRENT_AVAILABILITY, torrent.distributedCopies()},
|
||||||
|
|
||||||
|
|
|
@ -80,6 +80,7 @@ const char KEY_TORRENT_LAST_ACTIVITY_TIME[] = "last_activity";
|
||||||
const char KEY_TORRENT_TOTAL_SIZE[] = "total_size";
|
const char KEY_TORRENT_TOTAL_SIZE[] = "total_size";
|
||||||
const char KEY_TORRENT_AUTO_TORRENT_MANAGEMENT[] = "auto_tmm";
|
const char KEY_TORRENT_AUTO_TORRENT_MANAGEMENT[] = "auto_tmm";
|
||||||
const char KEY_TORRENT_TIME_ACTIVE[] = "time_active";
|
const char KEY_TORRENT_TIME_ACTIVE[] = "time_active";
|
||||||
|
const char KEY_TORRENT_SEEDING_TIME[] = "seeding_time";
|
||||||
const char KEY_TORRENT_AVAILABILITY[] = "availability";
|
const char KEY_TORRENT_AVAILABILITY[] = "availability";
|
||||||
|
|
||||||
QVariantMap serialize(const BitTorrent::Torrent &torrent);
|
QVariantMap serialize(const BitTorrent::Torrent &torrent);
|
||||||
|
|
|
@ -856,6 +856,7 @@ window.qBittorrent.DynamicTable = (function() {
|
||||||
|
|
||||||
this.columns['num_seeds'].dataProperties.push('num_complete');
|
this.columns['num_seeds'].dataProperties.push('num_complete');
|
||||||
this.columns['num_leechs'].dataProperties.push('num_incomplete');
|
this.columns['num_leechs'].dataProperties.push('num_incomplete');
|
||||||
|
this.columns['time_active'].dataProperties.push('seeding_time');
|
||||||
|
|
||||||
this.initColumnsFunctions();
|
this.initColumnsFunctions();
|
||||||
},
|
},
|
||||||
|
@ -1102,7 +1103,7 @@ window.qBittorrent.DynamicTable = (function() {
|
||||||
|
|
||||||
// eta
|
// eta
|
||||||
this.columns['eta'].updateTd = function(td, row) {
|
this.columns['eta'].updateTd = function(td, row) {
|
||||||
const eta = window.qBittorrent.Misc.friendlyDuration(this.getRowValue(row));
|
const eta = window.qBittorrent.Misc.friendlyDuration(this.getRowValue(row), window.qBittorrent.Misc.MAX_ETA));
|
||||||
td.set('text', eta);
|
td.set('text', eta);
|
||||||
td.set('title', eta);
|
td.set('title', eta);
|
||||||
};
|
};
|
||||||
|
@ -1161,7 +1162,13 @@ window.qBittorrent.DynamicTable = (function() {
|
||||||
|
|
||||||
// time active
|
// time active
|
||||||
this.columns['time_active'].updateTd = function(td, row) {
|
this.columns['time_active'].updateTd = function(td, row) {
|
||||||
const time = window.qBittorrent.Misc.friendlyDuration(this.getRowValue(row));
|
const activeTime = this.getRowValue(row, 0);
|
||||||
|
const seedingTime = this.getRowValue(row, 1);
|
||||||
|
const time = (seedingTime > 0)
|
||||||
|
? ('QBT_TR(%1 (seeded for %2))QBT_TR[CONTEXT=TransferListDelegate]'
|
||||||
|
.replace('%1', window.qBittorrent.Misc.friendlyDuration(activeTime))
|
||||||
|
.replace('%2', window.qBittorrent.Misc.friendlyDuration(seedingTime)))
|
||||||
|
: window.qBittorrent.Misc.friendlyDuration(activeTime);
|
||||||
td.set('text', time);
|
td.set('text', time);
|
||||||
td.set('title', time);
|
td.set('title', time);
|
||||||
};
|
};
|
||||||
|
|
|
@ -43,7 +43,8 @@ window.qBittorrent.Misc = (function() {
|
||||||
escapeHtml: escapeHtml,
|
escapeHtml: escapeHtml,
|
||||||
safeTrim: safeTrim,
|
safeTrim: safeTrim,
|
||||||
toFixedPointString: toFixedPointString,
|
toFixedPointString: toFixedPointString,
|
||||||
containsAllTerms: containsAllTerms
|
containsAllTerms: containsAllTerms,
|
||||||
|
MAX_ETA: 8640000
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -94,9 +95,8 @@ window.qBittorrent.Misc = (function() {
|
||||||
/*
|
/*
|
||||||
* JS counterpart of the function in src/misc.cpp
|
* JS counterpart of the function in src/misc.cpp
|
||||||
*/
|
*/
|
||||||
const friendlyDuration = function(seconds) {
|
const friendlyDuration = function(seconds, maxCap = -1) {
|
||||||
const MAX_ETA = 8640000;
|
if (seconds < 0 || ((seconds >= maxCap) && (maxCap >= 0)))
|
||||||
if (seconds < 0 || seconds >= MAX_ETA)
|
|
||||||
return "∞";
|
return "∞";
|
||||||
if (seconds === 0)
|
if (seconds === 0)
|
||||||
return "0";
|
return "0";
|
||||||
|
@ -109,11 +109,13 @@ window.qBittorrent.Misc = (function() {
|
||||||
minutes = minutes % 60;
|
minutes = minutes % 60;
|
||||||
if (hours < 24)
|
if (hours < 24)
|
||||||
return "QBT_TR(%1h %2m)QBT_TR[CONTEXT=misc]".replace("%1", parseInt(hours)).replace("%2", parseInt(minutes));
|
return "QBT_TR(%1h %2m)QBT_TR[CONTEXT=misc]".replace("%1", parseInt(hours)).replace("%2", parseInt(minutes));
|
||||||
const days = hours / 24;
|
let days = hours / 24;
|
||||||
hours = hours % 24;
|
hours = hours % 24;
|
||||||
if (days < 100)
|
if (days < 365)
|
||||||
return "QBT_TR(%1d %2h)QBT_TR[CONTEXT=misc]".replace("%1", parseInt(days)).replace("%2", parseInt(hours));
|
return "QBT_TR(%1d %2h)QBT_TR[CONTEXT=misc]".replace("%1", parseInt(days)).replace("%2", parseInt(hours));
|
||||||
return "∞";
|
const years = days / 365;
|
||||||
|
days = days % 365;
|
||||||
|
return "QBT_TR(%1y %2d)QBT_TR[CONTEXT=misc]".replace("%1", parseInt(years)).replace("%2", parseInt(days));
|
||||||
}
|
}
|
||||||
|
|
||||||
const friendlyPercentage = function(value) {
|
const friendlyPercentage = function(value) {
|
||||||
|
@ -213,3 +215,5 @@ window.qBittorrent.Misc = (function() {
|
||||||
|
|
||||||
return exports();
|
return exports();
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
Object.freeze(window.qBittorrent.Misc);
|
||||||
|
|
|
@ -98,14 +98,14 @@ window.qBittorrent.PropGeneral = (function() {
|
||||||
let temp;
|
let temp;
|
||||||
// Update Torrent data
|
// Update Torrent data
|
||||||
if (data.seeding_time > 0)
|
if (data.seeding_time > 0)
|
||||||
temp = "QBT_TR(%1 (%2 this session))QBT_TR[CONTEXT=PropertiesWidget]"
|
temp = "QBT_TR(%1 (seeded for %2))QBT_TR[CONTEXT=PropertiesWidget]"
|
||||||
.replace("%1", window.qBittorrent.Misc.friendlyDuration(data.time_elapsed))
|
.replace("%1", window.qBittorrent.Misc.friendlyDuration(data.time_elapsed))
|
||||||
.replace("%2", window.qBittorrent.Misc.friendlyDuration(data.seeding_time));
|
.replace("%2", window.qBittorrent.Misc.friendlyDuration(data.seeding_time));
|
||||||
else
|
else
|
||||||
temp = window.qBittorrent.Misc.friendlyDuration(data.time_elapsed);
|
temp = window.qBittorrent.Misc.friendlyDuration(data.time_elapsed);
|
||||||
$('time_elapsed').set('html', temp);
|
$('time_elapsed').set('html', temp);
|
||||||
|
|
||||||
$('eta').set('html', window.qBittorrent.Misc.friendlyDuration(data.eta));
|
$('eta').set('html', window.qBittorrent.Misc.friendlyDuration(data.eta, window.qBittorrent.Misc.MAX_ETA));
|
||||||
|
|
||||||
temp = "QBT_TR(%1 (%2 max))QBT_TR[CONTEXT=PropertiesWidget]"
|
temp = "QBT_TR(%1 (%2 max))QBT_TR[CONTEXT=PropertiesWidget]"
|
||||||
.replace("%1", data.nb_connections)
|
.replace("%1", data.nb_connections)
|
||||||
|
|
Loading…
Reference in a new issue