Skip to content

psychowood/ng-torrent-ui

Repository files navigation

Build Status Logo ng-torrent-ui

ng-torrent-ui is born as a replacement for the uTorrent WebUI, focusing on download management and responsiveness instead of covering each and every functionality. The use of virtual scrolling removes the need for paging even on a huge list (tested with ~15k torrents and growing... I'm too lazy to clean up the queue), also on a mobile device.

It is mainly focused on remote controlling the download list instead of trying to replicate each and every feature of the desktop application.

If you want to discuss or get support, here's the Google Community.

What if I'm not using uTorrent?

I'm looking for new servers to support besides uTorrent: if you want to give your opinion, you can use this poll.

Installation

Download latest webui.zip from the releases tab and copy it in the uTorrent directory. If you want to preserve the official version (which is included in the package anyway), rename the existing webui.zip instead of overwriting.

Mobile friendly

From a mobile device, you can pin the application (from the browser, select "Add to homescreen") and get a nice icon which will open in fullscreen with your favourite uTorrent webui ;) .

Self "Updating"

If you point to /gui/latest.html instead of the usual /gui, you will get the latest version as soon as it is released, without having to download and replace the webui.zip: the browser downloads the latest version for you, without touching the uTorrent install. There's a bug, you'll see the "offline" version number in the header instead of the loaded one, but the loaded version is correctly the latest one.

Demo

If you want to see it in action, you can test it on the demo page. It's just a demo with a randomly generated download queue, without a real backend. You can play with the frontend, just don't expect the downloads to change status or to complete :)

I feel brave, but I still need the old one!

Just in case you don't feel comfortable enough to completely leave the old way, or you are used to some features you don't want to leave (yet ;) ), the classic WebUI, v0.388 (latest version found in the official uTorrent forum) is embedded. It can be reached at /gui/classic/index.html and is also linked in the 'About' tab.

Development status

Notes

Current version is developed and tested on the latest version of Chrome with μTorrent 2.2.1 (build 25302), and tested for the main functionalities also on the current μTorrent version, 3.4.2. At a later time (possibly) other torrent applications will be supported.

If, for dev purposes, you want to test the app from sources without installing in uTorrent, you need to run

grunt serve --torrent-host=localhost --torrent-port=8055

replacing 'localhost' and '8055' with your utorrent hostname and port.

Translations

I managed to get many of the ui texts from the original uTorrent WebUI, this means that most of the interface is available in the following languages:

  • Albanian
  • Arabic
  • Belarusian
  • Bosnian
  • Bulgarian
  • Catalan
  • Chinese (Simplified)
  • Chinese (Traditional)
  • Czech
  • Danish
  • Dutch
  • English
  • Estonian
  • Finnish
  • French
  • Frisian
  • Gaeilge
  • Galician
  • Georgian
  • German
  • Greek
  • Hebrew
  • Hungarian
  • Icelandic
  • Italian
  • Japanese
  • Korean
  • Latvian
  • Lithuanian
  • Norwegian
  • Norwegian Nynorsk
  • Polish
  • Portuguese (Brazil)
  • Portuguese (Portugal)
  • Romanian
  • Russian
  • Serbian (Cyrillic)
  • Slovak
  • Slovenian
  • Spanish
  • Swedish
  • Taiwan
  • Thai
  • Turkish
  • Ukrainian
  • Valencian
  • Vietnamese

There are parts not translated yet, and I'll need help because I don't speak nor write most them (except for italian and english). If you know you can help, please contact me.

Release History

v0.7.1

  • Added: Highlight sorted value
  • Fixed: Drag'n'drop supported file types (some platforms did not accept .torrent files)
  • Fixed: Version not reported when opening a new issue
  • Fixed: Correct version number not shown when using Live version
  • Fixed: Load translations only once
  • First version distributed also via torrent

v0.7.0

  • Added: Persist filters and sort order when refreshing the page
  • Added: Download button (for completed files) from details dialog (requires uTorrent 3). You can also copy (long tap or right click) the link and open it in a video player to stream the file without downloading it (tested with VLC)
  • Added: Ratio column
  • Fixed: Reversed up/down queue buttons actions
  • Added: Error message on torrent loading (usually when session expired)

