{
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);
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 "
" 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);
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);
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);