]> Some of my projects - localmylist.git/commitdiff
Add totalEpisodeCount and highestEpno to Anime
authorAPTX <marek321@gmail.com>
Mon, 23 Jul 2012 17:51:11 +0000 (19:51 +0200)
committerAPTX <marek321@gmail.com>
Mon, 23 Jul 2012 17:51:11 +0000 (19:51 +0200)
localmylist/database.cpp
localmylist/database.h
localmylist/renameutils.cpp
localmylist/scriptable.cpp
localmylist/scriptable.h
localmylist/share/schema/schema.sql

index a159cf94ca519ea7c40f0f1736bc6109b43a9c9e..bb7da03e80c40cfd469d2efe06c01c11ef67414b 100644 (file)
@@ -22,6 +22,8 @@ AnimeTitle::AnimeTitle(int aid, TitleType type, const QString &language, const Q
 Anime::Anime()
 {
        aid = 0;
+       totalEpisodeCount = 0;
+       highestEpno = 0;
        rating = 0;
        votes = 0;
        tempRating = 0;
index 142bd4296f70982db3ffe89a44d40d753e04d678..3c0b96b5c483eab5e7b6a8630e66d073644301f6 100644 (file)
@@ -41,6 +41,8 @@ struct LOCALMYLISTSHARED_EXPORT Anime
        QDateTime startDate;
        QDateTime endDate;
        QString type;
+       int totalEpisodeCount;
+       int highestEpno;
        double rating;
        int votes;
        double tempRating;
index 14e0a233840b44267335f223c22bcc665c2f7140..80ac29c698e3a755cad155e4f6a65cbad7898499 100644 (file)
@@ -23,7 +23,7 @@ void setupRenameEnv(const QSqlRecord &record, RenameParser::Environment &env)
 
        env["EpNo"] = record.value("epno").toString();
        env["EpHiNo"] = record.value("highest_epno").toString();
-       env["EpCount"] = record.value("episode_count").toString(); // TODO This is missing from the data, providing count of episodes in database
+       env["EpCount"] = record.value("total_episode_count").toString();
 
        QString year = record.value("year").toString().trimmed();
        if (!year.contains('-'))
index 15a49e6814589b92eacef1f318a3ee2987d5c9c2..47ee47994177ea0c82373033d96b784436d18809 100644 (file)
@@ -428,6 +428,34 @@ void Anime::write_type(QString val)
        o->type = val;
 }
 
+int Anime::read_totalEpisodeCount() const
+{
+       auto o = thisObj();
+       if (!o) return int();
+       return o->totalEpisodeCount;
+}
+
+void Anime::write_totalEpisodeCount(int val)
+{
+       auto o = thisObj();
+       if (!o) return;
+       o->totalEpisodeCount = val;
+}
+
+int Anime::read_highestEpno() const
+{
+       auto o = thisObj();
+       if (!o) return int();
+       return o->highestEpno;
+}
+
+void Anime::write_highestEpno(int val)
+{
+       auto o = thisObj();
+       if (!o) return;
+       o->highestEpno = val;
+}
+
 double Anime::read_rating() const
 {
        auto o = thisObj();
index e32ab671f7ac6b23d5b96094481bf91e9af10432..3b2f7f7c5173ac99d71fa70a20eea76ee378fe44 100644 (file)
@@ -70,6 +70,8 @@ class LOCALMYLISTSHARED_EXPORT Anime : public QObject, protected QScriptable
        Q_PROPERTY(QDateTime startDate READ read_startDate WRITE write_startDate)
        Q_PROPERTY(QDateTime endDate READ read_endDate WRITE write_endDate)
        Q_PROPERTY(QString type READ read_type WRITE write_type)
+       Q_PROPERTY(int totalEpisodeCount READ read_totalEpisodeCount WRITE write_totalEpisodeCount)
+       Q_PROPERTY(int highestEpno READ read_highestEpno WRITE write_highestEpno)
        Q_PROPERTY(double rating READ read_rating WRITE write_rating)
        Q_PROPERTY(int votes READ read_votes WRITE write_votes)
        Q_PROPERTY(double tempRating READ read_tempRating WRITE write_tempRating)
@@ -123,6 +125,12 @@ public:
        QString read_type() const;
        void write_type(QString val);
 
+       int read_totalEpisodeCount() const;
+       void write_totalEpisodeCount(int val);
+
+       int read_highestEpno() const;
+       void write_highestEpno(int val);
+
        double read_rating() const;
        void write_rating(double val);
 
index 2909620bf0f4e6ce318bbc7c1a66c732e06f2782..5f38802817403b6a764952cfec62e1ad0856da18 100644 (file)
@@ -11,6 +11,8 @@ CREATE TABLE anime (
        start_date timestamp without time zone,
        end_date timestamp without time zone,
        type character varying(50),
+       total_episode_count integer NOT NULL DEFAULT 0,
+       highest_epno integer NOT NULL DEFAULT 0,
        rating numeric(4,2),
        votes integer,
        temp_rating numeric(4,2),
@@ -201,9 +203,8 @@ CREATE VIEW file_data AS
 
 CREATE VIEW rename_data AS 
        SELECT f.fid, f.eid, f.aid, f.gid, a.anidb_update AS anime_anidb_update, a.entry_update AS anime_entry_update, a.my_update AS anime_my_update, a.title_english AS anime_title_english,
-                       a.title_romaji AS anime_title_romaji, a.title_kanji AS anime_title_kanji, a.description, a.year, a.start_date, a.end_date, a.type AS anime_type, a.rating AS anime_rating, a.votes AS anime_votes,
+                       a.title_romaji AS anime_title_romaji, a.title_kanji AS anime_title_kanji, a.description, a.year, a.start_date, a.end_date, a.type AS anime_type, a.total_episode_count, a.highest_epno, a.rating AS anime_rating, a.votes AS anime_votes,
                        a.temp_rating, a.temp_votes, a.my_vote AS anime_my_vote, a.my_vote_date AS anime_my_vote_date, a.my_temp_vote, a.my_temp_vote_date,
-                       (SELECT count(episode.eid) AS count FROM episode WHERE episode.aid = f.aid) AS episode_count,
                        (SELECT max(episode.epno) AS highest_epno FROM episode WHERE episode.aid = f.aid) AS highest_epno,
                e.anidb_update AS episode_anidb_update, e.entry_update AS episode_entry_update, e.my_update AS episode_my_update, e.epno, e.title_english AS episode_title_english, e.title_romaji AS episode_title_romaji,
                        e.title_kanji AS episode_title_kanji, e.length AS episode_length, e.airdate, e.state, e.special, e.recap, e.opening, e.ending, e.rating, e.votes, e.my_vote, e.my_vote_date,