From 97ed964599b5810e6fed4c8149a230df38077c39 Mon Sep 17 00:00:00 2001 From: APTX Date: Sat, 31 Aug 2013 17:54:01 +0200 Subject: [PATCH] Add openEpisode method to to open a specific episode. --- localmylist/database.cpp | 21 +++++++++++++++++++++ localmylist/database.h | 1 + 2 files changed, 22 insertions(+) diff --git a/localmylist/database.cpp b/localmylist/database.cpp index c2cb4c2..34c0d61 100644 --- a/localmylist/database.cpp +++ b/localmylist/database.cpp @@ -362,6 +362,27 @@ OpenFileData Database::openFile(int fid) return readOpenFileData(q); } +OpenFileData Database::openEpisode(int aid, int epno, const QString &type) +{ + QSqlQuery &q = prepare( + "SELECT f.fid, a.title_romaji, e.title_english, e.epno, fl.path, fl.host_id, " + " CASE WHEN split_part(f.resolution, 'x', 1) = '' OR split_part(f.resolution, 'x', 2) = '' THEN 0 ELSE split_part(f.resolution, 'x', 1)::int * split_part(f.resolution, 'x', 2)::int END pixels " + " FROM file f " + " LEFT JOIN anime a ON f.aid = a.aid " + " LEFT JOIN episode e ON f.eid = e.eid " + " LEFT JOIN file_location fl ON fl.fid = f.fid " + " WHERE f.aid = :aid " + " AND e.epno = :epno " + " AND e.type = :type " + " AND fl.path IS NOT NULL " + "ORDER BY pixels DESC, f.version DESC "); + q.bindValue(":aid", aid); + q.bindValue(":epno", epno); + q.bindValue(":type", type); + + return readOpenFileData(q); +} + HostInfo Database::getHostInfo(const QString &hostName) { QSqlQuery &q = prepare( diff --git a/localmylist/database.h b/localmylist/database.h index 89a8bf8..8d7f329 100644 --- a/localmylist/database.h +++ b/localmylist/database.h @@ -57,6 +57,7 @@ public slots: LocalMyList::OpenFileData openFileByTitle(const QString &title, int epno = 0); LocalMyList::OpenFileData openFileByEid(int eid); LocalMyList::OpenFileData openFile(int fid); + LocalMyList::OpenFileData openEpisode(int aid, int epno, const QString &type = ""); LocalMyList::HostInfo getHostInfo(const QString &hostName); -- 2.52.0