To repozytorium nie jest już utrzymywane. Aktualny kod przeniesiono do https://github.com/RadioAktywne/docker-emisja.
Nowy system emisyjny RA działa aktualnie w systemie tygodniowym. Ramówka znajduje się w odpowiednim spreadsheecie. Dane z tego spreadsheetu są użyte do odpiewdniej konfiguracji Liquidsoapa i Crona. Głównym elementem jest skrypt synchronizujący rals.py, reszta skryptów to skrypty wykonywane przez Crona
- Pobiera tabele ze spreadsheetu
- Tworzy słowniki dla każdego dnia (slownik[audycja]="HHhMMm - HHhMMm") tygodnia
- zapisuje napotkane nazwy uproszczone do pliku
- znajduje "tagi" "#--AUDYCJE" w konfiguracji Liquidsoapa, usuwa wszystko między nimi i tworzy tam odpowiednie wpisy inputów
- analogicznie dla tagu "#--SWITCH"
- zapisuje plik konfiguracyjny
- Na podstawie nazw uproszczonych tworzy pliki dla dodatkowych instancji Liquidsoapa --To jest relikt przeszłości, już nie używany
- Otwiera tabele Crona użytkownika, czyści ją i tworzy odpowiednie wpisy
Przyjmuje ścieżkę do folderu "powtorka" danej audycji, nazwę pliku i nazwę uproszczoną audycji.
- Tworzy timestamp i umieszcza go w pliku "stamp" + nazwa uproszczona
- Łączy się przez socat do Liquidsoapa i wywołuje polecenie: dynamic_file.start '/ścieżka do powtórki/wygenerowany timestamp_nazwapliku'
Przyjmowane argumenty są trochę chaotyczne i nie potrzebnie powtarzane ale ostatecznie skrypt służy raczej tylko do automatycznej obsługi
Przyjmuje te same argumenty co startrec.sh
- Zbiera timestamp z pliku "stamp" + nazwa uproszczona
- Łączy się przez socat do Liqudisoapa i wywołuje polecenie: dynamic_file.stop 'ścieżka do powtórki/pobrany timestamp_nazwapliku'
Przyjmuje uproszczoną nazwę audycji i nazwę pliku
- Łączy się przez socat do Liquidsoapa i wykonuje polecenie: request_nazwaaudycji.push nazwapliku
- Zapisuje odpowiedź socata do pliku "request_nazwauproszczona.log"
Przujmuje uproszczoną nazwę audcyji i utwór do usunięcia z kolejki Łaczy się przez socat do Liquidsoapa i wykonuje polecenie: request_nazwaaucyji.remove numerutworu
- Czyta nazwy uproszczone audycji z pliku generowanego przez rals.py
- Próbuje tworzyć foldery każdej z audycji - istniejące pomija
Przyjmuje nazwę uproszczoną audycji
- Tworzy liste elementów w folderze "powtorka" danej audycji
- Jeśli element nie jest folderem to przenosi go do folderu "archiwum" danej audycji
- Tworzy liste elementów w fodlerze "powtorka/powtorka_puszki" danej audycji
- Usuwa te elementy
Przyjmuje uproszczoną nazwę audycji
- Tworzy listę elementów w folderze "puszka" danej audycji
- Przemieszcza wszystkie elementy do folderu "powtorka_puszki" danej audycji
Przyjmuje uproszczoną nazwę audycji
- Tworzy listę elementów w folderze "powtorka_puszki" danej audycji
- Sortuje liste
- Wykonuje "requestpuszki.sh nazwauproszczona ścieżkadopliku" dla każdego pliku na liście
- Czyta numer utworu z pliku "request_nazwauproszczona.log"
- Jeżeli lista elementów była pusta to tworzy listę elementów z folderu "powtorka" danej audycji
- Działa analogicznie jak w przypadku pierwszej listy.
- Zapisuje zebrane numery utworów do pliku "queue_nazwauproszczona.log"
Działa analogicznie do requestpowtorki.py ale zbiera pliki z folderu "puszka"
Przyjmuje nazwę uproszczoną audycji
- Czyta kolejkę utworów z pliku "queue_nazwa uproszczona"
- Wykonuje "requestremove.sh nazwa_uproszczona numer_utworu" dla każdego utworu
- Tworzy liste elementów z folderu "audycje"
- Dla każdego z folderów próbuje zrobić listę elementów w podfolderze "powtorka"
- Sprawdza rozmiar każdego z elementów z listy
- Jeżeli element ma poniżej 30mb zostaje usunięty
- Nazwy usuniętych plików są zapisywane do pliku "czyszczenie.log"
Przyjmuje string z godziną w formacie "HH:MM" i zwraca godzine 30 minut później
Przyjmuje string z godziną w formacie "HH:MM" i zwraca string w formacie "HHhMMm"
Przyjmuje dwuwymiarową listę z danymi ze spreadsheetu ramówki, słownik do zapełnienia i kolumne z której będą zbierane wartości. W słowniku tworzy klucze z nazw audycji i nadaje im wartości w formacie "HHhMMm - HHhMMm" odpowiadające początkowi i końcu audycji
Przyjmuje string z uproszczoną nazwą audycji Zwraca string z treścią wpisu tworzącego input do konfiguracji Liquidsoapa
Przyjmuje string z uproszczoną nazwą audycji Zwraca string z treścią wpisu tworzącego output do konfiguracji Liquidsoapa
Przyjmuje slownik (slownik[audycja]="HHhMMm - HHhMMm") Zwraca string z treścią wpisu dla Switcha do konfiguracji Liquidsoapa
Przyjmuje string z czasem w formacie "HHh:MMm - HHh:MMm" i numery dwóch znaków ( p i d) Dwa wskazane znaki są zwracane jako int gdzie "p" to rząd dziesiątek a "d" to rząd jedności
Przyjmuje otwartego Crona, slownik (slownik[audycja]="HHhMMm - HHhMMm") i numer dnia (w systemie Cronowym) Na podstawie slownika tworzone sa wpisy uruchamiające skrypty:
- archiwizacja.py - 5 minut po końcu powtórki
- requestpowtorki.py - w momencie startu powtórki
- clean.py - 5 minut po końcu powtórki
- requestpuszki.py - w momencie startu audycji
- clean.py - 5 minut po końcu audcyji
- startrec.sh - w momencie startu audycji
- stoprec.sh - w momencie końca audycji
- czyszczenie.py - 3 minuty po końcu audycji
- puszka_przerzut.py - 5 minut po końcu audcyji