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

Release files for relay-framework 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for relay-framework 0.2.0
File Size Uploaded
relay-framework-0.2.0.tar.gz 5.3 kB Details

Release files / relay-framework-0.2.0.tar.gz

Download URL relay-framework-0.2.0.tar.gz
Size 5.3 kB
Tags Source
SHA-256 checksum
How to use checksums
9e6a9ce04c6f210134530793a89055716a905f8a4fd17794457edeab172f9a83
BLAKE2b-256 checksum
How to use checksums
ed92868a960594aca70ae2a3ddfc4c68bae21b5cc784969d1e8a4e29c231942e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.2.0 This release

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page