Coder Social home page Coder Social logo

qbittorrent-controller's Introduction

qBittorrent-Controller

This is the repository for qBittorrent Controller, an Android app for manage for qBittorrent remotely.

Features

  • See a two panel view (fragments) for torrent list and details in the same window
  • Drawer menu for switching between All, Downloading, Completed, Paused, Active and Inactive torrent list
  • Pause or resume all torrents from the selected list
  • Auto refresh torrent list after performing an action on a torrent (pause, resume, or delete)
  • Add URL directly or by clicking the torrent link on your device's browser
  • Pause, resume, or delete individual torrents with its downloaded data
  • Set and save a connection account

Phone version

Tablet version

Download

qbittorrent-controller's People

Contributors

chakli avatar daveeeh avatar lgallard avatar mr-dewitt 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

qbittorrent-controller's Issues

Fix issue “java.lang.NumberFormatException: Invalid float: "∞" in qbc

This issue have been reported from Google Play Developer Console:

java.lang.NumberFormatException: Invalid float: "∞"
    at java.lang.StringToReal.invalidReal(StringToReal.java:63)
    at java.lang.StringToReal.initialParse(StringToReal.java:164)
    at java.lang.StringToReal.parseFloat(StringToReal.java:323)
    at java.lang.Float.parseFloat(Float.java:306)
    at com.lgallardo.qbittorrentclient.TorrentRatioComparator.compare(TorrentRatioComparator.java:29)
    at com.lgallardo.qbittorrentclient.TorrentRatioComparator.compare(TorrentRatioComparator.java:15)
    at java.util.TimSort.binarySort(TimSort.java:261)
    at java.util.TimSort.sort(TimSort.java:186)
    at java.util.TimSort.sort(TimSort.java:169)
    at java.util.Arrays.sort(Arrays.java:2010)
    at java.util.Collections.sort(Collections.java:1883)
    at com.lgallardo.qbittorrentclient.MainActivity$qBittorrentTask.onPostExecute(MainActivity.java:2963)
    at com.lgallardo.qbittorrentclient.MainActivity$qBittorrentTask.onPostExecute(MainActivity.java:2728)
    at android.os.AsyncTask.finish(AsyncTask.java:636)
    at android.os.AsyncTask.access$500(AsyncTask.java:177)
    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:653)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:155)
    at android.app.ActivityThread.main(ActivityThread.java:5725)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1030)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:825)

trouble with semicolon in rss url

Hi
For some reason I am member of a site that uses ; in the query string, which results in qbittorrent controller truncated everything from that semi colon

site.con/rss?download;7;u=2305860;tp=0

When I add this as an rss feed I get an error that it couldn't download the feed and the url is changed to

site.com/rss?download

It probably works if I url encode the semi colons myself, but haven't tried it yet.

Dark theme

Calidude at qBittorrent forum suggested a dark theme

Auto detect qBittorrent server version

On the app settings, there is an field for choosing the qBittorrent server version to use. I realize that people tends to skip this step, so I'm going to implement an auto detect qBittorrent version function when changing the app settings and save it accordingly.

Glitch in tablet view

There is a glitch loading the app (if it was already open). It looks like that it tries to sync with the server and spinning circle/text persists. When going into the Recents screen and swipe the app away, it is fine when is restarted.

Deleting a Torrent File - Should ask for a confirmation if the admin would like to delete the data file along with the Torrent file

Currently while deleting a torrent file from the controller, it does not ask for a confirmation whether i would like to delete the data file along with the torrent file. Instead it simply deletes the torrent file from the qBitTorrent database leaving the downloaded file as it is. The Web-interface however has a tick-box in the confirmation dialogue box, which is unticked by default.
I think the controller should also provide this option.

Search bar at the top with a persistent search filter

  • If i set a high Torrent refresh rate - let's say every 5 seconds
  • And i search for a specific torrent file, it shows the results and then goes back to clearing the search filter and display everything, i am guessing that the refresh timer kicks in and kills the search.

Would be good to have a serach bar at the top with a persistent search filter. The torrent refresh rate should happen in the background, but should not clear the search filter

Are play-services a required/hard dependency?

This app was proposed for fdroid inclusion. FDroid is a "store"/repository that only includes free/libre/opensource software that got build from source. Since play-services is proprietary, we cannot build it. So, are play-services a required/hard dependency or can they easly be stripped without breaking the app?

Feature: Torrent completion notification

