Skip to content
This repository has been archived by the owner on Nov 23, 2018. It is now read-only.
/ relay Public archive

ABANDONED/TOY PROJECT || An irc micro-framework that smells too much like a web framework.

License

Notifications You must be signed in to change notification settings

ldesgoui/relay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

relay

An irc micro-framework that smells too much like a web framework.

Relay is a toy project, its goals were for me to try out framework design, learn more about the IRC protocol, and to be a replacement for the available irc python libraries: most of them did not please me.

Installation

I suggest you use a virtualenv

$ pip install relay-framework

Example

This is an example of a bot that sends whatever is send after '!echo ' in a PRIVMSG:

from relay import Relay, auto_join, auto_pong
from relay.constants import privmsg

bot = Relay("echobot")

@bot.handler(privmsg)
def echo(target, message, sender, *args, **kwargs):
    if not message.startswith("!echo "):
        return
    sender_nick = sender.split('@')[0].split('!')[0] # We just want the nick
    message = message[6:] # We just want whatever is after '!echo '
    if target == bot.client['nick']:
        result = "PRIVMSG {sender_nick} :{sender_nick}: {message}"
    else:
        result = "PRIVMSG {{target}} :{sender_nick}: {message}"
    yield result.format(sender_nick=sender_nick, message=message)

if __name__ == "__main__":
    bot.register(auto_pong)
    bot.register(auto_join(['#tests']))
    bot.config(from_env=True).run()

And to run it:

$ RELAY_HOST=irc.example.net RELAY_NICK=echobot python echobot.py

Changelog

0.1.0:Initial version, client accepts handlers, connects and matches data with those.

Todo

  • Write a decent IRC client implementation
  • Write tests for the Relay class
  • Write documentation
  • Subclass Relay to allow regexp routes

About

ABANDONED/TOY PROJECT || An irc micro-framework that smells too much like a web framework.

Resources

License

Stars

Watchers

Forks

Packages

No packages published