GSoC/GCI Archive
Google Code-in 2014 Copyleft Games

HGBot: IRC Flood Control

completed by: Michal Proszek

mentors: Jon Neal, Arc Riley, Terri Oda, David Czech, AJ Williams, Amaury Medeiros

HGBot is a Python program that automates our Mercurial repository management, handles Mercurial authentication, and provides user interfaces such as IRC.

On IRC, Freenode is setup to silently discard messages when too many are sent at once (aka, flooding). Most IRC clients provide built-in flood control, slowing the pace of outgoing messages (such as a copy/paste). Currently HGBot's IRC service does not do any flood control which results in longer commit messages, or even some help output, getting cut-off.

Implement a basic outgoing message queue and async message sender, consulting with Freenode staff and network documentation for an appropriate burst size and post-burst rate (eg, 5 messages sent at once if nothing has been sent for 10 seconds, then one message per second).

While working on this task you should join and remain in #CopyleftGames on Freenode to get help, feedback, and guidance from mentors and other developers. Code updates which may affect your work are also announced here as they happen.

When you've done, commit your work and post the resulting changeset url to this task.