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 . COPY requirements.txt .
# Install all dependencies. # 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 over to src.
COPY PlexBot/ PlexBot COPY PlexBot/ PlexBot

17
Jenkinsfile vendored
View File

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

View File

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

View File

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

View File

@ -1,2 +1,5 @@
"""Track version number of package""" """Track version number of package."""
VERSION = "0.0.6" 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 asyncio
import io import io
import logging 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) [![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 pulls](https://img.shields.io/docker/pulls/jarulsamy/plex-bot)
![docker img size](https://img.shields.io/docker/image-size/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. 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/). 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:
``` ```bash
$ mkdir Plex-Bot mkdir Plex-Bot
$ cd 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 ```yml
version: "3" version: "3"
services: services:
plex-bot: plex-bot:
container_name: "PlexBot" container_name: "PlexBot"
image: jarulsamy/plex-bot:latest image: jarulsamy/plex-bot:latest
environment: environment:
- PUID=1000 - PUID=1000
- PGID=1000 - PGID=1000
- TZ=America/Denver - TZ=America/Denver
# Required dir for configuration files # Required dir for configuration files
volumes: volumes:
- "./config:/config:ro" - "./config:/config:ro"
restart: "unless-stopped" 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
```
``` ```yml
$ mkdir config # Create a file called config.yaml with the following contents
$ cd config
```
```yml root:
# Create a file called config.yaml with the following contents log_level: "info"
root: discord:
log_level: "info" prefix: "?"
token: "<BOT_TOKEN>"
log_level: "debug"
discord: plex:
prefix: "?" base_url: "<BASE_URL>"
token: "<BOT_TOKEN>" token: "<PLEX_TOKEN>"
log_level: "debug" library_name: "<LIBRARY_NAME>"
log_level: "debug"
```
plex: 4. Create a Discord bot application:
base_url: "<BASE_URL>"
token: "<PLEX_TOKEN>"
library_name: "<LIBRARY_NAME>"
log_level: "debug"
```
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 5. Click Create App
* Click Create App
This will provide you with your Client ID and Client Secret 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 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/). * 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. * 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. 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: 7. Start the service:
``` ```bash
$ docker-compose up -d docker-compose up -d
``` ```
## Logs ## Logs
You can view the logs with the following command You can view the logs with the following command
``` ```bash
$ docker-compose logs -f CONTAINER_NAME_OR_ID docker-compose logs -f CONTAINER_NAME_OR_ID
# For example # For example
$ docker-compose logs -f PlexBot docker-compose logs -f PlexBot
``` ```
## Usage ## Usage
``` ```text
General: General:
kill - Stop the bot. kill - Stop the bot.
Plex: 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. 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