mirror of
https://github.com/Tha14/toxic.git
synced 2025-06-19 01:26:36 +02:00
Finalized and documented the Python scripting interface.
This commit is contained in:
157
apidoc/python/source/conf.py
Normal file
157
apidoc/python/source/conf.py
Normal file
@ -0,0 +1,157 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# toxic_api documentation build configuration file, created by
|
||||
# sphinx-quickstart on Tue May 16 08:58:24 2017.
|
||||
#
|
||||
# This file is execfile()d with the current directory set to its
|
||||
# containing dir.
|
||||
#
|
||||
# Note that not all possible configuration values are present in this
|
||||
# autogenerated file.
|
||||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
#
|
||||
# import os
|
||||
# import sys
|
||||
# sys.path.insert(0, os.path.abspath('.'))
|
||||
|
||||
|
||||
# -- General configuration ------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
#
|
||||
# needs_sphinx = '1.0'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
extensions = []
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
# The suffix(es) of source filenames.
|
||||
# You can specify multiple suffix as a list of string:
|
||||
#
|
||||
# source_suffix = ['.rst', '.md']
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'index'
|
||||
|
||||
# General information about the project.
|
||||
project = 'toxic_api'
|
||||
copyright = '2017, Jakob Kreuze'
|
||||
author = 'Jakob Kreuze'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '0.7.2'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = '0.7.2'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
#
|
||||
# This is also used if you do content translation via gettext catalogs.
|
||||
# Usually you set "language" from the command line for these cases.
|
||||
language = None
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
# This patterns also effect to html_static_path and html_extra_path
|
||||
exclude_patterns = []
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'sphinx'
|
||||
|
||||
# If true, `todo` and `todoList` produce output, else they produce nothing.
|
||||
todo_include_todos = False
|
||||
|
||||
|
||||
# -- Options for HTML output ----------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
#
|
||||
html_theme = 'alabaster'
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
# documentation.
|
||||
#
|
||||
# html_theme_options = {}
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
html_static_path = ['_static']
|
||||
|
||||
|
||||
# -- Options for HTMLHelp output ------------------------------------------
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = 'toxic_apidoc'
|
||||
|
||||
|
||||
# -- Options for LaTeX output ---------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
#
|
||||
# 'papersize': 'letterpaper',
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
#
|
||||
# 'pointsize': '10pt',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#
|
||||
# 'preamble': '',
|
||||
|
||||
# Latex figure (float) alignment
|
||||
#
|
||||
# 'figure_align': 'htbp',
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title,
|
||||
# author, documentclass [howto, manual, or own class]).
|
||||
latex_documents = [
|
||||
(master_doc, 'toxic_api.tex', 'toxic\\_api Documentation',
|
||||
'Jakob Kreuze', 'manual'),
|
||||
]
|
||||
|
||||
|
||||
# -- Options for manual page output ---------------------------------------
|
||||
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
(master_doc, 'toxic_api', 'toxic_api Documentation',
|
||||
[author], 1)
|
||||
]
|
||||
|
||||
|
||||
# -- Options for Texinfo output -------------------------------------------
|
||||
|
||||
# Grouping the document tree into Texinfo files. List of tuples
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [
|
||||
(master_doc, 'toxic_api', 'toxic_api Documentation',
|
||||
author, 'toxic_api', 'One line description of project.',
|
||||
'Miscellaneous'),
|
||||
]
|
||||
|
||||
|
||||
|
8
apidoc/python/source/examples.rst
Normal file
8
apidoc/python/source/examples.rst
Normal file
@ -0,0 +1,8 @@
|
||||
============
|
||||
API Examples
|
||||
============
|
||||
|
||||
Fortune
|
||||
=======
|
||||
.. literalinclude:: fortune.py
|
||||
:language: python
|
32
apidoc/python/source/fortune.py
Normal file
32
apidoc/python/source/fortune.py
Normal file
@ -0,0 +1,32 @@
|
||||
import toxic_api
|
||||
import random
|
||||
|
||||
FORTUNES = [
|
||||
"A bug in the code is worth two in the documentation.",
|
||||
"A bug in the hand is better than one as yet undetected.",
|
||||
"\"A debugged program is one for which you have not yet found the "
|
||||
"conditions that make it fail.\" -- Jerry Ogdin"
|
||||
]
|
||||
|
||||
def send_fortune(args):
|
||||
"""Callback function that sends the contact of the current window a
|
||||
given number of random fortunes.
|
||||
"""
|
||||
if len(args) != 1:
|
||||
toxic_api.display("Only one argument allowed!")
|
||||
return
|
||||
|
||||
try:
|
||||
count = int(args[0])
|
||||
except ValueError:
|
||||
toxic_api.display("Argument must be a number!")
|
||||
|
||||
name = toxic_api.get_nick()
|
||||
|
||||
toxic_api.send("%s has decided to send you %d fortunes:" % (name, count))
|
||||
for _ in range(count):
|
||||
toxic_api.send(random.choice(FORTUNES))
|
||||
|
||||
|
||||
toxic_api.register("/fortune", "Send a fortune to the contact of the current "
|
||||
"window", send_fortune)
|
9
apidoc/python/source/index.rst
Normal file
9
apidoc/python/source/index.rst
Normal file
@ -0,0 +1,9 @@
|
||||
Toxic Scripting Interface Documentation
|
||||
=======================================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
intro
|
||||
reference
|
||||
examples
|
12
apidoc/python/source/intro.rst
Normal file
12
apidoc/python/source/intro.rst
Normal file
@ -0,0 +1,12 @@
|
||||
=========================
|
||||
Toxic Scripting Interface
|
||||
=========================
|
||||
|
||||
A Python scripting interface to `Toxic <https://github.com/JFreegman/toxic>`_.
|
||||
|
||||
|
||||
Getting Started
|
||||
===============
|
||||
Toxic is compiled with Python support by default. To access the scripting interface, simply import "toxic_api" in your script.
|
||||
|
||||
Scripts can be run by issuing "/run <path>" from toxic, or placing them in the "autorun_path" from your toxic configuration file.
|
73
apidoc/python/source/reference.rst
Normal file
73
apidoc/python/source/reference.rst
Normal file
@ -0,0 +1,73 @@
|
||||
=============
|
||||
API Reference
|
||||
=============
|
||||
|
||||
Messages
|
||||
========
|
||||
.. function:: display(msg)
|
||||
|
||||
Display a message to the user through the current window.
|
||||
|
||||
:param msg: The message to display.
|
||||
:type msg: string
|
||||
:rtype: none
|
||||
|
||||
.. function:: send(msg)
|
||||
|
||||
Send a message to the user specified by the currently open conversation.
|
||||
|
||||
:param msg: The message to display.
|
||||
:type msg: string
|
||||
:rtype: none
|
||||
|
||||
|
||||
State
|
||||
=====
|
||||
.. function:: get_nick()
|
||||
|
||||
Return the user's current nickname.
|
||||
|
||||
:rtype: string
|
||||
|
||||
.. function:: get_status()
|
||||
|
||||
Return the user's current status. 0 indicates online and available, 1 indicates away, and 2 indicates busy.
|
||||
|
||||
:rtype: int
|
||||
|
||||
.. function:: get_status_message()
|
||||
|
||||
Return the user's current status message.
|
||||
|
||||
:rtype: string
|
||||
|
||||
.. function:: get_all_friends()
|
||||
|
||||
Return a list of all the user's friends.
|
||||
|
||||
:rtype: list of (string, string) tuples containing the nickname followed by their public key
|
||||
|
||||
|
||||
Commands
|
||||
========
|
||||
.. function:: execute(command, class)
|
||||
|
||||
Execute the given command, where a class of 0 indicates a global command, 1 indicates a chat command, and 2 indicates a groupchat command.
|
||||
|
||||
:param command: The command to execute.
|
||||
:type command: string
|
||||
:param class: The class of the command.
|
||||
:type class: int
|
||||
:rtype: none
|
||||
|
||||
.. function:: register(command, help, callback)
|
||||
|
||||
Register a callback to be executed whenever command is run. The callback function will be called with one argument, a list of arguments from when the user calls the command.
|
||||
|
||||
:param command: The command to listen for.
|
||||
:type command: string
|
||||
:param help: A description of the command to be shown in the help menu.
|
||||
:type help: string
|
||||
:param callback: The function to be called.
|
||||
:type callback: callable
|
||||
:rtype: none
|
Reference in New Issue
Block a user