Interface server connecting Django's channels and IRC
Project description
# Channels-IRC
A bridge between IRC and Django's `channels`. Built according to the [ASGI IRC spec](https://github.com/django/channels/blob/master/docs/asgi/irc-client.rst)
## Installation
run `python setup.py install` to install the library and set up the command line interface
## Usage
The interface server can be started by simply running the command,
```
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 filed 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`.
## IRC Consumers
`channels_irc` is comes with the `IrcConsumer` and the `AsyncIrcConsumer` for bootstrapping IRC connection handling.
```
from channels_irc import IrcConsumer
class MyConsumer(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_action(self):
"""
Use built-in functions to send basic IRC commands
"""
self.message('my-channel', 'here is what I wanted to say')
```
Make sure to use `irc` as the protocol in the `ProtocolTypeRouter`
```
from channels.routing import ProtocolTypeRouter
from my_irc_app.consumers import MyConsumer
application = ProtocolTypeRouter({
'irc': MyConsumer,
})
```
A bridge between IRC and Django's `channels`. Built according to the [ASGI IRC spec](https://github.com/django/channels/blob/master/docs/asgi/irc-client.rst)
## Installation
run `python setup.py install` to install the library and set up the command line interface
## Usage
The interface server can be started by simply running the command,
```
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 filed 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`.
## IRC Consumers
`channels_irc` is comes with the `IrcConsumer` and the `AsyncIrcConsumer` for bootstrapping IRC connection handling.
```
from channels_irc import IrcConsumer
class MyConsumer(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_action(self):
"""
Use built-in functions to send basic IRC commands
"""
self.message('my-channel', 'here is what I wanted to say')
```
Make sure to use `irc` as the protocol in the `ProtocolTypeRouter`
```
from channels.routing import ProtocolTypeRouter
from my_irc_app.consumers import MyConsumer
application = ProtocolTypeRouter({
'irc': MyConsumer,
})
```
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 Distribution
channels_irc-0.2.tar.gz
(7.9 kB
view hashes)
Built Distributions
channels_irc-0.2-py3.5.egg
(32.1 kB
view hashes)
Close
Hashes for channels_irc-0.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4660bfc12c70e5d7a3b0384e4589d39380029e2e8453efbeb84fb49ed945c99f |
|
MD5 | e8955fbe5b764a95840da1abcb43ef2c |
|
BLAKE2b-256 | 89dd66eb09afdd3ac4e148a2f391c8cc75c94d99ba6a8095394fc1811c62610d |