* Optional `--guild-id` is now positional (thus mandatory) and no longer have a default id set to the breadtube discord server
45 lines
2.2 KiB
Markdown
45 lines
2.2 KiB
Markdown
# 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
|
|
```
|