A radio automation based on MPD.
Find a file
2021-03-03 01:10:48 +01:00
doc/source REMOVE_UNUSED_FILES option 2021-03-03 01:10:32 +01:00
larigira fix logging msg 2021-03-03 01:10:48 +01:00
.drone.yml drone matrix 2018-08-21 01:12:41 +02:00
.flake8 formattazione con black 2019-06-25 13:49:54 +02:00
.gitignore ignore py3 cache files 2016-09-15 10:39:40 +02:00
.pylintrc pylintrc added 2017-01-19 11:57:44 +01:00
.readthedocs.yml support .readthedocs.yml configuration 2019-11-08 16:15:49 +01:00
.travis.yml drone CI badge in readme 2018-08-23 01:46:42 +02:00
conftest.py http testing 2014-10-27 00:44:55 +01:00
HISTORY.txt version bump to 1.3.0 2019-11-08 15:18:13 +01:00
MANIFEST.in serve jqueryui static files 2016-09-15 10:34:03 +02:00
publish-release info on how to release 2019-11-08 15:14:24 +01:00
README.rst drone CI badge in readme 2018-08-23 01:46:42 +02:00
RELEASE.rst info on how to release 2019-11-08 15:14:24 +01:00
setup.py move things around 2021-03-02 23:45:34 +01:00

=========
larigira
=========

.. image:: https://travis-ci.org/boyska/larigira.svg?branch=master
    :target: https://travis-ci.org/boyska/larigira
    :alt: Build status

.. image:: https://drone.degenerazione.xyz/api/badges/boyska/larigira/status.svg?branch=master
    :alt: Build status on self-managed CI server

.. image:: https://img.shields.io/pypi/v/larigira.svg
    :target: https://pypi.python.org/pypi/larigira
    :alt: Latest Version


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.5 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...
    
    -- https://www.youtube.com/watch?v=K9XJkOSSdEA