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``.
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
Release history Release notifications | RSS feed
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)