mirror of
https://github.com/transmission/transmission.git
synced 2025-12-20 02:18:42 +00:00
transmission-remote: for '-l', implement default sorting by addedDate (#5608)
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
// or any future license endorsed by Mnemosyne LLC.
|
// or any future license endorsed by Mnemosyne LLC.
|
||||||
// License text can be found in the licenses/ folder.
|
// License text can be found in the licenses/ folder.
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
#include <array>
|
#include <array>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
#include <cctype> /* isspace */
|
#include <cctype> /* isspace */
|
||||||
@@ -14,6 +15,7 @@
|
|||||||
#include <set>
|
#include <set>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <string_view>
|
#include <string_view>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
@@ -777,7 +779,8 @@ static auto constexpr DetailsKeys = std::array<tr_quark, 52>{
|
|||||||
TR_KEY_webseedsSendingToUs
|
TR_KEY_webseedsSendingToUs
|
||||||
};
|
};
|
||||||
|
|
||||||
static auto constexpr ListKeys = std::array<tr_quark, 14>{
|
static auto constexpr ListKeys = std::array<tr_quark, 15>{
|
||||||
|
TR_KEY_addedDate,
|
||||||
TR_KEY_error,
|
TR_KEY_error,
|
||||||
TR_KEY_errorString,
|
TR_KEY_errorString,
|
||||||
TR_KEY_eta,
|
TR_KEY_eta,
|
||||||
@@ -1469,7 +1472,30 @@ static void printTorrentList(tr_variant* top)
|
|||||||
"Status",
|
"Status",
|
||||||
"Name");
|
"Name");
|
||||||
|
|
||||||
for (size_t i = 0, n = tr_variantListSize(list); i < n; ++i)
|
size_t num_torrents = tr_variantListSize(list);
|
||||||
|
|
||||||
|
std::vector<tr_variant*> tptrs;
|
||||||
|
tptrs.reserve(num_torrents);
|
||||||
|
|
||||||
|
for (size_t i = 0; i < num_torrents; ++i)
|
||||||
|
{
|
||||||
|
tr_variant* d = tr_variantListChild(list, i);
|
||||||
|
if (tr_variantDictFindInt(d, TR_KEY_id, nullptr))
|
||||||
|
tptrs.push_back(d);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::sort(
|
||||||
|
tptrs.begin(),
|
||||||
|
tptrs.end(),
|
||||||
|
[](tr_variant* f, tr_variant* s)
|
||||||
|
{
|
||||||
|
int64_t f_time = INT64_MIN, s_time = INT64_MIN;
|
||||||
|
tr_variantDictFindInt(f, TR_KEY_addedDate, &f_time);
|
||||||
|
tr_variantDictFindInt(s, TR_KEY_addedDate, &s_time);
|
||||||
|
return f_time < s_time;
|
||||||
|
});
|
||||||
|
|
||||||
|
for (auto const& d : tptrs)
|
||||||
{
|
{
|
||||||
int64_t torId;
|
int64_t torId;
|
||||||
int64_t eta;
|
int64_t eta;
|
||||||
@@ -1480,7 +1506,6 @@ static void printTorrentList(tr_variant* top)
|
|||||||
int64_t leftUntilDone;
|
int64_t leftUntilDone;
|
||||||
double ratio;
|
double ratio;
|
||||||
auto name = std::string_view{};
|
auto name = std::string_view{};
|
||||||
tr_variant* d = tr_variantListChild(list, i);
|
|
||||||
|
|
||||||
if (tr_variantDictFindInt(d, TR_KEY_eta, &eta) && tr_variantDictFindInt(d, TR_KEY_id, &torId) &&
|
if (tr_variantDictFindInt(d, TR_KEY_eta, &eta) && tr_variantDictFindInt(d, TR_KEY_id, &torId) &&
|
||||||
tr_variantDictFindInt(d, TR_KEY_leftUntilDone, &leftUntilDone) &&
|
tr_variantDictFindInt(d, TR_KEY_leftUntilDone, &leftUntilDone) &&
|
||||||
|
|||||||
Reference in New Issue
Block a user