aboutsummaryrefslogtreecommitdiff
path: root/code/utils/jellyfin_delete.py
diff options
context:
space:
mode:
Diffstat (limited to 'code/utils/jellyfin_delete.py')
-rw-r--r--code/utils/jellyfin_delete.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/code/utils/jellyfin_delete.py b/code/utils/jellyfin_delete.py
new file mode 100644
index 0000000..6164e40
--- /dev/null
+++ b/code/utils/jellyfin_delete.py
@@ -0,0 +1,38 @@
+import datetime
+import sqlite3
+import requests
+
+from utils.config import JELLYFIN_URL, JELLYFIN_HEADERS
+
+
+def delete_accounts():
+ """
+ Delete Jellyfin accounts that have passed their deletion time
+ """
+ # Get all expired Jellyfin accounts
+ db = sqlite3.connect("cordarr.db")
+ cursor = db.cursor()
+ cursor.execute(
+ "SELECT jellyfin_user_id FROM jellyfin_accounts WHERE"
+ " deletion_time < ?",
+ (datetime.datetime.now(),),
+ )
+ jellyfin_user_ids = cursor.fetchall()
+
+ # Delete the Jellyfin accounts
+ for jellyfin_user_id in jellyfin_user_ids:
+ request = requests.delete(
+ f"{JELLYFIN_URL}/Users/{jellyfin_user_id[0]}",
+ headers=JELLYFIN_HEADERS,
+ )
+ # If 204 - account deleted
+ # If 404 - account not found
+ # Either way, remove account from database
+ if request.status_code in (404, 204):
+ cursor.execute(
+ "DELETE FROM jellyfin_accounts WHERE jellyfin_user_id = ?",
+ (jellyfin_user_id,),
+ )
+
+ db.commit()
+ db.close()