Code Monkey home page Code Monkey logo

vuetorrent's Introduction

VueTorrent

The sleekest looking WebUI for qBittorrent made with Vue.js!

Discord

VueTorrent

Vue Vuetify qBittorrent

stars Forks Issues Closed Closed PR Version Test Status Downloads Contributor Covenant

Screenshots

  • Desktop

Screenshot Desktop (Light Mode)

  • Desktop Dark Mode

Screenshot Desktop (Dark Mode)

  • Mobile

Screenshot Mobile Dashboard (Dark Mode) Screenshot Mobile Dashboard (Light Mode)

Demo

A live demo with mocked data is available here: https://vuetorrent.github.io/demo

[!NOTE] This version isn't connected to a qBittorrent instance.

Don't try to download torrents or change preferences, it won't work 😉

Installation

Checkout the wiki!

Development

  • Clone the repo
  • npm install
  • npm start
  • npm run lint (to format the code)
  • docker-compose up -d (starts a qbittorrent docker, optional)
  • Open the WebUI on localhost with the default credentials
    • Default username is always admin
    • Default password is adminadmin on 4.6.0 and below, and is generated in logs on 4.6.1 and above
  • Make sure "CSRF protection" and "Host header verification" is disabled in the qBittorrent preferences
  • Edit env.development to tweak your dev environment (e.g. mocked data)

Features

  • Torrents
    • add / remove / pause / resume / rename torrents
    • selectively download files
    • view info / trackers / peers / content / tags & categories
    • search for new torrents straight from the WebUI!
  • Keyboard shortcuts!
    • Mac keymap is supported (use Cmd instead of Ctrl)
    • Press Escape to dismiss any dialogs or to return to Dashboard view
    • Dashboard
      • Select all torrents with Ctrl-A
      • Focus search input with Ctrl-F
        • Press again to enable native browser search
      • When no dialogs are opened, press Escape to unfocus search input
        • Press again to unselect all torrents
      • Delete selected torrents with Delete (Fn-Backspace on Mac)
      • Ctrl-click on a torrent card to enable multi-select mode
      • Hold Shift and click on a torrent card to select all torrents between the last selected torrent and the clicked torrent
  • System
    • see session stats (down / upload speed, session uploaded / downloaded, free space)
    • beautiful transfer graphs
    • change the most common settings
  • Extra features the default WebUI doesn't have
    • mobile friendly! (can be installed as a PWA)
    • Configureable Dashboard: choose which torrent properties are shown for both busy and completed torrents
  • Optimized for the latest version of qBittorrent
  • Additional backend for improved experience, see the repo for more info
    • This is a work in progress, and is not required to use VueTorrent
    • Stores server-side settings
  • Supports qBittorrent Enhanced Edition preferences

Important Information

VueTorrent is a WebUI (think of it as a "visual skin") that uses qBittorrent's API, enabling compatibility with automation solutions like the Servarr stack.

Everything that is compatible with the classic qBittorrent WebUI will work regardless of the WebUI you chose to use, whether its VueTorrent or another one.

Contributing

We gladly accept contributions!

Any help is appreciated, whether it's reporting bugs, suggesting enhancements, contributing code or localizing the app.

See the Contributing Guidelines for more information.

Support

  • Discord
  • Wiki
  • FAQ

If any of the above didn't help, feel free to open an issue!

See the Contributing Guidelines for more information.

Funding

All donations are appreciated but purely optional.

Checkout the sponsor section of the repository.

Contributors

vuetorrent's People

Contributors

aman207 avatar anteus avatar caseyscarborough avatar dependabot[bot] avatar dongfengweixiao avatar flashlab avatar fredkilbourn avatar giacomocerquone avatar github-actions[bot] avatar ianlot avatar ievgensobko avatar invakid404 avatar jagadam97 avatar jef avatar jlucansky avatar khw15 avatar larsluph avatar lyaschuchenko avatar m4ximuel avatar moius avatar nitinramnani avatar pkc278 avatar reysonk avatar tadasvosylius avatar tmayoff avatar tuur29 avatar ulasozguler avatar vewion avatar wdaan avatar yunyuyuan 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vuetorrent's Issues

Tabs Trackers, Peers & Content are empty

The tabs Trackers, Peers and Content on the "Show info" window show empty or "No data available" when opened.
When you open them a second time, the data is shown correctly.

Unacceptable file type, only regular file is allowed

