aboutsummaryrefslogtreecommitdiff
path: root/code/utils/jellyfin_delete.py
diff options
context:
space:
mode:
authorParker <contact@pkrm.dev>2025-01-19 23:41:53 -0600
committerParker <contact@pkrm.dev>2025-01-19 23:41:53 -0600
commitb5bd2e36b6597303985eb9dc897e04d452950372 (patch)
tree697e269911c752ce8c196c7be486df5b5871b85a /code/utils/jellyfin_delete.py
parent86b12da175593f91cb5e3266826a60d1b26f6144 (diff)
Overhaul + Sonarr support!
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()