diff options
-rw-r--r-- | .SRCINFO | 6 | ||||
-rw-r--r-- | 0.9.6.tar.gz | bin | 0 -> 226141 bytes | |||
-rw-r--r-- | PKGBUILD | 4 | ||||
-rw-r--r-- | ui_pyroscope.cc | 37 |
4 files changed, 42 insertions, 5 deletions
@@ -1,9 +1,9 @@ # Generated by mksrcinfo v8 -# Fri Mar 10 21:15:18 UTC 2017 +# Sat Mar 11 22:41:04 UTC 2017 pkgbase = rtorrent-ps pkgdesc = Extended rTorrent distribution with UI enhancements, colorization, and some added features pkgver = 0.9.6 - pkgrel = 2 + pkgrel = 3 url = https://github.com/pyroscope/rtorrent-ps arch = any license = GPL @@ -40,7 +40,7 @@ pkgbase = rtorrent-ps md5sums = ee76d57dfbc40e09eeaee3845d327d94 md5sums = 7a88f8ab5d41242fdf1428de0e2ca182 md5sums = bd04a0699b80c8042e1cf63a7e0e4222 - md5sums = afd9f0e9ed816069b584e19c88b0a4bb + md5sums = 2265910664e904164ffd28b5e69445e9 md5sums = 1258acfc82c50a8f452ace87fef0b416 md5sums = 0a2bbaf74c7160ba33876dcc2f050f14 diff --git a/0.9.6.tar.gz b/0.9.6.tar.gz Binary files differnew file mode 100644 index 000000000000..886054bf56db --- /dev/null +++ b/0.9.6.tar.gz @@ -3,7 +3,7 @@ _pkgname=rtorrent pkgname=rtorrent-ps pkgver=0.9.6 -pkgrel=2 +pkgrel=3 pkgdesc='Extended rTorrent distribution with UI enhancements, colorization, and some added features' url='https://github.com/pyroscope/rtorrent-ps' license=('GPL') @@ -30,7 +30,7 @@ md5sums=('b8b4009f95f8543244ae1d23b1810d7c' 'ee76d57dfbc40e09eeaee3845d327d94' '7a88f8ab5d41242fdf1428de0e2ca182' 'bd04a0699b80c8042e1cf63a7e0e4222' - 'afd9f0e9ed816069b584e19c88b0a4bb' + '2265910664e904164ffd28b5e69445e9' '1258acfc82c50a8f452ace87fef0b416' '0a2bbaf74c7160ba33876dcc2f050f14') diff --git a/ui_pyroscope.cc b/ui_pyroscope.cc index fd80f174b584..f430df654087 100644 --- a/ui_pyroscope.cc +++ b/ui_pyroscope.cc @@ -100,6 +100,10 @@ static const char* color_vars[ps::COL_MAX] = { // collapsed state of views (default is false) static std::map<std::string, bool> is_collapsed; +// tracker aliases map +typedef std::map<std::string, std::string> string_kv_map; +static string_kv_map tracker_aliases; + // Traffic history static int network_history_depth = 0; static uint32_t network_history_count = 0; @@ -340,6 +344,9 @@ static void decorate_download_title(Window* window, display::Canvas* canvas, cor // show label for tracker in focus std::string url = get_active_tracker_domain((*range.first)->download()); if (!url.empty()) { + std::string alias = tracker_aliases[url]; + if (!alias.empty()) url = alias; + // shorten label if too long int len = url.length(); if (len > TRACKER_LABEL_WIDTH) { @@ -756,6 +763,33 @@ torrent::Object network_history_sample() { } +torrent::Object cmd_trackers_alias_set_key(rpc::target_type target, const torrent::Object::list_type& args) { + torrent::Object::list_const_iterator itr = args.begin(); + if (args.size() != 2) { + throw torrent::input_error("trackers.alias.set_key: expecting two arguments!"); + } + std::string domain = (itr++)->as_string(); + std::string alias = (itr++)->as_string(); + + tracker_aliases[domain] = alias; + + return torrent::Object(); +} + + +torrent::Object cmd_trackers_alias_items(rpc::target_type target) { + torrent::Object rawResult = torrent::Object::create_list(); + torrent::Object::list_type& result = rawResult.as_list(); + + for (string_kv_map::const_iterator itr = tracker_aliases.begin(), last = tracker_aliases.end(); itr != last; itr++) { + std::string mapping = itr->first + "=" + itr->second; + result.push_back(mapping); + } + + return rawResult; +} + + // register our commands void initialize_command_ui_pyroscope() { #define PS_VARIABLE_COLOR(key, value) \ @@ -776,6 +810,9 @@ void initialize_command_ui_pyroscope() { CMD2_ANY_STRING("view.collapsed.toggle", _cxxstd_::bind(&cmd_view_collapsed_toggle, _cxxstd_::placeholders::_2)); + CMD2_ANY_LIST("trackers.alias.set_key", &cmd_trackers_alias_set_key); + CMD2_ANY("trackers.alias.items", _cxxstd_::bind(&cmd_trackers_alias_items, _cxxstd_::placeholders::_1)); + CMD2_VAR_VALUE("ui.style.progress", 1); CMD2_VAR_VALUE("ui.style.ratio", 1); |