31 #include <QBasicTimer>
36 #include <QRegularExpression>
37 #include <QSharedPointer>
55 class AutoDownloadRule;
60 using RuntimeError::RuntimeError;
92 bool hasRule(
const QString &ruleName)
const;
94 QList<AutoDownloadRule>
rules()
const;
97 bool renameRule(
const QString &ruleName,
const QString &newRuleName);
107 void ruleRenamed(
const QString &ruleName,
const QString &oldRuleName);
122 void processJob(
const QSharedPointer<ProcessingJob> &job);
QByteArray exportRulesToJSONFormat() const
void importRulesFromLegacyFormat(const QByteArray &data)
CachedSettingValue< bool > m_storeProcessingEnabled
void ruleChanged(const QString &ruleName)
void setDownloadRepacks(bool enabled)
bool isProcessingEnabled() const
bool hasRule(const QString &ruleName) const
QList< QSharedPointer< ProcessingJob > > m_processingQueue
QList< AutoDownloadRule > rules() const
QBasicTimer m_savingTimer
QByteArray exportRulesToLegacyFormat() const
void setRule_impl(const AutoDownloadRule &rule)
bool downloadRepacks() const
QHash< QString, AutoDownloadRule > m_rules
AsyncFileStorage * m_fileStorage
SettingValue< bool > m_storeDownloadRepacks
void setSmartEpisodeFilters(const QStringList &filters)
void removeRule(const QString &ruleName)
static QPointer< AutoDownloader > m_instance
void processingStateChanged(bool enabled)
SettingValue< QVariant > m_storeSmartEpisodeFilter
QTimer * m_processingTimer
void handleTorrentDownloadFinished(const QString &url)
bool renameRule(const QString &ruleName, const QString &newRuleName)
void resetProcessingQueue()
void processJob(const QSharedPointer< ProcessingJob > &job)
static AutoDownloader * instance()
void ruleAdded(const QString &ruleName)
void timerEvent(QTimerEvent *event) override
void ruleAboutToBeRemoved(const QString &ruleName)
QHash< QString, QSharedPointer< ProcessingJob > > m_waitingJobs
void loadRules(const QByteArray &data)
void ruleRenamed(const QString &ruleName, const QString &oldRuleName)
AutoDownloadRule ruleByName(const QString &ruleName) const
QByteArray exportRules(RulesFileFormat format=RulesFileFormat::JSON) const
void handleNewArticle(const Article *article)
QRegularExpression smartEpisodeRegex() const
QStringList smartEpisodeFilters() const
void addJobForArticle(const Article *article)
void insertRule(const AutoDownloadRule &rule)
void setProcessingEnabled(bool enabled)
QRegularExpression m_smartEpisodeRegex
void handleTorrentDownloadFailed(const QString &url)
void importRules(const QByteArray &data, RulesFileFormat format=RulesFileFormat::JSON)
void importRulesFromJSONFormat(const QByteArray &data)