root/src/snapshotwallpapergenerator.h

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#ifndef SNAPSHOTWALLPAPERGENERATOR_H
#define SNAPSHOTWALLPAPERGENERATOR_H

#include "wallpaperdownloadclient.h"
#include "thumbnailcreator.h"
#include "metadataparser.h"

namespace SnapshotWallpaperGenerator {
using WallpaperDownload::Entry;
using WallpaperDownload::SearchResult;

class Client : public WallpaperDownload::Client {
    Q_OBJECT
public:
    Client(MetaDataParser& mp, ThumbnailCreator& tc);

    virtual SearchResult fetchPostsBlocking(const TvShow* show, int page = 1);
    virtual void downloadResults(QDir directory, const QList<Entry> &entries, bool onlyTheBest);

    void generated(QString file); ///< fires the signal

protected:
    virtual inline Entry parseEntry(nw::Describer*) {return Entry();}
    virtual inline SearchResult parseSearchResult(std::stringstream&, int) {return SearchResult();}
    virtual inline CURL* curlClient(QString, CurlResult&, const unsigned int = 1) {return NULL;}

private slots:
    void wallpaperReady(QByteArray);

private:
    MetaDataParser& metaDataParser;
    ThumbnailCreator& thumbnailCreator;
    int outstandingWallpapers;
};

class ThumbnailCreationData {
public:
    QString filePath;
    Client* client;
};

} // namespace

#endif // SNAPSHOTWALLPAPERGENERATOR_H