diff --git a/README.md b/README.md new file mode 100644 index 00000000..78961788 --- /dev/null +++ b/README.md @@ -0,0 +1,31 @@ +# Royalnet + +This software is meant for a private internet community, therefore it contains many inside jokes and memes. Be warned! + +## Modules + +- `bots.py`: Auto-restarting of crashed modules. +- `cast.py`: Magic spell generation (/cast Telegram command) +- `db.py`: PostgreSQL+SQLAlchemy database connection +- `discordbot.py`: [Discord](https://discordapp.com/) music (and more) bot +- `errors.py`: Exception classes for all modules +- `loldata.py`: [League of Legends](https://euw.leagueoflegends.com/) Champion data obtained from [Data Dragon](https://developer.riotgames.com/static-data.html) (may require occasional updates, for example when new champions are released) +- `newuser.py`: _(broken)_ New user creation wizard +- `query_discord_music.py`: Big SQL queries +- `redditbot.py`: reddit bot for [/r/RoyalGames](https://reddit.com/r/RoyalGames) +- `stagismo.py`: Dictionary of words and memes beginning with **S** +- `statsupdate.py`: Game data tracking (Dota, LoL...) +- `telegrambot.py`: [Telegram](https://web.telegram.org/) [multipurpose bot](https://t.me/royalgamesbot) +- `update.sh`: Quick updater script +- `webserver.sh`: [Main](https://ryg.steffo.eu/) webserver for Royalnet + +## Install + +1. Download `python3.6+`, `sentry-cli` and `ffmpeg` (or `avconv`). +2. Clone the repository. +3. Rename the `template_config.ini` to `config.ini`. +4. Set the correct values in `config.ini`. +5. Add `SENTRY_AUTH_TOKEN=` and `SENTRY_ORG=` to `~/.sentryclirc`. +6. Open a new `screen` and there run `./update.sh`. +7. Detatch the screen with `Ctrl+A` and `Ctrl+D`. + diff --git a/template_config.ini b/template_config.ini index e0ed69e4..ea8377cd 100644 --- a/template_config.ini +++ b/template_config.ini @@ -1,41 +1,62 @@ [Database] +# Database URI in the SQLAlchemy format; a PostgreSQL database is suggested, but others _may_ work too database_uri = postgres:// [Steam] +# Steam Developer API key, can be obtained at https://steamcommunity.com/dev/apikey api_key = [League of Legends] +# Riot Games Developer API key, can be obtained at https://developer.riotgames.com/, requires a registered project riot_api_key = [Osu!] +# osu! API key, can be obtained at https://osu.ppy.sh/p/api ppy_api_key = [Discord] +# Discord bot token, obtained at https://discordapp.com/developers/applications/ bot_token = +# Server id (guild) in which the bot should be used in (with Developer Mode on, RMB+Copy ID) server_id = +# Channel in which all generic messages should be sent (again RMB+Copy ID) main_channel = -afk_timer = 10 -radio_messages_enabled = True -radio_messages_every = 5 +# Time in minutes before the bot automatically disconnects from voice chat +afk_timer = 30 +# Time in between two activity reports (viewable at https://ryg.steffo.eu/activity activityreport_sample_time = 600 [Telegram] +# Telegram bot token, obtainable at https://t.me/BotFather bot_token = +# Telegram main group id, where errors should be reported main_group = -[YouTube] -max_duration = 7200 -predownload_videos = 5 -download_timeout = 30 +[Video] +# Maximum videos in queue to predownload +cache_size = 5 +# Maximum time a video may take to become ready (download time) before being removed from the queue +max_ready_time = 30 +# Enable radio messages? +radio_messages_enabled = False +# Number of videos between two radio messages +radio_messages_every = 5 [Sentry] +# Sentry error-reporting token obtainable at https://sentry.io token = [Flask] +# Secret key, used to encrypt cookies secret_key = [reddit] +# Client API id obtainable at https://www.reddit.com/dev/api/ client_id = +# Client API secret obtainable at https://www.reddit.com/dev/api/ client_secret = +# Bot username username = +# Bot password password = +