-#include "animecommand.h"\r
-\r
-#include <QStringList>\r
-#include <QUrl>\r
-\r
-#include <QDebug>\r
-\r
-namespace AniDBUdpClient {\r
-\r
-AnimeCommand::AnimeCommand()\r
-{\r
- init();\r
-}\r
-\r
-AnimeCommand::AnimeCommand(int aid, AnimeFlags amask)\r
-{\r
- init();\r
- m_aid = aid;\r
- m_amask = amask;\r
-}\r
-\r
-AnimeCommand::AnimeCommand(const QString &aname, AnimeFlags amask)\r
-{\r
- init();\r
- m_aname = aname;\r
- m_amask = amask;\r
-}\r
-\r
-int AnimeCommand::aid() const\r
-{\r
- return m_aid;\r
-}\r
-\r
-void AnimeCommand::setAid(int aid)\r
-{\r
- m_aid = aid;\r
-}\r
-\r
-AnimeFlags AnimeCommand::amask() const\r
-{\r
- return m_amask;\r
-}\r
-\r
-void AnimeCommand::amask(AnimeFlags amask)\r
-{\r
- m_amask = amask;\r
-}\r
-\r
-QString AnimeCommand::aname() const\r
-{\r
- return m_aname;\r
-}\r
-\r
-void AnimeCommand::setAname(const QString &aname)\r
-{\r
- m_aname = aname;\r
-}\r
-\r
-bool AnimeCommand::isValid() const\r
-{\r
- return m_aid || !m_aname.isEmpty();\r
- // amask doesn't need to be checked as all invalid bits are removed\r
-}\r
-\r
-bool AnimeCommand::waitForResult() const\r
-{\r
- return true;\r
-}\r
-\r
-Command AnimeCommand::rawCommand() const\r
-{\r
- Command cmd;\r
- cmd.first = "ANIME";\r
-\r
- if (m_aid)\r
- cmd.second["aid"] = m_aid;\r
- else if (!m_aname.isEmpty())\r
- cmd.second["aname"] = m_aname;\r
-\r
- if (m_amask)\r
- {\r
- if ((m_amask & AnimeFlag::AllData) != m_amask)\r
- {\r
- qWarning() << "Clearing invalid bits in amask";\r
- }\r
-\r
- cmd.second["amask"] = QString::number(m_amask & AnimeFlag::AllData, 16)\r
- .rightJustified(14, QLatin1Char('0'));;\r
- }\r
-\r
- return cmd;\r
-}\r
-\r
-void AnimeCommand::init()\r
-{\r
- m_aid = 0;\r
- m_amask = 0;\r
-}\r
-\r
-QVariant AnimeReply::value(AnimeFlags f) const\r
-{\r
- return animeFlagData.value(f);\r
-}\r
-\r
-void AnimeReply::setRawReply(ReplyCode replyCode, const QString &reply)\r
-{\r
- AbstractReply::setRawReply(replyCode, reply);\r
-\r
- switch (replyCode)\r
- {\r
- case ANIME:\r
- readReplyData(reply);\r
- signalReplyReady(true);\r
- break;\r
- case NO_SUCH_ANIME:\r
- default:\r
- signalReplyReady(false);\r
- break;\r
- }\r
-}\r
-\r
-void AnimeReply::readReplyData(const QString &reply)\r
-{\r
- QString d = reply.mid(reply.indexOf('\n')).trimmed();\r
- QStringList parts = d.split('|', QString::KeepEmptyParts);\r
-\r
- if (command().amask() == 0)\r
- {\r
- if (parts.count() < 19)\r
- {\r
- qWarning() << "Not enough parts in reply.";\r
- return;\r
- }\r
- animeFlagData.insert(AnimeFlag::Aid, parts[0].toInt());\r
- animeFlagData.insert(AnimeFlag::Episodes, parts[1].toInt());\r
- animeFlagData.insert(AnimeFlag::HighestEpisodeNumber, parts[2].toInt());\r
- animeFlagData.insert(AnimeFlag::SpecialsCount, parts[3].toInt());\r
- animeFlagData.insert(AnimeFlag::Rating, parts[4].toInt());\r
- animeFlagData.insert(AnimeFlag::VoteCount, parts[5].toInt());\r
- animeFlagData.insert(AnimeFlag::TempRating, parts[6].toInt());\r
- animeFlagData.insert(AnimeFlag::TempVoteCount, parts[7].toInt());\r
- animeFlagData.insert(AnimeFlag::AverageReviewRating, parts[8].toInt());\r
- animeFlagData.insert(AnimeFlag::ReviewCount, parts[9].toInt());\r
- animeFlagData.insert(AnimeFlag::Year, parts[10]);\r
- animeFlagData.insert(AnimeFlag::Type, parts[11]);\r
- animeFlagData.insert(AnimeFlag::RomajiName, parts[12]);\r
- animeFlagData.insert(AnimeFlag::KanjiName, parts[13]);\r
- animeFlagData.insert(AnimeFlag::EnglishName, parts[14]);\r
- animeFlagData.insert(AnimeFlag::OtherName, parts[15]);\r
- animeFlagData.insert(AnimeFlag::ShortNameList, parts[16]);\r
- animeFlagData.insert(AnimeFlag::SynonymList, parts[17]);\r
- return;\r
- }\r
-\r
- int partNo = 0;\r
- {\r
- for (AnimeFlags::flag_type flag = AnimeFlag::LastFlag; flag > 0; flag >>= 1)\r
- {\r
- if (command().amask() & flag)\r
- {\r
- if (partNo >= parts.size())\r
- {\r
- qWarning() << "Not enough parts in reply.";\r
- continue;\r
- }\r
- animeFlagData.insert(AnimeFlags(flag), parts[partNo]);\r
- ++partNo;\r
- }\r
- }\r
- }\r
-}\r
-\r
-void AnimeReply::init()\r
-{\r
-}\r
-\r
-int AnimeReply::specialsCount() const\r
-{\r
- return animeFlagData.value(AnimeFlag::SpecialsCount).toInt();\r
-}\r
-\r
-int AnimeReply::creditsCount() const\r
-{\r
- return animeFlagData.value(AnimeFlag::CreditsCount).toInt();\r
-}\r
-\r
-int AnimeReply::otherCount() const\r
-{\r
- return animeFlagData.value(AnimeFlag::OtherCount).toInt();\r
-}\r
-\r
-int AnimeReply::trailerCount() const\r
-{\r
- return animeFlagData.value(AnimeFlag::TrailerCount).toInt();\r
-}\r
-\r
-int AnimeReply::parodyCount() const\r
-{\r
- return animeFlagData.value(AnimeFlag::ParodyCount).toInt();\r
-}\r
-\r
-QStringList AnimeReply::mainCreatorNameList() const\r
-{\r
- return animeFlagData.value(AnimeFlag::MainCreatorNameList).toString().split(QChar('\''));\r
-}\r
-\r
-QStringList AnimeReply::mainCreatorIdList() const\r
-{\r
- return animeFlagData.value(AnimeFlag::MainCreatorIdList).toString().split(QChar('\''));\r
-}\r
-\r
-QStringList AnimeReply::creatorIdList() const\r
-{\r
- return animeFlagData.value(AnimeFlag::CreatorIdList).toString().split(QChar('\''));\r
-}\r
-\r
-QStringList AnimeReply::characterIdList() const\r
-{\r
- return animeFlagData.value(AnimeFlag::CharacterIdList).toString().split(QChar('\''));\r
-}\r
-\r
-QDateTime AnimeReply::dateRecordUpdated() const\r
-{\r
- return QDateTime::fromTime_t(animeFlagData.value(AnimeFlag::DateRecordUpdated).toUInt());\r
-}\r
-\r
-int AnimeReply::aniemNfoId() const\r
-{\r
- return animeFlagData.value(AnimeFlag::AnimeNfoId).toInt();\r
-}\r
-\r
-int AnimeReply::allCinemaId() const\r
-{\r
- return animeFlagData.value(AnimeFlag::AllCinemaId).toInt();\r
-}\r
-\r
-int AnimeReply::ANNId() const\r
-{\r
- return animeFlagData.value(AnimeFlag::ANNId).toInt();\r
-}\r
-\r
-int AnimeReply::animePlanetId() const\r
-{\r
- return 0;\r
-}\r
-\r
-bool AnimeReply::is18Restricted() const\r
-{\r
- return animeFlagData.value(AnimeFlag::Is18Restricted).toBool();\r
-}\r
-\r
-QStringList AnimeReply::awardList() const\r
-{\r
- return animeFlagData.value(AnimeFlag::AwardList).toString().split(QChar('\''));\r
-}\r
-\r
-int AnimeReply::reviewCount() const\r
-{\r
- return animeFlagData.value(AnimeFlag::ReviewCount).toInt();\r
-}\r
-\r
-double AnimeReply::averageReviewRating() const\r
-{\r
- return animeFlagData.value(AnimeFlag::AverageReviewRating).toDouble() / 100;\r
-}\r
-\r
-int AnimeReply::tempVoteCount() const\r
-{\r
- return animeFlagData.value(AnimeFlag::TempVoteCount).toInt();\r
-}\r
-\r
-double AnimeReply::tempRating() const\r
-{\r
- return animeFlagData.value(AnimeFlag::TempRating).toDouble() / 100;\r
-}\r
-\r
-int AnimeReply::voteCount() const\r
-{\r
- return animeFlagData.value(AnimeFlag::VoteCount).toInt();\r
-}\r
-\r
-double AnimeReply::rating() const\r
-{\r
- return animeFlagData.value(AnimeFlag::Rating).toDouble() / 100;\r
-}\r
-\r
-QStringList AnimeReply::categoryIdList() const\r
-{\r
- return animeFlagData.value(AnimeFlag::CategoryIdList).toString().split(QChar('\''));\r
-}\r
-\r
-QString AnimeReply::picName() const\r
-{\r
- return animeFlagData.value(AnimeFlag::PicName).toString();\r
-}\r
-\r
-QUrl AnimeReply::url() const\r
-{\r
- return animeFlagData.value(AnimeFlag::Url).toUrl();\r
-}\r
-\r
-QDateTime AnimeReply::endDate() const\r
-{\r
- return QDateTime::fromTime_t(animeFlagData.value(AnimeFlag::EndDate).toUInt());\r
-}\r
-\r
-QDateTime AnimeReply::airDate() const\r
-{\r
- return QDateTime::fromTime_t(animeFlagData.value(AnimeFlag::AirDate).toUInt());\r
-}\r
-\r
-int AnimeReply::specialEpCount() const\r
-{\r
- return animeFlagData.value(AnimeFlag::SpecialEpCount).toInt();\r
-}\r
-\r
-int AnimeReply::highestEpisodeNumber() const\r
-{\r
- return animeFlagData.value(AnimeFlag::HighestEpisodeNumber).toInt();\r
-}\r
-\r
-int AnimeReply::episodes() const\r
-{\r
- return animeFlagData.value(AnimeFlag::Episodes).toInt();\r
-}\r
-\r
-\r
-QStringList AnimeReply::synonymList() const\r
-{\r
- return animeFlagData.value(AnimeFlag::SynonymList).toString().split(QChar('\''));\r
-}\r
-\r
-QStringList AnimeReply::shortNameList() const\r
-{\r
- return animeFlagData.value(AnimeFlag::ShortNameList).toString().split(QChar('\''));\r
-}\r
-\r
-QString AnimeReply::otherName() const\r
-{\r
- return animeFlagData.value(AnimeFlag::OtherName).toString();\r
-}\r
-\r
-QString AnimeReply::englishName() const\r
-{\r
- return animeFlagData.value(AnimeFlag::EnglishName).toString();\r
-}\r
-\r
-QString AnimeReply::kanjiName() const\r
-{\r
- return animeFlagData.value(AnimeFlag::KanjiName).toString();\r
-}\r
-\r
-QString AnimeReply::romajiName() const\r
-{\r
- return animeFlagData.value(AnimeFlag::RomajiName).toString();\r
-}\r
-\r
-\r
-QString AnimeReply::categoryWeightList() const\r
-{\r
- return QString();\r
-}\r
-\r
-QStringList AnimeReply::categoryList() const\r
-{\r
- return QStringList();\r
-}\r
-\r
-QStringList AnimeReply::relatedAidType() const\r
-{\r
- return animeFlagData.value(AnimeFlag::RelatedAidType).toString().split(QChar('\''));\r
-}\r
-\r
-QStringList AnimeReply::relatedAidList() const\r
-{\r
- return animeFlagData.value(AnimeFlag::RelatedAidList).toString().split(QChar('\''));\r
-}\r
-\r
-QString AnimeReply::type() const\r
-{\r
- return animeFlagData.value(AnimeFlag::Type).toString();\r
-}\r
-\r
-QString AnimeReply::year() const\r
-{\r
- return animeFlagData.value(AnimeFlag::Year).toString();\r
-}\r
-\r
-int AnimeReply::dateFlags() const\r
-{\r
- return animeFlagData.value(AnimeFlag::DateFlags).toInt();\r
-}\r
-\r
-int AnimeReply::aid() const\r
-{\r
- return animeFlagData.value(AnimeFlag::Aid).toInt();\r
-}\r
-\r
-\r
-} // namespace AniDBUdpClient\r
+ #include "animecommand.h"
+
+#include <algorithm>
+
+#include <QStringList>
+#include <QUrl>
+
+#include <QDebug>
+
+namespace AniDBUdpClient {
+
+AnimeCommand::AnimeCommand()
+{
+ init();
+}
+
+AnimeCommand::AnimeCommand(int aid, AnimeFlags amask)
+{
+ init();
+ m_aid = aid;
+ m_amask = amask;
+}
+
+AnimeCommand::AnimeCommand(const QString &aname, AnimeFlags amask)
+{
+ init();
+ m_aname = aname;
+ m_amask = amask;
+}
+
+int AnimeCommand::aid() const
+{
+ return m_aid;
+}
+
+void AnimeCommand::setAid(int aid)
+{
+ m_aid = aid;
+}
+
+AnimeFlags AnimeCommand::amask() const
+{
+ return m_amask;
+}
+
+void AnimeCommand::amask(AnimeFlags amask)
+{
+ m_amask = amask;
+}
+
+QString AnimeCommand::aname() const
+{
+ return m_aname;
+}
+
+void AnimeCommand::setAname(const QString &aname)
+{
+ m_aname = aname;
+}
+
+bool AnimeCommand::isValid() const
+{
+ return m_aid || !m_aname.isEmpty();
+ // amask doesn't need to be checked as all invalid bits are removed
+}
+
+bool AnimeCommand::waitForResult() const
+{
+ return true;
+}
+
+Command AnimeCommand::rawCommand() const
+{
+ Command cmd;
+ cmd.first = "ANIME";
+
+ if (m_aid)
+ cmd.second["aid"] = m_aid;
+ else if (!m_aname.isEmpty())
+ cmd.second["aname"] = m_aname;
+
+ if (m_amask)
+ {
+ if ((m_amask & AnimeFlag::AllData) != m_amask)
+ {
+ qWarning() << "Clearing invalid bits in amask";
+ }
+
+ cmd.second["amask"] = QString::number(m_amask & AnimeFlag::AllData, 16)
+ .rightJustified(14, QLatin1Char('0'));;
+ }
+
+ return cmd;
+}
+
+void AnimeCommand::init()
+{
+ m_aid = 0;
+ m_amask = 0;
+}
+
+QVariant AnimeReply::value(AnimeFlags f) const
+{
+ return animeFlagData.value(f);
+}
+
+void AnimeReply::setRawReply(ReplyCode replyCode, const QString &reply)
+{
+ AbstractReply::setRawReply(replyCode, reply);
+
+ switch (replyCode)
+ {
+ case ANIME:
+ readReplyData(reply);
+ signalReplyReady(true);
+ break;
+ case NO_SUCH_ANIME:
+ default:
+ signalReplyReady(false);
+ break;
+ }
+}
+
+void AnimeReply::readReplyData(const QString &reply)
+{
+ QString d = reply.mid(reply.indexOf('\n')).trimmed();
+ QStringList parts = d.split('|', QString::KeepEmptyParts);
+
+ if (command().amask() == 0)
+ {
+ if (parts.count() < 19)
+ {
+ qWarning() << "Not enough parts in reply.";
+ return;
+ }
+ animeFlagData.insert(AnimeFlag::Aid, parts[0].toInt());
+ animeFlagData.insert(AnimeFlag::Episodes, parts[1].toInt());
+ animeFlagData.insert(AnimeFlag::HighestEpisodeNumber, parts[2].toInt());
+ animeFlagData.insert(AnimeFlag::SpecialsCount, parts[3].toInt());
+ animeFlagData.insert(AnimeFlag::Rating, parts[4].toInt());
+ animeFlagData.insert(AnimeFlag::VoteCount, parts[5].toInt());
+ animeFlagData.insert(AnimeFlag::TempRating, parts[6].toInt());
+ animeFlagData.insert(AnimeFlag::TempVoteCount, parts[7].toInt());
+ animeFlagData.insert(AnimeFlag::AverageReviewRating, parts[8].toInt());
+ animeFlagData.insert(AnimeFlag::ReviewCount, parts[9].toInt());
+ animeFlagData.insert(AnimeFlag::Year, parts[10]);
+ animeFlagData.insert(AnimeFlag::Type, parts[11]);
+ animeFlagData.insert(AnimeFlag::RomajiName, parts[12]);
+ animeFlagData.insert(AnimeFlag::KanjiName, parts[13]);
+ animeFlagData.insert(AnimeFlag::EnglishName, parts[14]);
+ animeFlagData.insert(AnimeFlag::OtherName, parts[15]);
+ animeFlagData.insert(AnimeFlag::ShortNameList, parts[16]);
+ animeFlagData.insert(AnimeFlag::SynonymList, parts[17]);
+ return;
+ }
+
+ int partNo = 0;
+ {
+ for (AnimeFlags::flag_type flag = AnimeFlag::LastFlag; flag > 0; flag >>= 1)
+ {
+ if (command().amask() & flag)
+ {
+ if (partNo >= parts.size())
+ {
+ qWarning() << "Not enough parts in reply.";
+ continue;
+ }
+ animeFlagData.insert(AnimeFlags(flag), parts[partNo]);
+ ++partNo;
+ }
+ }
+ }
+}
+
+void AnimeReply::init()
+{
+}
+
+int AnimeReply::specialsCount() const
+{
+ return animeFlagData.value(AnimeFlag::SpecialsCount).toInt();
+}
+
+int AnimeReply::creditsCount() const
+{
+ return animeFlagData.value(AnimeFlag::CreditsCount).toInt();
+}
+
+int AnimeReply::otherCount() const
+{
+ return animeFlagData.value(AnimeFlag::OtherCount).toInt();
+}
+
+int AnimeReply::trailerCount() const
+{
+ return animeFlagData.value(AnimeFlag::TrailerCount).toInt();
+}
+
+int AnimeReply::parodyCount() const
+{
+ return animeFlagData.value(AnimeFlag::ParodyCount).toInt();
+}
+
+QStringList AnimeReply::characterIdList() const
+{
+ return animeFlagData.value(AnimeFlag::CharacterIdList).toString().split(QChar('\''));
+}
+
+QDateTime AnimeReply::dateRecordUpdated() const
+{
+ return QDateTime::fromTime_t(animeFlagData.value(AnimeFlag::DateRecordUpdated).toUInt());
+}
+
+QList<int> AnimeReply::tagWeightList() const
+{
+ const auto stringWeights = animeFlagData.value(AnimeFlag::TagWeightList).toString().split(QChar('\''));
+ QList<int> ret;
+ std::transform(std::cbegin(stringWeights), std::cend(stringWeights), std::back_inserter(ret),
+ [](const QString &str) { return str.toInt(); });
+ return ret;
+}
+
+QList<int> AnimeReply::tagIdList() const
+{
+ const auto stringIds = animeFlagData.value(AnimeFlag::TagWeightList).toString().split(QChar('\''));
+ QList<int> ret;
+ std::transform(std::cbegin(stringIds), std::cend(stringIds), std::back_inserter(ret),
+ [](const QString &str) { return str.toInt(); });
+ return ret;
+}
+
+QStringList AnimeReply::tagNameList() const
+{
+ return animeFlagData.value(AnimeFlag::TagNameList).toString().split(QChar('\''));
+}
+
+int AnimeReply::aniemNfoId() const
+{
+ return animeFlagData.value(AnimeFlag::AnimeNfoId).toInt();
+}
+
+int AnimeReply::allCinemaId() const
+{
+ return animeFlagData.value(AnimeFlag::AllCinemaId).toInt();
+}
+
+int AnimeReply::ANNId() const
+{
+ return animeFlagData.value(AnimeFlag::ANNId).toInt();
+}
+
+int AnimeReply::animePlanetId() const
+{
+ return 0;
+}
+
+bool AnimeReply::is18Restricted() const
+{
+ return animeFlagData.value(AnimeFlag::Is18Restricted).toBool();
+}
+
+QStringList AnimeReply::awardList() const
+{
+ return animeFlagData.value(AnimeFlag::AwardList).toString().split(QChar('\''));
+}
+
+int AnimeReply::reviewCount() const
+{
+ return animeFlagData.value(AnimeFlag::ReviewCount).toInt();
+}
+
+double AnimeReply::averageReviewRating() const
+{
+ return animeFlagData.value(AnimeFlag::AverageReviewRating).toDouble() / 100;
+}
+
+int AnimeReply::tempVoteCount() const
+{
+ return animeFlagData.value(AnimeFlag::TempVoteCount).toInt();
+}
+
+double AnimeReply::tempRating() const
+{
+ return animeFlagData.value(AnimeFlag::TempRating).toDouble() / 100;
+}
+
+int AnimeReply::voteCount() const
+{
+ return animeFlagData.value(AnimeFlag::VoteCount).toInt();
+}
+
+double AnimeReply::rating() const
+{
+ return animeFlagData.value(AnimeFlag::Rating).toDouble() / 100;
+}
+
+QStringList AnimeReply::categoryIdList() const
+{
+ return animeFlagData.value(AnimeFlag::CategoryIdList).toString().split(QChar('\''));
+}
+
+QString AnimeReply::picName() const
+{
+ return animeFlagData.value(AnimeFlag::PicName).toString();
+}
+
+QUrl AnimeReply::url() const
+{
+ return animeFlagData.value(AnimeFlag::Url).toUrl();
+}
+
+QDateTime AnimeReply::endDate() const
+{
+ return QDateTime::fromTime_t(animeFlagData.value(AnimeFlag::EndDate).toUInt());
+}
+
+QDateTime AnimeReply::airDate() const
+{
+ return QDateTime::fromTime_t(animeFlagData.value(AnimeFlag::AirDate).toUInt());
+}
+
+int AnimeReply::specialEpCount() const
+{
+ return animeFlagData.value(AnimeFlag::SpecialEpCount).toInt();
+}
+
+int AnimeReply::highestEpisodeNumber() const
+{
+ return animeFlagData.value(AnimeFlag::HighestEpisodeNumber).toInt();
+}
+
+int AnimeReply::episodes() const
+{
+ return animeFlagData.value(AnimeFlag::Episodes).toInt();
+}
+
+
+QStringList AnimeReply::synonymList() const
+{
+ return animeFlagData.value(AnimeFlag::SynonymList).toString().split(QChar('\''));
+}
+
+QStringList AnimeReply::shortNameList() const
+{
+ return animeFlagData.value(AnimeFlag::ShortNameList).toString().split(QChar('\''));
+}
+
+QString AnimeReply::otherName() const
+{
+ return animeFlagData.value(AnimeFlag::OtherName).toString();
+}
+
+QString AnimeReply::englishName() const
+{
+ return animeFlagData.value(AnimeFlag::EnglishName).toString();
+}
+
+QString AnimeReply::kanjiName() const
+{
+ return animeFlagData.value(AnimeFlag::KanjiName).toString();
+}
+
+QString AnimeReply::romajiName() const
+{
+ return animeFlagData.value(AnimeFlag::RomajiName).toString();
+}
+
+
+QString AnimeReply::categoryWeightList() const
+{
+ return QString();
+}
+
+QStringList AnimeReply::categoryList() const
+{
+ return QStringList();
+}
+
+QStringList AnimeReply::relatedAidType() const
+{
+ return animeFlagData.value(AnimeFlag::RelatedAidType).toString().split(QChar('\''));
+}
+
+QStringList AnimeReply::relatedAidList() const
+{
+ return animeFlagData.value(AnimeFlag::RelatedAidList).toString().split(QChar('\''));
+}
+
+QString AnimeReply::type() const
+{
+ return animeFlagData.value(AnimeFlag::Type).toString();
+}
+
+QString AnimeReply::year() const
+{
+ return animeFlagData.value(AnimeFlag::Year).toString();
+}
+
+int AnimeReply::dateFlags() const
+{
+ return animeFlagData.value(AnimeFlag::DateFlags).toInt();
+}
+
+int AnimeReply::aid() const
+{
+ return animeFlagData.value(AnimeFlag::Aid).toInt();
+}
+
+
+} // namespace AniDBUdpClient
-#ifndef ANIMECOMMAND_H\r
-#define ANIMECOMMAND_H\r
-\r
-#include "abstractcommand.h"\r
-\r
-namespace AniDBUdpClient {\r
-\r
-class AnimeReply;\r
-\r
-class ANIDBUDPCLIENTSHARED_EXPORT AnimeCommand : public AbstractCommand\r
-{\r
- //Q_PROPERTY(int eid READ eid WRITE setEid)\r
- //Q_PROPERTY(int aid READ aid WRITE setAid)\r
- //Q_PROPERTY(int epno READ epno WRITE setEpno)\r
- //Q_PROPERTY(int aname READ aname WRITE setAname)\r
-\r
-public:\r
- typedef AnimeReply ReplyType;\r
- AnimeCommand();\r
- explicit AnimeCommand(int aid, AnimeFlags amask = 0);\r
- explicit AnimeCommand(const QString &aname, AnimeFlags amask = 0);\r
-\r
- int aid() const;\r
- void setAid(int aid);\r
-\r
- AnimeFlags amask() const;\r
- void amask(AnimeFlags amask);\r
-\r
- QString aname() const;\r
- void setAname(const QString &aname);\r
-\r
- bool isValid() const;\r
-\r
- bool waitForResult() const;\r
- Command rawCommand() const;\r
-\r
-private:\r
- void init();\r
-\r
- int m_aid;\r
- AnimeFlags m_amask;\r
- QString m_aname;\r
-};\r
-\r
-class ANIDBUDPCLIENTSHARED_EXPORT AnimeReply : public AbstractReply\r
-{\r
- Q_OBJECT\r
- REPLY_DEFINITION_HELPER2(Anime)\r
-\r
-public:\r
- QVariant value(AnimeFlags f) const;\r
-\r
- int specialsCount() const;\r
- int creditsCount() const;\r
- int otherCount() const;\r
- int trailerCount() const;\r
- int parodyCount() const;\r
-\r
- QStringList mainCreatorNameList() const;\r
- QStringList mainCreatorIdList() const;\r
- QStringList creatorIdList() const;\r
- QStringList characterIdList() const;\r
-\r
- QDateTime dateRecordUpdated() const;\r
- int aniemNfoId() const;\r
- int allCinemaId() const;\r
- int ANNId() const;\r
- int animePlanetId() const;\r
-\r
- bool is18Restricted() const;\r
- QStringList awardList() const;\r
- int reviewCount() const;\r
- double averageReviewRating() const;\r
- int tempVoteCount() const;\r
- double tempRating() const;\r
- int voteCount() const;\r
- double rating() const;\r
-\r
- QStringList categoryIdList() const;\r
- QString picName() const;\r
- QUrl url() const;\r
- QDateTime endDate() const;\r
- QDateTime airDate() const;\r
- int specialEpCount() const;\r
- int highestEpisodeNumber() const;\r
- int episodes() const;\r
-\r
- QStringList synonymList() const;\r
- QStringList shortNameList() const;\r
- QString otherName() const;\r
- QString englishName() const;\r
- QString kanjiName() const;\r
- QString romajiName() const;\r
-\r
- QString categoryWeightList() const;\r
- QStringList categoryList() const;\r
- QStringList relatedAidType() const;\r
- QStringList relatedAidList() const;\r
- QString type() const;\r
- QString year() const;\r
- int dateFlags() const;\r
- int aid() const;\r
-\r
- void setRawReply(ReplyCode replyCode, const QString &reply);\r
-\r
-private:\r
- void readReplyData(const QString &reply);\r
- void init();\r
-\r
- QMap<AnimeFlags, QVariant> animeFlagData;\r
-};\r
-\r
-} // namespace AniDBUdpClient\r
-\r
-#endif // ANIMECOMMAND_H\r
+#ifndef ANIMECOMMAND_H
+#define ANIMECOMMAND_H
+
+#include "abstractcommand.h"
+
+namespace AniDBUdpClient {
+
+class AnimeReply;
+
+class ANIDBUDPCLIENTSHARED_EXPORT AnimeCommand : public AbstractCommand
+{
+ //Q_PROPERTY(int eid READ eid WRITE setEid)
+ //Q_PROPERTY(int aid READ aid WRITE setAid)
+ //Q_PROPERTY(int epno READ epno WRITE setEpno)
+ //Q_PROPERTY(int aname READ aname WRITE setAname)
+
+public:
+ typedef AnimeReply ReplyType;
+ AnimeCommand();
+ explicit AnimeCommand(int aid, AnimeFlags amask = 0);
+ explicit AnimeCommand(const QString &aname, AnimeFlags amask = 0);
+
+ int aid() const;
+ void setAid(int aid);
+
+ AnimeFlags amask() const;
+ void amask(AnimeFlags amask);
+
+ QString aname() const;
+ void setAname(const QString &aname);
+
+ bool isValid() const;
+
+ bool waitForResult() const;
+ Command rawCommand() const;
+
+private:
+ void init();
+
+ int m_aid;
+ AnimeFlags m_amask;
+ QString m_aname;
+};
+
+class ANIDBUDPCLIENTSHARED_EXPORT AnimeReply : public AbstractReply
+{
+ Q_OBJECT
+ REPLY_DEFINITION_HELPER2(Anime)
+
+public:
+ QVariant value(AnimeFlags f) const;
+
+ int specialsCount() const;
+ int creditsCount() const;
+ int otherCount() const;
+ int trailerCount() const;
+ int parodyCount() const;
+
+ QStringList characterIdList() const;
+
+ QDateTime dateRecordUpdated() const;
+ QList<int> tagWeightList() const;
+ QList<int> tagIdList() const;
+ QStringList tagNameList() const;
+ int aniemNfoId() const;
+ int allCinemaId() const;
+ int ANNId() const;
+ int animePlanetId() const;
+
+ bool is18Restricted() const;
+ QStringList awardList() const;
+ int reviewCount() const;
+ double averageReviewRating() const;
+ int tempVoteCount() const;
+ double tempRating() const;
+ int voteCount() const;
+ double rating() const;
+
+ QStringList categoryIdList() const;
+ QString picName() const;
+ QUrl url() const;
+ QDateTime endDate() const;
+ QDateTime airDate() const;
+ int specialEpCount() const;
+ int highestEpisodeNumber() const;
+ int episodes() const;
+
+ QStringList synonymList() const;
+ QStringList shortNameList() const;
+ QString otherName() const;
+ QString englishName() const;
+ QString kanjiName() const;
+ QString romajiName() const;
+
+ QString categoryWeightList() const;
+ QStringList categoryList() const;
+ QStringList relatedAidType() const;
+ QStringList relatedAidList() const;
+ QString type() const;
+ QString year() const;
+ int dateFlags() const;
+ int aid() const;
+
+ void setRawReply(ReplyCode replyCode, const QString &reply);
+
+private:
+ void readReplyData(const QString &reply);
+ void init();
+
+ QMap<AnimeFlags, QVariant> animeFlagData;
+};
+
+} // namespace AniDBUdpClient
+
+#endif // ANIMECOMMAND_H