return false;
}
+OpenFileData Database::firstUnwatchedByExactTitle(const QString &title)
+{
+ 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 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 f.my_watched IS NULL "
+ " AND lower(at.title) = lower(:title) "
+ " AND fl.path IS NOT NULL "
+ " AND NOT EXISTS (SELECT 1 FROM file WHERE eid = e.eid AND my_watched IS NOT NULL LIMIT 1) "
+ "ORDER BY epno ASC ");
+ q.bindValue(":title", title);
+
+ return readOpenFileData(q);
+}
+
OpenFileData Database::firstUnwatchedByTitle(const QString &title)
{
OpenFileData ofd;
- {
- 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 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 f.my_watched IS NULL "
- " AND lower(at.title) = lower(:title) "
- " AND fl.path IS NOT NULL "
- " AND NOT EXISTS (SELECT 1 FROM file WHERE eid = e.eid AND my_watched IS NOT NULL LIMIT 1) "
- "ORDER BY epno ASC ");
- q.bindValue(":title", title);
+ ofd = firstUnwatchedByExactTitle(title);
- ofd = readOpenFileData(q);
- if (ofd.fid)
- return ofd;
- }
+ if (ofd.fid)
+ return ofd;
QSqlQuery &q = prepare(
"SELECT f.fid, a.title_romaji, e.title_english, e.epno, fl.path, fl.host_id FROM file f "