documentation (#26)

* documentation skeleton

* more documentation
This commit is contained in:
Simone Robutti 2021-07-05 22:49:57 +02:00 committed by GitHub
parent 891d523751
commit c8dc529682
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 58 additions and 0 deletions

View File

@ -1,3 +1,61 @@
The goal of mobilizon_bots is to provide a suite to reshare Mobilizon events on a broad selection of platforms. This
tool enables an organization to automate their social media strategy in regards
to events and their promotion.
# Usage
## Scheduling and temporal logic
The tool is designed to work in combination with a scheduler that executes it at
regular intervals. Mobilizon_bots allows fine-grained control over the logic to decide when
to publish an event, with the minimization of human effort as its first priority.
## Configuration
The configuration is implemented through Dynaconf. It allows a variety of ways to specify configuration keys.
Refer to their [documentation](https://www.dynaconf.com/) to discover how configuration files and environment variables can be specified.
We provide a sample configuration in the [settings.toml](https://github.com/Tech-Workers-Coalition-Italia/mobilizon-bots/blob/master/mobilizon_bots/settings.toml) file.
### Event selection
### Publishers
### Notifiers
# Contributing
We welcome contributions from anybody. Currently our process is not structured yet but feel free to open or take issues through Github in case you want to help us.
## Core Concepts
### Publisher
A Publisher is responsible for formatting and publishing an event on a given platform.
Currently the following publishers are supported:
* Telegram
### Notifier
Notifiers are similar to Publishers and share most of the implementation. Their purpose is to
notify the maintainers when something unexpected happens.
### Publication Strategy
A Publication Strategy is responsible for selecting the event to publish. Currently it's possible to publish only one
event per run, under the assumption that the user will implement a social media strategy that doesn't require
concurrent publishing of multiple events on the same platform. Through proper scheduling and configuration is still
possible to achieve such behavior if required.
## Develop
To run pre-commit hooks run `pre-commit install` after cloning the repository.