Browse Source

Fix setting High file priority on qBittorrent 3.2.x+

pull/624/head
Brian Witt 2 years ago
parent
commit
7a12370cbe
  1. 24
      app/src/main/java/org/transdroid/daemon/adapters/qBittorrent/QBittorrentAdapter.java

24
app/src/main/java/org/transdroid/daemon/adapters/qBittorrent/QBittorrentAdapter.java

@ -90,6 +90,10 @@ public class QBittorrentAdapter implements IDaemonAdapter {
private DefaultHttpClient httpclient; private DefaultHttpClient httpclient;
private int version = -1; private int version = -1;
private long lastAuthTime = -1; private long lastAuthTime = -1;
private int qbNoPriority = 0;
private int qbLowPriority = 1;
private int qbNormalPriority = 2;
private int qbHighPriority = 7;
public QBittorrentAdapter(DaemonSettings settings) { public QBittorrentAdapter(DaemonSettings settings) {
this.settings = settings; this.settings = settings;
@ -124,10 +128,14 @@ public class QBittorrentAdapter implements IDaemonAdapter {
} }
version = parseVersionNumber(versionText); version = parseVersionNumber(versionText);
if (version >= 30200) {
qbNormalPriority = 6;
}
} catch (Exception e) { } catch (Exception e) {
// Unable to establish version number; assume an old version by setting it to version 1 // Unable to establish version number; assume an old version by setting it to version 1
version = 10000; version = 10000;
qbNormalPriority = 2;
} }
} }
@ -371,13 +379,13 @@ public class QBittorrentAdapter implements IDaemonAdapter {
// Update the priorities to a set of files // Update the priorities to a set of files
SetFilePriorityTask setPrio = (SetFilePriorityTask) task; SetFilePriorityTask setPrio = (SetFilePriorityTask) task;
String newPrio = "0"; int newPrio = qbNoPriority;
if (setPrio.getNewPriority() == Priority.Low) { if (setPrio.getNewPriority() == Priority.Low) {
newPrio = "1"; newPrio = qbLowPriority;
} else if (setPrio.getNewPriority() == Priority.Normal) { } else if (setPrio.getNewPriority() == Priority.Normal) {
newPrio = "2"; newPrio = qbNormalPriority;
} else if (setPrio.getNewPriority() == Priority.High) { } else if (setPrio.getNewPriority() == Priority.High) {
newPrio = "7"; newPrio = qbHighPriority;
} }
// We have to make a separate request per file, it seems // We have to make a separate request per file, it seems
for (TorrentFile file : setPrio.getForFiles()) { for (TorrentFile file : setPrio.getForFiles()) {
@ -387,7 +395,7 @@ public class QBittorrentAdapter implements IDaemonAdapter {
path = "/command/setFilePrio"; path = "/command/setFilePrio";
} }
makeRequest(log, path, new BasicNameValuePair("hash", task.getTargetTorrent().getUniqueID()), makeRequest(log, path, new BasicNameValuePair("hash", task.getTargetTorrent().getUniqueID()),
new BasicNameValuePair("id", file.getKey()), new BasicNameValuePair("priority", newPrio)); new BasicNameValuePair("id", file.getKey()), new BasicNameValuePair("priority", Integer.toString(newPrio)));
} }
return new DaemonTaskSuccessResult(task); return new DaemonTaskSuccessResult(task);
@ -891,11 +899,11 @@ public class QBittorrentAdapter implements IDaemonAdapter {
private Priority parsePriority(int priority) { private Priority parsePriority(int priority) {
// Priority is an integer // Priority is an integer
// Actually 1 = Normal, 2 = High, 7 = Maximum, but adjust this to Transdroid values // Actually 1 = Normal, 2 = High, 7 = Maximum, but adjust this to Transdroid values
if (priority == 0) { if (priority == qbNoPriority) {
return Priority.Off; return Priority.Off;
} else if (priority == 1) { } else if (priority == qbLowPriority) {
return Priority.Low; return Priority.Low;
} else if (priority == 2) { } else if (priority == qbNormalPriority) {
return Priority.Normal; return Priority.Normal;
} }
return Priority.High; return Priority.High;

Loading…
Cancel
Save