mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-07-16 02:03:07 -07:00
[Web UI] Add information in General tab
This commit is contained in:
parent
5e400d3117
commit
2132704e1d
5 changed files with 221 additions and 81 deletions
|
@ -114,22 +114,39 @@ static const char KEY_TRACKER_PEERS[] = "num_peers";
|
|||
static const char KEY_WEBSEED_URL[] = "url";
|
||||
|
||||
// Torrent keys (Properties)
|
||||
static const char KEY_PROP_SAVE_PATH[] = "save_path";
|
||||
static const char KEY_PROP_CREATION_DATE[] = "creation_date";
|
||||
static const char KEY_PROP_PIECE_SIZE[] = "piece_size";
|
||||
static const char KEY_PROP_COMMENT[] = "comment";
|
||||
static const char KEY_PROP_WASTED[] = "total_wasted";
|
||||
static const char KEY_PROP_UPLOADED[] = "total_uploaded";
|
||||
static const char KEY_PROP_UPLOADED_SESSION[] = "total_uploaded_session";
|
||||
static const char KEY_PROP_DOWNLOADED[] = "total_downloaded";
|
||||
static const char KEY_PROP_DOWNLOADED_SESSION[] = "total_downloaded_session";
|
||||
static const char KEY_PROP_UP_LIMIT[] = "up_limit";
|
||||
static const char KEY_PROP_DL_LIMIT[] = "dl_limit";
|
||||
static const char KEY_PROP_TIME_ELAPSED[] = "time_elapsed";
|
||||
static const char KEY_PROP_SEEDING_TIME[] = "seeding_time";
|
||||
static const char KEY_PROP_ETA[] = "eta";
|
||||
static const char KEY_PROP_CONNECT_COUNT[] = "nb_connections";
|
||||
static const char KEY_PROP_CONNECT_COUNT_LIMIT[] = "nb_connections_limit";
|
||||
static const char KEY_PROP_DOWNLOADED[] = "total_downloaded";
|
||||
static const char KEY_PROP_DOWNLOADED_SESSION[] = "total_downloaded_session";
|
||||
static const char KEY_PROP_UPLOADED[] = "total_uploaded";
|
||||
static const char KEY_PROP_UPLOADED_SESSION[] = "total_uploaded_session";
|
||||
static const char KEY_PROP_DL_SPEED[] = "dl_speed";
|
||||
static const char KEY_PROP_DL_SPEED_AVG[] = "dl_speed_avg";
|
||||
static const char KEY_PROP_UP_SPEED[] = "up_speed";
|
||||
static const char KEY_PROP_UP_SPEED_AVG[] = "up_speed_avg";
|
||||
static const char KEY_PROP_DL_LIMIT[] = "dl_limit";
|
||||
static const char KEY_PROP_UP_LIMIT[] = "up_limit";
|
||||
static const char KEY_PROP_WASTED[] = "total_wasted";
|
||||
static const char KEY_PROP_SEEDS[] = "seeds";
|
||||
static const char KEY_PROP_SEEDS_TOTAL[] = "seeds_total";
|
||||
static const char KEY_PROP_PEERS[] = "peers";
|
||||
static const char KEY_PROP_PEERS_TOTAL[] = "peers_total";
|
||||
static const char KEY_PROP_RATIO[] = "share_ratio";
|
||||
static const char KEY_PROP_REANNOUNCE[] = "reannounce";
|
||||
static const char KEY_PROP_TOTAL_SIZE[] = "total_size";
|
||||
static const char KEY_PROP_PIECES_NUM[] = "pieces_num";
|
||||
static const char KEY_PROP_PIECE_SIZE[] = "piece_size";
|
||||
static const char KEY_PROP_PIECES_HAVE[] = "pieces_have";
|
||||
static const char KEY_PROP_CREATED_BY[] = "created_by";
|
||||
static const char KEY_PROP_LAST_SEEN[] = "last_seen";
|
||||
static const char KEY_PROP_ADDITION_DATE[] = "addition_date";
|
||||
static const char KEY_PROP_COMPLETION_DATE[] = "completion_date";
|
||||
static const char KEY_PROP_CREATION_DATE[] = "creation_date";
|
||||
static const char KEY_PROP_SAVE_PATH[] = "save_path";
|
||||
static const char KEY_PROP_COMMENT[] = "comment";
|
||||
|
||||
// File keys
|
||||
static const char KEY_FILE_NAME[] = "name";
|
||||
|
@ -410,22 +427,39 @@ QByteArray btjson::getWebSeedsForTorrent(const QString& hash)
|
|||
*
|
||||
* The return value is a JSON-formatted dictionary.
|
||||
* The dictionary keys are:
|
||||
* - "save_path": Torrent save path
|
||||
* - "creation_date": Torrent creation date
|
||||
* - "piece_size": Torrent piece size
|
||||
* - "comment": Torrent comment
|
||||
* - "total_wasted": Total data wasted for torrent
|
||||
* - "total_uploaded": Total data uploaded for torrent
|
||||
* - "total_uploaded_session": Total data uploaded this session
|
||||
* - "total_downloaded": Total data uploaded for torrent
|
||||
* - "total_downloaded_session": Total data downloaded this session
|
||||
* - "up_limit": Torrent upload limit
|
||||
* - "dl_limit": Torrent download limit
|
||||
* - "time_elapsed": Torrent elapsed time
|
||||
* - "seeding_time": Torrent elapsed time while complete
|
||||
* - "eta": Torrent ETA
|
||||
* - "nb_connections": Torrent connection count
|
||||
* - "nb_connections_limit": Torrent connection count limit
|
||||
* - "total_downloaded": Total data uploaded for torrent
|
||||
* - "total_downloaded_session": Total data downloaded this session
|
||||
* - "total_uploaded": Total data uploaded for torrent
|
||||
* - "total_uploaded_session": Total data uploaded this session
|
||||
* - "dl_speed": Torrent download speed
|
||||
* - "dl_speed_avg": Torrent average download speed
|
||||
* - "up_speed": Torrent upload speed
|
||||
* - "up_speed_avg": Torrent average upload speed
|
||||
* - "dl_limit": Torrent download limit
|
||||
* - "up_limit": Torrent upload limit
|
||||
* - "total_wasted": Total data wasted for torrent
|
||||
* - "seeds": Torrent connected seeds
|
||||
* - "seeds_total": Torrent total number of seeds
|
||||
* - "peers": Torrent connected peers
|
||||
* - "peers_total": Torrent total number of peers
|
||||
* - "share_ratio": Torrent share ratio
|
||||
* - "reannounce": Torrent next reannounce time
|
||||
* - "total_size": Torrent total size
|
||||
* - "pieces_num": Torrent pieces count
|
||||
* - "piece_size": Torrent piece size
|
||||
* - "pieces_have": Torrent pieces have
|
||||
* - "created_by": Torrent creator
|
||||
* - "last_seen": Torrent last seen complete
|
||||
* - "addition_date": Torrent addition date
|
||||
* - "completion_date": Torrent completion date
|
||||
* - "creation_date": Torrent creation date
|
||||
* - "save_path": Torrent save path
|
||||
* - "comment": Torrent comment
|
||||
*/
|
||||
QByteArray btjson::getPropertiesForTorrent(const QString& hash)
|
||||
{
|
||||
|
@ -436,26 +470,47 @@ QByteArray btjson::getPropertiesForTorrent(const QString& hash)
|
|||
return QByteArray();
|
||||
}
|
||||
|
||||
if (!torrent->hasMetadata())
|
||||
return QByteArray();
|
||||
|
||||
dataDict[KEY_PROP_SAVE_PATH] = Utils::Fs::toNativePath(torrent->savePath());
|
||||
dataDict[KEY_PROP_CREATION_DATE] = torrent->creationDate().toTime_t();
|
||||
dataDict[KEY_PROP_PIECE_SIZE] = torrent->pieceLength();
|
||||
dataDict[KEY_PROP_COMMENT] = torrent->comment();
|
||||
dataDict[KEY_PROP_WASTED] = torrent->wastedSize();
|
||||
dataDict[KEY_PROP_UPLOADED] = torrent->totalUpload();
|
||||
dataDict[KEY_PROP_UPLOADED_SESSION] = torrent->totalPayloadUpload();
|
||||
dataDict[KEY_PROP_DOWNLOADED] = torrent->totalDownload();
|
||||
dataDict[KEY_PROP_DOWNLOADED_SESSION] = torrent->totalPayloadDownload();
|
||||
dataDict[KEY_PROP_UP_LIMIT] = torrent->uploadLimit() <= 0 ? -1 : torrent->uploadLimit();
|
||||
dataDict[KEY_PROP_DL_LIMIT] = torrent->downloadLimit() <= 0 ? -1 : torrent->downloadLimit();
|
||||
dataDict[KEY_PROP_TIME_ELAPSED] = torrent->activeTime();
|
||||
dataDict[KEY_PROP_SEEDING_TIME] = torrent->seedingTime();
|
||||
dataDict[KEY_PROP_ETA] = torrent->eta();
|
||||
dataDict[KEY_PROP_CONNECT_COUNT] = torrent->connectionsCount();
|
||||
dataDict[KEY_PROP_CONNECT_COUNT_LIMIT] = torrent->connectionsLimit();
|
||||
dataDict[KEY_PROP_DOWNLOADED] = torrent->totalDownload();
|
||||
dataDict[KEY_PROP_DOWNLOADED_SESSION] = torrent->totalPayloadDownload();
|
||||
dataDict[KEY_PROP_UPLOADED] = torrent->totalUpload();
|
||||
dataDict[KEY_PROP_UPLOADED_SESSION] = torrent->totalPayloadUpload();
|
||||
dataDict[KEY_PROP_DL_SPEED] = torrent->downloadPayloadRate();
|
||||
dataDict[KEY_PROP_DL_SPEED_AVG] = torrent->totalDownload() / (1 + torrent->activeTime() - torrent->finishedTime());
|
||||
dataDict[KEY_PROP_UP_SPEED] = torrent->uploadPayloadRate();
|
||||
dataDict[KEY_PROP_UP_SPEED_AVG] = torrent->totalUpload() / (1 + torrent->activeTime());
|
||||
dataDict[KEY_PROP_DL_LIMIT] = torrent->downloadLimit() <= 0 ? -1 : torrent->downloadLimit();
|
||||
dataDict[KEY_PROP_UP_LIMIT] = torrent->uploadLimit() <= 0 ? -1 : torrent->uploadLimit();
|
||||
dataDict[KEY_PROP_WASTED] = torrent->wastedSize();
|
||||
dataDict[KEY_PROP_SEEDS] = torrent->seedsCount();
|
||||
dataDict[KEY_PROP_SEEDS_TOTAL] = torrent->totalSeedsCount();
|
||||
dataDict[KEY_PROP_PEERS] = torrent->leechsCount();
|
||||
dataDict[KEY_PROP_PEERS_TOTAL] = torrent->totalLeechersCount();
|
||||
const qreal ratio = torrent->realRatio();
|
||||
dataDict[KEY_PROP_RATIO] = ratio > BitTorrent::TorrentHandle::MAX_RATIO ? -1 : ratio;
|
||||
dataDict[KEY_PROP_REANNOUNCE] = torrent->nextAnnounce();
|
||||
dataDict[KEY_PROP_TOTAL_SIZE] = torrent->totalSize();
|
||||
dataDict[KEY_PROP_PIECES_NUM] = torrent->piecesCount();
|
||||
dataDict[KEY_PROP_PIECE_SIZE] = torrent->pieceLength();
|
||||
dataDict[KEY_PROP_PIECES_HAVE] = torrent->piecesHave();
|
||||
dataDict[KEY_PROP_CREATED_BY] = torrent->creator();
|
||||
dataDict[KEY_PROP_ADDITION_DATE] = torrent->addedTime().toTime_t();
|
||||
if (torrent->hasMetadata()) {
|
||||
dataDict[KEY_PROP_LAST_SEEN] = torrent->lastSeenComplete().isValid() ? (int)torrent->lastSeenComplete().toTime_t() : -1;
|
||||
dataDict[KEY_PROP_COMPLETION_DATE] = torrent->completedTime().isValid() ? (int)torrent->completedTime().toTime_t() : -1;
|
||||
dataDict[KEY_PROP_CREATION_DATE] = torrent->creationDate().toTime_t();
|
||||
}
|
||||
else {
|
||||
dataDict[KEY_PROP_LAST_SEEN] = -1;
|
||||
dataDict[KEY_PROP_COMPLETION_DATE] = -1;
|
||||
dataDict[KEY_PROP_CREATION_DATE] = -1;
|
||||
}
|
||||
dataDict[KEY_PROP_SAVE_PATH] = torrent->savePathParsed();
|
||||
dataDict[KEY_PROP_COMMENT] = torrent->comment();
|
||||
|
||||
return json::toJson(dataDict);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue