diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..9ffb0e9 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,8 @@ +# PyLink Documentation + +This folder contains general documentation for PyLink IRC services. + +## Contents + +- [Opering with PyLink Relay](pylink-opers.md) +- [Developer documentation](technical/) \ No newline at end of file diff --git a/docs/technical/README.md b/docs/technical/README.md index e2a92ee..dfc088e 100644 --- a/docs/technical/README.md +++ b/docs/technical/README.md @@ -1,13 +1,13 @@ # PyLink Developer Documentation -Please note that as PyLink is still in its development phase, the API is subject to change. +Please note that as PyLink is still in its development phase, its APIs are subject to change. Any documentation here is provided for reference only. -It is also really incomplete (contributors welcome!) +The docs are also really incomplete (contributors welcome!) ## Introduction -PyLink is an a modular, plugin-based IRC PseudoService framework. It uses swappable protocol modules and a hook-based system for calling plugins, allowing them to function regardless of the IRCd used. +PyLink is an a modular, plugin-based IRC services framework. It uses swappable protocol modules and a hooks system for calling plugins, allowing them to function regardless of the IRCd used. @@ -15,8 +15,11 @@ PyLink is an a modular, plugin-based IRC PseudoService framework. It uses swappa - [Writing plugins for PyLink](writing-plugins.md) - [PyLink protocol module specification](pmodule-spec.md) -- [Using PyLink's utils module](using-utils.md) - [PyLink hooks reference](hooks-reference.md) +- [Supported named channel modes](channel-modes.csv) +- [API reference: utils.py](autogen/utils.html) +- [API reference: classes.py](autogen/classes.html) ### Future topics (not yet available) - [Writing tests for PyLink modules](writing-tests.md) +- [Supported named user modes](user-modes.csv) diff --git a/docs/technical/pmodule-spec.md b/docs/technical/pmodule-spec.md index 4699ee5..a99c917 100644 --- a/docs/technical/pmodule-spec.md +++ b/docs/technical/pmodule-spec.md @@ -97,9 +97,9 @@ A protocol module should also set the following variables in their protocol clas - Examples exist in the [UnrealIRCd](https://github.com/GLolol/PyLink/blob/0.5-dev/protocols/unreal.py#L22) and [InspIRCd](https://github.com/GLolol/PyLink/blob/0.5-dev/protocols/inspircd.py#L24) modules. - `self.cmodes` / `self.umodes`: These are mappings of named IRC modes to mode letters, that should be either negotiated during link or preset in the `connect()` function of the protocol module. There are also special keys: `*A`, `*B`, `*C`, and `*D`, which should each be filled with a list of mode characters for that type of modes. - Types of modes are defined as follows (from http://www.irc.org/tech_docs/005.html): - - A = Mode that adds or removes a nick or address to a list. Always has a parameter. - - B = Mode that changes a setting and always has a parameter. - - C = Mode that changes a setting and only has a parameter when set. + - A = Mode that adds or removes a nick or address to a list. Always has a parameter. + - B = Mode that changes a setting and always has a parameter. + - C = Mode that changes a setting and only has a parameter when set. - D = Mode that changes a setting and never has a parameter. - Examples in the TS6 protocol module: https://github.com/GLolol/PyLink/blob/cb3187c/protocols/ts6.py#L259-L300 - If not defined, these will default to modes defined by RFC 1459: https://github.com/GLolol/PyLink/blob/cb3187c/classes.py#L118-L152 @@ -147,3 +147,5 @@ Internally, modes are stored in channel and user objects as sets: `(userobj or c ``` When a certain mode (e.g. owner) isn't supported on a network, the key still exists in `prefixmodes` but is simply unused. + +You can see a list of supported (named) channel modes [here](channel-modes.csv). \ No newline at end of file