Skip to main content

Interface server connecting Django's channels and IRC

Project description

============
Channels-IRC
============

A bridge between IRC and Django's ``channels``.

Installation
============

run ``python setup.py install`` to install the library and set up the command line interface

Usage
====

Follow these steps to set up **Django Channels IRC** in your project

Load the Library
================

Add the library to ``INSTALLED_APPS``::

INSTALLED_APPS = (
...
'channels_irc',
)

Create a Consumer
=================

**Django Channels IRC** contains two consumers for interacting with the
IRC interface server: ``IrcConsumer`` and ``AsyncIrcConsumer``::

from channels_irc import IrcConsumer

class MyIrcConsumer(IrcConsumer):
def connect(self, server, port, nickname):
"""
Optional hook for actions on connection to IRC Server
"""
print('Connected to server {}:{} with nickname'.format(server, port, nickname)

def disconnect(self, server, port):
"""
Optionl hook fr actions on disconnect from IRC Server
"""
print('Disconnect from server {}:{}'.format(server, port)

def my_custom_message(self):
"""
Use built-in functions to send basic IRC messages
"""
self.send_message('my-channel', 'here is what I wanted to say')

def my_custom_command(self):
"""
You can also use built-in functions to send basic IRC commands
"""
self.send_command('join', channel='some-other-channel')

Add your consumer(s) to your router
===================================

You can use the ``irc`` type in channels ``ProtocolTypeRouter`` to connect
your new consumer to the interface server, and ensure
your ``irc`` messages are delivered to the right place::

from channels.routing import ProtocolTypeRouter
from myapp.consumers import MyIrcConsumer

application = ProtocolTypeRouter({
'irc': MyIrcConsumer,
})

Start the interface server
==========================

The interface server can be started by simply running this in the command line::

channels-irc

The server requires that the ``server``, ``nickname``, and ``application`` properties be
set. The ``application`` should be an import string pointing to the location of
your app's ASGI application. Hence, if your app was named ``myapp``, contained an
ASGI file called ``asgi.py``, and your ASGI application is named ``my_application``,
you could start the server by running::

channels-irc -s 'irc.freenode.net' -n 'my_irc_nickname' -a 'myapp.asgi:my_application'

You can also set these values using the env variables
``CHANNELS_IRC_SERVER``, ``CHANNELS_IRC_NICKNAME``, and ``CHANNELS_IRC_LAYER``.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

channels_irc-0.4.0-py3.6.egg (27.3 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page