]> Some of my projects - anidbudpclient.git/commitdiff
Apply API updates from 2016 and 2017
authorAPTX <marek321@gmail.com>
Sat, 10 Feb 2018 11:36:02 +0000 (20:36 +0900)
committerAPTX <marek321@gmail.com>
Sat, 10 Feb 2018 11:37:54 +0000 (20:37 +0900)
The following AnimeFlags have been retired
and have been removed:
- MainCreatorNameList
- MainCreatorIdList
- CreatorIdList

Helper getters for these flags have been
removed from AnimeCommand:
- mainCreatorNameList
- mainCreatorIdList
- creatorIdList

The following AnimeFlags have been added:
- TagWeightList
- TagIdList
- TagNameList

Helper getters for these flags have been
added to AnimeCommand:
- tagWeightList
- tagIdList
- tagNameList

The new "External Storage" State has been
added as: StateOnExternalStorage

anidbudpclient_global.h
animecommand.cpp
animecommand.h

index 30e81c39ea82cc86056c900313b070645ae6b7a4..1e1c6e52cdd0a76ffcabf39c41adc8c4346ab0e2 100644 (file)
@@ -214,7 +214,8 @@ namespace AniDBUdpClient
                StateUnknown = 0,
                StateOnHdd = 1,
                StateOnCd = 2,
-               StateDeleted = 3
+               StateDeleted = 3,
+               StateOnExternalStorage = 4,
        };
 
        enum FileState {
@@ -379,15 +380,15 @@ namespace AniDBUdpClient
                //      Unused                          = Q_UINT64_C(0x0000000000000200),
                //      Unused                          = Q_UINT64_C(0x0000000000000400),
                //      Unused                          = Q_UINT64_C(0x0000000000000800),
-                       MainCreatorNameList     = Q_UINT64_C(0x0000000000001000),
-                       MainCreatorIdList       = Q_UINT64_C(0x0000000000002000),
-                       CreatorIdList           = Q_UINT64_C(0x0000000000004000),
+               //      MainCreatorNameList     = Q_UINT64_C(0x0000000000001000), RETIRED
+               //      MainCreatorIdList       = Q_UINT64_C(0x0000000000002000), RETIRED
+               //      CreatorIdList           = Q_UINT64_C(0x0000000000004000), RETIRED
                        CharacterIdList         = Q_UINT64_C(0x0000000000008000),
 
                        DateRecordUpdated       = Q_UINT64_C(0x0000000000010000),
-               //      Unused                          = Q_UINT64_C(0x0000000000020000),
-               //      Unused                          = Q_UINT64_C(0x0000000000040000),
-               //      Unused                          = Q_UINT64_C(0x0000000000080000),
+                       TagWeightList           = Q_UINT64_C(0x0000000000020000),
+                       TagIdList                       = Q_UINT64_C(0x0000000000040000),
+                       TagNameList                     = Q_UINT64_C(0x0000000000080000),
                        AnimeNfoId                      = Q_UINT64_C(0x0000000000100000),
                        AllCinemaId                     = Q_UINT64_C(0x0000000000200000),
                        ANNId                           = Q_UINT64_C(0x0000000000400000),
@@ -433,8 +434,7 @@ namespace AniDBUdpClient
 
                        Byte1                   = SpecialsCount | CreditsCount | OtherCount
                                                        | TrailerCount | ParodyCount,
-                       Byte2                   = MainCreatorNameList | MainCreatorIdList | CreatorIdList
-                                                       | CharacterIdList,
+                       Byte2                   = CharacterIdList,
                        Byte3                   = DateRecordUpdated | AnimeNfoId | AllCinemaId
                                                        | ANNId,
                        Byte4                   = Is18Restricted | AwardList | ReviewCount
index f1ba1d83cbd436d94eede66eaf67ef2a17632911..6d70a9de062063c8aa42d4ccc5bff80bcb22fb55 100644 (file)
-#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
index 7c84e912fd0806d93cf4d21d8f4a46713e8292f1..41587e47aa9f3d8e1e54b420f676e2e86338d82f 100644 (file)
-#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