Git Product home page Git Product logo

trguing's Introduction

TrguiNG

Remote GUI for Transmission torrent daemon

GitHub release Downloads Lint status

logo

TrguiNG is a rewrite of transgui project using tauri. Frontend is written in typescript with react.js and mantine library. Backend for the app is written in rust.

You can use this program in 2 ways: as a native Windows/Linux/Mac app and as a web gui served by transmission itself by setting $TRANSMISSION_WEB_HOME environment variable to point to TrguiNG web assets.

There are screenshots of the app available on the project wiki.

Some differentiating features:

  • Multi tabbed interface for concurrent server connections (native app only)
  • Torrent creation with fast multi threaded hashing (native app only)
  • Powerful torrent filtering options
  • Latest transmission features support: labels, bandwidth groups, sequential download
  • Dark and white theme

Planned:

Transmission v2.40 or later is required.

Compiling

Prerequisites:

  • Node.js 16 or later
  • rust 1.69 or later
  • Geoip lookup database in mmdb format, put it in src-tauri
    wget -nv -O src-tauri/dbip.mmdb "https://github.com/openscopeproject/TrguiNG/releases/latest/download/dbip.mmdb"
    
    You can get latest db from db-ip.com.

To compile simply run

$ npm install
$ npm run build

This will generate optimized bundle in dist and a release binary in src-tauri/target/release folder. Also installer package will be available in src-tauri/target/release/bundle/....

The binary is statically linked and embeds all necessary assets except for the geoip database. It is completely self sufficient and can be used as a portable executable but for geoip lookup to work you need to install the app with provided installer.

For development run in parallel

$ npm run webpack-serve
$ npm run tauri-dev

Webpack will automatically watch changes in src/ and refresh the app view, tauri will watch changes in src-tauri/ and rebuild/restart the app as needed.

How to use TrguiNG as a web interface

Transmission supports custom web interfaces, all you have to do is run the daemon with $TRANSMISSION_WEB_HOME variable pointing to the web assets that transmissinon will serve over it's .../transmission/web/ endpoint.

Example steps for debian:

  1. Download latest trguing-web-xxxx.zip zip from releases page.
  2. Unpack it anywhere, make sure that the user transmission runs under (by default debian-transmission) has read permissions.
  3. Edit transmission daemon systemd unit file /etc/systemd/system/multi-user.target.wants/transmission-daemon.service and add following to [Service] section:
    Environment=TRANSMISSION_WEB_HOME=/path/to/extracted/trguing/zip
    
  4. Reload the unit file with sudo systemctl daemon-reload and restart the service sudo systemctl restart transmission-daemon

License

Project is distributed under GNU Affero General Public License v3, see LICENSE.txt for details.

trguing's People

Contributors

dukobpa3 avatar jpovixwm avatar qu1ck avatar username227 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

trguing's Issues

Add ability to resize / auto-size columns

Currently (v0.5.0-dirty) all columns have the same width and there are no column separators to drag / resize columns.

But otherwise good alternative gui.
Thank you.

Wishlist: Trackers Injection from static trackers list

There is an up-to-date trackers list.

The proposal / idea is to add something like Inject trackers menu item to context menu of Trackers Tab. The list could be chosen / set in settings or as a sub-menu to the above context menu item.

As far as I am aware no other app offers similar functionality so this could a unique feature.

Add full-size home screen icon for Firefox/Chrome users?

Since this is a WebUI rather than a simple webpage, I think it needs a full-size new tab page icon along with the favicon for the tab.

Can we get a full-size icon for the new tab page like the one Trakt has in the below screenshot? Here's how it currently looks on Firefox.

ff

Add Transmission icon as favicon for tab

There's no favicon for the tab in the WebUI. Please add it to the tab the WebUI is in, along with perhaps, the transfer speed? It currently only shows the network location of the GUI.

Right-click does not select

