qBittorrent
torrentfileswatcher.cpp File Reference
#include "torrentfileswatcher.h"
#include <chrono>
#include <QtGlobal>
#include <QDir>
#include <QDirIterator>
#include <QFile>
#include <QFileSystemWatcher>
#include <QJsonArray>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonValue>
#include <QSet>
#include <QTextStream>
#include <QThread>
#include <QTimer>
#include <QVariant>
#include "base/algorithm.h"
#include "base/bittorrent/magneturi.h"
#include "base/bittorrent/torrentcontentlayout.h"
#include "base/bittorrent/session.h"
#include "base/bittorrent/torrent.h"
#include "base/bittorrent/torrentinfo.h"
#include "base/exceptions.h"
#include "base/global.h"
#include "base/logger.h"
#include "base/profile.h"
#include "base/settingsstorage.h"
#include "base/tagset.h"
#include "base/utils/fs.h"
#include "base/utils/io.h"
#include "base/utils/string.h"
#include "torrentfileswatcher.moc"
Include dependency graph for torrentfileswatcher.cpp:

Go to the source code of this file.

Classes

class  TorrentFilesWatcher::Worker
 

Namespaces

 anonymous_namespace{torrentfileswatcher.cpp}
 

Functions

TagSet anonymous_namespace{torrentfileswatcher.cpp}::parseTagSet (const QJsonArray &jsonArr)
 
QJsonArray anonymous_namespace{torrentfileswatcher.cpp}::serializeTagSet (const TagSet &tags)
 
std::optional< bool > anonymous_namespace{torrentfileswatcher.cpp}::getOptionalBool (const QJsonObject &jsonObj, const QString &key)
 
template<typename Enum >
std::optional< Enum > anonymous_namespace{torrentfileswatcher.cpp}::getOptionalEnum (const QJsonObject &jsonObj, const QString &key)
 
template<typename Enum >
Enum anonymous_namespace{torrentfileswatcher.cpp}::getEnum (const QJsonObject &jsonObj, const QString &key)
 
BitTorrent::AddTorrentParams anonymous_namespace{torrentfileswatcher.cpp}::parseAddTorrentParams (const QJsonObject &jsonObj)
 
QJsonObject anonymous_namespace{torrentfileswatcher.cpp}::serializeAddTorrentParams (const BitTorrent::AddTorrentParams &params)
 
TorrentFilesWatcher::WatchedFolderOptions anonymous_namespace{torrentfileswatcher.cpp}::parseWatchedFolderOptions (const QJsonObject &jsonObj)
 
QJsonObject anonymous_namespace{torrentfileswatcher.cpp}::serializeWatchedFolderOptions (const TorrentFilesWatcher::WatchedFolderOptions &options)
 

Variables

const std::chrono::duration WATCH_INTERVAL = 10s
 
const int MAX_FAILED_RETRIES = 5
 
const QString CONF_FILE_NAME {QStringLiteral("watched_folders.json")}
 
const QString OPTION_ADDTORRENTPARAMS {QStringLiteral("add_torrent_params")}
 
const QString OPTION_RECURSIVE {QStringLiteral("recursive")}
 
const QString PARAM_CATEGORY {QStringLiteral("category")}
 
const QString PARAM_TAGS {QStringLiteral("tags")}
 
const QString PARAM_SAVEPATH {QStringLiteral("save_path")}
 
const QString PARAM_USEDOWNLOADPATH {QStringLiteral("use_download_path")}
 
const QString PARAM_DOWNLOADPATH {QStringLiteral("download_path")}
 
const QString PARAM_OPERATINGMODE {QStringLiteral("operating_mode")}
 
const QString PARAM_STOPPED {QStringLiteral("stopped")}
 
const QString PARAM_SKIPCHECKING {QStringLiteral("skip_checking")}
 
const QString PARAM_CONTENTLAYOUT {QStringLiteral("content_layout")}
 
const QString PARAM_AUTOTMM {QStringLiteral("use_auto_tmm")}
 
const QString PARAM_UPLOADLIMIT {QStringLiteral("upload_limit")}
 
const QString PARAM_DOWNLOADLIMIT {QStringLiteral("download_limit")}
 
const QString PARAM_SEEDINGTIMELIMIT {QStringLiteral("seeding_time_limit")}
 
const QString PARAM_RATIOLIMIT {QStringLiteral("ratio_limit")}
 

Variable Documentation

◆ CONF_FILE_NAME

const QString CONF_FILE_NAME {QStringLiteral("watched_folders.json")}

◆ MAX_FAILED_RETRIES

const int MAX_FAILED_RETRIES = 5

◆ OPTION_ADDTORRENTPARAMS

const QString OPTION_ADDTORRENTPARAMS {QStringLiteral("add_torrent_params")}

◆ OPTION_RECURSIVE

◆ PARAM_AUTOTMM

const QString PARAM_AUTOTMM {QStringLiteral("use_auto_tmm")}

◆ PARAM_CATEGORY

◆ PARAM_CONTENTLAYOUT

const QString PARAM_CONTENTLAYOUT {QStringLiteral("content_layout")}

◆ PARAM_DOWNLOADLIMIT

const QString PARAM_DOWNLOADLIMIT {QStringLiteral("download_limit")}

◆ PARAM_DOWNLOADPATH

const QString PARAM_DOWNLOADPATH {QStringLiteral("download_path")}

◆ PARAM_OPERATINGMODE

const QString PARAM_OPERATINGMODE {QStringLiteral("operating_mode")}

◆ PARAM_RATIOLIMIT

const QString PARAM_RATIOLIMIT {QStringLiteral("ratio_limit")}

◆ PARAM_SAVEPATH

const QString PARAM_SAVEPATH {QStringLiteral("save_path")}

◆ PARAM_SEEDINGTIMELIMIT

const QString PARAM_SEEDINGTIMELIMIT {QStringLiteral("seeding_time_limit")}

◆ PARAM_SKIPCHECKING

const QString PARAM_SKIPCHECKING {QStringLiteral("skip_checking")}

◆ PARAM_STOPPED

◆ PARAM_TAGS

◆ PARAM_UPLOADLIMIT

const QString PARAM_UPLOADLIMIT {QStringLiteral("upload_limit")}

◆ PARAM_USEDOWNLOADPATH

const QString PARAM_USEDOWNLOADPATH {QStringLiteral("use_download_path")}

◆ WATCH_INTERVAL