mirror of
https://github.com/transmission/transmission.git
synced 2026-02-15 07:26:49 +00:00
feat(web): add webseeds list (#8421)
* Add webseeds list to web ui * Better webseed url column title * Apply suggestions * Follow existing table row creation style * Fix webseed table speed-down column * Fix empty class error * Add webseeds_ex to rpc changelogs * Apply suggestions from CI * Fix webseeds_ex rpc spec
This commit is contained in:
@@ -142,6 +142,7 @@ auto constexpr MyStatic = std::array<std::string_view, TR_N_KEYS>{
|
||||
"downloadLimit"sv, // rpc
|
||||
"downloadLimited"sv, // rpc
|
||||
"downloadSpeed"sv, // rpc
|
||||
"download_bytes_per_second"sv, // rpc
|
||||
"download_count"sv, // rpc
|
||||
"download_dir"sv, // daemon, gtk app, rpc, tr_session::Settings
|
||||
"download_dir_free_space"sv, // rpc
|
||||
@@ -263,6 +264,7 @@ auto constexpr MyStatic = std::array<std::string_view, TR_N_KEYS>{
|
||||
"isUTP"sv, // rpc
|
||||
"isUploadingTo"sv, // rpc
|
||||
"is_backup"sv, // rpc
|
||||
"is_downloading"sv, // rpc
|
||||
"is_downloading_from"sv, // rpc
|
||||
"is_encrypted"sv, // rpc
|
||||
"is_finished"sv, // rpc
|
||||
@@ -708,6 +710,7 @@ auto constexpr MyStatic = std::array<std::string_view, TR_N_KEYS>{
|
||||
"uploadedEver"sv, // rpc
|
||||
"uploaded_bytes"sv, // rpc, stats.json
|
||||
"uploaded_ever"sv, // rpc
|
||||
"url"sv, // rpc
|
||||
"url-list"sv, // .torrent
|
||||
"use-global-speed-limit"sv, // .resume
|
||||
"use-speed-limit"sv, // .resume
|
||||
@@ -729,6 +732,7 @@ auto constexpr MyStatic = std::array<std::string_view, TR_N_KEYS>{
|
||||
"watch_dir_force_generic"sv, // daemon
|
||||
"webseeds"sv, // rpc
|
||||
"webseedsSendingToUs"sv, // rpc
|
||||
"webseeds_ex"sv, // rpc
|
||||
"webseeds_sending_to_us"sv, // rpc
|
||||
"yourip"sv, // BEP0010; BT protocol
|
||||
};
|
||||
|
||||
@@ -155,6 +155,7 @@ enum // NOLINT(performance-enum-size)
|
||||
TR_KEY_download_limit_camel_APICOMPAT,
|
||||
TR_KEY_download_limited_camel_APICOMPAT,
|
||||
TR_KEY_download_speed_camel_APICOMPAT,
|
||||
TR_KEY_download_bytes_per_second,
|
||||
TR_KEY_download_count,
|
||||
TR_KEY_download_dir,
|
||||
TR_KEY_download_dir_free_space,
|
||||
@@ -276,6 +277,7 @@ enum // NOLINT(performance-enum-size)
|
||||
TR_KEY_is_utp_camel_APICOMPAT,
|
||||
TR_KEY_is_uploading_to_camel_APICOMPAT,
|
||||
TR_KEY_is_backup,
|
||||
TR_KEY_is_downloading,
|
||||
TR_KEY_is_downloading_from,
|
||||
TR_KEY_is_encrypted,
|
||||
TR_KEY_is_finished,
|
||||
@@ -721,6 +723,7 @@ enum // NOLINT(performance-enum-size)
|
||||
TR_KEY_uploaded_ever_camel_APICOMPAT,
|
||||
TR_KEY_uploaded_bytes,
|
||||
TR_KEY_uploaded_ever,
|
||||
TR_KEY_url,
|
||||
TR_KEY_url_list,
|
||||
TR_KEY_use_global_speed_limit_kebab_APICOMPAT,
|
||||
TR_KEY_use_speed_limit_kebab_APICOMPAT,
|
||||
@@ -742,6 +745,7 @@ enum // NOLINT(performance-enum-size)
|
||||
TR_KEY_watch_dir_force_generic,
|
||||
TR_KEY_webseeds,
|
||||
TR_KEY_webseeds_sending_to_us_camel_APICOMPAT,
|
||||
TR_KEY_webseeds_ex,
|
||||
TR_KEY_webseeds_sending_to_us,
|
||||
TR_KEY_yourip,
|
||||
TR_N_KEYS
|
||||
|
||||
@@ -554,6 +554,23 @@ namespace make_torrent_field_helpers
|
||||
return tr_variant{ std::move(vec) };
|
||||
}
|
||||
|
||||
[[nodiscard]] auto make_webseed_ex_vec(tr_torrent const& tor)
|
||||
{
|
||||
auto const n_webseeds = tor.webseed_count();
|
||||
auto vec = tr_variant::Vector{};
|
||||
vec.reserve(n_webseeds);
|
||||
for (size_t idx = 0U; idx != n_webseeds; ++idx)
|
||||
{
|
||||
auto const webseed = tr_torrentWebseed(&tor, idx);
|
||||
auto webseed_map = tr_variant::Map{ 3U };
|
||||
webseed_map.try_emplace(TR_KEY_url, webseed.url);
|
||||
webseed_map.try_emplace(TR_KEY_is_downloading, webseed.is_downloading);
|
||||
webseed_map.try_emplace(TR_KEY_download_bytes_per_second, webseed.download_bytes_per_second);
|
||||
vec.emplace_back(std::move(webseed_map));
|
||||
}
|
||||
return tr_variant{ std::move(vec) };
|
||||
}
|
||||
|
||||
[[nodiscard]] auto make_tracker_vec(tr_torrent const& tor)
|
||||
{
|
||||
auto const& trackers = tor.announce_list();
|
||||
@@ -768,6 +785,7 @@ namespace make_torrent_field_helpers
|
||||
case TR_KEY_uploaded_ever:
|
||||
case TR_KEY_wanted:
|
||||
case TR_KEY_webseeds:
|
||||
case TR_KEY_webseeds_ex:
|
||||
case TR_KEY_webseeds_sending_to_us:
|
||||
return true;
|
||||
|
||||
@@ -942,6 +960,8 @@ namespace make_torrent_field_helpers
|
||||
return make_file_wanted_vec(tor);
|
||||
case TR_KEY_webseeds:
|
||||
return make_webseed_vec(tor);
|
||||
case TR_KEY_webseeds_ex:
|
||||
return make_webseed_ex_vec(tor);
|
||||
case TR_KEY_webseeds_sending_to_us:
|
||||
return st.webseeds_sending_to_us;
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user