Merge pull request #9 from jarulsamy/dev

v1.0.0
This commit is contained in:
Joshua Arulsamy 2020-08-10 02:37:42 -06:00 committed by GitHub
commit c1cba637b8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 110 additions and 103 deletions

View File

@ -14,7 +14,7 @@ WORKDIR /src
COPY requirements.txt .
# Install all dependencies.
RUN pip install --only-binary all --no-cache-dir -r requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# Copy PlexBot over to src.
COPY PlexBot/ PlexBot

17
Jenkinsfile vendored
View File

@ -49,18 +49,19 @@ pipeline {
steps {
sh ''' source /var/lib/jenkins/miniconda3/etc/profile.d/conda.sh
conda activate ${BUILD_TAG}
python deploy/build.py
./deploy/build.sh
'''
}
post {
always {
// Archive unit tests for the future
archiveArtifacts (allowEmptyArchive: true,
artifacts: 'dist/*whl',
fingerprint: true)
sh 'python deploy/push.py'
}
stage('Push Image') {
when {
expression {
currentBuild.result == 'SUCCESS'
}
}
steps {
sh './deploy/push.sh'
}
}
}

View File

@ -1,8 +1,8 @@
"""Plex music bot for discord.
Do not import this module, it is intended to be
used exclusively within a docker environment.
"""
Plex music bot for discord.
Do not import this module, it is intended to be
used exclusively within a docker environment.
"""
import logging
import sys

View File

@ -1,7 +1,6 @@
"""Main entrypoint for bot
Sets up loggers and initiates bot.
"""
Main entrypoint script.
Sets up loggers and initiates bot.
"""
import logging

View File

@ -1,2 +1,5 @@
"""Track version number of package"""
VERSION = "0.0.6"
"""Track version number of package."""
VERSION = "1.0.0"
if __name__ == "__main__":
print(VERSION)

View File

@ -1,4 +1,4 @@
""" All discord bot and Plex api interactions"""
"""All discord bot and Plex api interactions."""
import asyncio
import io
import logging

126
README.md
View File

@ -3,7 +3,7 @@
[![GPLv3 license](https://img.shields.io/badge/License-GPLv3-blue.svg)](http://perso.crans.org/besson/LICENSE.html)
![docker pulls](https://img.shields.io/docker/pulls/jarulsamy/plex-bot)
![docker img size](https://img.shields.io/docker/image-size/jarulsamy/plex-bot)
<a href="https://github.com/psf/black"><img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a>
![black badge](https://img.shields.io/badge/code%20style-black-000000.svg)
A Python-based Plex music bot for discord.
@ -13,106 +13,105 @@ A Python-based Plex music bot for discord.
Plex-Bot runs entirely in a Docker container. Ensure you have Docker and docker-compose installed according to the official Docker [documentation](https://docs.docker.com/get-docker/).
1. Create a new folder and `cd` into it:
1. Create a new folder and `cd` into it:
```
$ mkdir Plex-Bot
$ cd Plex-Bot
```
```bash
mkdir Plex-Bot
cd Plex-Bot
```
2. Make a `docker-compose.yml` file or use this sample:
2. Make a `docker-compose.yml` file or use this sample:
```yml
version: "3"
services:
plex-bot:
container_name: "PlexBot"
image: jarulsamy/plex-bot:latest
environment:
- PUID=1000
- PGID=1000
- TZ=America/Denver
# Required dir for configuration files
volumes:
- "./config:/config:ro"
restart: "unless-stopped"
```
```yml
version: "3"
services:
plex-bot:
container_name: "PlexBot"
image: jarulsamy/plex-bot:latest
environment:
- PUID=1000
- PGID=1000
- TZ=America/Denver
# Required dir for configuration files
volumes:
- "./config:/config:ro"
restart: "unless-stopped"
```
3. Create a configuration folder:
3. Create a new `config` folder and create a config file like this::
Create a new `config` folder and create a config file like this:
```bash
mkdir config
cd config
touch config.yaml
```
```
$ mkdir config
$ cd config
```
```yml
# Create a file called config.yaml with the following contents
```yml
# Create a file called config.yaml with the following contents
root:
log_level: "info"
root:
log_level: "info"
discord:
prefix: "?"
token: "<BOT_TOKEN>"
log_level: "debug"
discord:
prefix: "?"
token: "<BOT_TOKEN>"
log_level: "debug"
plex:
base_url: "<BASE_URL>"
token: "<PLEX_TOKEN>"
library_name: "<LIBRARY_NAME>"
log_level: "debug"
```
plex:
base_url: "<BASE_URL>"
token: "<PLEX_TOKEN>"
library_name: "<LIBRARY_NAME>"
log_level: "debug"
```
4. Create a Discord bot application:
4. Create a Discord bot application:
1. Go to the Discord developer portal, [here](https://discord.com/developers/applications).
* Go to the Discord developer portal, [here](https://discord.com/developers/applications).
2. Log in or create an account
* Log in or create an account
3. Click New App
* Click New App
4. Fill in App Name and anything else you'd like to include
* Fill in App Name and anything else you'd like to include
* Click Create App
5. Click Create App
This will provide you with your Client ID and Client Secret
* Click Create Bot User
6. Click Create Bot User
This will provide you with your bot Username and Token
* Fill in the bot token in `config/config.yaml`
7. Fill in the bot token in `config/config.yaml`
5. Get your plex token:
5. Get your plex token:
* Refer to the official [plex documentation](https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token/).
* Add it to `config/config.yaml` in the appropiate spot.
6. Customize remaining settings
6. Customize remaining settings
Set any remaining settings in the config file that you would like. Such as music library, and base url of the Plex server.
7. Start the service:
```
$ docker-compose up -d
```
```bash
docker-compose up -d
```
## Logs
You can view the logs with the following command
```
$ docker-compose logs -f CONTAINER_NAME_OR_ID
```bash
docker-compose logs -f CONTAINER_NAME_OR_ID
# For example
$ docker-compose logs -f PlexBot
docker-compose logs -f PlexBot
```
## Usage
```
```text
General:
kill - Stop the bot.
Plex:
@ -129,11 +128,4 @@ Type ?help command for more info on a command.
You can also type ?help category for more info on a category.
```
## Support
Reach out to me at one of the following places!
- Email (Best) at joshua.gf.arul@gmail.com
- Twitter at <a href="http://twitter.com/jarulsamy_" target="_blank">`@jarulsamy_`</a>
* * *

View File

@ -1,8 +0,0 @@
import os
import sys
sys.path.append("PlexBot")
from __version__ import VERSION
sys.exit(os.system(f"docker build -t jarulsamy/plex-bot:{VERSION} ."))

14
deploy/build.sh Executable file
View File

@ -0,0 +1,14 @@
#!/usr/bin/env bash
VERSION=$(python PlexBot/__version__.py)
docker build -t "jarulsamy/plex-bot:$VERSION" .
if [ $? -eq 0 ]
then
echo "Successfully build docker image."
exit 0
else
echo "Failed to build docker image." >&2
exit 1
fi

View File

@ -1,8 +0,0 @@
import os
import sys
sys.path.append("PlexBot")
from __version__ import VERSION
sys.exit(os.system(f"docker push jarulsamy/plex-bot:{VERSION}"))

14
deploy/push.sh Executable file
View File

@ -0,0 +1,14 @@
#!/usr/bin/env bash
VERSION=$(python PlexBot/__version__.py)
docker push "jarulsamy/plex-bot:$VERSION"
if [ $? -eq 0 ]
then
echo "Successfully pushed docker image."
exit 0
else
echo "Failed to push docker image." >&2
exit 1
fi