Skip to main content

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

relay-framework-0.2.0.tar.gz (5.3 kB view details)

Uploaded Source

File details

Details for the file relay-framework-0.2.0.tar.gz.

File metadata

File hashes

Hashes for relay-framework-0.2.0.tar.gz
Algorithm Hash digest
SHA256 9e6a9ce04c6f210134530793a89055716a905f8a4fd17794457edeab172f9a83
MD5 c608e0f8ec32edeffd62e8e6995f011e
BLAKE2b-256 ed92868a960594aca70ae2a3ddfc4c68bae21b5cc784969d1e8a4e29c231942e

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.0 This release

1 file

0.1.1

1 file

0.1.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page