mirror of
https://github.com/jlu5/PyLink.git
synced 2025-10-14 07:27:25 +02:00
docs: relayout table of contents & links between pages
This commit is contained in:
parent
f2f945e4bb
commit
ad428b55bc
8
docs/README.md
Normal file
8
docs/README.md
Normal file
@ -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/)
|
@ -1,13 +1,13 @@
|
|||||||
# PyLink Developer Documentation
|
# 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.
|
Any documentation here is provided for reference only.
|
||||||
|
|
||||||
It is also really incomplete (contributors welcome!)
|
The docs are also really incomplete (contributors welcome!)
|
||||||
|
|
||||||
## Introduction
|
## 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.
|
||||||
|
|
||||||
<img src="core-structure.png" width="50%" height="50%">
|
<img src="core-structure.png" width="50%" height="50%">
|
||||||
|
|
||||||
@ -15,8 +15,11 @@ PyLink is an a modular, plugin-based IRC PseudoService framework. It uses swappa
|
|||||||
|
|
||||||
- [Writing plugins for PyLink](writing-plugins.md)
|
- [Writing plugins for PyLink](writing-plugins.md)
|
||||||
- [PyLink protocol module specification](pmodule-spec.md)
|
- [PyLink protocol module specification](pmodule-spec.md)
|
||||||
- [Using PyLink's utils module](using-utils.md)
|
|
||||||
- [PyLink hooks reference](hooks-reference.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)
|
### Future topics (not yet available)
|
||||||
- [Writing tests for PyLink modules](writing-tests.md)
|
- [Writing tests for PyLink modules](writing-tests.md)
|
||||||
|
- [Supported named user modes](user-modes.csv)
|
||||||
|
@ -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.
|
- 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.
|
- `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):
|
- 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.
|
- 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.
|
- B = Mode that changes a setting and always has a parameter.
|
||||||
- C = Mode that changes a setting and only has a parameter when set.
|
- C = Mode that changes a setting and only has a parameter when set.
|
||||||
- D = Mode that changes a setting and never has a parameter.
|
- 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
|
- 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
|
- 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.
|
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).
|
Loading…
x
Reference in New Issue
Block a user