Occasionally I am moved to write code. When this happens, it is usually in the form of a plugin or extension to some piece of existing software. A good number of my more mature/older projects are listed here, but I also contribute to several third-party projects on a semi-regular basis.
sopel (formerly willie) is a Python-based IRC bot framework. I started running it sometime in 2014, and have since written or updated a number of modules for it.
In roughly alphabetical order:
- Query for anime airtimes with filtering by title and station (emulation of a Java module for Pircbotx).
- Plant and defuse bombs on other users in the channel (forked and improved from an existing module).
- Companion module for (most of) my games for sopel that allows merging users together in such a way as to preserve their stats.
- Lets users duel each other (emulation of a preexisting mIRC script).
- Performs Japanese–English dictionary lookups using Jisho.org’s public (but basically undocumented) API.
- Karma-type module that lets users “luv” and “h8” each other (emulation of a mIRC script).
- Lets users play Russian roulette (emulation of a mIRC script).
- Proof of concept to let sopel receive text through TCP connections and send it out to IRC. Intended to be forked and extended for specific use cases.
- Provides UNO games via IRC on a per-channel basis (originally based on an existing module for a predecessor of sopel called Phenny).
- sopel’s built-in Wolfram|Alpha support was removed when the company instated an API key requirement. I was the first person willing to take and package existing third-party code for distribution on PyPI. My first PyPI module, and first sopel module to have proper releases. Co-maintained with the original code’s author.
- Fetch quotes from the xkcdb quote database.
- Nuisance module I threw together one night to bother people who try to pronounce my nickname phonetically.
YOURLS is a self-hosted URL shortener, an alternative to using one of the big names like TinyURL or Bitly. I installed it in September 2011, after getting a short domain name, and have since used it for almost all of the short links I need for Twitter/Facebook/SMS messages.1
- Don’t Track Admins
- Does what it says: It suppresses click tracking of logged-in YOURLS admin users. This is by far my oldest project featured here; the first version was committed on September 18, 2011.
- A big motivator for this was wanting control of my own links. Much of my Twitter archive, for example, is largely useless because I used tr.im links for their brevity and for the clever domain name. The service shut down without publishing the link database anywhere, and the mappings are now simply gone. [↩]