From 4de1e6e7cbf1d5dd01aa0962637c91a37e903afe Mon Sep 17 00:00:00 2001 From: Pengu Date: Sat, 6 Sep 2025 12:47:11 -0500 Subject: [PATCH] Fixing more things I forgot - Fixed: ValueError: too many values to unpack (expected 2) - Cleanup will now delete Jellyseerr accounts as well --- CHANGELOG.md | 21 +++++++++++++++++++++ app.py | 37 +++++++++++++++++++++++++++++++++++-- 2 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..01df9dc --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,21 @@ +# 1.0.3 + +- Fixed: ValueError: too many values to unpack (expected 2) +- Cleanup will now delete Jellyseerr accounts as well + +# 1.0.2 + +- Fixed Jellyseerr support breaking linking, unlinking, and deletion +- Added the ability to link Jellyseerr accounts when linking Jellyfin +- Added event logging support for console (Can be toggled in .env or with commands) +- Reformatted the updates message +- Running a command without any values will now show you the proper command usage + +# 1.0.1 + +- Added Jellyseerr Support + +# 1.0.0 + +- Bot can now track update releases +- Restrict prefixes to non-alphanumeric symbols \ No newline at end of file diff --git a/app.py b/app.py index a16038a..9a9bef2 100644 --- a/app.py +++ b/app.py @@ -445,11 +445,27 @@ async def cleanup(ctx): log_event(f"cleanup invoked by {ctx.author}") guild = bot.get_guild(GUILD_ID) removed = [] - for discord_id, jf_username in get_accounts(): + + for row in get_accounts(): + discord_id = row[0] + jf_username = row[1] + jf_id = row[2] if len(row) > 2 else None + js_id = row[3] if len(row) > 3 else None + m = guild.get_member(discord_id) if m is None or not has_required_role(m): if delete_jellyfin_user(jf_username): delete_account(discord_id) + + if JELLYSEERR_ENABLED and js_id: + try: + headers = {"X-Api-Key": JELLYSEERR_API_KEY} + dr = requests.delete(f"{JELLYSEERR_URL}/api/v1/user/{js_id}", headers=headers, timeout=10) + if dr.status_code in (200, 204): + print(f"[Jellyseerr] User {js_id} removed successfully.") + except Exception as e: + print(f"[Jellyseerr] Failed to delete user {js_id}: {e}") + removed.append(jf_username) log_channel = bot.get_channel(SYNC_LOG_CHANNEL_ID) @@ -697,11 +713,28 @@ async def daily_check(): guild = bot.get_guild(GUILD_ID) removed = [] - for discord_id, jf_username in get_accounts(): + for row in get_accounts(): + # Safely unpack values + discord_id = row[0] + jf_username = row[1] + jf_id = row[2] if len(row) > 2 else None + js_id = row[3] if len(row) > 3 else None + m = guild.get_member(discord_id) if m is None or not has_required_role(m): if delete_jellyfin_user(jf_username): delete_account(discord_id) + + # Remove Jellyseerr account if enabled + if JELLYSEERR_ENABLED and js_id: + try: + headers = {"X-Api-Key": JELLYSEERR_API_KEY} + dr = requests.delete(f"{JELLYSEERR_URL}/api/v1/user/{js_id}", headers=headers, timeout=10) + if dr.status_code in (200, 204): + print(f"[Jellyseerr] User {js_id} removed successfully.") + except Exception as e: + print(f"[Jellyseerr] Failed to delete user {js_id}: {e}") + removed.append(jf_username) if removed: