Skip to content

Instantly share code, notes, and snippets.

@TrueBrain
Last active November 26, 2020 20:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save TrueBrain/fa33cd2a8652a7cfcde611495faf94ba to your computer and use it in GitHub Desktop.
Save TrueBrain/fa33cd2a8652a7cfcde611495faf94ba to your computer and use it in GitHub Desktop.
IRC Bot

Supported features

GitHub

  • GitHub event -> announcements (via .dorpsgek.yml)

User

  • User registration via Pull Request
  • Hostname to "auto" identify (especially in combination with NickServ and *.user.oftc.net a simple way for anyone to identify)
  • Channel permissions via Pull Request

Channels

  • New channel via Pull Request

Logging

  • Logs everything in a channel and shows this in a nice webinterface for backlog reading

Commands

  • @calc, to calculate simple stuff
  • @base, to convert numbers from one base to the other
  • @seen, check when someone was last seen
  • @whoami, tells you who you are according to the bot
  • @logs, show where to find the IRC logs
  • @ports, inform about the ports OpenTTD uses

Operator-commands

  • @kick, to kick someone
  • @kban, to ban someone for N minutes
  • @op, to become +o
  • @deop, lose +o
  • @topic, to manipulate topic

Done

  • Create basic layout for Limnoria
  • Minimize the amount of plugins loaded
  • Validate the Channel plugin does what we expect
    • It should support @op, @topic, @kick, etc
  • Copy User plugin
    • Remove registration, modification, etc
  • Add plugin for @seen
    • Check that the old Seen.db is still compatible
    • Ensure the Seen.db is in a folder that can be stored on a persistent storage in AWS
  • Add plugin for @calc and friends
  • Create plugin for commands like @ports
  • Add plugin Topic and Services
  • Create plugin that replacing the current DorpsGek for GitHub events
    • Instead of aiohttp it should use Limnoria's httpserver

TODO

  • Create/copy plugin that stores logs and shows it via the httpserver
    • Every day, the logs of the previous day should be copied to S3
    • The domain serving the S3 bucket should internally fetch "today" from the bot (all other days from the S3)
    • Logs should be available in .txt and in .html
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment