Add README
* Optional `--guild-id` is now positional (thus mandatory) and no longer have a default id set to the breadtube discord server
This commit is contained in:
parent
a27e195ea3
commit
8d76596ebf
5 changed files with 49 additions and 3 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -1,3 +1,4 @@
|
||||||
*.pyc
|
*.pyc
|
||||||
|
|
||||||
/data
|
/data/*
|
||||||
|
!/data/.gitkeep
|
||||||
|
|
|
||||||
45
README.md
Normal file
45
README.md
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
# Breadtube Bot
|
||||||
|
|
||||||
|
This is the bot for the breadtube application for Discord.
|
||||||
|
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
The breadtube bot needs Python to be installed (minimum tested version is 3.10). There is no other dependencies.
|
||||||
|
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
The bot needs 2 token:
|
||||||
|
* A discord bot token in `data/` : in your discord application's `settings` under `Bot` you'll have to click on the `Reset Token` button (even if you just created a new application) to retreive this token. The token will only appear once, after resetting it.
|
||||||
|
* A google api token in `data/` : you can create one from the google API console [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials), you should have a `Create credentials` button in the top menu then select `API key`. You can restrict the key to only `Youtube Data API` as no other API will be used by the bot.
|
||||||
|
|
||||||
|
The Google API Key is only used to search channel from their URL and find their ID.
|
||||||
|
|
||||||
|
Starting manually the bot is as simple as running the command `python3 start.py [discord-server-id]`.
|
||||||
|
|
||||||
|
### Using a systemd service (Linux)
|
||||||
|
|
||||||
|
All of the following needs to be done as root (administrator privilege).
|
||||||
|
|
||||||
|
If you want the bot to run automatically on a Linux server you can setup a systemd service by adding a file in `/etc/systemd/system`, like `/etc/systemd/system/breadtube-bot.service` (here the service name will be `breadtube-bot`) then you need to run `systemctl daemon-reload` to read/accept the new service. From here `systemctl` can be used with the commands `enable`/`disable` to make the service run at startup and `start`/`stop`/`status` to manually start, stop or check if it is running (example: `systemctl start breadtube-bot`).
|
||||||
|
|
||||||
|
Additionnaly you can check all the logs of a service using `journalctl -u baguettetube-bot` (`-f` to 'follow' in real-time the logs).
|
||||||
|
|
||||||
|
Sample of a service file running from a created `breadtube` user (it is highly recommended to run as a isolated user):
|
||||||
|
|
||||||
|
```
|
||||||
|
[Unit]
|
||||||
|
Description=Run Breadtube Bot
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=breadtube
|
||||||
|
Group=breadtube
|
||||||
|
WorkingDirectory=/home/breadtube/[path-to-source-code]
|
||||||
|
ExecStart=python3 start.py [discord-server-id]
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
|
```
|
||||||
0
data/.gitkeep
Normal file
0
data/.gitkeep
Normal file
|
|
@ -1,7 +1,7 @@
|
||||||
[project]
|
[project]
|
||||||
name = "bot-discord"
|
name = "bot-discord"
|
||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
requires-python = ">=3.11"
|
requires-python = ">=3.10"
|
||||||
# dependencies = []
|
# dependencies = []
|
||||||
|
|
||||||
[project.optional-dependencies]
|
[project.optional-dependencies]
|
||||||
|
|
|
||||||
2
start.py
2
start.py
|
|
@ -7,7 +7,7 @@ from breadtube_bot.bot import Bot
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
parser = ArgumentParser('BreadTube-bot')
|
parser = ArgumentParser('BreadTube-bot')
|
||||||
parser.add_argument('--guild', type=int, default=1306964577812086824, help='Guild id to manage')
|
parser.add_argument('guild', type=int, help='Guild id (discord server) to manage')
|
||||||
parser.add_argument('--debug', action='store_true', default=False, help='Run in debug mode (for logs)')
|
parser.add_argument('--debug', action='store_true', default=False, help='Run in debug mode (for logs)')
|
||||||
arguments = parser.parse_args()
|
arguments = parser.parse_args()
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue