From 32be746edd7eb4553ba62404d24a56d39416fa3b Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Wed, 6 Jan 2021 16:01:00 +0100
Subject: [PATCH] DB: Can now add by id in playlists

---
 src/database/playlist.c  | 22 +++++++++++++++-------
 src/module/module_repo.c |  3 +--
 2 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/src/database/playlist.c b/src/database/playlist.c
index 35c45950..8fd1008b 100644
--- a/src/database/playlist.c
+++ b/src/database/playlist.c
@@ -187,9 +187,18 @@ error:
 bool
 database_plt_add_uri(volatile sqlite3 *db, const char *name, struct lkt_uri *uri)
 {
+    bool sta = false;
+    sqlite3_stmt *stmt;
+
     if (uri->is_int) {
-        LOG_ERROR("DB", "Add by ID (where the uri is an integer) is not implemented yet");
-        return false;
+        static const char *SQL =
+            "INSERT OR REPLACE INTO kara_playlist (kara_id, playlist_id) "
+            " VALUES (?, (SELECT id FROM playlist WHERE name = ? COLLATE NOCASE));";
+        SQLITE_PREPARE(db, stmt, SQL, error);
+        SQLITE_BIND_INT(db, stmt, 1, uri->id, error);
+        SQLITE_BIND_TEXT(db, stmt, 2, name, error);
+        SQLITE_STEP_DONE(db, stmt, error);
+        sta = true;
     }
 
     else {
@@ -199,8 +208,7 @@ database_plt_add_uri(volatile sqlite3 *db, const char *name, struct lkt_uri *uri
             " kara.id,"
             " (SELECT playlist.id FROM playlist WHERE name = ? COLLATE NOCASE)"
             "FROM kara WHERE kara.%s LIKE ?;";
-        char SQL_STMT[LKT_MAX_SQLITE_STATEMENT], sta = false;
-        sqlite3_stmt *stmt;
+        char SQL_STMT[LKT_MAX_SQLITE_STATEMENT];
 
         safe_snprintf(SQL_STMT, LKT_MAX_SQLITE_STATEMENT, SQL, uri->column_name);
         SQLITE_PREPARE(db, stmt, SQL_STMT, error);
@@ -208,8 +216,8 @@ database_plt_add_uri(volatile sqlite3 *db, const char *name, struct lkt_uri *uri
         SQLITE_BIND_TEXT(db, stmt, 2, (char *) uri->value, error);
         SQLITE_STEP_DONE(db, stmt, error);
         sta = true;
-error:
-        sqlite3_finalize(stmt);
-        return sta;
     }
+error:
+    sqlite3_finalize(stmt);
+    return sta;
 }
diff --git a/src/module/module_repo.c b/src/module/module_repo.c
index f4f1578e..f4085192 100644
--- a/src/module/module_repo.c
+++ b/src/module/module_repo.c
@@ -555,8 +555,7 @@ __worker_import_favorites(void *__repo)
     GOTO_IF(pthread_mutex_unlock(&(repo->mtx)), "Failed to unlock", end_no_lock);
 
     struct json_object *json, *item_json = NULL;
-    LOG_INFO("REPO", "Download favorite lists from %s (%s), directory is %s",
-             repo->name, repo->get_fav_json, repo->kara_dir);
+    LOG_INFO("REPO", "Download favorite lists from %s (%s)", repo->name, repo->get_fav_json);
     if (__json_dl(repo->get_fav_json, &json)) {
         LOG_ERROR("REPO", "Failed to get json, possibly no internet connexion or repo is down");
         pthread_exit(NULL);
-- 
GitLab