All checks were successful
Build documentation / build (push) Successful in 6m34s
Install and run tests / test (3.10) (push) Successful in 2m53s
Install and run tests / test (3.11) (push) Successful in 2m47s
Install and run tests / test (3.12) (push) Successful in 3m20s
Install and run tests / test (3.13) (push) Successful in 3m22s
Install and run tests / test (3.8) (push) Successful in 2m58s
Install and run tests / test (3.9) (push) Successful in 2m59s
Build documentation / deploy (push) Successful in 2m49s
|
||
---|---|---|
.forgejo/workflows | ||
doc/source | ||
larigira | ||
.drone.yml | ||
.flake8 | ||
.gitignore | ||
.pylintrc | ||
.readthedocs.yaml | ||
.travis.yml | ||
conftest.py | ||
ISSUE_TEMPLATE.md | ||
MANIFEST.in | ||
oldsetup.py | ||
pyproject.toml | ||
README.md | ||
RELEASE.md |
larigira
About
A radio automation based on MPD. Larigira will sit right to your mpd player and will keep your playlist never empty. It will also manage a db of "events", so that you can schedule shows, play jingles every X minutes, etc.
Software stack
- MPD, of course
- python3.8 or greater
- gevent as an async framework
- flask to provide web interface and rpc
- tinydb as an embedded database
Why? (aka design features)
Reinventing a player is a bad idea. MPD provides an eccellent base.
Separating the player from "action loops" makes it easy to work on this. For example, you can stop larigira for some minutes, and the audio will keep playing. It also means that you can easily replace specific parts of your radio automation.
The "continous playing" part is separated from the "events" part.
larigira
can be run to perform one, the other, or both.
The "audio generation" part can be used separately by any script that you like.
Installation
Just run python setup.py install
. It will, of course, also work in a
virtualenv. Apart from running an MPD server, there is no additional
setup.
You will find some command in your PATH now; they all begin with
larigira
, so the usual <TAB><TAB>
is a good way to explore them ;)
The name
larigira mai la sbaglia...