LoadingReadyLive chatbot
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
alembic First steps moving external clip vods into DB Aug 26, 2018
assets Made 16x16 version of icon Jul 31, 2014
common Too-long-messages protection Aug 18, 2018
eris eris.autotopic: display more useful information first Jun 4, 2018
lrrbot Fix copy and/or paste error Sep 19, 2018
www First steps moving external clip vods into DB Aug 26, 2018
.editorconfig Send stream start event over the eventserver and post an announcement… Jun 16, 2017
.gitignore eris: voice channel activity tracker May 7, 2018
LICENSE Relicense under Apache-2.0 Apr 25, 2016
README.md Fix capitalisation. Aug 25, 2018
build_carddb.py Too-long-messages protection Aug 18, 2018
eris.service Revert "Run `eris` behind Tor." Sep 16, 2017
eventserver.py API v2: remove unused endpoints and add /api/v2/cardviewer Mar 28, 2018
eventserver.service fixed service files Jun 3, 2017
find_clips.py First steps moving external clip vods into DB Aug 26, 2018
find_clips.service Clip-finding upgrades Jul 15, 2018
find_clips.timer Fetch clips once an hour May 25, 2017
find_clips_week.service Clip-finding upgrades Jul 15, 2018
find_clips_week.timer Clip-finding upgrades Jul 15, 2018
logging.conf Debug logging for webserver to stdout Jun 23, 2017
lrrbot.service fixed service files Jun 3, 2017
rebuild_chat_logs.py Add "FRAMEWORK_ONLY" flag Mar 15, 2018
requirements-direct.txt eris: post new tweets from LRR in #stream-announcements Oct 29, 2017
requirements.txt Update sqlalchemy from 1.2.11 to 1.2.12 Sep 19, 2018
scrape_multiverse.py Partial revert Sep 19, 2018
scrape_salvation.py Don't need this any more Sep 17, 2016
scrape_sheets.py use the Python 3.5 coroutine syntax Jun 2, 2017
start_bot.py Tweak logging setup Jul 27, 2016
start_eris.py eris: voice channel activity tracker May 7, 2018
uwsgi.ini Use `virtualenv` on the server Jun 3, 2017
uwsgi.service uWSGI config and service file May 3, 2016
webserver.py www: disable threading Apr 30, 2018

README.md

LRRbot

LoadingReadyLive chatbot

License

Licensed under Apache-2.0 (LICENSE or https://www.apache.org/licenses/LICENSE-2.0).

LRRbot contains modules that aren't licensed under Apache-2.0:

  • lrrbot/commands/quote.py is licensed under the MIT license.

Setup instructions

Linux (Ubuntu 16.10)

Things not covered: keys.json for !highlight, tokens and secrets for Patreon integration, Slack integration.

  1. These commands assume Ubuntu 16.10 and that you're using Bash as your shell. Adapt as needed.

    Currently LRRbot works with PostgreSQL >= 9.5 and Python >= 3.5 and < 3.7, if the exact versions in the command below are unavailable on your operating system.

    sudo apt-get install git postgresql-9.5 postgresql-server-dev-9.5 python3.5-dev virtualenv build-essential
    git clone git@github.com:mrphlip/lrrbot
    cd lrrbot
    virtualenv -p python3.5 venv
    . venv/bin/activate
    pip install -r requirements.txt
    sudo -u postgres psql -c "CREATE USER \"$USER\";"
    sudo -u postgres psql -c "CREATE DATABASE lrrbot;"
    sudo -u postgres psql -c "GRANT ALL ON DATABASE lrrbot TO \"$USER\";"
    
  2. Write a lrrbot.conf file. Basic template:

    [lrrbot]
    username: 
    password: oauth
    channel: 
    
    preferred_url_scheme: http
    session_secret: 
    
    google_key:
    twitch_clientid:
    twitch_clientsecret:
    
    [apipass]
    
    [alembic]
    script_location = alembic

    Values to fill in:

    • username: The Twitch username of the bot. You can use your personal account, you don't need to create a new one for the bot.
    • channel: The channel the bot will join. Can be the same as username.
    • session_secret: A random string. You can generate one with the command head -c 18 /dev/urandom | base64
    • google_key: API key to Google's services. Create a project on Google Developer Console, enable Google Calendar API, and generate an API key under Credentials.
    • twitch_clientid and twitch_clientsecret: In your Twitch settings, under Connections register a new application. Set the redirect URI to http://localhost:5000/login.
  3. Write a data.json file. Basic template:

    {
        "responses": {}
    }
    
  4. Populate the database:

    alembic -c lrrbot.conf upgrade head
    
  5. Start LRRbot components:

  • IRC bot: python start_bot.py
  • Webserver: python webserver.py
  • (optional) Server-sent events server: python eventserver.py
  1. Go to http://localhost:5000/login and log in with the bot account (name in username config key) and the channel account (name in channel config key).
  2. Restart the bot.