From 0887e8270128aa8c2c88fd2fbf7701a55ce1839b Mon Sep 17 00:00:00 2001 From: Presti Date: Sun, 23 Apr 2023 19:00:04 +0200 Subject: [PATCH] Add: Ree6 (#2163) Add: Ree6 discord bot --------- Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com> --- README.md | 1 + bots/discord/README.md | 5 + bots/discord/ree6/README.md | 73 ++++++++ bots/discord/ree6/config.yml | 82 +++++++++ bots/discord/ree6/egg-ree6.json | 292 ++++++++++++++++++++++++++++++++ 5 files changed, 453 insertions(+) create mode 100644 bots/discord/ree6/README.md create mode 100644 bots/discord/ree6/config.yml create mode 100644 bots/discord/ree6/egg-ree6.json diff --git a/README.md b/README.md index 2b07e1aa..f310dc55 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [parkertron](/bots/discord/parkertron) Golang * [pixel-bot](/bots/discord/pixelbot) Python * [Redbot](/bots/discord/redbot) Python +* [Ree6](/bots/discord/ree6) Java * [SinusBot](/bots/discord/sinusbot) [Other](/bots/other) diff --git a/bots/discord/README.md b/bots/discord/README.md index 4974190a..2640948c 100644 --- a/bots/discord/README.md +++ b/bots/discord/README.md @@ -43,6 +43,11 @@ Was used to test python services. [Cog-Creators/Red-DiscordBot](https://github.com/Cog-Creators/Red-DiscordBot) A multifunction Discord bot +### [Ree6](ree6) + +[Ree6-Applications](https://github.com/Ree6-Applications/Ree6) +All-in-one, open source and 100% free Discord Bot! + ### [SinusBot](sinusbot) [SinusBot](https://www.sinusbot.com/) diff --git a/bots/discord/ree6/README.md b/bots/discord/ree6/README.md new file mode 100644 index 00000000..6b4a3a0e --- /dev/null +++ b/bots/discord/ree6/README.md @@ -0,0 +1,73 @@ +# Ree6 + +___ + +## Authors / Contributors + + + + + + + + + +
+ +
Presti +
+
+ 💻 + 🤖 +
+ +
parkervcp +
+
+ 💻 + 🥚 +
+ +
QuintenQVD0 +
+
+ 💻 +
+ + + +___ + +## Bot Description & Features + +From the developer's [Github](https://github.com/Ree6-Applications/Ree6): +> Ree6 is an all-in-one Discord Bot maintained by Presti, which started as an alternative of Mee6 to provide a lot of features that are hidden behind a paywall or subscription. + +- Contains almost every feature Mee6 has. +- Has a open Source Webinterface. +- Provides advanced Audit-Logging. +- Has built in post notifications (Twitter, Instagram, YouTube, Reddit and Twitch). +- Built-in simple Ticket System. +- And more! +___ + +## Configuration + +- You will need to modify the config.yml to even start the bot. + +___ + +## Server Ports + +There are no ports required for Ree6. +___ + +## Updating + +Re-Installing the server via the panel will do the following: + +1. Update the bot to the latest version. + + +## API keys +This bot uses a lot of api keys. It will print some errors to the console if you don't have some filled in but the bot should still function as normal with the api keys you entered. \ No newline at end of file diff --git a/bots/discord/ree6/config.yml b/bots/discord/ree6/config.yml new file mode 100644 index 00000000..03a01b3e --- /dev/null +++ b/bots/discord/ree6/config.yml @@ -0,0 +1,82 @@ +# ################################ +# # # +# # Ree6 Config File # +# # by Presti # +# # # +# ################################ +# + +# Do not change this! +config: + version: 2.4.3 + creation: 1681169485237 + +# HikariCP Configuration +hikari: + + # SQL Configuration + sql: + user: root + db: root + pw: yourpw + host: localhost + port: 3306 + + # Misc Configuration + misc: + storage: sqlite + storageFile: storage/Ree6.db + poolSize: 10 + +# Heartbeat Configuration, for status reporting +heartbeat: + url: none # The URL to the Heartbeat-Server + interval: 60 + +dagpi: + apitoken: yourdagpixyztokenhere # Your Dagpi.xyz API-Token, for tweet image generation! + +amari: + apitoken: Amari API-Token # Your Amari API-Token, for Amari Level imports! + +sentry: + dsn: yourSentryDSNHere # Your Sentry DSN, for error reporting! + +# Spotify Application Configuration, used to parse Spotify Tracks/Playlists to YouTube search queries. +spotify: + client: + id: yourspotifyclientid + secret: yourspotifyclientsecret + +# Twitch Application Configuration, used for the StreamTools and Twitch Notifications. +twitch: + client: + id: yourtwitchclientidhere + secret: yourtwitchclientsecrethere + +# Twitter Application Configuration, used for the Twitter Notifications. +twitter: + consumer: + key: yourTwitterConsumerKey + secret: yourTwitterConsumerSecret + access: + key: yourTwitterAccessKey + secret: yourTwitterAccessSecret + +# Reddit Application Configuration, used for the Reddit Notification. +reddit: + client: + id: yourredditclientid + secret: yourredditclientsecret + +# Instagram Application Configuration, used for the Instagram Notification. +instagram: + username: yourInstagramUsername + password: yourInstagramPassword + +# Discord Application Configuration, used for OAuth and Bot Authentication. +bot: + tokens: + release: ReleaseTokenhere # Token used when set to release build. + beta: BetaTokenhere # Token used when set to beta build. + dev: DevTokenhere # Token used when set to dev build. diff --git a/bots/discord/ree6/egg-ree6.json b/bots/discord/ree6/egg-ree6.json new file mode 100644 index 00000000..0f8791d6 --- /dev/null +++ b/bots/discord/ree6/egg-ree6.json @@ -0,0 +1,292 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-04-22T20:23:22+02:00", + "name": "Ree6", + "author": "presti@presti.me", + "description": "All-in-one, open source and 100% free Discord Bot!", + "features": null, + "docker_images": { + "Java_17": "ghcr.io\/pterodactyl\/yolks:java_17" + }, + "file_denylist": [], + "startup": "java -Dnogui=true -jar Ree6.jar", + "config": { + "files": "{\r\n \"config.yml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"hikari.sql.user\": \"{{server.build.env.DATABASE_USER}}\",\r\n \"hikari.sql.db\": \"{{server.build.env.DATABASE_DB}}\",\r\n \"hikari.sql.pw\": \"{{server.build.env.DATABASE_PW}}\",\r\n \"hikari.sql.host\": \"{{server.build.env.DATABASE_HOST}}\",\r\n \"hikari.sql.port\": \"{{server.build.env.DATABASE_PORT}}\",\r\n \"hikari.misc.storage\": \"{{server.build.env.DATABASE_TYP}}\",\r\n \"hikari.misc.storageFile\": \"{{server.build.env.DATABASE_FILE}}\",\r\n \"hikari.misc.poolSize\": \"{{server.build.env.DATABASE_POOL}}\",\r\n \"heartbeat.url\": \"{{server.build.env.HEARTBEAT_URL}}\",\r\n \"heartbeat.interval\": \"{{server.build.env.HEARTBEAT_INTERVAL}}\",\r\n \"dagpi.apitoken\": \"{{server.build.env.DAGPI_TOKEN}}\",\r\n \"amari.apitoken\": \"{{server.build.env.AMARI_TOKEN}}\",\r\n \"sentry.dsn\": \"{{server.build.env.SENTRY_DSN}}\",\r\n \"spotify.client.id\": \"{{server.build.env.SPOTIFY_CLIENT_ID}}\",\r\n \"spotify.client.secret\": \"{{server.build.env.SPOTIFY_CLIENT_SECRET}}\",\r\n \"twitch.client.id\": \"{{server.build.env.TWITCH_CLIENT_ID}}\",\r\n \"twitch.client.secret\": \"{{server.build.env.TWITCH_CLIENT_SECRET}}\",\r\n \"twitter.consumer.key\": \"{{server.build.env.TWITTER_CONSUMER_ID}}\",\r\n \"twitter.consumer.secret\": \"{{server.build.env.TWITTER_CONSUMER_SECRET}}\",\r\n \"twitter.access.key\": \"{{server.build.env.TWITTER_ACCESS_ID}}\",\r\n \"twitter.access.secret\": \"{{server.build.env.TWITTER_ACCESS_SECRET}}\",\r\n \"reddit.client.id\": \"{{server.build.env.REDDIT_CLIENT_ID}}\",\r\n \"reddit.client.secret\": \"{{server.build.env.REDDIT_CLIENT_SECRET}}\",\r\n \"instagram.username\": \"{{server.build.env.INSTAGRAM_USERNAME}}\",\r\n \"instagram.password\": \"{{server.build.env.INSTAGRAM_PASSWORD}}\",\r\n \"bot.tokens.release\": \"{{server.build.env.BOT_TOKEN}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Finished Loading\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n## this is a simple script to use the github API for release versions.\r\n## this requires the egg has a variable for GITHUB_PACKAGE and VERSION\r\n## this supports using oauth\/personal access tokens via GITHUB_USER and GITHUB_OAUTH_TOKEN (both are required.)\r\n## if you are getting hit with GitHub API limit issues then you need to have the user and token set.\r\napt update\r\napt install -y jq curl\r\n\r\n\r\nCONFIG_LINK=\"https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/bots\/discord\/ree6\/config.yml\"\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/Ree6-Applications\/Ree6\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/Ree6-Applications\/Ree6\/releases\")\r\nMATCH=jar-with-dependencies.jar\r\n\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i \"${MATCH}\" | head -1 )\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i \"${MATCH}\" | head -1)\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i *.jar)\r\n fi\r\nfi\r\n\r\n## Ree6 Setup\r\n[ ! -d \/mnt\/server ] && mkdir -p \/mnt\/server\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncd \/mnt\/server\r\necho -e \"\\nInstalling\/Updating Ree6...\\n\"\r\n\r\nif [ -f Ree6.jar ]; then\r\n echo -e \"Updating Ree6.jar to latest version...\"\r\n echo -e '\\t(Old version can be found at \"Ree6.jar-old\")'\r\n mv -f Ree6.jar Ree6.jar-old\r\nfi\r\n\r\necho -e \"Running: curl -sSL -o Ree6.jar ${DOWNLOAD_LINK}\\n\"\r\ncurl -sSL -o Ree6.jar ${DOWNLOAD_LINK}\r\n\r\nif [ -f config.yml ]; then\r\n echo -e \"Updating config.yml to latest version...\"\r\n echo -e '\\t(Old version can be found at \"config.yml-old\")'\r\n mv -f config.yml config.yml-old\r\nfi\r\n\r\necho -e \"Running: curl -sSL -o config.yml ${CONFIG_LINK}\\n\"\r\ncurl -sSL -o config.yml ${CONFIG_LINK}\r\n \r\n\r\necho -e \"\\nRee6 Successfully Installed!\"", + "container": "debian:bullseye-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "[REQUIRED] Discord Bot Token", + "description": "The token for your Discord bot. Learn how to obtain a token and configure your bot application properly here: https:\/\/jmusicbot.com\/getting-a-bot-token\/", + "env_variable": "BOT_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Dagpi token", + "description": "Your Dagpi.xyz API-Token, for tweet image generation!", + "env_variable": "DAGPI_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Sentry DSN", + "description": "Your Sentry DSN, for error reporting!", + "env_variable": "SENTRY_DSN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Spotify Client Id", + "description": "Spotify Application Configuration, used to parse Spotify Tracks\/Playlists to YouTube search queries.", + "env_variable": "SPOTIFY_CLIENT_ID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Spotify Client Secret", + "description": "Spotify Application Configuration, used to parse Spotify Tracks\/Playlists to YouTube search queries.", + "env_variable": "SPOTIFY_CLIENT_SECRET", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Heartbeat Url", + "description": "The URL to the Heartbeat-Server", + "env_variable": "HEARTBEAT_URL", + "default_value": "none", + "user_viewable": true, + "user_editable": true, + "rules": "string", + "field_type": "text" + }, + { + "name": "Heartbeat Interval", + "description": "The interval between the heartbeats.", + "env_variable": "HEARTBEAT_INTERVAL", + "default_value": "60", + "user_viewable": true, + "user_editable": true, + "rules": "integer", + "field_type": "text" + }, + { + "name": "Amari Token", + "description": "Your Amari API-Token, for Amari Level imports!", + "env_variable": "AMARI_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Twitch Client Id", + "description": "Twitch Application Configuration, used for the StreamTools and Twitch Notifications.", + "env_variable": "TWITCH_CLIENT_ID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Twitch Client Secret", + "description": "Twitch Application Configuration, used for the StreamTools and Twitch Notifications.", + "env_variable": "TWITCH_CLIENT_SECRET", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Twitter Consumer Key", + "description": "Twitter Application Configuration, used for the Twitter Notifications.", + "env_variable": "TWITTER_CONSUMER_KEY", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Twitter Consumer Secret", + "description": "Twitter Application Configuration, used for the Twitter Notifications.", + "env_variable": "TWITTER_CONSUMER_SECRET", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Twitter Access Key", + "description": "Twitter Application Configuration, used for the Twitter Notifications.", + "env_variable": "TWITTER_ACCESS_KEY", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Twitter Access Secret", + "description": "Twitter Application Configuration, used for the Twitter Notifications.", + "env_variable": "TWITTER_ACCESS_SECRET", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Reddit Client Id", + "description": "Reddit Application Configuration, used for the Reddit Notification.", + "env_variable": "REDDIT_CLIENT_ID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Reddit Client Secret", + "description": "Reddit Application Configuration, used for the Reddit Notification.", + "env_variable": "REDDIT_CLIENT_SECRET", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Instagram Username", + "description": "Instagram Application Configuration, used for the Instagram Notification.", + "env_variable": "INSTAGRAM_USERNAME", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Instagram Password", + "description": "Instagram Application Configuration, used for the Instagram Notification.", + "env_variable": "INSTAGRAM_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "SQL Username", + "description": "Username for the SQL connection.", + "env_variable": "SQL_USER", + "default_value": "root", + "user_viewable": true, + "user_editable": true, + "rules": "string|max:32", + "field_type": "text" + }, + { + "name": "SQL Database", + "description": "Database for the SQL Connection", + "env_variable": "SQL_DB", + "default_value": "root", + "user_viewable": true, + "user_editable": true, + "rules": "string|max:64", + "field_type": "text" + }, + { + "name": "SQL Password", + "description": "Password for the SQL connection.", + "env_variable": "SQL_PW", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "SQL Port", + "description": "Port for the SQL connection.", + "env_variable": "SQL_PORT", + "default_value": "3306", + "user_viewable": true, + "user_editable": true, + "rules": "integer", + "field_type": "text" + }, + { + "name": "Database Typ", + "description": "The Typ of the Database Ree6 should use!\r\nPossible typs:\r\n- mariadb\r\n- sqlite", + "env_variable": "DATABASE_TYP", + "default_value": "sqlite", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:mariadb,sqlite", + "field_type": "text" + }, + { + "name": "Database Storagefile", + "description": "The location of the storagefile if sqlite is being used.", + "env_variable": "DATABASE_FILE", + "default_value": "storage\/Ree6.db", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:32", + "field_type": "text" + }, + { + "name": "[DEVELOPER-STUFF] Database Poolsize", + "description": "The Database connection pool size!", + "env_variable": "DATABASE_POOL", + "default_value": "10", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer", + "field_type": "text" + }, + { + "name": "Database host", + "description": "The Host address of the Database connection.", + "env_variable": "DATABASE_HOST", + "default_value": "localhost", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + } + ] +} \ No newline at end of file