Hello,

I followed the instructions for this which are pretty straightforward, but once I pointed QB to it, I get the error of

Unacceptable file type, only regular file is allowed

I am on v4.2.1, which had some fixes in it regarding the public/index.html but I still get the same error

I saw previously in issue #5 that it was a separate app, is this still the case? The instructions just have you point the alt webui in qb, but that didn't work here.

Thanks!

Consistent height for Torrent Detail modal

The Torrent Detail modal currently switches height depending on which tab is being looked at.

It would be good to have some consistency, that way one can navigate to the sides whiteout having to chase up and down with the mouse.

On top of that, the 'Info' and 'Content' tabs seem to be too small for their content. Right now it occupies around 25% of the height of my browser window, while the remaining 75% is wasted space.
That also makes it take too much time to navigate the content tab for torrents with many files, as we have to scroll a lot.

Would it be possible to fix the max/min height to the same value?

If you don't agree with having the size constant for all tabs, maybe at least change the Content one to make file navigation easier.

Maybe changing
components/Modals/TorrentDetailModal/Tabs/Content.vue
v-card-text style
so instead of '500px' is something like 60, 70 or 80vh ?

Maybe being in px is not scaling properly to my screen resolution, it seems like taking advantage of something like 70% of the viewport size would be best, as we are not interacting with the rest of the page when looking at the modal.

Thanks,

Change `moving` torrent state

Description

Perhaps we can either put this under the Downloading or give it it's own name. Not sure if this is common use case enough to pull it in or change it, but I feel like it could be more accurate.

This is use case is mostly relevant to those who download torrents in different folders and move afterwards.

diff --git a/src/models/torrent.js b/src/models/torrent.js
index 6799900..9586286 100644
--- a/src/models/torrent.js
+++ b/src/models/torrent.js
@@ -47,8 +47,9 @@ export default class Torrent {
         case 'checkingDL':
         case 'checkingUP':
         case 'checkingResumeData':
-        case 'moving':
             return 'Checking'
+        case 'moving':
+            return 'Moving'
         case 'unknown':
         case 'missingFiles':
             return 'Fail'
diff --git a/src/models/torrent.js b/src/models/torrent.js
index 6799900..767a212 100644
--- a/src/models/torrent.js
+++ b/src/models/torrent.js
@@ -29,6 +29,7 @@ export default class Torrent {
         switch (state) {
         case 'forceDL':
         case 'downloading':
+        case 'moving':
             return 'Downloading'
         case 'metaDL':
             return 'Metadata'
@@ -47,7 +48,6 @@ export default class Torrent {
         case 'checkingDL':
         case 'checkingUP':
         case 'checkingResumeData':
-        case 'moving':
             return 'Checking'
         case 'unknown':
         case 'missingFiles':

I can make a PR if you think this is fine.

Thanks!

is cool

How to use it in windows?

[feature] file priority & edit tracker list

I love VueTorrent and everything has been great but it'd be nice if we could set priority to each file like in the app and also editing the tracker's list because I find myself using those two frequently. Thanks!

[Feature Request] Support for Sorting by / Viewing / Modifying Priority

Hi there! I was checking out some alternative WebUI themes for qBittorrent, and I found VueTorrent. It's gorgeous and easily the most beautiful of the WebUIs out there, but it is lacking in one notable area - priority support. While you can sort by priority in the menu, you are unable to alter or view the number of a torrent.

Are there any plans to add modifying / viewing the priority of individual torrents to VueTorrent?

Thank you!

Downloadspeed shows as NaN on the graph while nothing downloading

Downloadspeed shows as NaN on the graph while nothing downloading.
I noticed you tried to fix this before, but on V0.2.0 downloadspeed on the graph still shows NaN when no downloads are active (only seeding entries).

Also the header off the mouse-over pop-up shows a number (from 1 to 15), without explanation. Maybe you want to invert this (15 minus current value) and add ' seconds ago'.

Thank you

Just want to say huge thanks for making this. This is AWESOME! 🚀

Sort by Added On

Is your feature request related to a problem? Please describe.
Unable to sort by Added On.

Describe the solution you'd like
I would like to have the ability to sort by Added On, and ideally set this as a default.

Additional context
My typical use-case for a WebUI is to check on the status of my most recently added torrent(s) (whether added by the WebUI or automatically via sonarr, radarr, etc). I have been unable to find a way to accomplish this. That's the one thing holding back from using any of the handful of good looking WebUi I've seen.

Thanks!

Add Keyboard navigation in Torrent Details - Content tab

Example:
Torrent with multiple files where we don't want to download all of them.
Right now, one has to scroll down and click one at the time, it would be way quicker if we could navigate with down/up arrows and use the spacebar to select/deselect.

Being able to hold shift to select from one file to another one would also be great.

Thanks,

Context menu cut off at the bottom of the screen

On mobile if I long press an entry on the dashboard, the context menu opens. If I do this on an entry at the bottom of the screen, the last three options (reannounce/delete /delete with files) are cut off.

All torrents are invalid torrents

Description

It seems like all torrents are invalid when adding. I switched back to use the old UI and it worked (just to make sure qBittorrent wasn't goofing up, I had to roll back to 4.2.x for something else).

image

Create a torrent

First of all I really love your project, its the first time I've seen such a amazing WEBUI ! ;)

The possibility of creating a torrent ? It would be great if you could add that.

Ty.

Seeding shows as failed

Same as #21 : While seeding an entry shows as failed.

Edit: I noticed the status only shows 'fail' while actively uploading. While seeding but idle the status shows 'done'

Request: Number of items in Dashboard view

Hi,

I would first like to thank you for doing such a great and simplistic WEBUI. I see a lot of people appreciate it as well and with good reason.

I wanted to ask/request for future releases, if it is possible, to add an item counter for dashboard? Would be great to have a way to display number of items in view (thinking about filtering/searching here as well) and maybe selected/total items when selection is applied to one or more items? That would be great.

Thanks.

Redirect error when hosted on domain path

when hosting the ui on a domain path/folder... the redirect url becomes the folowing:

domain.com/login?redirect=%2Fqbittorrent%2F

it should be something like this

domain.com/qbittorrent/login?redirect

the nginx config that was used:

location /qbittorrent {
  return 301 /qbittorrent/;
}

location /qbittorrent/ {
  include /etc/nginx/snippets/proxy.conf;
  auth_basic "Password Required";
  auth_basic_user_file /etc/htpasswd.d/htpasswd.$remote_user;
  proxy_set_header        X-Forwarded-Host        $server_name:$server_port;
  proxy_hide_header       Referer;
  proxy_hide_header       Origin;
  proxy_set_header        Referer                 '';
  proxy_set_header        Origin                  '';
  add_header              X-Frame-Options         "SAMEORIGIN";
  rewrite ^/qbittorrent/(.*) /$1 break;
  proxy_pass  http://$remote_user.qbittorrent;
}

Request: Different view for downloaded entries

I hope you don't mind me posting ideas on how to improve this project.
This one especially might be tricky and subject to personal preferences.

Would it be possible to show different labels on a dashboard entry depending on the download status (like percentage downloaded)?

If so, I would love for an entry still in download (no matter the status) to see:

  • Torrent title
  • Size
  • Done (MB/GB and/or percentage)
  • ETA
  • Status
  • Category
  • Download
  • Seeds

And for entries that are fully downloaded (not matter the status):

  • Torrent title
  • Size
  • Ratio
  • Status
  • Category
  • Upload
  • Peers

Hope you like the idea...

search support

This is more a feature request than an issue, but would it be possible to implement torrent search (that searches sites) ?

Problem with older versions of qBittorrent?

I was searching for alternate WebUI's for qBittorrent and found this, so I installed it. At first it worked, with a few minor problems, but it worked. Then I tried to access it with my phone and got "Unacceptable file type, only regular file is allowed.". Next time I refreshed the page on my PC I got the error there too. Since then I wasn't able to get it to work (yes I've seen #10).

So my assumption is that the newest version of VueTorrent doesn't like older version of qBittorrent (I'm on Debian 10, qBittorrent 4.1.5)?

Could you please add the category

First of all I want to let you know I love the looks of the WebUI you made! My compliments!

I have a suggestion, in case you take them:
Could you please add the category to the view?

I use categories a lot, so a webUI without the category is'n very helpfull to me.
For example: some of my media managers change the category on an imported download to imported. This way I know it's save to remove manually after the upload ratio is reached.

So just a column showing the category on the main view would do.
Thanks. :)

Inconsistent naming: Done/Progress

While I was trying to sort the torrents by Done (percentage of total filesize downloaded) which is visible on the main dashboard I noticed there's no such option in the sort select list.
However, there is an option named 'Progress', which I believe is the same, but with a different name.

I think it's better if you choose either one of them for both the main dashboard and the sort select list.

Haven't checked for the other select options/labels.

Text not visible on selected entries in dark mode

If you click an entry, an overlay shows to mark it as selected. However, in dark mode, the overlay makes the background of the entry the same color as the labels on it. So it's no longer possible to see the labels of the entry, which makes it harder to view the state.

[Feature Request] - Add "uploaded" and "session upload" & speed in titlebar

Hi WDaan,

First of all, thx for that great interface for qbittorrent, best looking one I've seen.
I miss 2 features from the original interface.
Is it possible to add the the equivalent of the 2 columns "uploaded" and "session upload" in the vuetorrent dashboard options ?

Also, the option speed in titlebar is a good feature to have if it's possible.

Thanks for all your work.

Sorting/Filtering

The input field "type to sort..." actually filters instead of sorts the entries.

Javascript error on delete multiple files

Hello, I cannot delete multiple files (without disk file removal).

A javascript error occured in console on the deletebutton click.

Web browser Firefox 84.0.1 (64 bits)
OS Windows 10 familial 19041.685
VueTorrent 0.4.7

VueTorrent_bug

Seems like the t is undefined refers to something in the above functions

qbit.js

  deleteTorrents(hashes, deleteFiles) {
    if (!hashes.length) return
    
    return this.torrentAction('delete', hashes, { deleteFiles })
  }

ConfirmDeleteModal.vue

deleteWithoutFiles() {
      qbit.deleteTorrents(this.selected_torrents, false)
      this.close()
    }

Dark mode

how to enable dark mode by default?

Right-click context menu doesn't close when opening another

If you right-click on an entry, a context menu is opened.
If you right-click on another entry, a new context menu for this entry is opened, but the previous one doesn't close.
You can repeat this for all entries and you'll end up with a context menu for every entry.

image

Add qBittorrent version

It'd be nice to have the version printed somewhere. Can't really suggest where, but perhaps somewhere!

Comment field support

In the default web UI, in the torrent info box, there is the "Comment" field which is often a URL to the tracker (this is determined by the tracker, but where it is implemented, it is very convenient):
image

Sadly, this field is not visible in VueTorrent. Is it possible to add it to the client? Thank you very much!

Unacceptable file type, after loging out or restarting the server

I get Unacceptable file type, only regular file is allowed, when I log out and try to log in again after setting VueTorrent as the alternate UI.
After disabling alternate UI, loging in, and setting the alternate UI it works again, until I log out or restart the server.

My config:

WebUI\AlternativeUIEnabled=true
WebUI\RootFolder=/usr/local/etc/VueTorrent/

The permissions:

$ ls -la VueTorrent/
total 20
drwxr-xr-x 4 root root 4096 Dec 17 12:35 .
drwxr-xr-x 4 root root 4096 Dec 17 12:35 ..
drwxr-xr-x 8 root root 4096 Dec 17 12:35 .git
drwxr-xr-x 5 root root 4096 Dec 17 12:35 public
-rw-r--r-- 1 root root  213 Dec 17 12:35 README.md

$ ls -la VueTorrent/public/
total 132
drwxr-xr-x 5 root root  4096 Dec 17 12:35 .
drwxr-xr-x 4 root root  4096 Dec 17 12:35 ..
drwxr-xr-x 2 root root  4096 Dec 17 12:35 css
-rwxr-xr-x 1 root root 93062 Dec 17 12:35 favicon.ico
drwxr-xr-x 3 root root  4096 Dec 17 12:35 img
-rwxr-xr-x 1 root root  1834 Dec 17 12:35 index.html
drwxr-xr-x 2 root root  4096 Dec 17 12:35 js
-rwxr-xr-x 1 root root   553 Dec 17 12:35 manifest.json
-rwxr-xr-x 1 root root   675 Dec 17 12:35 precache-manifest.bc11c95ce01a885d2eaa64042466e3a7.js
-rwxr-xr-x 1 root root    24 Dec 17 12:35 robots.txt
-rwxr-xr-x 1 root root  1064 Dec 17 12:35 service-worker.js

qb version:

$ qbittorrent-nox -v
qBittorrent v4.1.5

How to install on Unraid

hello,
i use qbittorent on UnRaid docker version.
your theme works on this ?
how please ?
thank you.

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.