v0.6.7

  • Fixed: minor (major?) compatibility issues with non-Chrome browsers.

v0.6.6

  • Added: a second tap on lens icon (direct search) toggles between filter active/not active
  • Fixed: Some dialogs stopped working after last update (sorry about that)
  • Fixed: Select all checkbox in Details Dialog -> Torrent Files

v0.6.5

  • Added Fuzzy search (try to show similar torrents using a guess search: e.g. ignoring episode number and quality suffixes like '1080p'). This is the default when selecting the direct search button for non-starred torrents.
  • First steps to generalize ng-torrent-ui to be used with other apps besides uTorrent (sorry, live version will break for v < 0.6.5)
  • Minor fixes

v0.6.0

  • Added Direct search button: if selected on a favorite torrent, it will filter by its "favorite name"; on a non-favorite torrent, it will search by its full name
  • Added Actions menu (tap on the status column) with direct access to main actions
  • Fixed "live" version (resources moved to github-pages)

v0.5.6

  • Fixed social sharing dependency which prevented many providers from working correctly

v0.5.5

  • Added tap to label icon on torrent row to set label filter directly
  • Added long press/tap to select multiple torrents (same as shift key)
  • Added clickable QRCode with magnet link in details dialog
  • Added social sharing tab (shares magnet link, using a github page as a proxy to allow url shortening in twitter/faceboook/...). Not really tested besides the main socials.

v0.5.0

  • Added Save/Load Favorites to uTorrent, to sync data between different clients
  • Added Sort by Favorite status (starred torrents first/last)
  • Added Trackers in Detail Dialog
  • Added ETA column and in Detail Dialog
  • Fixed width problems on Firefox
  • Added preference to prevent filename automatic filtering of separators
  • Sort by Name when current sort is not available (e.g. queue position for completed torrents)

v0.4.5

  • Added "Favorites" torrents: define a set of tags that, will highlight all matching torrents. Define tags by tapping on the star or going into Preferences. Favorites are saved in cookies.
  • Revised preferences section (ng-torrent-ui, uTorrent, Advanced)
  • Added "Clear all filters" button
  • Show applied "label" and "status" filter
  • Updated dependencies

v0.4.0

  • Added "Preferences" tab to view and edit uTorrent settings
  • Added support for homescreen pinning (browser menu -> add to HomeScreen on mobile) with dedicated icon and fullscreen view
  • Added 'No label' filter
  • Added 'Status: error' filter
  • Fix for uTorrent bad character handling (caused crash of both ng-torrent-un and official WebUI)
  • Prevent text highlighting when selecting on grid

v0.3.4

  • Added 'availability' in grid (in seeds/peers column) and details dialog
  • Added 'added on' in grid and details dialog (uTorrent 3+)
  • Added 'completed on' in details dialog (uTorrent 3+)
  • Added 'save as' (download location) in details dialog (uTorrent 3+)
  • Better grid auto-height handling
  • Fixed minor typos

v0.3.3

  • Added selection for download location when adding a torrent (needs uTorrent 3+)

v0.3.2

  • Better responsive support (almost complete rewrite of the toolbar), support for multiple resolutions and fit longer texts (e.g. Russian translations)
  • Added tooltips for action buttons
  • Changed label presentation: added colored tag icon, works well for less than 16 labels. Label color is assigned based on torrent quantity, to preserve color between different sessions
  • Added self-updating url: point yout browser to /gui/latest.html to always get the latest version without having to update the webui.zip file! (BETA); needs internet access from the browser to work.

v0.3.1

  • Added: Server version in header
  • Fixed: Language not recognized before first set
  • Support for multi-value strings (caused problems with russian language) [thanks lukas-by]
  • Fixed: notification for newer version after update

