From: APTX Date: Tue, 7 May 2013 20:44:36 +0000 (+0200) Subject: Add pixel/version sorting to the other OpenFileData returning methods. X-Git-Url: https://gitweb.aptx.org/?a=commitdiff_plain;h=e1885f55546c6b8f713ba08f9615d097bc82c6d5;p=localmylist.git Add pixel/version sorting to the other OpenFileData returning methods. --- diff --git a/localmylist/database.cpp b/localmylist/database.cpp index b2a5934..7b0d88c 100644 --- a/localmylist/database.cpp +++ b/localmylist/database.cpp @@ -172,14 +172,17 @@ OpenFileData Database::openFileByTitle(const QString &title, int epno) { QSqlQuery &q = prepare( - "SELECT f.fid, a.title_romaji, e.title_english, e.epno, fl.path, fl.host_id FROM file f " + "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 anime_title at ON f.aid = at.aid " " LEFT JOIN episode e ON f.eid = e.eid " " LEFT JOIN file_location fl ON fl.fid = f.fid " " WHERE lower(at.title) = lower(:title) " " AND e.epno = :epno " - " AND fl.path IS NOT NULL "); + " AND fl.path IS NOT NULL " + "ORDER BY pixels DESC, f.version DESC "); q.bindValue(":title", title); q.bindValue(":epno", epno); @@ -190,7 +193,9 @@ OpenFileData Database::openFileByTitle(const QString &title, int epno) return ofd; QSqlQuery &q = prepare( - "SELECT f.fid, a.title_romaji, e.title_english, e.epno, fl.path, fl.host_id FROM file f " + "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 anime_title at ON f.aid = at.aid " " LEFT JOIN episode e ON f.eid = e.eid " @@ -198,7 +203,8 @@ OpenFileData Database::openFileByTitle(const QString &title, int epno) " WHERE at.title ILIKE :fuzzyTitle " " AND e.epno = :epno " " AND fl.path IS NOT NULL " - "GROUP BY f.fid, a.title_romaji, e.title_english, e.epno, fl.path, fl.host_id "); + "GROUP BY f.fid, a.title_romaji, e.title_english, e.epno, fl.path, fl.host_id " + "ORDER BY pixels DESC, f.version DESC "); q.bindValue(":fuzzyTitle", "%" + title + "%"); q.bindValue(":epno", epno); @@ -210,13 +216,15 @@ OpenFileData Database::openFileByTitle(const QString &title, int epno) OpenFileData Database::openFileByEid(int eid) { QSqlQuery &q = prepare( - "SELECT f.fid, a.title_romaji, e.title_english, e.epno, fl.path, fl.host_id 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.eid = :eid " - " AND fl.path IS NOT NULL " - " ORDER BY f.version DESC "); + "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.eid = :eid " + " AND fl.path IS NOT NULL " + "ORDER BY pixels DESC, f.version DESC "); q.bindValue(":eid", eid); return readOpenFileData(q); @@ -225,12 +233,12 @@ OpenFileData Database::openFileByEid(int eid) OpenFileData Database::openFile(int fid) { QSqlQuery &q = prepare( - "SELECT f.fid, a.title_romaji, e.title_english, e.epno, fl.path, fl.host_id 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.fid = :fid " - " AND fl.path IS NOT NULL "); + "SELECT f.fid, a.title_romaji, e.title_english, e.epno, fl.path, fl.host_id 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.fid = :fid " + " AND fl.path IS NOT NULL "); q.bindValue(":fid", fid); return readOpenFileData(q);