Like the name suggests. An option for a notification upon completion of a torrent would add to the "completeness" of the app. I say "option" because someone is going to go nuts when their screen on time goes from 5 hours to 4:55.

Feature: Easier access to priority controls

Hey,

Love the app. However, there is one small thing I feel the need to point out. On my phone, if you want to change the queue order (priority) of a torrent, it involves clicking on the name of a torrent, going to the overflow menu and then finding the Increase/Decrease priority button. You're then brought to the torrent list screen by the app and have to repeat the process.
Thing is, this becomes a hassle if you're running any borderline substantial number of torrents (imagine doing this ~15 times).

You obviously have UI concerns; so may I recommend the addition of "Move to Top / Bottom" buttons somewhere? That'll save you from adding Increase / Decrease priority buttons on the list screen (which IMHO, is more correct).

Other small things (I can create separate issues for these if you wish):

  1. Shutdown qBittorrent from the app. qB is a desktop client so assuming I need the bandwidth for something else inside the house, I don't have to go through SSH / Web interface shenanigans.
  2. That "Refreshing" message. Are you sure that's absolutely necessary?
  3. Possibly an option to further reduce the Refresh Interval from 30s.

Thanks. :)

Simplify app settings

I realise that people get confused when having a lot of options to set in the app settings, therefore a way to overcome this is by showing just the basic parameters:

  • IP or hostname
  • Username
  • Password

And the remaining options should be handle in another "advanced" window.

Feature: Reduce refresh interval

The reduce interval should have an option to be lower than 30s. Given the increments already present, how about something like an option for 2 / 5 seconds?

Related: The "refreshing" message should have an option to be disabled unless the manual refresh button is clicked on. This makes sense because if:
a) The refresh interval is small, it'll just be present on the screen all the time.
b) The refresh interval is large, it serves very little purpose because the implication is that someone is just staring at their phone / tablet screen waiting to get that little bit of data. Anyone who uses a large refresh interval will most likely end up using the manual refresh button when they fire up the app as it is.

Add offline push notification

Please, do create a way so if you are mentioned and you have no clients connected to the server, your phone (and/or other android device) receives a push notification, so you can open the app and read/reply, without killing your phone keeping the app open all day long

Unsafe HTTPS use

Running a security scan against the source code of this project has shown that the HTTPS used in this application has been manually overiden. Using HTTPS increases the security of credentials transmitted between the device and server as well as guaranteeing there is no middle-man attacker feeding malicious data to the user. Guides to properly implementing HTTPS can be found here: https://developer.android.com/training/articles/security-ssl.html

/qBittorrentClient/src/com/lgallardo/qbittorrentclient/JSONParser.java:485: AllowAllHostnameVerifier used, this is not a secure connection
/qBittorrentClient/src/com/lgallardo/qbittorrentclient/JSONParser.java:485: Custom HostnameVerifier used; this is not safe for production use
/qBittorrentClient/src/com/lgallardo/qbittorrentclient/MySSLSocketFactory.java:35: Custom trust manager used. Remove from production

RSS pattern matching or regex engine

It could be awesome to have way of filter the content client side with some kind of pattern matching or a full blown regex engine, therefore the download automatically feature on the feed will become more useful.

Support for qBittorent 3.2.x

Support for qBittorrent 3.2.x

Newer relases of qBittorent server has a different way to connect, and new features.

Add prompt to send a magnet or torrent URL to a specific server.

David Devenport: One other thing that would be great is a prompt to send a magnet or torrent URL to a specific server. Right now if I click on either link it'll default to the last server viewed. It'd be nice for a prompt that basically said "which server should this go to?" Thanks for all your hard work.

Local and remote server options

Add local and remote server options, so it switch to local profile when at home wireless and switch to remote profile when not at home. I know we can make profiles and switch between but then we will lose notifications, and should always switch profiles

Virtual host issue

I'm using nginx configured as reverse proxy from domain to port on localhost.

The problem is that I'm unable to connect throught this client breacause it do not send the domain to the server.

Here are the requests log from your client to nginx:

11.22.33.44 - - [27/Apr/2015:22:30:14 +0200] "GET json/torrents HTTP/1.1" 400 166 "-" "-"

Here are the correct requests log from my browser using the web interface:

11.22.33.44 - - [27/Apr/2015:22:31:57 +0200] "GET /json/torrents?i90cabsg HTTP/1.1" 200 2080 "http://mydomain.com/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36"

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.