mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2025-12-21 16:07:23 -06:00
FEATURE: Added per-torrent ratio limiting (Christian Kandeler)
This commit is contained in:
@@ -171,7 +171,12 @@ public:
|
||||
|
||||
class TorrentPersistentData {
|
||||
public:
|
||||
enum RatioLimit {
|
||||
USE_GLOBAL_RATIO = -2,
|
||||
NO_RATIO_LIMIT = -1
|
||||
};
|
||||
|
||||
public:
|
||||
static bool isKnownTorrent(QString hash) {
|
||||
QIniSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent-resume"));
|
||||
const QHash<QString, QVariant> all_data = settings.value("torrents").toHash();
|
||||
@@ -184,6 +189,34 @@ public:
|
||||
return all_data.keys();
|
||||
}
|
||||
|
||||
static void setRatioLimit(const QString &hash, qreal ratio) {
|
||||
QIniSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent-resume"));
|
||||
QHash<QString, QVariant> all_data = settings.value("torrents").toHash();
|
||||
QHash<QString, QVariant> data = all_data.value(hash).toHash();
|
||||
data["max_ratio"] = ratio;
|
||||
all_data[hash] = data;
|
||||
settings.setValue("torrents", all_data);
|
||||
}
|
||||
|
||||
static qreal getRatioLimit(const QString &hash) {
|
||||
QIniSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent-resume"));
|
||||
const QHash<QString, QVariant> all_data = settings.value("torrents").toHash();
|
||||
const QHash<QString, QVariant> data = all_data.value(hash).toHash();
|
||||
return data.value("max_ratio", USE_GLOBAL_RATIO).toReal();
|
||||
}
|
||||
|
||||
static bool hasPerTorrentRatioLimit() {
|
||||
QIniSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent-resume"));
|
||||
const QHash<QString, QVariant> all_data = settings.value("torrents").toHash();
|
||||
QHash<QString, QVariant>::ConstIterator it;
|
||||
for(it = all_data.constBegin(); it != all_data.constEnd(); it++) {
|
||||
if(it.value().toHash().value("max_ratio", USE_GLOBAL_RATIO).toReal() >= 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static void setAddedDate(QString hash) {
|
||||
QIniSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent-resume"));
|
||||
QHash<QString, QVariant> all_data = settings.value("torrents").toHash();
|
||||
|
||||
Reference in New Issue
Block a user