DMcP89 / harambot

A Yahoo Fantasy Sports bot for Discord
MIT License
30 stars 17 forks source link
bot discord fantasy-sports python yahoo-fantasy-api

harambot-banner

Harambot

An interactive Yahoo Fantasy sports bot for Discord.

Python License Build Version

Discord

Commands

/ping                           - Gives the latency of harambot
/RIP                            - Pay respects
/standings                      - Returns the current standings of the current league
/roster Team                    - Returns the roster of the given team
/stats Player                   - Returns the details of the given player
/trade                          - Create a poll for latest trade for league approval
/matchups week                  - Returns the matchups for the given week, defaults to the current week
/waiver days                    - Returns the waiver wire transactions from the previous number of days
/configure                      - Configure the bot for your guild
/reports                        - Set what channel transaction reports should be sent to.

You can find example output of these commands here

Roll your own instance

Prerequisites

In order to properly configure your bot you will need the following:

Visit our wiki for a step by step guide on how to obtain these values.

Generate a key for your local database

Parts of the database are encrypted, which means we need to generate a key. Using the python interactive interpreter, you can generate one by running these three lines inside the interpreter:

from cryptography.fernet import Fernet
fernet_key = Fernet.generate_key()
print(fernet_key.decode())

Your key will appear below.

Run the bot on Render

Deploy to Render

Run the bot locally using pip package

  1. Install the harambot package using pip

    pip install harambot
  2. Export the following environment variables

    export DISCORD_TOKEN='[YOUR DISCORD TOKEN]'
    export YAHOO_KEY='[YOUR YAHOO API CLIENT ID]'
    export YAHOO_SECRET='[YOUR YAHOO API CLIENT SECRET]'
    export DATABASE_URL='[YOUR DATABASE URL]' # which can be a pathway to a file, such as 'sqllite:///harambot.db'
    export HARAMBOT_KEY='[YOUR ENCRYPTION KEY]' # A URL-safe base64-encoded 32-byte key
  3. Run the bot

    harambot

Run the bot locally using docker

  1. Pull the latest image from docker hub

    docker pull dmcp89/harambot
  2. Export the following environment variables

    export DISCORD_TOKEN='[YOUR DISCORD TOKEN]'
    export YAHOO_KEY='[YOUR YAHOO API CLIENT ID]'
    export YAHOO_SECRET='[YOUR YAHOO API CLIENT SECRET]'
    export DATABASE_URL='[YOUR DATABASE URL]'
    export HARAMBOT_KEY='[YOUR ENCRYPTION KEY]' # A URL-safe base64-encoded 32-byte key
  3. Run the bot

    docker run --name harambot \
    -e DISCORD_TOKEN=$DISCORD_TOKEN \
    -e YAHOO_KEY=$YAHOO_KEY \
    -e YAHOO_SECRET=$YAHOO_SECRET \
    -e DATABASE_URL=$DATABASE_URL \
    -e HARAMBOT_KEY=$HARAMBOT_KEY \
    --rm dmcp89/harambot

Setup

Add the bot to your guild

  1. Generate a OAuth url from the discord developer portal using the bot scope and the following permissions:

The permission value should be 277562378304

discord-oauth

  1. Navigate to the generated url in a web browser and authorize the bot for your guild

discord-oauth-url-1 discord-oauth-url-2

Configure your guild

discord-config-commnd

discord-config-yahoo

discord-config-guild

discord-config-guild