forked from kate/uniborg
50 lines
1.5 KiB
Markdown
50 lines
1.5 KiB
Markdown
# uniborg
|
|
|
|
Pluggable [``asyncio``](https://docs.python.org/3/library/asyncio.html)
|
|
[Telegram](https://telegram.org) userbot based on
|
|
[Telethon](https://github.com/LonamiWebs/Telethon).
|
|
|
|
## installing
|
|
|
|
Simply clone the repository and run the main file:
|
|
```sh
|
|
git clone https://github.com/uniborg/uniborg.git
|
|
cd uniborg
|
|
python stdborg.py
|
|
```
|
|
|
|
## design
|
|
|
|
The modular design of the project enhances your Telegram experience
|
|
through [plugins](https://github.com/uniborg/uniborg/tree/master/stdplugins)
|
|
which you can enable or disable on demand.
|
|
|
|
Each plugin gets the `borg`, `logger` and `storage` magical
|
|
[variables](https://github.com/uniborg/uniborg/blob/4805f2f6de7d734c341bb978318f44323ad525f1/uniborg/uniborg.py#L66-L68)
|
|
to ease their use. Thus creating a plugin as easy as adding
|
|
a new file under the plugin directory to do the job:
|
|
|
|
```python
|
|
# stdplugins/myplugin.py
|
|
from telethon import events
|
|
|
|
@borg.on(events.NewMessage(pattern='hi'))
|
|
async def handler(event):
|
|
await event.reply('hey')
|
|
```
|
|
|
|
## internals
|
|
|
|
The core features offered by the custom `TelegramClient` live under the
|
|
[`uniborg/`](https://github.com/uniborg/uniborg/tree/master/uniborg)
|
|
directory, with some utilities, enhancements and the core plugin, which
|
|
can be unloaded in itself (something fun to do, but you will probably
|
|
want to restart your borg after).
|
|
|
|
## learning
|
|
|
|
Check out the already-mentioned
|
|
[plugins](https://github.com/uniborg/uniborg/tree/master/stdplugins)
|
|
directory to learn how to write your own, and consider reading
|
|
[Telethon's documentation](http://telethon.readthedocs.io/).
|