Code Monkey home page Code Monkey logo

lic's Introduction

lic

lic is an IRC client/IRC client framework.

lic

Unique

What's unique about lic is that it acts as an IRC bouncer but with a special API that you can access from anywhere. It is accessible from multiple protocols and can be used to quickly make bots. It comes with an IRC client that's designed to be extremely extensible through JavaScript, and provides full functionality to construct as complex/powerful an interface as you would like. You can have an interface as simple as ii or as complex as irssi, entirely through user-built scripts.

Architecture

The client is made up of a central hub, which will remain connected to IRC for you at all times, and petals which are attachable scripts which have the option of running out-of-process or even across a network. Petals can be anything from a client interface to a bot to a simple tweak.

Current features

  • Alternate nick support
  • Message throttling
  • SSL support (10 Mar 2012)
  • Nicklist management (8 Jul 2012)

Test Interface

The test interface is a temporary feature in the lic hub which is used to send commands. The syntax is [item:]command[(args, ...)]. By default item is the last item entered.

Let's get started with launching lic with the IRC petal.

$ ./bin/licd --petal=./petal/irc/IRC.js

Your configuration will be loaded from ~/.lic/config.json. For an example configuration file, look in doc/example-config.json.

The IRC server should connect automatically if it was listed in your config. Okay, let's join a channel.

% irc/freenode/#oftn:join

Okay, great. We can see all of the data being sent to and received from the IRC server. The item is optional if we want to use the same item from the last command.

% say ("Say, this lic client is pretty cool!")

IRC Commands

Manager

Example item: irc

  • :shutdown: Disconnects from all servers and cleans up

Server

Example item: irc/freenode

  • :send("PING :foo"): Sends raw IRC command to server
  • :say("#oftn", "Greetings from lic!"): Sends a message to a channel or user
  • :join("#oftn"): Joins the channel specified in the argument
  • :part("#oftn"): Parts the channel specified in the argument--part message argument is optional
  • :quit: Disconnects from the server--quit message argument is optional
  • :trace("#oftn"): (Debugging) Prints nicklist of given channel

Channel

Example item: irc/freenode/#oftn

  • :join: Another way of joining a channel
  • :part: Another way of parting a channel
  • :say("Good news, everyone!"): Another way of sending a message to the channel
  • :trace: (Debugging) Prints nicklist of channel

User

Example item: irc/freenode/eboy

  • :say("Great job on your IRC client!"): Another way of sending a message to a user

lic's People

Contributors

devyn avatar dsamarin avatar eligrey avatar emberian avatar guipn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

yorickvp

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.