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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
#ifndef MALCLIENT_H #define MALCLIENT_H #include <QObject> #include <qhttpresponse.h> #include <qhttprequest.h> #include <sstream> #include <QDebug> #include <curl/curl.h> #include <QThread> #include <tvshow.h> #include "filedownloadthread.h" #include "nwutils.h" #include "onlinetvshowdatabase.h" namespace Mal { class Entry : public OnlineTvShowDatabase::Entry { public: friend class SearchResult; int querySimiliarityScore; // TODO not here void calculateQuerySimiliarity(const QString query); virtual int getRemoteId() const; virtual void updateSynopsis(TvShow& show) const; virtual void updateTitle(TvShow&) const; virtual void updateRemoteId(TvShow& show) const; virtual void updateRelations(TvShow&) const; virtual void updateAiringDates(TvShow& show) const; virtual QStringList getSynonyms() const; virtual void updateImage(TvShow& show, QDir libraryDir) const; private: Entry(nw::XmlReader& reader); void parse(nw::XmlReader& xr); void parseSynonyms(nw::XmlReader &reader); QString id; QString title; QString englishTitle; QStringList synonyms; int episodes; QString type; QString status; QString startDate; QString endDate; QString synopsis; QString image; static QString dateFormat; }; class SearchResult : public OnlineTvShowDatabase::SearchResult { public: SearchResult(CurlResult& result, QString query); void parse(CurlResult& result); virtual OnlineTvShowDatabase::Entry* bestEntry(); private: QList<Entry> entries; }; class Client : public OnlineTvShowDatabase::Client { Q_OBJECT public: explicit Client(OnlineCredentials& credentials, OnlineCredentials::TimeLock& lock, QObject *parent = 0); void init(QString configFilePath); virtual const QString identifierKey() const; static const QString IDENTIFIER_KEY; protected: virtual OnlineTvShowDatabase::SearchResult* search(QString anime); }; } // namespace #endif // MALCLIENT_H