From 7a28374d7af5f15639840487138df3fa40b7a6c4 Mon Sep 17 00:00:00 2001 From: Mallory Hancock Date: Thu, 24 Jan 2019 09:36:21 -0800 Subject: [PATCH] update README and set up to use markdown for PyPI --- MANIFEST.in | 2 +- README.md | 9 +++- README.rst | 137 ---------------------------------------------------- setup.py | 3 +- 4 files changed, 11 insertions(+), 140 deletions(-) delete mode 100644 README.rst diff --git a/MANIFEST.in b/MANIFEST.in index 9561fb1..bb3ec5f 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1 +1 @@ -include README.rst +include README.md diff --git a/README.md b/README.md index 3d27de2..a8888e5 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,14 @@ The `Message` object has the following attributes: * `botnick`: the nickname of the bot * `logger`: instance of `Bot`'s logger -The plugin function **must** return one of the following in order to give a response to the command: +It also contains the following IRC functions: +* `privmsg`: send a message to an arbitrary channel or user +* `action`: same as privmsg, but does a CTCP action. (i.e., `/me does a thing`) +* `notice`: send a notice + +**OR** + +The plugin function can return one of the following in order to give a response to the command: * `pinhook.plugin.message`: basic message in channel where command was triggered * `pinhook.plugin.action`: CTCP action in the channel where command was triggered (basically like using `/me does a thing`) diff --git a/README.rst b/README.rst deleted file mode 100644 index 70a1cc4..0000000 --- a/README.rst +++ /dev/null @@ -1,137 +0,0 @@ -pinhook -======= - -|Supported Python versions| |Package License| |PyPI package format| -|Package development status| |With love from tilde.town| - -the pluggable python framework for IRC bots and Twitch bots - -Tutorial --------- - -Installation -~~~~~~~~~~~~ - -:: - - $ pip install pinhook - -Creating an IRC Bot -~~~~~~~~~~~~~~~~~~~ - -To create the bot, just create a python file with the following: - -.. code:: python - - from pinhook.bot import Bot - - bot = Bot( - channels=['#foo', '#bar'], - nickname='ph-bot', - server='irc.freenode.net' - ) - bot.start() - -This will start a basic bot and look for plugins in the 'plugins' -directory to add functionality. - -Optional arguments are: - -- ``port``: choose a custom port to connect to the server (default: - 6667) -- ``ops``: list of operators who can do things like make the bot join - other channels or quit (default: empty list) -- ``plugin_dir``: directory where the bot should look for plugins - (default: "plugins") -- ``log_level``: string indicating logging level. Logging can be - disabled by setting this to "off". (default: "info") -- ``ns_pass``: this is the password to identify with nickserv -- ``server_pass``: password for the server -- ``ssl_required``: boolean to turn ssl on or off - -Creating a Twitch Bot -~~~~~~~~~~~~~~~~~~~~~ - -Pinhook has a baked in way to connect directly to a twitch channel - -.. code:: python - - from pinhook.bot import TwitchBot - - bot = TwitchBot( - nickname='ph-bot', - channel='#channel', - token='super-secret-oauth-token' - ) - bot.start() - -This function has far less options, as the server, port, and ssl are -already handled by twitch. - -Optional aguments are: - -- ``ops`` -- ``plugin_dir`` -- ``log_level`` - -These options are the same for both IRC and Twitch - -Creating plugins -~~~~~~~~~~~~~~~~ - -In your chosen plugins directory ("plugins" by default) make a python -file with a function. You can use the ``@pinhook.plugin.register`` -decorator to tell the bot the command to activate the function. - -The function will need to be structured as such: - -.. code:: python - - import pinhook.plugin - - @pinhook.plugin.register('!test') - def test_plugin(msg): - message = '{}: this is a test!'.format(msg.nick) - return pinhook.plugin.message(message) - -The function will need to accept a single argument in order to accept a -``Message`` object from the bot. - -The ``Message`` object has the following attributes: - -- ``cmd``: the command that triggered the function -- ``nick``: the user who triggered the command -- ``arg``: all the trailing text after the command. This is what you - will use to get optional information for the command -- ``channel``: the channel where the command was initiated -- ``ops``: the list of bot operators -- ``botnick``: the nickname of the bot -- ``logger``: instance of ``Bot``'s logger - -The plugin function **must** return one of the following in order to -give a response to the command: - -- ``pinhook.plugin.message``: basic message in channel where command - was triggered -- ``pinhook.plugin.action``: CTCP action in the channel where command - was triggered (basically like using ``/me does a thing``) - -Examples --------- - -There are some basic examples in the ``examples`` directory in this -repository. - -For a live and maintained bot running the current version of pinhook see -`pinhook-tilde `__. - -.. |Supported Python versions| image:: https://img.shields.io/pypi/pyversions/pinhook.svg - :target: https://pypi.org/project/pinhook -.. |Package License| image:: https://img.shields.io/pypi/l/pinhook.svg - :target: https://github.com/archangelic/pinhook/blob/master/LICENSE -.. |PyPI package format| image:: https://img.shields.io/pypi/format/pinhook.svg - :target: https://pypi.org/project/pinhook -.. |Package development status| image:: https://img.shields.io/pypi/status/pinhook.svg - :target: https://pypi.org/project/pinhook -.. |With love from tilde.town| image:: https://img.shields.io/badge/with%20love%20from-tilde%20town-e0b0ff.svg - :target: https://tilde.town diff --git a/setup.py b/setup.py index ebdb91b..0b480dd 100755 --- a/setup.py +++ b/setup.py @@ -33,7 +33,7 @@ here = os.path.abspath(os.path.dirname(__file__)) # Import the README and use it as the long-description. # Note: this will only work if 'README.rst' is present in your MANIFEST.in file! -with io.open(os.path.join(here, 'README.rst'), encoding='utf-8') as f: +with io.open(os.path.join(here, 'README.md'), encoding='utf-8') as f: long_description = '\n' + f.read() @@ -76,6 +76,7 @@ setup( version='1.5.2', description=DESCRIPTION, long_description=long_description, + long_description_content_type='text/markdown' author=AUTHOR, author_email=EMAIL, url=URL,