In the main table when you right-click a torrent, it does not select that torrent.
This is annoying when there's no torrent selected yet because you have to left-click first and then right-click.
But it does really lead to unexpected results when a torrent is selected and you right click on a different one; the context actions will affect the selected torrent even though you clicked a different one.

Make statistics readable without scrolling in 3-pane layout on small screens

When the 3 pane layout is activated, the statistics panel, at least on my layout, needs to be scrolled to be completely read.

This is a small piece of information and it should be fully readable without scrolling, even on a small panel, but you need to scroll just to read the whole thing. Any chance you can optimize the layout of the statistic? Maybe lay it out horizontally rather than vertically? Make 2 columns side by side, 1 for session, 1 for cumulative? Perhaps make it 2 column when the pane is made smaller but keep it the same when it gets bigger?

Or...maybe make the statistics window pop up a tiny window in the middle of the screen like the official client does instead of using the 3rd pane at all?

stat

Reassign double-click function for web-ui users

When double-clicking a torrent in the web-ui an error pops up, saying "Error opening path". Doubtful that'd be possible to do from a browser, so instead it'd be nice to implement another function for double-click (or at least remove the current function to prevent confusion).

Some ideas for other double-click functions would be start/stop the torrent or open the properties window for the torrent.

Not able to run on macOS Apple Silicon version

Getting - “TrguiNG” is damaged and can’t be opened. You should move it to the Trash.
Checked settings - security and app not appearing there as it normally would in similar cases.

Scrolling through Torrents

Hi,
There doesn't seem to be a way to scroll through torrents on the list by pressing the up and down arrows. (Unless i'm just being stupid, which is possible). If you could enable this, it would be helpful. Thanks!

Display verification progress percentage

When I add a large (100GB+) download and force the file verification on it, it can take a while. Currently only the icon and status indicate the verification, but Done % always stays at 100%.

Most clients that I've used display the progress of verification in the Done column. It it possible to add here?

Ability to "select none" and "select all" in a torrent's files tab?

Right now, we have to check the box for each file individually to select or deselect all the files when adding a torrent or in the files tab. It would be nice to have:

  1. A shortcut to select none of the files in the files tab (so we can quickly select just 1 file we want after that)
  2. A shortcut to select all of the files in the files tab (so we can select all the files with one click if we want to reverse selecting none)

Thanks.

An expanded flags column for Peers

Something I really wanted in other clients is for them to decipher the Peers tab's flags column for me. Really bad at memorizing them. Could have a separate column for it. Plenty of width real estate in that tab since there isn't a lot of other information, so it could be comma separated string for each flag. Flag meanings

Like this for "K?I":

"Unchoked by peer but not interested, unchoked peer but not interested, incoming"

Allow adding .torrent file to fortify existing transfer

A nice feature from Transmission (and Transmission Remote GUI) is the ability to add .torrent files to existing transfers. If it's an existing magnet transfer, this adds the metadata and trackers. If it's an existing normal transfer, it adds any trackers from the .torrent file that aren't already on the transfer.

Currently in TrguiNG, this doesn't work and instead shows this:
image

Method Not Allowed

I am running linuxserver transmission on docker
I cant connect, I get the following error

Failed to load session
Server returned error: 405 (Method Not Allowed)

Port test functionality is confusing

When using the test port function to check if the listening port is forwarded correctly, it will always check the old port, no matter what is in the listening port input field.

To clarify:
I switched VPN providers, and thus my listening port had to change, too. I went to change the listening port in trguing's settings, but when I typed in my new port, the check failed. Turns out, I firstly needed to click "save", and only then would the test be performed on the new port. It took me a few minutes to figure out and it is not very intuitive.

Double click column divider to auto resize column

I would love the ability to double click the column divider to auto resize the column to the size of the longest row. I am coming from Transmission Remote GUI and it is a very small but very appreciated quality of life feature.

Thank you for the work you've done so far :)

Can't compile latest version

