An open API service indexing awesome lists of open source software.

https://github.com/openttd/dorpsgek

DorpsGek is an IRC bot, that for example bridges GitHub events to IRC.
https://github.com/openttd/dorpsgek

Last synced: 12 days ago
JSON representation

DorpsGek is an IRC bot, that for example bridges GitHub events to IRC.

Awesome Lists containing this project

README

        

# DorpsGek

[![GitHub License](https://img.shields.io/github/license/OpenTTD/dorpsgek)](https://github.com/OpenTTD/dorpsgek/blob/main/LICENSE)

DorpsGek is an IRC bot with several tasks:
- It bridges GitHub Events to IRC
- It handles channel moderation (`@op`, `@kick`, ..)
- It shows when someone was last seen (`@seen`)
- It logs channels for backlog reading

## Development

This server is based on [Limnoria](https://github.com/ProgVal/Limnoria).
Because of many issues and shortcomings in Limnoria, there are some quirks in this codebase.
For example, configuration is generated by the `dorpsgek` module, as otherwise it is nearly impossible to bring secrets inside the bot without storing them inside the git repository.

It is build and tested with Python 3.11.

### Running a local server

#### Dependencies

- Python3.11 or higher.

#### Preparing your venv

To start it, you are advised to first create a virtualenv:

```bash
python3 -m venv .env
.env/bin/pip install -r requirements.txt
```

#### Starting a local server

You can start the HTTP server by running:

```bash
.env/bin/python -m dorpsgek --port 8000 --channel dorpsgek-test
```

This will start the IRC bot and it will join `#dorpsgek-test` on OFTC.
See `--help` for further configuration.
Although you can start `supybot DorpsGek-generated.conf`, we strongly suggest to always use the `dorpsgek` module as bootstrap for starting the bot.

### Running via docker

```bash
docker build -t openttd/dorpsgek:local .
docker run --rm -p 127.0.0.1:8000:80 openttd/dorpsgek:local
```