Cinch IRC bot written with plenty of help. I will not claim any of the plugins And will try to get the correct credits in source
Zeta requires ruby >= 2.7.6 and rubygems. Installation beyond that is simple
Steps
- gem install zetabot
- zetabot
Docker
Zeta will need its config file mounted in the .zeta/config.rb
image for her to function.
FROM docker.io/ruby:2.7.6
RUN useradd zeta -m
USER zeta
WORKDIR /home/zeta/
RUN mkdir .zeta .zeta/cache .zeta/log && \
gem install zetabot
# Run zeta
CMD [ "zetabot"]
Plugins All plugins are automatically loaded that are in the plugins directory
roles: owner,admin,operator,halfop,voice,nobody prefix: ?
Channel ** Role Required: admin/owner **
- ?join (#channel) - admin
- ?part (#channel) - admin
- ?quit (#channel) - owner
Plugins ** Role Required: admin **
- ?plugin load (plugin)
- ?plugin unload (plugin)
- ?plugin reload (plugin)
- ?plugin set (plugin)
Developer ** Role Required: owner **
- ?die (msg) // Kills the bot
- ?e code // (alias: eval) Evaluate command
- ?em code // (alias: eval) Evaluate command send in msg
- ?er code // (alias: evalreply) Evaluate command and send to channel
Ignore ** Role Required: operator **
- ?ignore (user)
- ?unignore (user)
Channel ** Role Required: operator **
- ?disable (channel) // can omit channel to use current
- ?enable (channel) // enalbed a channel that has been disabled
Access ** Role Required: voice **
- ?setaccess (user) (level) // Levels: nobody,voice,halfop,operator,admin,owner,founder
- ?access (user) // Show current access level
Uptime ** Role Required: admin **
- ?uptime // Bot uptime
- ?sysuptime // grabs the uptime from current system
- ?users // shows users currently logged into shell
Macros are prefixed by a period and are loaded from locales/macros.yml example. typing in ".dnf" in channel will cause the bot to respond with "Duke Nukem Forever came out. Your argument is invalid."
Zeta will open a named pipe under bot/zeta.io messages sent to this pipe will be directly sent to the irc server
Utility
- ?calc (query) - Returns a wolframalpha solution
- ?wiki (term) - Returns a wikipedia entry
Code Runner
- ?run (lang) (code)
- ?langs - lists all of the languages that are supported
Seen
- ?seen (user)
Misc
- ?attack (target)
- ?info (plugin)
- ?fnord
- ?xmas - days till christmas
- ?mayan - current day in the mayan calendar
- ?newyear - days until new years
- ?heavymetalise (message) - styles the vowles of the text
- ?rainbow (text) - colorizes your text
- ?eyerape (text) - even worse then rainbow
- ?rr (nick) - Play a game of Russian Rullete
- ?fml - Returns a "F*ck My Life"
GifMe
- ?randomgif - grabs a random gif from gifme
- ?gif (term) - returns the best match from gifme
Movie
- ?movie (movie name) :year - the year is optional but must be prefixed with a colon
Urban Dictionary
- ?ud (definition) - returns a definition
- ?wotd - World of the day
Weather
- ?w (location)
- ?wx (location)
- ?setw (location) - Sets your current location so the bot will remember if you do ?w
- ?hurricane - gets current hurricane activity
- ?forecast (location)
PDF Info This plugin grabs the metadata from a pdf that is linked in channel
DBZ responds when you say certain keywords
URL Grabber Grabs metadata from url in channel
API
- ?finger (nick) - pulls nickname information from the DarkScience API
- ?stats (nick) - pulls statistics information for a nick from the DarkScience API
- ?peek (channel) - pulls channel information from Darkscience API
QDB
- ?addquote (text) - submits quote to DarkScience API
- ?quote (id) - grabs the quote matching that ID for the specific channel
- ?quote - grabs random quote for channel
LibSecure ** only works in #libsecure channel **
- ?latest - grabs the latest post from libsecure