TinyBot – An IRC Bot

TinyBot is a small IRC bot, programmed for my “linux programming” lecture. It is composed of two parts and features a plugin system.

  • TinyIRC – C++ IRC Library
  • TinyBot – Bot Core
  • SQL Log Plugin

Feel free to use it! I published the sources on GitHub. If you do so, i would be glad to hear from you. Also if you encounter a problem or have any question, don’t hesitate to contact me.

https://github.com/jloehr/IRCBot

TinyIRC

So TinyIRC is an IRC Protocol implementation for clients.The protocol is not fully implemented, but all necessary basics as i needed them for the assignment are included. It’s written in C++ with the usage of some C++11 features. Additionally it is platform independent, but uses the C++ Standard Library.

A manual and additional information are included in the readme file.

TinyBot

TinyBot is the core of the bot. It uses TinyIRC of course and features a plugin system for the actual functionality. It implements the base network communication and server/channel handling. Therefore it is not platform independent, due to sockets, and as the lecture name suggests the bot is written for Linux. Furthermore libev, an event loop system by Marc Lehmann, is used, which is designed for Linux and has some compatibility problems with Windows. Like the TinyIRC library the core is written in C++ with some C++11 features.

A readme file with a manual and additional information is provided as well as a man page.

SQL Log Plugin

The SQL Log Plugin is a sample plugin for the bot. It saves the channel history in a local sqlite file. This history can be printed out by request either into the channel or as private message to the requester. Moreover a lastseen feature is implemented as well. As the library and the core the plugin is written in C++.

The readme file covers a manual and build instructions.

 

Leave a Reply