0.0
No commit activity in last 3 years
No release in over 3 years
IRC Chat Bot for time shenanigans
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 5.0
~> 0.13.0
~> 3.9.0
~> 3.0.0

Runtime

= 2.3.4
~> 0.17.0
 Project Readme

TickingAway

IRC Chat bot for time info adjusted for timezone

Description

This gem can create an IRC Chat Bot using the Cinch gem that responds to !timeat <tz_info> and !timepopularity <tz_info or prefix>. The gem is runnable as a standalone Cinch chat bot or you can just throw IRC message strings at the TickingAway::Bot and get the string responses back. The time commands are implemented as Cinch Plugin so that you can also add it as a plugin to an existing Cinch ChatBot.

Disclaimer: The Cinch library has been dead for several years but still seems to work just fine on freenode.

Installation

Requirements: Ruby 2.7 and Bundler

RubyGems:

gem install ticking_away

Bundler:

gem 'ticking_away'

GitHub:

git clone https://github.com/woodjeffrey2/ticking_away.git

Usage

There are a couple of different ways you can use the gem.

Standalone Cinch Chat Bot

You can run a standalone IRC Cinch chat bot by creating a TickingAway::ChatBot object

require 'ticking_away'

bot = TickingAway::ChatBot.new('irc.freenode.org', ['my_channel', 'my_channel_2'])

bot.start

Bot Object

You can also just create a TickingAway::Bot and send commands at it through the chat(<message>) method. Messages should either be formatted in IRC format like <username>: <command or message> or just <command or message>

require 'ticking_away'

bot = TickingAway::Bot.new

# "<username>: " is optional. It should work the same with or without a username specified
# bot_response = bot.chat('!timeat America/Los_Angeles')
bot_response = bot.chat('Jeremy: !timeat America/Los_Angeles')

puts bot_response

Cinch Plugin

You can also add the !timeat and !timepopularity commands to any Cinch Chat Bot you want.

require 'ticking_away'

bot = Cinch::Bot.new do
        configure do |c|
          c.server = 'irc.freenode.org'
          c.channels = ['my_channel', 'my_channel_2']
          c.nick = 'TickingAwayBot'
          c.plugins.plugins = [TickingAway::TimeInfo]
          c.plugins.options[TickingAway::TimeInfo] = {
            :time_api => 'https://worldtimeapi.org/api'
          }
        end
      end

bot.start

Example files are provided in the /examples directory

Building the gem locally

In order to build and install the gem locally you'll need to clone the repo, then:

gem build ticking_away.gemspec

# install locally
gem install ./<generated .gem file>

Unit Tests

Unit tests are written in MiniTest. In order to run them you'll need to clone the repo, then:

bundle install

rake test

Meta

Jeff Wood

Distributed under the MIT license.

https://github.com/woodjeffrey2/ticking_away