Project

lita-irc

Repository is archived
No commit activity in last 3 years
No release in over 3 years
An IRC adapter for Lita.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.3
>= 0
>= 3.0.0

Runtime

>= 2.0
>= 4.0
 Project Readme

lita-irc

Gem Version Build Status

lita-irc is an adapter for Lita that allows you to use the robot with IRC.

Installation

Add lita-irc to your Lita instance's Gemfile:

gem "lita-irc"

Configuration

Required attributes

  • server (String) - The name of the IRC server Lita should connect to.
  • channels (Array) - An array of channels Lita should join upon connection.

Optional attributes

  • user (String) - The username for Lita's IRC account. Default: "Lita".
  • password (String) - The password for Lita's IRC account. Default: nil.
  • realname (String) - The "real name" field for Lita's IRC account. Default: "Lita".
  • log_level (Symbol) - Sets the log level for Cinch's loggers. By default, Cinch's loggers are disabled. Default: nil.

Additional Cinch options

Under the hood, lita-irc uses Cinch for the IRC connection. Cinch has several configuration options that you may want to set. To do this, assign a proc/lambda to config.adapters.irc.cinch. lita-irc will yield the Cinch configuration object to the proc, so you can configure it as you'd like. Note that for the options listed in the sections above, those values will overwrite anything set in the proc.

Note: config.robot.name is used as Lita's IRC nickname. The nick attribute of the Cinch options is overwritten with this value.

config.robot.admins

Each IRC user has a unique ID that Lita generates and stores the first time that user is encountered. To populate the config.robot.admins attribute, you'll need to use these IDs for each user you want to mark as an administrator. If you're using Lita version 4.1 or greater, you can get a user's ID by sending Lita the command users find NICKNAME_OF_USER.

Example

Lita.configure do |config|
  config.robot.name = "Lita"
  config.robot.adapter = :irc
  config.robot.admins = ["eed844bf-2df0-4091-943a-7ee05ef36f4a"]
  config.adapters.irc.server = "irc.freenode.net"
  config.adapters.irc.channels = ["#litabot"]
  config.adapters.irc.user = "Lita"
  config.adapters.irc.realname = "Lita"
  config.adapters.irc.password = "secret"
  config.adapters.irc.cinch = lambda do |cinch_config|
    cinch_config.max_reconnect_delay = 123
  end
end

Events

The IRC adapter will trigger these events:

Event When Payload
:connected connected to IRC None
:disconnected disconnected from IRC None
:user_joined_room a user joins a room user: Lita::User, room: Lita::Room
:user_parted_room a user parts a room user: Lita::User, room: Lita::Room
:user_disconnected a user disconnects user: Lita::User
:user_nick_changed a user changes nick user: Lita::User, old_user: Lita::User

License

MIT