Interestingly, I cannot compile the latest version, even though I'm not doing anything different. I get the following error message:

Compiling zbus v3.14.1
error: failed to run custom build command for trguing v0.6.0 (/home/jerry/TrguiNG/src-tauri)

Caused by:
process didn't exit successfully: /home/jerry/TrguiNG/src-tauri/target/release/build/trguing-f63017be5a7c8708/build-script-build (exit status: 1)
--- stdout
cargo:rerun-if-env-changed=TAURI_CONFIG
cargo:rerun-if-changed=tauri.conf.json
cargo:rustc-cfg=desktop
path matching dbip.mmdb not found.
warning: build failed, waiting for other jobs to finish...
Error failed to build app: failed to build app

Any idea if anything changed that might cause this?

Feature Request: Ability to collapse/hide filters?

Say I don't want to see the status filters all the time and it takes too much space, can we have the ability to collapse the filter by say clicking on the title? Or an arrow that clicked, points right or down to show whether the filter has been collapsed or open?

Windows and Linux remote path mapping conflict

I use TrguiNG client on Windows 11, and Transmission server on Docker (Linux). My downloads folder path inside the Docker container is /downloads, and on Windows it is mounted under \\DISKSTATION\homes\enchained\downloads. I mapped them together in the TrguiNG settings.

When I try to open a remote folder on Windows, TrguiNG gives me this error:

Error opening path
\\DISKSTATION\homes\enchained\downloads/sonarr/my-downloaded-folder

This folder can be manually located at this path in the Windows Explorer:

\\DISKSTATION\homes\enchained\downloads\sonarr\my-downloaded-folder

Looks like the subfolder paths given by the Transmission server should be converted to the ones compatible with the host system of the TrguiNG client.

Can't deselect with Ctrl

I'm used to selecting multiple torrents in transgui, so the first thing I noticed here is that if I'm selecting torrents one by one with the Ctrl key, I can't deselect one if I selected it by mistake.

Slight GUI issues I also noticed:

  • When torrent details load for the first time at the bottom, it "blinks" and tabs "jump" vs previous selected torrent. Especially noticeable when doing the multi-selection. Transgui felt more static in that regard. Maybe some placeholders could make the loading look more smooth.
  • I'm used to seeing the free space at a glance, but here it feels harder to focus on specific parts of the status bar. Maybe some spacing and separators could improve the readability a bit?

Other than that, TrguiNG looks and feels simply amazing. Will keep testing. Please, keep up the good work!

I was also wondering, did you ever consider supporting other clients, like qBittorrent? I feel like there's close to none native apps for other clients, and Electorrent doesn't have path mapping or location selection, sadly.

Some issues with 0.3.0

Thanks for releasing 0.3.0. With the tracker filter it has already made it to the top of my Transmission remote GUI's list.

Some issues I found:
-Ctrl-A behaviour:
Ctrl-A will select everything in the bottom pane, and that selection will remain when clicking on a different torrent.
Expected behaviour: Select all torrents in the main table.

-Hiding a filter section keeps the filter active:
Let's say you selected tracker A in the tracker section, when you then hide the tracker section you still only see torrents from tracker A.
Expected: hiding a filter section should disable the filter.

-Seeds and Peers columns only show 'connected' seeds/peers:
Most torrent clients will show 2 numbers per column: connected and total
Connected Seeds/Peers is 0 most of the time.

-Ratio column is left aligned:
Other 'number based' columns are right aligned.
It's difficult to see column separation when there's a right-aligned column to the left af the ratio column.

Using different icons for "not started" and "fully downloaded" when stopped

Currently, whether I add the download without starting it, or the download completes itself and stops, they both have the same yellow icon, and cross-checking the progress bar is needed to see if it's actually done.

I'm used to a different (green checkmark) icon for completed+stopped downloads in transgui, and I'm wondering whether it would be possible to add here?

Add torrent by magnet link does not reset the previous link

