]> littlesong.place Git - littlesongplace.git/commitdiff
Initial work on import queue database
authorChris Fulljames <christian.fulljames@gmail.com>
Mon, 19 Jan 2026 02:57:44 +0000 (21:57 -0500)
committerChris Fulljames <christian.fulljames@gmail.com>
Mon, 19 Jan 2026 02:57:44 +0000 (21:57 -0500)
src/littlesongplace/dreams_importer.py
src/littlesongplace/sql/schema_update.sql

index fcd07cc746588bfccb82067cb0a49d538c8819a9..9060672a67752214fa088ce8663a3064db42ed11 100644 (file)
@@ -13,3 +13,53 @@ bp = Blueprint("dreams-importer", __name__, url_prefix="/dreams-importer")
 def dreams_importer():
     return render_template("dreams-importer.html")
 
+@bp.get("/next-in-queue")
+def get_next_in_queue():
+    # Check for pending imports, set error status
+    result = db.query("SELECT * FROM import_queue WHERE status = 1")
+    for row in result:
+        db.query(
+            "UPDATE import_queue SET status = 2 WHERE queueid = ?",
+            [row["queueid"]])
+
+    # Get next queued import
+    result = db.query(
+        """
+        SELECT * FROM import_queue
+        WHERE status = 0
+        LIMIT 1
+        """, one=True)
+
+    response = {"next": None}
+    if result:
+        response["next"] = dict(result)
+
+        # Set pending status
+        db.query(
+            "UPDATE import_queue SET status = 1 WHERE queueid = ?",
+            [result["queueid"]])
+
+    db.commit()
+
+    return response
+
+# TODO: Local/admin only
+@bp.get("/reset-queue")
+def reset_queue():
+    # Reset all pending (1) and error (2) statuses to queued (0)
+    result = db.query("SELECT * FROM import_queue WHERE status = 1 OR status = 2")
+    for row in result:
+        db.query(
+            "UPDATE import_queue SET status = 0 WHERE queueid = ?",
+            [row["queueid"]])
+    db.commit()
+    
+    return {"status": "ok"}
+
+# TODO: Local/admin only
+@bp.get("/delete/<int:queueid>")
+def delete_entry(queueid):
+    db.query("DELETE FROM import_queue WHERE queueid = ?", [queueid])
+    db.commit()
+    return {"status": "ok"}
+
index c489d9d3197aea11b2b98a9b6924076b73047de9..fac1ddcdd5a8216c276bbe127e92adfddb88d631 100644 (file)
@@ -1,3 +1,13 @@
+ALTER TABLE songs ADD COLUMN queueid INTEGER REFERENCES import_queue(queueid) ON DELETE SET NULL;
+
+-- DROP TABLE IF EXISTS import_queue;
+CREATE TABLE import_queue (
+    queueid INTEGER PRIMARY KEY AUTOINCREMENT,
+    indreamsurl TEXT NOT NULL,
+    created TEXT NOT NULL,
+    songid INTEGER NOT NULL REFERENCES songs(songid) ON DELETE CASCADE,
+    status INTEGER NOT NULL
+);
 
 PRAGMA user_version = 8;