From b5ff7b8b8fa1290d9fbc93e89f89f3e2b2211451 Mon Sep 17 00:00:00 2001 From: ShanaryS Date: Thu, 22 May 2025 10:39:57 -0400 Subject: [PATCH] remove includeProperties --- src/webui/api/torrentscontroller.cpp | 130 +++++++++++++-------------- 1 file changed, 60 insertions(+), 70 deletions(-) diff --git a/src/webui/api/torrentscontroller.cpp b/src/webui/api/torrentscontroller.cpp index f1868aaa6..c0f75fcc9 100644 --- a/src/webui/api/torrentscontroller.cpp +++ b/src/webui/api/torrentscontroller.cpp @@ -119,7 +119,6 @@ const QString KEY_PROP_SSL_DHPARAMS = u"ssl_dh_params"_s; const QString KEY_PROP_HAS_METADATA = u"has_metadata"_s; const QString KEY_PROP_PROGRESS = u"progress"_s; const QString KEY_PROP_FILES = u"files"_s; -const QString KEY_PROP_PROPERTIES = u"properties"_s; const QString KEY_PROP_TRACKERS = u"trackers"_s; @@ -314,70 +313,6 @@ namespace return fileList; } - QJsonObject getProperties(const BitTorrent::Torrent *const torrent) - { - const BitTorrent::InfoHash infoHash = torrent->infoHash(); - const qlonglong totalDownload = torrent->totalDownload(); - const qlonglong totalUpload = torrent->totalUpload(); - const qlonglong dlDuration = torrent->activeTime() - torrent->finishedTime(); - const qlonglong ulDuration = torrent->activeTime(); - const int downloadLimit = torrent->downloadLimit(); - const int uploadLimit = torrent->uploadLimit(); - const qreal ratio = torrent->realRatio(); - const qreal popularity = torrent->popularity(); - const bool hasMetadata = torrent->hasMetadata(); - const bool isPrivate = torrent->isPrivate(); - - const QJsonObject ret - { - {KEY_TORRENT_INFOHASHV1, infoHash.v1().toString()}, - {KEY_TORRENT_INFOHASHV2, infoHash.v2().toString()}, - {KEY_TORRENT_NAME, torrent->name()}, - {KEY_TORRENT_ID, torrent->id().toString()}, - {KEY_PROP_TIME_ELAPSED, torrent->activeTime()}, - {KEY_PROP_SEEDING_TIME, torrent->finishedTime()}, - {KEY_PROP_ETA, torrent->eta()}, - {KEY_PROP_CONNECT_COUNT, torrent->connectionsCount()}, - {KEY_PROP_CONNECT_COUNT_LIMIT, torrent->connectionsLimit()}, - {KEY_PROP_DOWNLOADED, totalDownload}, - {KEY_PROP_DOWNLOADED_SESSION, torrent->totalPayloadDownload()}, - {KEY_PROP_UPLOADED, totalUpload}, - {KEY_PROP_UPLOADED_SESSION, torrent->totalPayloadUpload()}, - {KEY_PROP_DL_SPEED, torrent->downloadPayloadRate()}, - {KEY_PROP_DL_SPEED_AVG, ((dlDuration > 0) ? (totalDownload / dlDuration) : -1)}, - {KEY_PROP_UP_SPEED, torrent->uploadPayloadRate()}, - {KEY_PROP_UP_SPEED_AVG, ((ulDuration > 0) ? (totalUpload / ulDuration) : -1)}, - {KEY_PROP_DL_LIMIT, ((downloadLimit > 0) ? downloadLimit : -1)}, - {KEY_PROP_UP_LIMIT, ((uploadLimit > 0) ? uploadLimit : -1)}, - {KEY_PROP_WASTED, torrent->wastedSize()}, - {KEY_PROP_SEEDS, torrent->seedsCount()}, - {KEY_PROP_SEEDS_TOTAL, torrent->totalSeedsCount()}, - {KEY_PROP_PEERS, torrent->leechsCount()}, - {KEY_PROP_PEERS_TOTAL, torrent->totalLeechersCount()}, - {KEY_PROP_RATIO, ((ratio >= BitTorrent::Torrent::MAX_RATIO) ? -1 : ratio)}, - {KEY_PROP_POPULARITY, ((popularity >= BitTorrent::Torrent::MAX_RATIO) ? -1 : popularity)}, - {KEY_PROP_REANNOUNCE, torrent->nextAnnounce()}, - {KEY_PROP_TOTAL_SIZE, torrent->totalSize()}, - {KEY_PROP_PIECES_NUM, torrent->piecesCount()}, - {KEY_PROP_PIECE_SIZE, torrent->pieceLength()}, - {KEY_PROP_PIECES_HAVE, torrent->piecesHave()}, - {KEY_PROP_CREATED_BY, torrent->creator()}, - {KEY_PROP_IS_PRIVATE, torrent->isPrivate()}, // used for maintaining backward compatibility - {KEY_PROP_PRIVATE, (hasMetadata ? isPrivate : QJsonValue())}, - {KEY_PROP_ADDITION_DATE, Utils::DateTime::toSecsSinceEpoch(torrent->addedTime())}, - {KEY_PROP_LAST_SEEN, Utils::DateTime::toSecsSinceEpoch(torrent->lastSeenComplete())}, - {KEY_PROP_COMPLETION_DATE, Utils::DateTime::toSecsSinceEpoch(torrent->completedTime())}, - {KEY_PROP_CREATION_DATE, Utils::DateTime::toSecsSinceEpoch(torrent->creationDate())}, - {KEY_PROP_SAVE_PATH, torrent->savePath().toString()}, - {KEY_PROP_DOWNLOAD_PATH, torrent->downloadPath().toString()}, - {KEY_PROP_COMMENT, torrent->comment()}, - {KEY_PROP_HAS_METADATA, torrent->hasMetadata()}, - {KEY_PROP_PROGRESS, torrent->progress()} - }; - - return ret; - } - QList toTorrentIDs(const QStringList &idStrings) { QList idList; @@ -435,7 +370,6 @@ void TorrentsController::countAction() // - hashes (string): filter by hashes, can contain multiple hashes separated by | // - private (bool): filter torrents that are from private trackers (true) or not (false). Empty means any torrent (no filtering) // - includeFiles (bool): include files in list output (true) or not (false). Empty means not included -// - includeProperties (bool): include properties in list output (true) or not (false). Empty means not included // - includeTrackers (bool): include trackers in list output (true) or not (false). Empty means not included // - sort (string): name of column for sorting by its value // - reverse (bool): enable reverse sorting @@ -453,7 +387,6 @@ void TorrentsController::infoAction() const QStringList hashes {params()[u"hashes"_s].split(u'|', Qt::SkipEmptyParts)}; const std::optional isPrivate = parseBool(params()[u"private"_s]); const bool includeFiles = parseBool(params()[u"includeFiles"_s]).value_or(false); - const bool includeProperties = parseBool(params()[u"includeProperties"_s]).value_or(false); const bool includeTrackers = parseBool(params()[u"includeTrackers"_s]).value_or(false); std::optional idSet; @@ -482,8 +415,6 @@ void TorrentsController::infoAction() fileIndexes.append(i); serializedTorrent.insert(KEY_PROP_FILES, getFiles(torrent, fileIndexes)); } - if (includeProperties) - serializedTorrent.insert(KEY_PROP_PROPERTIES, getProperties(torrent)); if (includeTrackers) serializedTorrent.insert(KEY_PROP_TRACKERS, getTrackers(torrent)); @@ -601,7 +532,66 @@ void TorrentsController::propertiesAction() if (!torrent) throw APIError(APIErrorType::NotFound); - setResult(getProperties(torrent)); + const BitTorrent::InfoHash infoHash = torrent->infoHash(); + const qlonglong totalDownload = torrent->totalDownload(); + const qlonglong totalUpload = torrent->totalUpload(); + const qlonglong dlDuration = torrent->activeTime() - torrent->finishedTime(); + const qlonglong ulDuration = torrent->activeTime(); + const int downloadLimit = torrent->downloadLimit(); + const int uploadLimit = torrent->uploadLimit(); + const qreal ratio = torrent->realRatio(); + const qreal popularity = torrent->popularity(); + const bool hasMetadata = torrent->hasMetadata(); + const bool isPrivate = torrent->isPrivate(); + + const QJsonObject ret + { + {KEY_TORRENT_INFOHASHV1, infoHash.v1().toString()}, + {KEY_TORRENT_INFOHASHV2, infoHash.v2().toString()}, + {KEY_TORRENT_NAME, torrent->name()}, + {KEY_TORRENT_ID, torrent->id().toString()}, + {KEY_PROP_TIME_ELAPSED, torrent->activeTime()}, + {KEY_PROP_SEEDING_TIME, torrent->finishedTime()}, + {KEY_PROP_ETA, torrent->eta()}, + {KEY_PROP_CONNECT_COUNT, torrent->connectionsCount()}, + {KEY_PROP_CONNECT_COUNT_LIMIT, torrent->connectionsLimit()}, + {KEY_PROP_DOWNLOADED, totalDownload}, + {KEY_PROP_DOWNLOADED_SESSION, torrent->totalPayloadDownload()}, + {KEY_PROP_UPLOADED, totalUpload}, + {KEY_PROP_UPLOADED_SESSION, torrent->totalPayloadUpload()}, + {KEY_PROP_DL_SPEED, torrent->downloadPayloadRate()}, + {KEY_PROP_DL_SPEED_AVG, ((dlDuration > 0) ? (totalDownload / dlDuration) : -1)}, + {KEY_PROP_UP_SPEED, torrent->uploadPayloadRate()}, + {KEY_PROP_UP_SPEED_AVG, ((ulDuration > 0) ? (totalUpload / ulDuration) : -1)}, + {KEY_PROP_DL_LIMIT, ((downloadLimit > 0) ? downloadLimit : -1)}, + {KEY_PROP_UP_LIMIT, ((uploadLimit > 0) ? uploadLimit : -1)}, + {KEY_PROP_WASTED, torrent->wastedSize()}, + {KEY_PROP_SEEDS, torrent->seedsCount()}, + {KEY_PROP_SEEDS_TOTAL, torrent->totalSeedsCount()}, + {KEY_PROP_PEERS, torrent->leechsCount()}, + {KEY_PROP_PEERS_TOTAL, torrent->totalLeechersCount()}, + {KEY_PROP_RATIO, ((ratio >= BitTorrent::Torrent::MAX_RATIO) ? -1 : ratio)}, + {KEY_PROP_POPULARITY, ((popularity >= BitTorrent::Torrent::MAX_RATIO) ? -1 : popularity)}, + {KEY_PROP_REANNOUNCE, torrent->nextAnnounce()}, + {KEY_PROP_TOTAL_SIZE, torrent->totalSize()}, + {KEY_PROP_PIECES_NUM, torrent->piecesCount()}, + {KEY_PROP_PIECE_SIZE, torrent->pieceLength()}, + {KEY_PROP_PIECES_HAVE, torrent->piecesHave()}, + {KEY_PROP_CREATED_BY, torrent->creator()}, + {KEY_PROP_IS_PRIVATE, torrent->isPrivate()}, // used for maintaining backward compatibility + {KEY_PROP_PRIVATE, (hasMetadata ? isPrivate : QJsonValue())}, + {KEY_PROP_ADDITION_DATE, Utils::DateTime::toSecsSinceEpoch(torrent->addedTime())}, + {KEY_PROP_LAST_SEEN, Utils::DateTime::toSecsSinceEpoch(torrent->lastSeenComplete())}, + {KEY_PROP_COMPLETION_DATE, Utils::DateTime::toSecsSinceEpoch(torrent->completedTime())}, + {KEY_PROP_CREATION_DATE, Utils::DateTime::toSecsSinceEpoch(torrent->creationDate())}, + {KEY_PROP_SAVE_PATH, torrent->savePath().toString()}, + {KEY_PROP_DOWNLOAD_PATH, torrent->downloadPath().toString()}, + {KEY_PROP_COMMENT, torrent->comment()}, + {KEY_PROP_HAS_METADATA, torrent->hasMetadata()}, + {KEY_PROP_PROGRESS, torrent->progress()} + }; + + setResult(ret); } // Returns the trackers for a torrent in JSON format.