* oracle now can be run in spoiler or normal mode * tests for travis * only run on relaunch * spoilers in client (not oracle now) and tray icon shows when done * spoiler status will be checked before downloading spoiler file * only download if they care about spoilers * reload db on spoiler download * manual update button, code cleanup, and fix enabling sets when new * cleanup, nullchecks, and fixes to spoiler * reload DB even if not in spoiler season; necessary as we have a check elsewhere to prevent the reload if spoiler check happens * Implement changes from 2991#issuecomment-356169374 * Change implicit nullptrs, alert on file deletion, minor changes * make reload thread safe and minor changes from 2991#issuecomment-356450302 * Fix locking * Disable update now button while process running
35 lines
No EOL
1 KiB
C++
35 lines
No EOL
1 KiB
C++
#ifndef COCKATRICE_SPOILER_DOWNLOADER_H
|
|
#define COCKATRICE_SPOILER_DOWNLOADER_H
|
|
|
|
#include <QObject>
|
|
#include <QProcess>
|
|
#include <QByteArray>
|
|
|
|
class SpoilerBackgroundUpdater : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit SpoilerBackgroundUpdater(QObject *apParent = nullptr);
|
|
inline QString getCardUpdaterBinaryName() { return "oracle"; };
|
|
QByteArray getHash(const QString fileName);
|
|
QByteArray getHash(QByteArray data);
|
|
static bool deleteSpoilerFile();
|
|
|
|
private slots:
|
|
void actDownloadFinishedSpoilersFile();
|
|
void actCheckIfSpoilerSeasonEnabled();
|
|
|
|
private:
|
|
bool isSpoilerDownloadEnabled;
|
|
QProcess *cardUpdateProcess;
|
|
QByteArray spoilerData;
|
|
void startSpoilerDownloadProcess(QString url, bool saveResults);
|
|
void downloadFromURL(QUrl url, bool saveResults);
|
|
bool saveDownloadedFile(QByteArray data);
|
|
|
|
signals:
|
|
void spoilersUpdatedSuccessfully();
|
|
void spoilerCheckerDone();
|
|
};
|
|
|
|
#endif //COCKATRICE_SPOILER_DOWNLOADER_H
|