qbittorrent / qBittorrent

qBittorrent BitTorrent client
https://www.qbittorrent.org
Other
28.58k stars 4k forks source link

Use VueTorrent as the default WebUI #17504

Open GvY85 opened 2 years ago

GvY85 commented 2 years ago

Suggestion

I have been using the default WebUI for years but find it lacking in terms of usability on mobile devices. A more modern and fully functional alternative WebUI that works flawlessly on both desktop and mobile devices is VueTorrent

Use case

Alternative WebUI that is more modern and supports mobile devices.

Extra info/examples/attachments

68747470733a2f2f696d6775722e636f6d2f77654f4f49376e2e706e67 68747470733a2f2f696d6775722e636f6d2f5a636d393848332e706e67 68747470733a2f2f696d6775722e636f6d2f49556b61446e492e706e67 68747470733a2f2f696d6775722e636f6d2f33465a5458504c2e706e67 68747470733a2f2f696d6775722e636f6d2f5159704e4358732e706e67

NotTsunami commented 2 years ago

There was some previous discussion in #15281 about modernizing the UI, and the maintainers aren't even opposed to using an existing alternative web UI.

The problem is the lack of maintainer for it. Right now, the web UI is stable in terms of changes - it hasn't had any major refactors recently, staying roughly the same for some years now. It makes contributing much easier for old and first-time contributors since there's a good basis. Assuming someone actually contributes a new UI, they would also hopefully be able to commit to maintaining it as well. The main contributors primarily work on other parts of the project and learning a new system will take away from that, which is why a maintainer is hopefully part of the package.

Related to the choice of frameworks, I would vote for Vue. I have been working with Vue (Vue 2) at my job and it is fairly quick to pick up. Vuetify provides very nice material UI elements and I believe Vuetify 3 is nearing release pretty soon. Vuetify makes the UI design fairly easy, and you will love Vuetify if you hate CSS. I wouldn't mind contributing towards a new web UI, especially if it's written in something I have experience with, but it's not something I have the time to maintain at the moment. I may start a project for this, but I can't promise it will go places.

Aleksman4o commented 2 years ago

VueTorrent in amazing and i liked it, but if you have more than 20k torrents it would loads gui about a half hour and after each action you will be wait tooooo long.

Kolcha commented 2 years ago

tried this UI some time ago just out of curiosity and to compare with other implementations. it is at least usable, but it is definitely not suitable when you have many torrents (I had about 2k torrents), it is too slow and causes very high CPU usages like any other modern websites (aka "web apps") in most cases. also with this modern material design it uses screen space completely irrational (again, modern trends...), this is maybe fine for mobile, but definitely not for desktop.

so, due to above, this UI is suitable only when you need "some simple downloader" with only few torrents (thanks to this material design it is unusable/super inconvenient or even useless in case of even few dozens of items in the list), nothing more. this is definitely not a case for qBittorrent which is "advanced torrent client".

georgebutter commented 2 years ago

The old UI does have some benefits.

  1. Looks basically the same as the application
  2. Is performant
  3. Is stable

I would think that it would be best to grandfather out the old UI. I think that there are people that will still want to use it as it is. Would be ideal if it was possible to turn on/off the new UI

Nodens- commented 2 years ago

As I just recently switched from rtorrent+rutorrent and checked all of the alternatives, this is my stance on the subject: While the alternative WebUI options may look good, they have a LOT of disadvantages that should be considered blockers until solved.

  1. They are all extremely slow with large number of torrents
  2. None of them implement the bottom panel, making it very cumbersome to quickly check information on large number of torrents as it requires several clicks and waiting (when the option is even available) vs selecting the view and just clicking the next torrent.
  3. None of them implement all of the configuration options. Not even close to all, to be precise.

The original WebUI is fine and all it needs to become excellent is:

  1. Disk usage view per Category.
  2. Ability to view/get files from the bottom panel. Specially for .txt and .nfo
  3. A way to apply limits and pause torrents based on Categories/Tags/Trackers.
  4. A friendlier view for mobile browsers.
nelsonpecora commented 1 year ago

I think every web UI (default or alternative) will suffer from performance/scaling problems until there's a good path forward on the issues discussed in https://github.com/qbittorrent/qBittorrent/issues/16829

Something like paginating /sync/maindata, or adding client-shaping (e.g. ?fields=) to /sync/maindata and /query/torrents, would allow any client to intelligently request exactly the data it needs, which would potentially be a lot less than they fetch currently. That would allow for a number of performant patterns like pagination, lazy loading, etc depending on the client's UX.

I could also see an argument for having a bit of middleware between the WebAPI and an alternative UI, where the middleware would utilize pagination and shaping to fetch and cache data from the WebAPI, then serve something like GraphQL subscriptions (or other websocket-based patterns) to the client.

terrytw commented 1 year ago

Everyone has their own unique use case. But I believe the most obvious problem right now is the lack of mobile support. Though I do not believe using vuetorrent is the right way to go.

Pentaphon commented 5 months ago

I'd rather keep the existing WebUI because it matches the desktop UI and keeps all the features we need. If somebody wants Vuetorrent, the option is there.