Project

zetabot

0.01
Low commit activity in last 3 years
A long-lived project that still receives updates
Zeta is a IRC bot written in ruby using the Cinch Framework
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Project Readme

Zbot

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

Installation

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

Commands

roles: owner,admin,operator,halfop,voice,nobody prefix: ?

Admin

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

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."

FIFO

Zeta will open a named pipe under bot/zeta.io messages sent to this pipe will be directly sent to the irc server

Plugins

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

Network Specific Plugins

FlagRun Networks

URL Grabber Grabs metadata from url in channel

DarkScience

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