]> Some of my projects - anidbudpclient.git/commitdiff
FileReply improvements.
authorAPTX <marek321@gmail.com>
Mon, 21 May 2012 23:38:32 +0000 (01:38 +0200)
committerAPTX <marek321@gmail.com>
Mon, 21 May 2012 23:38:32 +0000 (01:38 +0200)
anidbudpclient_global.h
filecommand.cpp
filecommand.h
filerenamedelegate.cpp

index 6e5973eefef942ec253f79f3820b123ab424cb17..3c3837c8b461b0049a37dcfef9ecebab2bafb584 100644 (file)
@@ -212,14 +212,14 @@ namespace AniDBUdpClient
                        MyListSource    = Q_UINT64_C(0x0000000000000004),
                        MyListStorage   = Q_UINT64_C(0x0000000000000008),
                        MyListViewDate  = Q_UINT64_C(0x0000000000000010),
-                       MyListViewed    = Q_UINT64_C(0x0000000000000020),
+                       MyListViewed    = Q_UINT64_C(0x0000000000000020), // view count?
                        MyListFileState = Q_UINT64_C(0x0000000000000040),
                        MyListState             = Q_UINT64_C(0x0000000000000080),
 
                        AniDBFileName   = Q_UINT64_C(0x0000000000000100),
                //      Unused                  = Q_UINT64_C(0x0000000000000200),
                //      Unused                  = Q_UINT64_C(0x0000000000000400),
-                       AiredDate               = Q_UINT64_C(0x0000000000000800),
+                       AirDate                 = Q_UINT64_C(0x0000000000000800), // Format "YearBegin-YearEnd"
                        Description             = Q_UINT64_C(0x0000000000001000),
                        LengthInSeconds = Q_UINT64_C(0x0000000000002000),
                        SubLanguage             = Q_UINT64_C(0x0000000000004000),
@@ -259,7 +259,7 @@ namespace AniDBUdpClient
                        Byte5                   = MyListOther | MyListSource | MyListStorage
                                                         | MyListViewDate | MyListViewed | MyListFileState
                                                         | MyListState,
-                       Byte4                   = AniDBFileName | AiredDate | Description
+                       Byte4                   = AniDBFileName | AirDate | Description
                                                         | LengthInSeconds | SubLanguage | DubLanguage,
                        Byte3                   = FileType | VideoResolution | VideoBitrate
                                                         | VideoCodec | AudioBitrate | AudioCodec
index 1865f76caacbfc8d180711bd155fc8cc6561dd9c..931d8c9cd1bc438263f8ceb42097f02165a8820d 100644 (file)
@@ -343,4 +343,318 @@ void FileReply::init()
        m_fid = 0;
 }
 
+// ---------------------------
+
+QDateTime FileReply::dateAidRecordUpdated() const
+{
+       return QDateTime::fromTime_t(fileAnimeFlagData.value(FileAnimeFlag::DateAidRecordUpdated).toUInt());
+}
+
+QString FileReply::groupShortName() const
+{
+       return fileAnimeFlagData.value(FileAnimeFlag::GroupShortName).toString();
+}
+
+QString FileReply::groupName() const
+{
+       return fileAnimeFlagData.value(FileAnimeFlag::GroupName).toString();
+}
+
+int FileReply::episodeVoteCount() const
+{
+       return fileAnimeFlagData.value(FileAnimeFlag::EpisodeVoteCount).toInt();
+}
+
+double FileReply::episodeRating() const
+{
+       return fileAnimeFlagData.value(FileAnimeFlag::EpisodeRating).toInt() / 1000;
+}
+
+QString FileReply::epKanjiName() const
+{
+       return fileAnimeFlagData.value(FileAnimeFlag::EpKanjiName).toString();
+}
+
+QString FileReply::epRomajiName() const
+{
+       return fileAnimeFlagData.value(FileAnimeFlag::EpRomajiName).toString();
+}
+
+QString FileReply::epName() const
+{
+       return fileAnimeFlagData.value(FileAnimeFlag::EpName).toString();
+}
+
+QString FileReply::epNo() const
+{
+       return fileAnimeFlagData.value(FileAnimeFlag::EpNo).toString();
+}
+
+QString FileReply::synonymList() const
+{
+       return fileAnimeFlagData.value(FileAnimeFlag::SynonymList).toString();
+}
+
+QString FileReply::shortNameList() const
+{
+       return fileAnimeFlagData.value(FileAnimeFlag::ShortNameList).toString();
+}
+
+QString FileReply::otherName() const
+{
+       return fileAnimeFlagData.value(FileAnimeFlag::OtherName).toString();
+}
+
+QString FileReply::englishName() const
+{
+       return fileAnimeFlagData.value(FileAnimeFlag::EnglishName).toString();
+}
+
+QString FileReply::kanjiName() const
+{
+       return fileAnimeFlagData.value(FileAnimeFlag::KanjiName).toString();
+}
+
+QString FileReply::romajiName() const
+{
+       return fileAnimeFlagData.value(FileAnimeFlag::RomajiName).toString();
+}
+
+QString FileReply::cateogryList() const
+{
+       return fileAnimeFlagData.value(FileAnimeFlag::CateogryList).toString();
+}
+
+QString FileReply::relatedAidType() const
+{
+       return fileAnimeFlagData.value(FileAnimeFlag::RelatedAidType).toString();
+}
+
+QString FileReply::relatedAidList() const
+{
+       return fileAnimeFlagData.value(FileAnimeFlag::RelatedAidList).toString();
+}
+
+QString FileReply::type() const
+{
+       return fileAnimeFlagData.value(FileAnimeFlag::Type).toString();
+}
+
+QString FileReply::year() const
+{
+       return fileAnimeFlagData.value(FileAnimeFlag::Year).toString();
+}
+
+int FileReply::highestEpisodeNumber() const
+{
+       return fileAnimeFlagData.value(FileAnimeFlag::HighestEpisodeNumber).toInt();
+}
+
+int FileReply::animeTotalEpisodes() const
+{
+       return fileAnimeFlagData.value(FileAnimeFlag::AnimeTotalEpisodes).toInt();
+}
+
+// --
+
+QString FileReply::myListOther() const
+{
+       return fileFlagData.value(FileFlag::MyListOther).toString();
+}
+
+QString FileReply::myListSource() const
+{
+       return fileFlagData.value(FileFlag::MyListSource).toString();
+}
+
+QString FileReply::myListStorage() const
+{
+       return fileFlagData.value(FileFlag::MyListStorage).toString();
+}
+
+QDateTime FileReply::myListViewDate() const
+{
+       return fileFlagData.value(FileFlag::MyListViewDate).toDateTime();
+}
+
+int FileReply::myListViewed() const
+{
+       return fileFlagData.value(FileFlag::MyListViewed).toInt();
+}
+
+FileState FileReply::myListFileState() const
+{
+       return FileState(fileFlagData.value(FileFlag::MyListFileState).toInt());
+}
+
+State FileReply::myListState() const
+{
+       return AniDBUdpClient::State(fileFlagData.value(FileFlag::MyListState).toInt());
+}
+
+QString FileReply::aniDBFileName() const
+{
+       return fileFlagData.value(FileFlag::AniDBFileName).toString();
+}
+
+QString FileReply::airDate() const
+{
+       return fileFlagData.value(FileFlag::AirDate).toString();
+}
+
+QString FileReply::description() const
+{
+       return fileFlagData.value(FileFlag::Description).toString();
+}
+
+int FileReply::lengthInSeconds() const
+{
+       return fileFlagData.value(FileFlag::LengthInSeconds).toInt();
+}
+
+QString FileReply::subLanguage() const
+{
+       return fileFlagData.value(FileFlag::SubLanguage).toString();
+}
+
+QString FileReply::dubLanguage() const
+{
+       return fileFlagData.value(FileFlag::DubLanguage).toString();
+}
+
+QString FileReply::fileType() const
+{
+       return fileFlagData.value(FileFlag::FileType).toString();
+}
+
+QString FileReply::videoResolution() const
+{
+       return fileFlagData.value(FileFlag::VideoResolution).toString();
+}
+
+QString FileReply::videoBitrate() const
+{
+       return fileFlagData.value(FileFlag::VideoBitrate).toString();
+}
+
+QString FileReply::videoCodec() const
+{
+       return fileFlagData.value(FileFlag::VideoCodec).toString();
+}
+
+QString FileReply::audioBitrate() const
+{
+       return fileFlagData.value(FileFlag::AudioBitrate).toString();
+}
+
+QString FileReply::audioCodec() const
+{
+       return fileFlagData.value(FileFlag::AudioCodec).toString();
+}
+
+QString FileReply::source() const
+{
+       return fileFlagData.value(FileFlag::Source).toString();
+}
+
+QString FileReply::quality() const
+{
+       return fileFlagData.value(FileFlag::Quality).toString();
+}
+
+QString FileReply::crc32() const
+{
+       return fileFlagData.value(FileFlag::Crc32).toString();
+}
+
+QString FileReply::sha1() const
+{
+       return fileFlagData.value(FileFlag::Sha1).toString();
+}
+
+QString FileReply::md5() const
+{
+       return fileFlagData.value(FileFlag::Md5).toString();
+}
+
+QByteArray FileReply::ed2k() const
+{
+       return fileFlagData.value(FileFlag::Ed2k).toByteArray();
+}
+
+qint64 FileReply::size() const
+{
+       return fileFlagData.value(FileFlag::Size).toLongLong();
+}
+
+FileReply::State FileReply::state() const
+{
+       return State(fileFlagData.value(FileFlag::State).toInt());
+}
+
+bool FileReply::isDeprecated() const
+{
+       return fileFlagData.value(FileFlag::IsDeprecated).toInt();
+}
+
+QStringList FileReply::otherEpisodes() const
+{
+       return fileFlagData.value(FileFlag::OtherEpisodes).toString().split(QChar('\''));
+}
+
+int FileReply::lid() const
+{
+       return fileFlagData.value(FileFlag::Lid).toInt();
+}
+
+int FileReply::gid() const
+{
+       return fileFlagData.value(FileFlag::Gid).toInt();
+}
+
+int FileReply::eid() const
+{
+       return fileFlagData.value(FileFlag::Eid).toInt();
+}
+
+int FileReply::aid() const
+{
+       return fileFlagData.value(FileFlag::Aid).toInt();
+}
+
+int FileReply::version() const
+{
+       int version = 1;
+       State s = state();
+       if (s & FileReply::IsV2)
+               version = 2;
+       if (s & FileReply::IsV3)
+               version = 3;
+       if (s & FileReply::IsV4)
+               version = 4;
+       if (s & FileReply::IsV5)
+               version = 5;
+       return version;
+}
+
+bool FileReply::isCensored() const
+{
+       return state() & Censored;
+}
+
+bool FileReply::isUncensored() const
+{
+       return state() & Uncensored;
+}
+
+bool FileReply::isCrcOk() const
+{
+       return state() & CrcOk;
+}
+
+bool FileReply::isCrcErr() const
+{
+       return state() & CrcErr;
+}
+
 } // namespace AniDBUdpClient