My first thought was that it was an auto-paste from the clipboard, but looks like it was the link I entered before that.

I think it would be also nice to have an auto-paste in that dialog, with an indication that the link was pasted from the clipboard, but only if it's an opt-in setting and not the default behavior, since not everyone likes that.

Seeds/Peers column sorting

Thanks for adding the totals to the Seeds and Peers columns.
But the sorting behaviour of these columns isn't optimal yet. As far as I can see the totals aren't used for sorting.

IMO sorting a la qbittorrent is best: connected first, total second:
1 / 12
1 / 10
0 / 35
0 / 24
etc.

Some clients sort by totals alone which is still better than by connected alone.

Tidy up X buttons in pop up windows

Here's what they look like on 0.7.0. It seems a bit off center, cutting off the button outline, making it tougher to click on a smaller screen. Can we get these more centered, and maybe a little bigger so they are easier to click? People might not have the same issue as I do, but as you can see from the screenshot, the X button could be tweaked a little to make it more centered, neat and more clickable.

corner

Edit: also noticed this typo in the edit torrent properties window.

seess

Can't add Ubuntu torrent with torrent file uploader but can add it via http link

Not sure if this is reproducible but it happened to me. Latest Firefox on Windows 11 using Transmission-daemon 4.0.3

Admittedly, this torrent is known to connect slowly with Transmission as per transmission/transmission#4916 but it never fails to add to the Qt or GTK client. Also, I tried TransGUI and tremotesf and it adds just fine there too.

https://releases.ubuntu.com/23.04/ubuntu-23.04-desktop-amd64.iso.torrent

  1. Try downloading this torrent file to your PC and then use the torrent file uploader. It simply won't add. The add torrent prompt won't even come up.
  2. Now just paste the link into the add link function and the torrent will add just fine. The add torrent prompt comes up. No issue at all.

Very strange. Not sure why it wouldn't just work.

I've tried this with other public torrents like the popular MX Linux torrent: https://l2.mxrepo.com/torrents/MX-21.3_x64.iso.torrent and there's no issues with it whatsoever. Just the Ubuntu torrent seems to have issues.

Idea/Draft PR: Peers list badges

I really liked the badges used in the Files tab and wanted to see if they could spruce up the Peers tab. No discussion section in this repo, so made an issue.

I tried it on some candidate columns that seemed to be natural candidates (those with only 2 or 3 possible values). Not sure if you had a philosophy behind using badges and this tramples on it, but it's a nice way to differentiate between these few values by color. Let me know what you think.

image

Tracker status showing "working" for certain tracker errors

It appears as though the tracker status column interprets "working" a bit too literally.

In one particular example, I have a few torrents that are no longer registered with their respective trackers. By definition, the tracker is working in those torrents, but clearly not in a way that's desirable (simply returning a message about the torrent being unregistered).

Here's an example:
image

As for a way to solve this, I suggest adding an alternative style of tracker status column (something like tracker message) that returns the error, if there is one, and when there isn't - the tracker message is returned. Or the current tracker status can be modified for this behavior, as I don't see any benefit to the current functionality.

Feature request: Even more powerful filtering options

This looks like a promising project that has the potential to replace RemoteGui and Tremotesf.
But I'm a bit bit underwhelmed by the 'Powerful filtering options'.

The lack of a Trackers section is a deal breaker for me.

And there are two features from tremotesf that would be really nice to have:

  • Combine filter sections (e.g. see all Active torrents from directory x)
  • Enable/Disable a whole section

Don't show subdomains in tracker filter list

Please remove the subdomains from tracker filter list view.

For example, if the announce URL is tracker.privatesite.org, the only important parts are the top-level and 2nd level domain, so it should be shown only as privatesite.org. Why?

  1. It saves space on the tracker filter view panel since the URLs are now all shorter by not showing the rather useless subdomain.
  2. It creates a more uniform filter view list since some announce URLs have subdomains and some do not, making it more readable.

