Skip to content

Baricus/BariBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BariBot

BariBot will be a twitch specific IRC-bot written in C++. It is being developed on Debian GNU/Linux 10 (buster) but is, in theory, compatible with other distros and (hopefully) Windows. However, it is not being compiled or tested on any other platforms at this time.
BariBot uses the ASIO socket library (non-boost) to handle socket connections in a platform independant fashion. To handle HTTP requests, BariBot uses the POCO library. This is needed to renew tokens and make API calls which are not part of the IRC framework (for example getting user statistics). This could in theory be done with ASIO, but is beyond what I was willing to force myself to do and, coupled with additional functionality that a library suite such as POCO provides, it was hard to argue against using it. Still, I have attempted to keep usage to a minimum out of principle.

Current Status

BariBot is, as of the current moment, techincally functional. It connects to a given channel and parses IRC commands to search for user commands and executes the requested action based on them. Current work is directed towards managing the bot's backend so that each bot can configure itself independently of all others. Further work on end user features is planned after this has been accomplished.

Development Roadmap

  • Create a repo (one thing on this list had to be simple)
  • Install ASIO
  • Install POCO
  • Implemenent an IRC client class using ASIO tcp sockets
    • Open a TCP socket to a given server+port
    • Handle connection failures with fallof retries
    • Parse incoming IRC commands
    • Process IRC commands
    • Generate outbound IRC commands
    • Connect to the requested IRC channels
    • Properly authenticate with Twitch servers
    • Maintain connection with Twitch servers (ping pong)
    • Handle user commands
    • Implement Twitch-specific IRC functionality
  • Create a manager class to handle client instances
    • Create new token files
    • Refresh implicit tokens for instances
    • Generate client credentials for non IRC api calls
    • Instantiate instances on demand
    • Delete instances as needed
    • Accept live configuration

License

GNU AGPLv3

About

A twitch bot written from the socket level in C++

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published