-
Notifications
You must be signed in to change notification settings - Fork 338
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[1015] improve trackers tab #379
base: develop
Are you sure you want to change the base?
[1015] improve trackers tab #379
Conversation
@DjLegolas As far as dht pex lsd goes, seems we need to track it ourselves, libtorrent doesn't provide it. for lsd, lsd_peer_alert flags? Line 1076 in 8ff4683
deluge/deluge/ui/gtk3/peers_tab.py Line 67 in 8ff4683
session = component.get('Core').session.status() peerinfo = self.session.get_peer_info() or more accurate get_peer_info() from torrent_handle. Line 201 in 8ff4683
something like that should get peer_info which holds peer flags dht and so on. Hopefully some of this makes sense/is helpful. |
you can see how qbittorent handles it here: Since it seems more involved I would vote what you have now as good maybe + seeds. And could add the others in another PR. |
Why is there a second tab instead of updating existing trackers tab in GTKUI? I am seeing changes to tracker_status type but we need to maintain version compatibility and this would be a breaking change. What I would probably suggest here is a new |
It helped me while implementing the new one. I'll replace the original tab when I will rebase everything with better commits.
Hmm, good idea. Will do.
Yeah, will probably try to do something like |
7dd35b3
to
86f65bd
Compare
Ok, most of the work is done. And the fail in |
@DjLegolas idk if you tried a windows build yet, or I cought you mid changes or anything, but I just did and got:
https://github.com/doadin/deluge/actions/runs/1904315730 |
86f65bd
to
ff37c34
Compare
@doadin whoops... forgot to edit some of the names when copied everything back to the original |
@DjLegolas np, just trying to help, make sure its working, ill make another run and leave another review. Thanks for doing this nice to finally have this! |
Found another issue so fixed it too. @doadin check now please. |
@DjLegolas And not to try and bring it up a million times but seeds vs peers?
edit: basically working nicely It would be my vote to have DHT data displayed the same as trackers where it doesn't matter if they are connected or not. and have a seeds & peer columns other than that seems to be working and for what its worth I approve. In any case its 100% better than what we had. |
@DjLegolas Remember that clients have to be able to handle connecting to an older version of Deluge daemon so there is no guarantee that the new torrent status keys will be available |
It's looking good 👍 Some further points:
|
1432487
to
4f938aa
Compare
Added support for using the old status keys and showing only that one entry.
Changed.
I'll move all of the DHT, PEX and LSD related things to a new PR when squashing the commits into one.
Added support for double-click in trackers tab, in addition to right click.
Good question. Status is the short string which shows "Announce OK" or some other error. |
I don't think Again thanks for working on this 🙂 |
From what I have seen,
No problem🙂 |
4f938aa
to
580006b
Compare
So, after almost 2 months, back to work on this. Windows crashes because of issues with |
78c2e3c
to
1b673c7
Compare
1b673c7
to
6727185
Compare
78379ed
to
ceb2ab5
Compare
ceb2ab5
to
23559a2
Compare
23559a2
to
3db4109
Compare
Just a quick note to say I had a look at this a few weeks ago and I have concerns about handling of the lt tracker data in the core, I feel it should be parsed to not expose lt data structures and only include required fields. Let's try to understand how to correctly expose tracker data in core and built out the UIs from there |
3db4109
to
6c990b6
Compare
@cas-- I have refactored the |
6c990b6
to
a583559
Compare
depends on: #427 |
a583559
to
f10a799
Compare
@cas-- I have rebased onto In addition, I just noticed something. |
@DjLegolas idk if it is just an error on my end but in standalone this works but but in thinclient the trackers tab is empty. It has the headers but the list of trackers is empty. |
@DjLegolas for some reason git describe --tags which is what is used in version.py currently gives deluge-2.1.1.dev0-99-g7f3f7f69e for develop branch instead of deluge-2.1.2.dev0 |
@DjLegolas sorry for the multiple messages, and it was because of the daemon version check, now that I updated that though, it is only showing the first tier tracker while in gtk thinclient mode. GTK Standalone and webui seem fine. |
I was discussing the trackers tab a week or two ago with @cas-- and mentioned something I would like to see that I thought would be in the scope of this PR, so rather than opt to open an additional, perhaps mention it here first and see what you think. When a tracker is in the error state and eventually goes to "skipping" - if I wanted to see WHAT the error was when it was actively announcing in failing, currently I have to force a reannounce and hope that libtorrent honors that request to get the error from the tracker. It would be nice if there was some way to see the last response from the tracker even when it is in a skipping state. Potential ways to do this:
Overall, I would opt for solution 1. But I am open to discuss other means of this and give my thoughts if you'd like. Let me know what you think of this. |
The current way the trackers are being update is either by adding a new torrent to the session (on startup or new one), or by changing the trackers. This leads to data not being updated in the `torrent.trackers` dict. To solve this, a cache mechanism was added which will update the dict on changes or every 5 seconds. This will help us also get an update regarding `lt.announce_endpoint` in each of the trackers.
As part of the changes needed for a more informative trackers tab in the UIs, we need the info for each of the trackers in the torrent. For this, new status keys were added, and `tracker_status` is now considered deprecated. For tracker info, the keys are: `trackers_status` - a dict of tracker_url->{status, message} `trackers_peers` - a dict of tracker_url->number of peers in the tracker `trackers_status` will contain the status of the torrent and also the message from the relevant alert.
does both the client and the daemon taken from this MR? because i have a backward compatibility functionality |
First, added trackers tab to the WebUI. Second, now we can view all the trackers and view each: * status * peers count * additional message Third, moved the private torrent info to the details tab. closes: https://dev.deluge-torrent.org/ticket/1015
f10a799
to
99dd3c2
Compare
Rebased and added the ability to click on links when using GTK. @zakkarry there are both a |
Status is whether the torrent is error'd or announcing (Announce Sent) or OK... Message is the response, so "Unregistered Torrent" or the like... |
In here I'll replace the
Trackers
tab to a more informative as can be found in other clients.closes: https://dev.deluge-torrent.org/ticket/1015