API documentation

ModuleDescription
kameloso.irc.colours This module contains functions for working with IRC colouring and formatting, mapping it to terminal such, stripping it, etc.
kameloso.irc.common Functions needed to parse raw IRC event strings into IRCEvents.
kameloso.irc.defs Definitions of struct aggregates used throughout the program, representing IRCEvents and thereto related objects like IRCServer and IRCUser.
kameloso.irc.parsing
kameloso.plugins.admin The Admin plugin features bot commands which help with debugging the current state of the running bot, like printing the current list of users, the current channels, the raw incoming strings from the server, and some other things along the same line.
kameloso.plugins.automode The Automode plugin handles automatically setting the modes of users in a channel. The common use-case is to have someone be automatically set to +o (operator) when joining.
kameloso.plugins.bashquotes The Bash Quotes plugin fetches quotes from www.bash.org and displays them in a channel (or to a private query). It can fetch a random one or one by quote ID.
kameloso.plugins.chanqueries The Channel Queries service queries channels for information about them (in terms of topic and modes) as well as its list of participants. It does this shortly after having joined a channel, as a service to all other plugins, so they don't each repeat it themselves.
kameloso.plugins.chatbot The Chatbot plugin is a collection of small, harmless functions like 8ball and repeating text, as well as providing an "online help", sending a list of all the available bot verbs to the querying nickname.
kameloso.plugins.common The is not a plugin by itself but contains code common to all plugins, without which they will *not* function.
kameloso.plugins.connect The Connect service handles logging onto IRC servers after having connected, as well as managing authentication to services. It also manages responding to PING requests.
kameloso.plugins.ctcp The CTCP service handles responding to CTCP (client-to-client protocol) requests behind the scenes.
kameloso.plugins.notes The Notes plugin allows for storing notes to offline users, to be replayed when they next log in.
kameloso.plugins.persistence The Persistence service keeps track of all seen users, gathering as much information about them as possible, then injects them into IRCEvents when such information is not present.
kameloso.plugins.pipeline The Pipeline plugin opens a Posix named pipe in the current directory, to which you can pipe text and have it be sent verbatim to the server.
kameloso.plugins.printer The Printer plugin takes incoming IRCEvents, formats them into being easily readable and prints them to the screen, optionally with colours.
kameloso.plugins.quotes The Quotes plugin allows for saving and replaying user quotes.
kameloso.plugins.reddit The Reddit plugin allows you to query Reddit with a web URL, and if that URL has been posted there it will print the post link to the channel.
kameloso.plugins.sedreplace The SedReplace plugin imitates the UNIX sed tool, allowing for the replacement/substitution of text. It does not require the tool itself though, and will work on Windows builds too.
kameloso.plugins.seen The Seen plugin implements seen functionality; the ability for someone to query when a given nickname was last seen online.
kameloso.plugins.twitchbot This is an example Twitch bot. It is largely untested and mostly just showcases how a Twitch plugin might be written. It is the product of a few hours of mostly brainstorming.
kameloso.plugins.twitchsupport The Twitch Support service post-processes IRCEvents after they are parsed but before they are sent to the plugins for handling, and deals with Twitch-specifics. Those include extracting the colour someone's name should be printed in, their alias/"display name" (generally their nickname capitalised), converting the event to some event types unique to Twitch, etc.
kameloso.plugins.webtitles The Webtitles plugin catches URLs pasted in a channel, follows them and reports beck the title of the web page that was linked to.
kameloso.common Common functions used throughout the program, generic enough to be used in several places, not fitting into any specific one.
kameloso.config Various functions related to serialising structs into .ini file-like files.
kameloso.connection Functions related to connecting to an IRC server, and reading from it.
kameloso.constants A collection of constants used throughout the program.
kameloso.conv This module contains functions that in one way or another converts its arguments into something else.
kameloso.debugging Various debugging functions, used to generate assertion statements for use in the source code unittest blocks.
kameloso.getopt Basic command-line argument-handling.
kameloso.irc This is a package file for all the IRC modules. It only publicly imports them and does not contain any code itself.
kameloso.json Simple JSON wrappers to make keeping JSON storages easier.
kameloso.logger Contains the custom KamelosoLogger class, used to print timestamped and (optionally) coloured logging messages.
kameloso.main The main module, housing startup logic and the main event loop.
kameloso.meld This module contains the meldInto functions; functions that take two structs and combines them, creating a resulting struct with values from both parent structs. Array and associative array variants exist too.
kameloso.messaging Functions used to send messages to the server.
kameloso.objmanip This module contains functions that in some way or another manipulates struct and class instances.
kameloso.plugins This package file contains the lists of enabled plugins (EnabledPlugins, EnabledWebPlugins and EnabledPosixPlugins) to which you append your plugin to have it be instantiated and included in the bot's normal routines.
kameloso.printing Functions related to (formatting and) printing structs and classes to the local terminal, listing each member variable and their contents in an easy-to-visually-parse way.
kameloso.string String manipulation functions, used throughout the program complementing the standard library, as well as providing dumbed-down and optimised versions of existing functions therein.
kameloso.terminal A collection of enums and functions that relate to a terminal shell.
kameloso.thread Structures and functions related to concurrency message passing, threads and core.thread.Fibers.
kameloso.traits Various compile-time traits used throughout the program.
kameloso.uda User-defined attributes (UDAs) used in the non-plugin parts of the program.