index 6edf2bb4a4c67f88cddd6401db2ed9a8c45ab55a..79773b9b16d879aecfdf204ef6056b053a86ce3e 100644 (file)
@@ -111,6 +111,80 @@ public:
 
        void setRawReply(ReplyCode replyCode, const QString &reply);
 
+       // ---------------------
+       QDateTime dateAidRecordUpdated() const;
+       QString groupShortName() const;
+       QString groupName() const;
+
+       int episodeVoteCount() const;
+       double episodeRating() const;
+       QString epKanjiName() const;
+       QString epRomajiName() const;
+       QString epName() const;
+       QString epNo() const;
+
+       QString synonymList() const;
+       QString shortNameList() const;
+       QString otherName() const;
+       QString englishName() const;
+       QString kanjiName() const;
+       QString romajiName() const;
+
+       QString cateogryList() const;
+       QString relatedAidType() const;
+       QString relatedAidList() const;
+       QString type() const;
+       QString year() const;
+       int highestEpisodeNumber() const;
+       int animeTotalEpisodes() const;
+
+       // --
+
+       QString myListOther() const;
+       QString myListSource() const;
+       QString myListStorage() const;
+       QDateTime myListViewDate() const;
+       int myListViewed() const;
+       FileState myListFileState() const;
+       AniDBUdpClient::State myListState() const;
+
+       QString aniDBFileName() const;
+       QString airDate() const;
+       QString description() const;
+       int lengthInSeconds() const;
+       QString subLanguage() const;
+       QString dubLanguage() const;
+
+       QString fileType() const;
+       QString videoResolution() const;
+       QString videoBitrate() const;
+       QString videoCodec() const;
+       QString audioBitrate() const;
+       QString audioCodec() const;
+       QString source() const;
+       QString quality() const;
+
+       QString crc32() const;
+       QString sha1() const;
+       QString md5() const;
+       QByteArray ed2k() const;
+       qint64 size() const;
+
+       State state() const;
+       bool isDeprecated() const;
+       QStringList otherEpisodes() const;
+       int lid() const;
+       int gid() const;
+       int eid() const;
+       int aid() const;
+       // ---------------------
+
+       int version() const;
+       bool isCensored() const;
+       bool isUncensored() const;
+       bool isCrcOk() const;
+       bool isCrcErr() const;
+
 private:
        void readReplyData(const QString &reply);
        void init();
