20 Commits
1.0.6 ... main

Author SHA1 Message Date
f11e1997fd Partial File Logging 2025-12-12 03:36:43 -06:00
54099b85c1 Push Stats command 2025-12-12 03:21:41 -06:00
e4757805ae Push Basic Servarr Support 2025-12-12 02:30:14 -06:00
97dc1dcb98 Fix sending POST when feature disabled 2025-12-11 03:01:12 -06:00
61dc5db6d0 Added Statistic Tracking 2025-12-11 02:46:57 -06:00
Pengu
fdc6df373d Update ROADMAP.md 2025-10-26 11:32:50 -05:00
42b10a813f Added Restoring, Backups, and Updating 2025-09-26 21:46:18 -05:00
bae9a5b967 Reformatted Link Command 2025-09-25 16:21:21 -05:00
b1d050cb3c Configurable Trial Duration 2025-09-25 16:01:10 -05:00
ce076824a2 Update app.py 2025-09-21 23:00:29 -05:00
8fe3d2e5d1 Update version.txt 2025-09-21 22:58:56 -05:00
e0bbbd02f5 1.0.8 2025-09-21 22:58:39 -05:00
d80746cd61 Added container metrics tracking 2025-09-21 22:48:01 -05:00
f6197c144a Fixed Schedule Loop for JFA
- Added Changelog Command
- Fixed schedule loop for Jfa being enabled when JFA support is disabled
2025-09-21 20:43:34 -05:00
2481ba778b Fixed update message 2025-09-21 18:19:53 -05:00
c5d619d450 Redid what2watch 2025-09-21 18:13:47 -05:00
547ccbbb0a Create ROADMAP.md 2025-09-21 16:16:15 -05:00
f862f46e16 Proxmox Integration 2025-09-20 14:21:26 -05:00
c4a1ccf770 Jfa refresh fix 2025-09-15 15:18:40 -05:00
a050becc14 Fix qbit not disabling properly 2025-09-10 19:33:06 -05:00
9 changed files with 1426 additions and 108 deletions

40
.env
View File

@@ -1,40 +0,0 @@
# Discord
DISCORD_TOKEN=your_discord_bot_token
PREFIX=!
GUILD_ID=123456789012345678,123456789012345678
ADMIN_ROLE_IDS=111111111111111111,222222222222222222
REQUIRED_ROLE_IDS=333333333333333333,444444444444444444
# Jellyfin
JELLYFIN_URL=http://127.0.0.1:8096
JELLYFIN_API_KEY=your_jellyfin_api_key
ENABLE_TRIAL_ACCOUNTS=false
# Jellyseerr
JELLYSEERR_ENABLED=false
JELLYSEERR_URL=http://localhost:5055
JELLYSEERR_API_KEY=your_api_key_here
# JFA-Go
ENABLE_JFA=false
JFA_URL=http://localhost:8056
JFA_API_KEY=your_api_key_here
# QBittorrent
ENABLE_QBITTORRENT=false
QBIT_HOST=http://localhost:8080
QBIT_USERNAME=your_username
QBIT_PASSWORD=your_password
# MySQL
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=password
DB_NAME=jellyfin_bot
# Time Settings
TIMEZONE=America/Chicago
# Logs
SYNC_LOG_CHANNEL_ID=555555555555555555
EVENT_LOGGING=false

68
.env.example Normal file
View File

@@ -0,0 +1,68 @@
# Jellycord version 1.1.0
# |Discord|
DISCORD_TOKEN=your_discord_bot_token
PREFIX=!
GUILD_IDS=123456789012345678,123456789012345678
ADMIN_ROLE_IDS=111111111111111111,222222222222222222
REQUIRED_ROLE_IDS=333333333333333333,444444444444444444
# |Jellyfin|
JELLYFIN_URL=http://127.0.0.1:8096
JELLYFIN_API_KEY=your_jellyfin_api_key
ENABLE_TRIAL_ACCOUNTS=false
TRIAL_TIME=24 # In hours
# |Jellyseerr|
JELLYSEERR_ENABLED=false
JELLYSEERR_URL=http://localhost:5055
JELLYSEERR_API_KEY=your_api_key_here
# |JFA-Go|
ENABLE_JFA=false
JFA_URL=http://localhost:8056
JFA_USERNAME=yourusername
JFA_PASSWORD=yourpassword
JFA_API_KEY=your_api_key_here
JFA_TOKEN=
# |Servarr|
RADARR_URL=http://your-radarr-ip:7878
RADARR_API_KEY=yourradarrapikey
ENABLE_RADARR=false
SONARR_URL=http://your-sonarr-ip:8989
SONARR_API_KEY=yoursonarrapikey
ENABLE_SONARR=false
# |QBittorrent|
ENABLE_QBITTORRENT=false
QBIT_HOST=http://localhost:8080
QBIT_USERNAME=your_username
QBIT_PASSWORD=your_password
# |Proxmox|
ENABLE_PROXMOX=false
PROXMOX_HOST=https://your-proxmox-server:8006
PROXMOX_TOKEN_NAME=root@pam!yourtokenname
PROXMOX_TOKEN_VALUE=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
PROXMOX_VERIFY_SSL=false
PROXMOX_NODE=pve1
PROXMOX_VM_ID=
# Proxmox type can be "qemu" for VM, "lxc" for container
PROXMOX_TYPE=
# |MySQL|
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=password
DB_NAME=jellyfin_bot
# |General Settings|
TIMEZONE=America/Chicago
# Tracking only reports limited information about your instance for development reasons. (Tracking enabled Instance & Enabled Features)
TRACKING_ENABLED=true
# |Logs|
SYNC_LOG_CHANNEL_ID=555555555555555555
EVENT_LOGGING=false

