#include "animecommand.h"\r
\r
#include <QStringList>\r
+#include <QUrl>\r
+\r
+#include <QDebug>\r
\r
namespace AniDBUdpClient {\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
+ animeFlagData.insert(AnimeFlag::CategoryList, parts[18]);\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 animeFlagData.value(AnimeFlag::AnimePlanetId).toInt();\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() / 1000;\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() / 1000;\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() / 1000;\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 animeFlagData.value(AnimeFlag::CategoryWeightList).toString();\r
+}\r
+\r
+QStringList AnimeReply::categoryList() const\r
+{\r
+ return animeFlagData.value(AnimeFlag::CategoryList).toString().split(QChar('\''));\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
+int AnimeReply::year() const\r
+{\r
+ return animeFlagData.value(AnimeFlag::Year).toInt();\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
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
+ int year() const;\r
+ int dateFlags() const;\r
+ int aid() const;\r
+\r
void setRawReply(ReplyCode replyCode, const QString &reply);\r
\r
private:\r