diff --git a/config.ini b/config.ini new file mode 100644 index 0000000..e5c6b60 --- /dev/null +++ b/config.ini @@ -0,0 +1,114 @@ +; ============================================================ +; XMPP Radio Bot Configuration +; ============================================================ + +[XMPP] +; The Jabber ID (JID) the bot will use to login. +jid = radiobot@example.com + +; The password for the bot's account. +password = i_love_doors_123 + +; The XMPP resource. This identifies this specific connection. +; You can usually leave this as default. +resource = RadioBot + +[Radio] +; Local directory where music files are stored. +; The bot will scan this recursively for audio files. +music_directory = ./music + +; Playback mode. Options: 'random' or 'sequential'. +; 'random' shuffles tracks, 'sequential' plays alphabetically/by folder. +playback_mode = random + +; Comma-separated list of audio formats to scan for. +audio_formats = flac,opus,ogg,wav,mp3,m4a + +; Default internal volume (0-100). +default_volume = 80 + +[Stream] +; Enable the built-in HTTP streaming server (Icecast-like). +; If true, users can listen via browser/VLC at http://host:port/mount +http_enabled = false + +; The IP to bind the stream server to. 0.0.0.0 listens on all interfaces. +stream_host = 0.0.0.0 + +; Port for the HTTP stream. +stream_port = 8000 + +; Output format for the HTTP stream. +; Options: mp3, ogg, aac, opus +stream_format = mp3 + +; Bitrate in kbps for the HTTP stream (e.g., 128, 192, 320). +bitrate = 128 + +; The URL path for the stream (e.g., /radio makes http://IP:8000/radio). +mount_point = /radio + +[Jingle] +; Enable Jingle/WebRTC for making/receiving VoIP calls directly via XMPP. +; Requires 'aiortc' library. +enabled = true + +; STUN/TURN server is required for negotiating connections through NAT/Firewalls. +; You can use Google's public STUN or your own COTURN server. +stun_server = stun:stun.l.google.com:19302 + +[MUC] +; Multi-User Chat (Group) settings. +; Leave empty to disable joining rooms. + +; The JID of the public radio room (where the bot announces songs). +radio_room = radio@conference.example.com +radio_room_nick = DJ_Bot + +; The JID of the management room (for admins). +management_room = staff@conference.example.com +management_room_nick = BotControl + +[Access] +; Permission control mode. +; 'admins': Only JIDs in admin_jids can use control commands. +; 'everyone': Anyone can control playback (stop, next, play). +control_mode = admins + +; Comma-separated list of JIDs that have basic access (if not in 'everyone' mode). +allowed_jids = user1@example.com, user2@example.com + +; Comma-separated list of Super Admins (can use !scan, !dl, !stop). +admin_jids = admin@example.com, owner@example.com + +[YtDlp] +; Enable YouTube/SoundCloud downloading and searching features. +; Requires 'yt-dlp' and 'ffmpeg' installed on the system. +enabled = true + +; Preferred audio format download setting (passed to yt-dlp). +format = bestaudio + +; Maximum number of results to show for !search. +max_search_results = 5 + +; Maximum filesize to download in MB. Prevents downloading 10-hour mixes. +max_filesize = 100 + +; Subdirectory inside 'music_directory' where downloads are saved. +download_subdir = downloads + +[Stations] +; Internet Radio Stations for the !station command. +; Format: Name = URL +example_radio = https://radio.example.org/stream.mp3 + +[OMEMO] +; Enable End-to-End Encryption (OMEMO). +; WARNING: Requires python-omemo and associated cryptographic libraries. +; If you have trouble installing those, set this to false. +enabled = true + +; File path to store OMEMO keys and trust data. +store_path = radio_omemo_store.json \ No newline at end of file