]> Some of my projects - localmylist.git/commitdiff
Add a firstUnwatchedByExactTitle method.
authorAPTX <marek321@gmail.com>
Sun, 21 Apr 2013 15:07:31 +0000 (17:07 +0200)
committerAPTX <marek321@gmail.com>
Sun, 21 Apr 2013 15:07:31 +0000 (17:07 +0200)
firstUnwatchedByTitle now calls firstUnwatchedByExactTitle to check for an exact title before trying a partial match.

localmylist/database.cpp
localmylist/database.h

index 37a3ea8eba55eba4355a328735f77cec63bbbd63..5fe69e8f92df91d72ae282c5787bbb020085aea3 100644 (file)
@@ -85,28 +85,32 @@ qDebug() << "Commit Error:" << d->db.lastError();
 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 "
index 4d8b4a8976eb99e4b07b9c58afac032678797278..227fab5c6ccbb03d0b017cf6e86d4c5ffe5e6c3c 100644 (file)
@@ -47,6 +47,7 @@ public slots:
        bool commit();
        bool rollback();
 
+       LocalMyList::OpenFileData firstUnwatchedByExactTitle(const QString &title);
        LocalMyList::OpenFileData firstUnwatchedByTitle(const QString &title);
        LocalMyList::OpenFileData firstUnwatchedByAid(int aid);
        LocalMyList::OpenFileData openFileByTitle(const QString &title, int epno = 0);