Metadata-Version: 1.1
Name: channels-irc
Version: 0.6.1
Summary: Interface server connecting Django's channels and IRC
Home-page: https://github.com/AdvocatesInc/django-channels-irc
Author: Advocates, Inc
Author-email: admin@adv.gg
License: Proprietary and confidential
Description: ============
        Channels-IRC
        ============
        
        A bridge between IRC and Django's ``channels``. 
        
        Installation
        ============
        
        run ``pip install channels_irc`` to install the library and set up the command line interface
        
        Documentation
        =============
        
        Full docs available at `django-channels-irc.readthedocs.io
        <https://django-channels-irc.readthedocs.io/en/latest/>`_.
        
        Requirements
        ============
        
        - `Django Channels 2+
          <https://channels.readthedocs.io/en/latest/>`_
        
        Usage
        =====
        
        Follow these steps to set up **Django Channels IRC** in your project
        
        Add to INSTALLED_APPS
        =====================
        
        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 welcome(self, channel):
                    """
                    Optional hook for actions on connection to IRC Server
                    """
                    print('Connected to IRC with nickname'.format(nickname)
        
                def disconnect(self, server, port):
                    """
                    Optionl hook for 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``.
        
Platform: UNKNOWN
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Internet :: WWW/HTTP
