GithubHelp home page GithubHelp logo

juraji / biliomi Goto Github PK

View Code? Open in Web Editor NEW
2.0 3.0 2.0 1.45 MB

Another fully featured Twitch chat bot

License: GNU General Public License v3.0

Java 99.74% HTML 0.26%
twitch twitch-bot twitch-irc twitch-api-v5 twitch-tv twitchtv

biliomi's Introduction

Biliomi v3

Another fully featured Twitch chat bot

About

I tried many generic and Twitch bots out there, but none of them fully satisfied my needs. And since I am a programmer with needs I decided to build my own.

Features

  • Viewer loyalty:
    • Customizable Points system
    • View time tracking
    • Follower/Subscriber statistics
  • RESTful Api
  • Customizable text-based commands
  • Spotify integration
  • Twitter integration
  • Steam integration
  • Stream Labs integration
  • Raid register (manual)
  • Donation register (manual or powered by Stream Labs)
  • Automated and customizable viewer greetings
  • Customizable Chat moderator
  • Basic raffle system
  • Chat quotes register
  • Chat games
    • Adventures Also known as Heists
    • The all-knowing Eightball
    • Investments Yeah that's new
    • Creative ways to die (!kill)
    • Russian Roulette
    • Slot Machine
    • Tamagotchis

Pull requests are always welcome, tho I must tell you I'm very picky.
Sidenote on pull requests: Your IDE might support editor config, or maybe there's a plugin. Use it, it's half of your work done for you

Release schedule

  • Minor versions, mostly including new features:
    Every week on sunday if changes have been made.
  • Micro versions, mostly bugfixes and security fixes:
    As soon as they are available and tested.

"Read the docs"

Biliomi will sometimes refer to "the docs". Find them here!

A WADL for Biliomi's REST Api is available under http://localhost:30000/application.wadl when Biliomi is running.

Setting Up

Download Contents

  • ./
    • Biliomi v3/ Installation root
      • lib Libraries used by Biliomi
      • i18n Language files, feel free to edit
      • biliomi-x.x.x.jar The main Java executable
      • start-biliomi.sh Start script for linux/MacOS
      • start-biliomi.bat Start script for Windows
    • RELEASES.MD A list of all previous releases and release notes
    • README.MD This read me
    • LICENSE License information
    • database-mysql-ddl.sql A SQL script for Biliomi's database
    • Biliomi.ts A TypeScript interface definition file for Biliomi's REST Api model

Installation

Read these instructions carefully, tldr; == No support :D

Prerequisites:

  • Your Twitch channel.
  • A Twitch account for the bot.
    Since Biliomi will have to be able to chat and moderate in your chat it needs an account the be able to do so.

Installation (Using the built in installer)

  1. Make sure you have the latest version of Java 8 or higher installed.
  2. Grab the latest version from the releases page.
  3. Open the downloaded archive and unpack the Biliomi v3 directory to where you want to installation to reside.
  4. Open the file explorer and navigate to the location in which you've unpacked the downloaded archive.
  5. Run Biliomi. Biliomi will initially be set to installation mode.
    To run Biliomi start (double-click) the appropriate runner for your system:
    On Windows: start-biliomi.bat
    On Linux/MacOS: start-biliomi.sh
  6. Follow any instructions in the console to fully set up Biliomi.
  7. When the first time installation was successful Biliomi will have saved your settings and automatically shut down.
  8. Restart Biliomi
  9. Biliomi will now setup the database and ask you a few more questions to complete the installation.
    On successful setup Biliomi will immediately connect to Twitch and start listening for commands.
  10. Wait for Biliomi to finish follower and subscriber updates and exit Biliomi by typing /exit in the console.
  11. Once again open up ./config/core.yml in your favorite text editor and change updateMode to OFF.
  12. Now start Biliomi again and enjoy it's features.

Note: By default Biliomi will be muted to prevent any chatter during setup and initial follower/subscriber updates.
Type !mute in the console or chat to enable chatter.

Updating

Biliomi now has an automated update. The update takes care of step 1 to 3 for you.
Note: The automatic updater will overwrite your i18n files. If you've made any changes to them they will be lost. You might want to make a backup of the ./i18n directory

  1. Grab the latest version from the releases page.
  2. Shut down any currently running instance of Biliomi.
  3. Unpack the downloaded archive into the final location, from which you like to run Biliomi, overwriting all files.
  4. Compare all config files within default-config with the files in the existing config directory.
    Tedious, I know... But one can only do so much. The release notes will always contain a note about changed settings.
  5. Open up ./config/core.yml in your favorite text editor.
    a. Update any setting that needs to be changed. Like added features.
    b. Set updateMode to UPDATE.
  6. Start Biliomi again.
  7. Keep an eye out, Biliomi might have some questions for you.
  8. Wait for Biliomi to fully start
  9. Shut down Biliomi
  10. Once again open up ./config/core.yml in your favorite text editor and change updateMode to OFF.
  11. Now start Biliomi again and enjoy it's features.

Localization

Localization files are available here.

  1. Download the localization pack.
  2. Shut down any currently running instance of Biliomi.
  3. Replace the i18n directory, with the installation root, with the preferred i18n directory from the language pack.
  4. Now start Biliomi again and enjoy.

Usage

Posting commands

Biliomi is a command driven bot. This means that every and all interaction is done via posting commands in the chat or the console.

Commands always start with an exclamation mark (!).

When a command requires arguments you can find out which ones and how by simply posting the base command.
For instance: When you post !announcement in the chat, Biliomi will reply with Usage: !announcement [add|remove|interval|minmsgs] [more...].

The Console

When Biliomi is done booting it will start listening for input in the console.

known Bugs:

  • Any input always requires [enter] to be pressed.
  • Biliomi's logging can interrupt users typing a command, requiring users to reenter the command.

To find out what commands the console supports, simply type /help into the console and press [enter].

Commandline usage:

  • Use console: /[command] [any required parameters]
  • Post commands: ![command] [any required parameters]
  • Send whispers (using bot account): @[target username] [message...]
  • post message in chat (using bot account): >[message...]

biliomi's People

Contributors

juraji avatar rkesselerconvect avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

adoro zypan

biliomi's Issues

NullPointerExceptions when using the internal H2 database

When booting Biliomi throws a NullPointerException in nl.juraji.biliomi.components.system.channel.ChannelService.getChannelId(ChannelService.java:63).

This is due to the caster user record, within the database, not being marked as caster.
Somehow boolean (true/false) values are not stored correctly.
This breaks a lot of functionality, since Biliomi is unable to determine who the caster is.

While I'm working on this I'm advising to use a MySQL database for data storage.
A good getting started on how to install a MySQL server would be apachefriends.org.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.