40919a994f
* added get events stub * added event parsing * removed datetime * added config and tests * fixed response format in test * more tests * added error handling for request * improved dummy data * added get_unpublished_events * added test * removed last_accessed * mobilizon_url moved to fixture * added config comments * moved mobilizon group to config * added method * removed non-working test settings * added publishing window logic and tests * added inner/outer window check and mocking * improved fixture * fixed outer window * fixed tests |
||
---|---|---|
mobilizon_bots | ||
tests | ||
.gitignore | ||
.pre-commit-config.yaml | ||
.pre-commit-hooks.yaml | ||
LICENSE | ||
README.md | ||
README.rst | ||
poetry.lock | ||
pyproject.toml | ||
setup.cfg |
README.md
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 to discover how configuration files and environment variables can be specified.
We provide a sample configuration in the 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.
Make sure to have pre-commit
installed in your active python environment. To install: pip install pre-commit
. For more info: https://pre-commit.com/