index e7cab125936cdef925d2b9eabcf574378566653f..e11e2a30e38cf36c76b6a0ebb495515865d0723e 100644 (file)
@@ -67,22 +67,22 @@ void FileRenameDelegate::rename(const AniDBUdpClient::FileReply *reply, QString
 
        RenameParser::Environment env;
 
-       env["ATr"] = reply->value(FileAnimeFlag::RomajiName).toString();
-       env["ATe"] = reply->value(FileAnimeFlag::EnglishName).toString();
-       env["ATk"] = reply->value(FileAnimeFlag::KanjiName).toString();
+       env["ATr"] = reply->romajiName();
+       env["ATe"] = reply->englishName();
+       env["ATk"] = reply->kanjiName();
 
-       env["ETr"] = reply->value(FileAnimeFlag::EpRomajiName).toString();
-       env["ETe"] = reply->value(FileAnimeFlag::EpName).toString();
-       env["ETk"] = reply->value(FileAnimeFlag::EpKanjiName).toString();
+       env["ETr"] = reply->epRomajiName();
+       env["ETe"] = reply->epName();
+       env["ETk"] = reply->epKanjiName();
 
-       env["GTs"] = reply->value(FileAnimeFlag::GroupShortName).toString();
-       env["GTl"] = reply->value(FileAnimeFlag::GroupName).toString();
+       env["GTs"] = reply->groupShortName();
+       env["GTl"] = reply->groupName();
 
-       env["EpNo"] = reply->value( FileAnimeFlag::EpNo).toString();
-       env["EpHiNo"] = reply->value(FileAnimeFlag::AnimeTotalEpisodes).toString();
-       env["EpCount"] = reply->value(FileAnimeFlag::HighestEpisodeNumber).toString();
+       env["EpNo"] = reply->epNo();
+       env["EpHiNo"] = QString::number(reply->animeTotalEpisodes());
+       env["EpCount"] = QString::number(reply->highestEpisodeNumber());
 
-       QString airDate = reply->value(FileFlag::AiredDate).toString();
+       QString airDate = reply->airDate();
        if (!airDate.contains('-'))
        {
                env["AYearBegin"] = airDate;
@@ -95,34 +95,21 @@ void FileRenameDelegate::rename(const AniDBUdpClient::FileReply *reply, QString
                env["AYearEnd"] = years[1].trimmed();
        }
 
+       env["Type"] = reply->type();
+       env["Depr"] = reply->isDeprecated() ? "1" : "";
 
-       env["Type"] = reply->value(FileAnimeFlag::Type).toString();
-       env["Depr"] = reply->value(FileFlag::IsDeprecated).toInt() ? "1" : "";
+       env["Cen"] = reply->isCensored() ? "1" : "0";
 
-       const int state = reply->value(FileFlag::State).toInt();
-
-       env["Cen"] = state & FileReply::Censored ? "1" : "0";
-
-       int version = 1;
-       if (state & FileReply::IsV2)
-               version = 2;
-       if (state & FileReply::IsV3)
-               version = 3;
-       if (state & FileReply::IsV4)
-               version = 4;
-       if (state & FileReply::IsV5)
-               version = 5;
-
-       env["Ver"] = QString::number(version);
-       env["Source"] = reply->value(FileFlag::Source).toString();
-       env["Quality"] = reply->value(FileFlag::Quality).toString();
-       env["FCrc"] = reply->value(FileFlag::Crc32).toString();
-       env["FVideoRes"] = reply->value(FileFlag::VideoResolution).toString();
-       env["FALng"] = reply->value(FileFlag::DubLanguage).toString();
-       env["FSLng"] = reply->value(FileFlag::SubLanguage).toString();
-       env["FACodec"] = reply->value(FileFlag::AudioCodec).toString();
-       env["FVCodec"] = reply->value(FileFlag::VideoCodec).toString();
-       env["Watched"] = reply->value(FileFlag::MyListViewed).toString();
+       env["Ver"] = QString::number(reply->version());
+       env["Source"] = reply->source();
+       env["Quality"] = reply->quality();
+       env["FCrc"] = reply->crc32();
+       env["FVideoRes"] = reply->videoResolution();
+       env["FALng"] = reply->dubLanguage();
+       env["FSLng"] = reply->subLanguage();
+       env["FACodec"] = reply->audioCodec();
+       env["FVCodec"] = reply->videoCodec();
+       env["Watched"] = QString::number(reply->myListViewed());
 
 #ifdef ANIDBUDPCLIENT_RENAME_DEBUG
 qDebug() << "Rename ENV:" << env;
@@ -131,7 +118,7 @@ qDebug() << "Rename Script:" << m_renameEngine->renameString();
 
        m_renameEngine->evaluate(env);
 
-       fileName = env.value("FileName", "") + "." + reply->value(FileFlag::FileType).toString();
+       fileName = env.value("FileName", "") + "." + reply->fileType();
        filePath = env.value("FilePath", "");
 #endif
 }
@@ -153,8 +140,8 @@ void FileRenameDelegate::updateMasks()
                fMaskVars["Ver"] = FileFlag::State;
                fMaskVars["Source"] = FileFlag::Source;
                fMaskVars["Quality"] = FileFlag::Quality;
-               fMaskVars["AYearBegin"] = FileFlag::AiredDate;
-               fMaskVars["AYearEnd"] = FileFlag::AiredDate;
+               fMaskVars["AYearBegin"] = FileFlag::AirDate;
+               fMaskVars["AYearEnd"] = FileFlag::AirDate;
                fMaskVars["FCrc"] = FileFlag::Crc32;
                fMaskVars["FVideoRes"] = FileFlag::VideoResolution;
                fMaskVars["FALng"] = FileFlag::DubLanguage;