v0.3.0

  • Added: Inherited translations from uTorrent resource files. Jump to 47 supported languages :) (Various strings missing, I'll need help from the community to complete the translations).

v0.2.9

  • Added: Report issue via mail
  • Added: Online new version check (using GitHub API to check releases)

v0.2.8

  • Added: Report issue in the About tab
  • Fixed: Touch not recognized on mobile devices in torrent details modal
  • Added: Remove label
  • Added: Create new label
  • Fixed: Set label for multiple torrents
  • Added: upload of torrent files (not supported for uTorrent 2.X)
  • Added: close button in torrent details modal
  • First tests with the current uTorrent (v3.4.2 build 37594)

v0.2.7

  • Added: change file priority and files filter in torrent details
  • Added: Global speed tracking
  • Better responsive reflowing

v0.2.6

  • Embedded the classic WebUI, v0.388, the latest version found in the official uTorrent forum. It can be reached at /gui/classic/index.html and is also linked in the 'About' tab), just in case you don't feel comfortable enough to completely leave the old way :) .
  • Added demo build process
  • GZipped files in the uTorrent release (less than half of the previous archive size)
  • Minor graphical glitches fixed

v0.2.5

  • Show primary label the grid
  • Show seeds/peers in grid
  • Show torrent details with properties and files list
  • Fixed name filter with spaces
  • Fixed non working actions (queue up/down, recheck)

v0.2.0

  • Got a brand new logo. Deserved a version bump. :)
  • Reference to G+ page
  • Multiple selection with Shift key modifier
  • New filter: Show only selected torrents
  • New filter: Filter by status (downloading, seeding, paused, ...)
  • L33t filter rewrite
  • Angular version upgraded to 1.3.6
  • Pruned unused dependencies

v0.1.0

  • Generinc information os download status (progress, size, current speed, queue position)
  • Reponsive design (mobile and desktop views)
  • Custimizable auto-refresh time
  • Non-paged list (virtual scrolling, on-demand rendering of a row, supports for high number of rows with limited impact)
  • Name filtering with l33t support ('arrow' finds both 'ARROW' and '4RR0W')
  • Label filtering
  • Basic name cleanup (replacement of . and _ with spaces, moving of [...] tags after the name
  • Basic operations (start/pause/stop/force/remove/queue moving)
  • Multiple selection of torrents, even on different searches, to apply batch operations
  • Add torrent by url (http and magnet)
  • Ctrl/Cmd multiple selection
  • Sortable headers (queue, name, downloaded %, size, up speed, down speed)
  • Travis builds integration

To dos

Not in a specific order.

  • Confirmation dialogs
  • Test with different browsers
  • Unit tests
  • Better error handling
  • Apply multiple name filters at the same time
  • Add a default action on each torrent in list (eg. If stopped -> start, if started -> pause, if paused -> resume, and so on)
  • Local storage (saving searches and webui settings)
  • Scene name parsing, estraction of tags (file format, languages, etc)
  • Use a fake-torrent in list to save client settings to the server
  • Documentation
  • Generalize API to allow the usage with different torrent applications
  • Code cleanup
  • Desktop notifications for supported browsers
  • Embed search engines
  • Support for multiple labels per torrent (undocumented API?)
  • Find a more 'personal' name
  • Any ideas? Tell me :)

Various

The base project was scaffolded with Yeoman.

Privacy

The main page includes a Google Analytics tag. It is just a counter for statistic usage (nothing else is tracked, neither the downloads nor anything else). The tag can be easily removed from index.html, if you believe this could be a problem just let me know.

Donations

This is developed during my free time so, if you are willing to offer me a beer and support this project, you are welcome :) You can donate with paypal in eur or usd, or using bitcoins @ 39iyJpmhkc3ZC66CNMERcu9N4HA1fdMxtB .

bitcoin address

Thanks to the ones that contributed! 🍺 🍺 🍺 🍺 🍺 🍺 🍺 🍺 🍺 🍺 🍺

Screenshots

The following screenshots are partially outdated: the look'n'feel is quite similar but are not 100% accurate and missing some functionalities. Please look at the demo page for an up-to-date version.

High res view (>1600px)

High res view

Standard view (>768px <1600px)

Standard view

Mobile view (<768px)

Mobile view

Torrent details - standard view (>768px <1600px)

Torrent details - standard view

Torrent details - mobile view (<768px)

Torrent details - mobile view