From: APTX Date: Mon, 23 Jul 2012 17:51:11 +0000 (+0200) Subject: Add totalEpisodeCount and highestEpno to Anime X-Git-Url: https://gitweb.tyo.aptx.org/?a=commitdiff_plain;h=501c81adb3f216a9cc3426bca06e3eb603408855;p=localmylist.git Add totalEpisodeCount and highestEpno to Anime --- diff --git a/localmylist/database.cpp b/localmylist/database.cpp index a159cf9..bb7da03 100644 --- a/localmylist/database.cpp +++ b/localmylist/database.cpp @@ -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; diff --git a/localmylist/database.h b/localmylist/database.h index 142bd42..3c0b96b 100644 --- a/localmylist/database.h +++ b/localmylist/database.h @@ -41,6 +41,8 @@ struct LOCALMYLISTSHARED_EXPORT Anime QDateTime startDate; QDateTime endDate; QString type; + int totalEpisodeCount; + int highestEpno; double rating; int votes; double tempRating; diff --git a/localmylist/renameutils.cpp b/localmylist/renameutils.cpp index 14e0a23..80ac29c 100644 --- a/localmylist/renameutils.cpp +++ b/localmylist/renameutils.cpp @@ -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('-')) diff --git a/localmylist/scriptable.cpp b/localmylist/scriptable.cpp index 15a49e6..47ee479 100644 --- a/localmylist/scriptable.cpp +++ b/localmylist/scriptable.cpp @@ -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(); diff --git a/localmylist/scriptable.h b/localmylist/scriptable.h index e32ab67..3b2f7f7 100644 --- a/localmylist/scriptable.h +++ b/localmylist/scriptable.h @@ -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); diff --git a/localmylist/share/schema/schema.sql b/localmylist/share/schema/schema.sql index 2909620..5f38802 100644 --- a/localmylist/share/schema/schema.sql +++ b/localmylist/share/schema/schema.sql @@ -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,