View File

@@ -1,3 +1,30 @@
# 1.1.0
- The bot now sends limited info stats to a public frontend for development insight. (Reports enabled features and bot instance only | Jellyseerr, Proxmox, JFA, qBittorrent)
- Radarr & Sonarr Support
# 1.0.9
- You can now configure trial account duration
- Reformatted link command
- Added Updating via command
- Added Backup command
- Added restore command
# 1.0.8
- Fixed update message
- Added changelog command
- Fixed schedule loop for Jfa being enabled when JFA support is disabled
- Added metrics tracking for a Jellyfin container/vm in proxmox
# 1.0.7
- Fixed JFA-GO API keys expiring. The bot now schedules a key refresh
- Added Proxmox support for checking storage pool size
- !what2watch is now !movies2watch
- Added !shows2watch, now pulls 5 random shows
# 1.0.6
- Added Progress bar to Active Streams

View File

@@ -1,6 +1,13 @@
# Jellycord
![image](https://cdn.pengucc.com/images/projects/jellycord/readme/BannerRound.png)
![Live Player Count](https://img.shields.io/badge/dynamic/json?query=$.data.result[0].value[1]&url=https%3A%2F%2Fprometheus.pengucc.com%2Fapi%2Fv1%2Fquery%3Fquery%3Dinstance&style=for-the-badge&logo=nodedotjs&logoColor=white&label=Bot%20Instances&color=9964c5)
![Live Player Count](https://img.shields.io/badge/dynamic/json?query=$.data.result[0].value[1]&url=https%3A%2F%2Fprometheus.pengucc.com%2Fapi%2Fv1%2Fquery%3Fquery%3Djellyseerr&style=for-the-badge&logo=jellyfin&logoColor=white&label=Jellyseer%20Enabled&color=9964c5)
![Live Player Count](https://img.shields.io/badge/dynamic/json?query=$.data.result[0].value[1]&url=https%3A%2F%2Fprometheus.pengucc.com%2Fapi%2Fv1%2Fquery%3Fquery%3Dproxmox&style=for-the-badge&logo=proxmox&logoColor=white&label=Proxmox%20Enabled&color=9964c5)
![Live Player Count](https://img.shields.io/badge/dynamic/json?query=$.data.result[0].value[1]&url=https%3A%2F%2Fprometheus.pengucc.com%2Fapi%2Fv1%2Fquery%3Fquery%3Djfa&style=for-the-badge&logo=go&logoColor=white&label=JFA-GO%20Enabled&color=9964c5)
![Live Player Count](https://img.shields.io/badge/dynamic/json?query=$.data.result[0].value[1]&url=https%3A%2F%2Fprometheus.pengucc.com%2Fapi%2Fv1%2Fquery%3Fquery%3Dqbittorrent&style=for-the-badge&logo=qbittorrent&logoColor=white&label=qBittorrent%20Enabled&color=9964c5)
![Live Player Count](https://img.shields.io/badge/dynamic/json?query=$.data.result[0].value[1]&url=https%3A%2F%2Fprometheus.pengucc.com%2Fapi%2Fv1%2Fquery%3Fquery%3Dradarr&style=for-the-badge&logo=radarr&logoColor=white&label=Radarr%20Enabled&color=9964c5)
![Live Player Count](https://img.shields.io/badge/dynamic/json?query=$.data.result[0].value[1]&url=https%3A%2F%2Fprometheus.pengucc.com%2Fapi%2Fv1%2Fquery%3Fquery%3Dsonarr&style=for-the-badge&logo=sonarr&logoColor=white&label=Sonarr%20Enabled&color=9964c5)
[![Online Members](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fdiscordapp.com%2Fapi%2Finvites%2FEdPJAhrDq8%3Fwith_counts%3Dtrue&query=approximate_presence_count&style=for-the-badge&logo=discord&logoColor=white&label=ONLINE%20MEMBERS&labelColor=grey&color=239eda)](https://discord.gg/EdPJAhrDq8)
![Latest Version](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2FPenguCCN%2FJellycord%2Fmain%2Fversion.json&query=%24.version&style=for-the-badge&logo=python&logoColor=white&label=Latest%20Version%3A&color=239eda)
@@ -13,7 +20,24 @@ This is a very simple and lightweight Jellyfin Discord bot for managing users. I
Fill out values in the .env and you're good to go!
## Features
# 🛑 Disclaimer (Please Read) 🛑
This bot collects limited amounts of information, it is enabled by default and can be disabled in your environment file. Information Collected is limited to:
- Bot Instances
- Enabled Features
We do **not** and will **never** collect nor store:
- IP Address's.
- System Information.
- Information about Jellyfin or any related services.
## Why do we do this?
Adding these simply allows me to see what features users are interested in, allowing me to focus on improving/fixing highly used features.
# Features
- Automatic Account Cleanup
- Creating Accounts
@@ -24,7 +48,7 @@ Fill out values in the .env and you're good to go!
- Change bot prefix live
- Checks for new releases
## Command Overview
# Command Overview
**Pinging the bot will show you the necessary commands to create your account.**
@@ -45,17 +69,20 @@ Fill out values in the .env and you're good to go!
![image](https://cdn.pengucc.com/images/projects/jellycord/readme/role-required.png)
***🎬 User Commands***
- `!createaccount` <username> <password> - Create your Jellyfin account
- `!recoveraccount` <username> <newpassword> - Reset your password
- `!deleteaccount` <username> - Delete your Jellyfin account
- `!trialaccount` <username> <password> - Create a 24-hour trial Jellyfin account. Only if ENABLE_TRIAL_ACCOUNTS=True
- `!what2watch` - Lists 5 random movie suggestions from the Jellyfin Library
- `!movies2watch` - Lists 5 random movie suggestions from the Jellyfin Library
- `!shows2watch` - Lists 5 random show suggestions from the Jellyfin Library
- `!help` - Displays help command
***🛠️ Admin Commands***
- `!link` <jellyfin_username> @user - Manually link accounts
- `!link` @user <jellyfin_username> - Manually link accounts
- `!unlink` @user - Manually unlink accounts
- `!listvalidusers` - Show number of valid and invalid accounts
- `!validusers` - Show number of valid and invalid accounts
- `!cleanup` - Remove Jellyfin accounts from users without roles
- `!lastcleanup` - See Last cleanup time, and time remaining before next cleanup
- `!searchaccount` <jellyfin_username> - Find linked Discord user
@@ -64,15 +91,29 @@ Fill out values in the .env and you're good to go!
- `!activestreams` - View all Active Jellyfin streams
***💾 qBittorrent Commands***
- `!qbview` - View current qBittorrent downloads
***🗳️ Proxmox Commands***
- `!storage` - Show available storage pools and free space
- `!metrics` - Show Jellyfin container metrics
***🔑 JFA Commands***
- `!createinvite` - Create a new JFA invite link
- `!listinvites` - List all active JFA invite links
- `!deleteinvite <code>` - Delete a specific JFA Invite
- `!refreshjfakey` - Refreshes the JFA API Key Forcefully
***⚙️ Admin Bot Commands***
- `!setprefix` - Change the bots command prefix
- `!updates` - Manually check for bot updates
- `!stats` - View Local and Global Jellycord Stats
- `!update` - Download latest bot version
- `!backup` - Create a backup of the bot and configurations
- `!backups` - List backups of the bot
- `!restore` - Restore a backup of the bot
- `!version` - Manually check for bot updates
- `!changelog` - View changelog for current bot version
- `!logging` - Enable/Disable Console Event Logging

8
ROADMAP.md Normal file
View File

@@ -0,0 +1,8 @@
- **Future Features**
- Servarr Support
- Make Jellyfin admins exempt from account cleanup
- **To Do**
- Music/Podcast Support (Listening in VC from Jellyfin Library)

1315
app.py

File diff suppressed because it is too large Load Diff

View File

@@ -5,3 +5,6 @@ python-dotenv==1.0.1
pytz==2025.2
apscheduler==3.11.0
qbittorrent-api==2025.7.0
proxmoxer==2.2.0
pymysql==1.1.2
psutil==7.1.3

View File

@@ -1 +1 @@
{ "version": "1.0.6" }
{ "version": "1.0.9" }

View File

@@ -1 +1 @@
1.0.6
1.0.9