aboutsummaryrefslogtreecommitdiff
path: root/code/utils/jellyfin_delete.py
blob: 66af00b82d38692e47cca67f76e074446394669d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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("data/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()