This is especially useful for private trackers which use all sorts of announce URLs as well as people who add many public announce URLs to their torrents.

Thanks.

Allow setting time/date locale

Would be great if it was possible to select between 12/24H time and dd/mm/yyyy or mm/dd/yyyy

Other than that, absolutely spectacular project. This can finally replace transgui for me. Thank you!

Removing some clutter

There are some mostly implicit/useless values that will help remove clutter (as by example from the older Transmission Remote GUI project):

  • Show blank instead of "Unknown" for ETA
  • Show blank instead of "never" for last active
  • Show blank instead of -1 for ratio of magnetized torrents

Several minor issues

I'm very impressed with this new beta program. It looks new and fresh, and shows real promise. a few minor issues. For context, I'm using Arch and Cinnamon.

  1. when the program is minimized to the tray, it still says "Hide" instead of "show" in the taskbar icon. In order to masximize the program, I need to first "hide" it even though it's already hidden and then show afterwards.

  2. I tried adding a couple of torrents that I believe were already on the server, and it did not give me a message that they were already added. It seems like it was attempting to add it again.

Add drag-and-drop support for adding new files

Currently there is no way to drag-and-drop a torrent file (at least on v0.3.0 in Windows 11), and you can only add it via Add torrent file button. It would be nice if we could drag the files from browser downloads or a folder to the client window, like with transgui.

Updating from installer on Windows fails if installed to Program files

When using the exe installer without the administrator rights, if the app was already installed to a protected folder like Program files:

  • If you choose the default option "Uninstall before installing", after uninstall it gives an error "Unable to uninstall" unless you manually launch uninstall from administrator beforehand instead (launching the installer itself from administrator did not help with this one). Not sure how best to solve it, maybe detect existing install folder permission and prompt to launch uninstaller with administrator rights?

  • If you choose "Do not uninstall", it gives the "Error opening file for writing" error. Similar solution with offering to relaunch the installer itself with administrator rights may be possible when a protected folder is detected.

Currently, looks like the only working way to update the app in the protected folder is:

  • Find and run uninstall.exe manually from administrator (optional?).
  • Run new version installer manually from administrator.

This is not a critical issue and probably can be completely avoided by installing to AppData, but still worth mentioning at least.

I also wonder, what is the proper way to update - with uninstall, or just rewrite is fine, since the installed app is packed into a single exe?

If the solution is a hassle to implement, release notes could mention this moment (or a wiki with errors one can encounter), cause it might be confusing to some users with the current installer implementation. Also it might be worth mentioning the exe vs msi installer difference in the release notes.

minor UX quibbles

All the below relate to Windows version 0.6.0:

  1. control-r reloads the entire UI instead of reannouncing selection
  2. up/down arrows scroll instead of changing the selection
  3. control-i clears the current filter selection

Perhaps 1 & 2 both stem from the Windows app being built on web tools...

Inflated number of seeds/peers

I know there's no optimal way to know the exact number of total seeds and peers for a download, but the current strategy of adding all the seeds and peer numbers from all the trackers seems a overly optimistic :)

Transmission Remote GUI seems to use the maximum number for each from the trackers instead, which seems like a good compromise since usually the overlap between their common seeds/peers is close to 100%. Thoughts?

Some (perhaps Mac-only) ideas

Beautiful app, already nicer looking than the mess that Transmission Remote GUI is.

Here are some issues/complaints I've found:

  • Command + clicking torrents doesn't select them like it's supposed to do in Mac apps. Tried Ctrl + click since sometimes developers don't localize to the Mac, and it worked, but it also clashes with Mac's Ctrl + click = right click functionality.
  • Speeds that are 0 should be hidden to avoid clutter (like Transmission Remote GUI does)
  • Last active could be displayed as a "2h ago" instead of the bare datetime
  • And of course, opening .torrent files with this app doesn't work

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.