mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-11-25 02:36:10 +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_AUTO_TORRENT_MANAGEMENT, torrent.isAutoTMMEnabled()},
|
||||
{KEY_TORRENT_TIME_ACTIVE, torrent.activeTime()},
|
||||
{KEY_TORRENT_SEEDING_TIME, torrent.seedingTime()},
|
||||
{KEY_TORRENT_LAST_ACTIVITY_TIME, adjustLastActivity(torrent.timeSinceActivity())},
|
||||
{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_AUTO_TORRENT_MANAGEMENT[] = "auto_tmm";
|
||||
const char KEY_TORRENT_TIME_ACTIVE[] = "time_active";
|
||||
const char KEY_TORRENT_SEEDING_TIME[] = "seeding_time";
|
||||
const char KEY_TORRENT_AVAILABILITY[] = "availability";
|
||||
|
||||
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_leechs'].dataProperties.push('num_incomplete');
|
||||
this.columns['time_active'].dataProperties.push('seeding_time');
|
||||
|
||||
this.initColumnsFunctions();
|
||||
},
|
||||
|
@ -1102,7 +1103,7 @@ window.qBittorrent.DynamicTable = (function() {
|
|||
|
||||
// eta
|
||||
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('title', eta);
|
||||
};
|
||||
|
@ -1161,7 +1162,13 @@ window.qBittorrent.DynamicTable = (function() {
|
|||
|
||||
// time active
|
||||
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('title', time);
|
||||
};
|
||||
|
|
|
@ -43,7 +43,8 @@ window.qBittorrent.Misc = (function() {
|
|||
escapeHtml: escapeHtml,
|
||||
safeTrim: safeTrim,
|
||||
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
|
||||
*/
|
||||
const friendlyDuration = function(seconds) {
|
||||
const MAX_ETA = 8640000;
|
||||
if (seconds < 0 || seconds >= MAX_ETA)
|
||||
const friendlyDuration = function(seconds, maxCap = -1) {
|
||||
if (seconds < 0 || ((seconds >= maxCap) && (maxCap >= 0)))
|
||||
return "∞";
|
||||
if (seconds === 0)
|
||||
return "0";
|
||||
|
@ -109,11 +109,13 @@ window.qBittorrent.Misc = (function() {
|
|||
minutes = minutes % 60;
|
||||
if (hours < 24)
|
||||
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;
|
||||
if (days < 100)
|
||||
if (days < 365)
|
||||
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) {
|
||||
|
@ -213,3 +215,5 @@ window.qBittorrent.Misc = (function() {
|
|||
|
||||
return exports();
|
||||
})();
|
||||
|
||||
Object.freeze(window.qBittorrent.Misc);
|
||||
|
|
|
@ -98,14 +98,14 @@ window.qBittorrent.PropGeneral = (function() {
|
|||
let temp;
|
||||
// Update Torrent data
|
||||
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("%2", window.qBittorrent.Misc.friendlyDuration(data.seeding_time));
|
||||
else
|
||||
temp = window.qBittorrent.Misc.friendlyDuration(data.time_elapsed);
|
||||
$('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]"
|
||||
.replace("%1", data.nb_connections)
|
||||
|
|
Loading…
Reference in a new issue