====== WEB ====== A //Web// modul célja a rádió digitális jelenlétének automatizálása egy átfogó adatbázis kezelésével, amely magában foglalja a műsorkészítők, a műsorok, az adástükör és az adáslista részletes adatait, szövegekkel, képekkel és hanganyagokkal. Ez szolgál alapul az automatizált archiválási és közzétételi folyamatokhoz, amelyek során a kívánt műsorok hanganyagait rendszerezetten tárolja a belső hálózaton, és hozzáférhetővé teszi azokat a nyilvánosság számára FTP szerveren keresztül. Az adatok elérése a [[web:web#broadminapi|BroAdminAPI]] //REST API// interfészen keresztül történik, amelyet a rádió weboldala könnyedén használhat. Ez lehetővé teszi a hallgatók számára az információk és tartalmak könnyű és gyors elérését. A //Web// modul csak az adatok hozzáférését biztosítja a rádió nyilvános weboldal számára, magát a weboldalt nem tartalmazza. ---- ===== Adáslista ===== == web-broadcast == Ez a lista a műsorkészítők, a műsorok és az adástükör beállításai alapján automatikusan generálódik. Itt nyílik lehetőség egyedi képet, címet és leírást (ajánlót) adni egy-egy adáslista elemhez, illetve nyomon lehet követni az automatikus export állapotait a státusz oszlopban. Sikertelen export (vagy esetleges manuális változások megtörténte) esetén itt nyílik lehetőség a hangfájlok lecserélésére is. * **Műsor**: műsor címe * **Slug**: automatikus, csak olvasható mező, a dátumból, az állomás kódjából és a műsor címéből generálódik * **Kezdés**: a műsor kezdésének időpontja * **Befejezés**: a műsor befejezésének időpontja * **Cím**: a műsor egyedi címe (nem kötelező, csak akkor kell kitölteni, ha más néven szeretnénk a műsort megjeleníteni ennél az egy adáslista elemnél, pl: a ''Portré'' műsornál ''Portré - vendég: Gipsz Jakab'') * **Leírás**: a műsor egyedi leírása (nem kötelező, csak akkor kell kitölteni, ha nem az alapbeállításként, a műsoroknál megadott szöveget szeretnénk megjeleníteni, például műsorajánló jelleggel) * **Kihagyás**: ha be van pipálva, ezt a műsort nem exportálja a rendszer, nem készül hozzá automatikusan hanganyag * **Ismétlés**: ha a műsor egy korábban elhangzott műsor ismétlése, ezt be kell pipálni (ugyanúgy kihagyja a rendszer a feldolgozást) * **Kép**: eseti, csak ehhez a adáshoz tartozó kép feltöltése (nem kötelező, a kép törlése kipipálásával az eredetileg ide külön feltöltött kép törlésre kerül és a műsor alapbeállításként megadott képe kerül felhasználásra) * **Fájlok cseréje**: az itt megadott hanganyagokat a rendszer automatikusan átnevezi és lecseréli, az egyetlen kívánalom, hogy a fájlnevek sorrendben legyenek (pl. ''csere1.mp3'', ''csere2.mp3'', stb.) * **Állomás**: ahol a műsor az adott időpontban adásba kerül, ha eltér az adástükörben megadottaktól. Ha új adáslista elemet hozunk létre, akkor kötelező, hiszen az nem az adástükör alapján generálódott. * **Műsorkészítő**: amennyiben a műsorkészítő eltér az adástükörben vagy a műsoroknál megadottaktól, lehetőség nyílik csak ehhez az adáslista elemhez rendelni műsorkészítőt (amennyiben nincs különbség, nem kell bepipálni semmit) Státuszok jelentése: * **SCHEDULED**: Még nincs feldolgozva * **READY**: Minden rendben elkészült * **SKIPPED**: Kihagyva * **NO MARKER**: Nincs az adáslistában megfelelő elem a start/stop feltételeknek * **TAKE ERROR**: Nem sikerült az adáslistában elhelyezett start/stop elemeket értelmezni * **SEGMENT ERROR**: Az egyes már kivágott műsorrészleteket nem sikerült összeilleszteni * **LOG ERROR**: Nem található loggerfájl az adott műsorhoz * **FILE ERROR**: Nem sikerült létrehozni a fájlt a műsorhoz * **FTP ERROR**: Nem sikerült feltölteni a fájlt az FTP-re Minden változtatás automatikusan továbbítódik a webre, csak a végleges, nyilvános verziót szabad elmenteni! Ha nem adunk meg itt külön műsorkészítőt, akkor az az adáslista (és ha ott nincs megadva semmi, akkor) a műsor beállításai alapján kerül meghatározásra. Ha nem adunk meg itt külön állomást, akkor az az adáslista beállításai alapján kerül meghatározásra. Az itt megadott adatok szolgálnak a [[web:web#broadcast|Broadcast]] séma adataiként Az állomások megadásánál az "Állomás" feliratra kattintással az összes állomás kipipálható ===== Műsorkészítők ===== == web-presenter == Itt szerkeszthetők a műsorkészítők és azok alapbeállításai: * **Név**: tetszőleges, egyedi név * **Slug**: automatikus, csak olvasható mező, a műsorkészítő nevéből generálódik * **Titulus**: a műsorkészítő titulusa * **Bemutatkozás**: a műsorkészítő bemutatkozó szövege (nem kötelező) * **Kép**: a műsorkészítő képe (nem kötelező, a kép törlése kipipálásával az eredetileg ide külön feltöltött kép törlésre kerül) * **Aktív**: aktiválás * **Állomás**: a műsorkészítő aktív állomásainak megadása, ahol a műsorai játszásra kerülhetnek (legalább egy megadása kötelező) Az itt megadott adatok szolgálnak a [[web:web#presenter|Presenter]] séma adataiként Az állomások megadásánál az "Állomás" feliratra kattintással az összes állomás kipipálható ===== Műsorok ===== == web-show == Itt szerkeszthetők a műsorok és azok alapbeállításai: * **Cím**: tetszőleges, egyedi műsorcím * **Slug**: automatikus, csak olvasható mező, a műsor címéből generálódik * **Leírás**: a műsor leírása, általános bemutató szövege (nem kötelező) * **Kihagyás**: ha be van pipálva, ezt a műsort nem exportálja a rendszer, nem készül hozzá automatikusan hanganyag * **Kép**: a műsor képe (nem kötelező, a kép törlése kipipálásával az eredetileg ide külön feltöltött kép törlésre kerül) * **Aktív**: aktiválás * **Állomás**: a műsor aktív állomásainak megadása, ahol a műsor játszásra kerülhet (legalább egy megadása kötelező) * **Műsorkészítő**: minden műsorkészítő, aki a műsorhoz tartozik Az itt megadott adatok szolgálnak a [[web:web#show|Show]] séma adataiként Az állomások megadásánál az "Állomás" feliratra kattintással az összes állomás kipipálható ===== Adástükör ===== == web-grid == Itt szerkeszthetők az adástükör beállításai: * **Műsor**: műsor címe * **Kezdés**: automatikus, csak olvasható mező, a műsor címéből generálódik (óra:perc) * **Első nap**: a műsor első napja az adástükörben (ez alapján fogja megállapítani a rendszer, hogy melyik napon kerül adásba és egyben innentől érvényes a műsor az idővonalon) * **Utolsó nap**: a műsor utolsó napja az adástükörben (ha nincs beállítva, akkor határozatlan ideig érvényes) * **Hossz**: a műsor hossza (óra:perc) * **Gyakoriság**: tulajdonképpen az, hogy hány hetente ismétlődik a műsor (hetente ismétlődő műsoroknál ''1'', kétheti műsoroknál ''2'', stb.) * **Állomás**: ahol a műsor az adott időpontban adásba kerül (legalább egy megadása kötelező) * **Műsorkészítő**: minden műsorkészítő, aki az adott napon készíti a műsort, ha van eltérés az eredetileg a műsorhoz rendelt műsorkészítőkhöz képest (amennyiben nincs, nem kell bepipálni semmit) Ha nem adtunk meg műsorkészítőt egy adástükör elemhez, akkor a műsornál beállított műsorkészítőket fogja venni a adástükör, ilyenkor a műsorkészítők fekete színnel szerepelnek a rácson. Ha megadunk külön műsorkészítőt, akkor azt sötétpiros színnel jelzi a rendszer. Ha egy műsor megszűnik egy adott időpontban és egy másik kerül a helyére, akkor azt nem a műsor módosításával kell beállítani az adástükör adatlapján, hanem fel kell venni az új műsort külön (korrekt első nap beállítással) és a megszűnő műsor utolsó napját be kell állítani. Így a csere rendszerben automatikusan meg fog történni. Ha például A és B héten különböző műsorok váltják egymást, a //Gyakoriság// mező értékét mindkét műsornál 2-re kell állítani és az egyes műsorok első napját egy hét eltolással kell megadni. Pl. az első műsor első napja ''2024-01-01'' ami egy hétfői nap, akkor a második műsor első napja egy héttel később lesz: ''2024-01-08'' - így hetente váltogatni fogják egymást az adástükörben. Az itt megadott adatok szolgálnak a [[web:web#show|Show]] séma adataiként Az állomások megadásánál az "Állomás" feliratra kattintással az összes állomás kipipálható ---- ===== BroAdminAPI ===== ==== [GET] broadcast ==== Parameters: * **station** [string($uuid)] * **date** [string($date-time)] * **modified** [string($date-time)] * **limit** [integer($int32)] (default: ''100'') * **offset** [integer($int32)] (default: ''0'') Response: [ { "broadcastId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "broadcastSlug": "string", "broadcastShow": { "showId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "showSlug": "string", "showTitle": "string", "showDescription": "string", "showImage": "string", "showPresenter": [ { "presenterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "presenterSlug": "string", "presenterName": "string", "presenterTitle": "string", "presenterDescription": "string", "presenterImage": "string", "presenterStation": [ { "stationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "stationSlug": "string", "stationName": "string", "stationDescription": "string", "stationStream": "string", "stationSequence": 0, "stationModified": "2024-04-26T10:47:46.197Z" } ], "presenterModified": "2024-04-26T10:47:46.197Z" } ], "showStation": [ { "stationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "stationSlug": "string", "stationName": "string", "stationDescription": "string", "stationStream": "string", "stationSequence": 0, "stationModified": "2024-04-26T10:47:46.197Z" } ], "showModified": "2024-04-26T10:47:46.197Z" }, "broadcastStart": "2024-04-26T10:47:46.197Z", "broadcastEnd": "2024-04-26T10:47:46.197Z", "broadcastTitle": "string", "broadcastDescription": "string", "broadcastImage": "string", "broadcastRebroadcast": true, "broadcastFile": [ { "fileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "fileSlug": "string", "filePath": "string", "fileModified": "2024-04-26T10:47:46.197Z" } ], "broadcastPresenter": [ { "presenterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "presenterSlug": "string", "presenterName": "string", "presenterTitle": "string", "presenterDescription": "string", "presenterImage": "string", "presenterStation": [ { "stationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "stationSlug": "string", "stationName": "string", "stationDescription": "string", "stationStream": "string", "stationSequence": 0, "stationModified": "2024-04-26T10:47:46.197Z" } ], "presenterModified": "2024-04-26T10:47:46.197Z" } ], "broadcastStation": [ { "stationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "stationSlug": "string", "stationName": "string", "stationDescription": "string", "stationStream": "string", "stationSequence": 0, "stationModified": "2024-04-26T10:47:46.197Z" } ], "broadcastStatus": "string", "broadcastModified": "2024-04-26T10:47:46.197Z" } ] ==== [GET] grid ==== Parameters: * **station** [string($uuid)] (required) * **date** [string($date-time)] (required) * **modified** [string($date-time)] Response: [ { "gridId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "gridShow": { "showId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "showSlug": "string", "showTitle": "string", "showDescription": "string", "showImage": "string", "showPresenter": [ { "presenterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "presenterSlug": "string", "presenterName": "string", "presenterTitle": "string", "presenterDescription": "string", "presenterImage": "string", "presenterStation": [ { "stationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "stationSlug": "string", "stationName": "string", "stationDescription": "string", "stationStream": "string", "stationSequence": 0, "stationModified": "2024-04-26T10:48:57.436Z" } ], "presenterModified": "2024-04-26T10:48:57.436Z" } ], "showStation": [ { "stationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "stationSlug": "string", "stationName": "string", "stationDescription": "string", "stationStream": "string", "stationSequence": 0, "stationModified": "2024-04-26T10:48:57.436Z" } ], "showModified": "2024-04-26T10:48:57.436Z" }, "gridStart": "2024-04-26T10:48:57.436Z", "gridEnd": "2024-04-26T10:48:57.436Z", "gridRebroadcast": true, "gridPresenter": [ { "presenterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "presenterSlug": "string", "presenterName": "string", "presenterTitle": "string", "presenterDescription": "string", "presenterImage": "string", "presenterStation": [ { "stationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "stationSlug": "string", "stationName": "string", "stationDescription": "string", "stationStream": "string", "stationSequence": 0, "stationModified": "2024-04-26T10:48:57.436Z" } ], "presenterModified": "2024-04-26T10:48:57.436Z" } ], "gridModified": "2024-04-26T10:48:57.436Z" } ] ==== [GET] presenter ==== Parameters: * **station** [string($uuid)] * **modified** [string($date-time)] * **limit** [integer($int32)] (default: ''100'') * **offset** [integer($int32)] (default: ''0'') Response: [ { "presenterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "presenterSlug": "string", "presenterName": "string", "presenterTitle": "string", "presenterDescription": "string", "presenterImage": "string", "presenterStation": [ { "stationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "stationSlug": "string", "stationName": "string", "stationDescription": "string", "stationStream": "string", "stationSequence": 0, "stationModified": "2024-04-26T10:49:38.964Z" } ], "presenterModified": "2024-04-26T10:49:38.964Z" } ] ==== [GET] show ==== Parameters: * **station** [string($uuid)] * **modified** [string($date-time)] * **limit** [integer($int32)] (default: ''100'') * **offset** [integer($int32)] (default: ''0'') Response: [ { "showId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "showSlug": "string", "showTitle": "string", "showDescription": "string", "showImage": "string", "showPresenter": [ { "presenterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "presenterSlug": "string", "presenterName": "string", "presenterTitle": "string", "presenterDescription": "string", "presenterImage": "string", "presenterStation": [ { "stationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "stationSlug": "string", "stationName": "string", "stationDescription": "string", "stationStream": "string", "stationSequence": 0, "stationModified": "2024-04-26T10:49:59.298Z" } ], "presenterModified": "2024-04-26T10:49:59.298Z" } ], "showStation": [ { "stationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "stationSlug": "string", "stationName": "string", "stationDescription": "string", "stationStream": "string", "stationSequence": 0, "stationModified": "2024-04-26T10:49:59.298Z" } ], "showModified": "2024-04-26T10:49:59.298Z" } ] ==== [GET] station ==== Parameters: * **modified** [string($date-time)] * **limit** [integer($int32)] (default: ''100'') * **offset** [integer($int32)] (default: ''0'') Response: [ { "stationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "stationSlug": "string", "stationName": "string", "stationDescription": "string", "stationStream": "string", "stationSequence": 0, "stationModified": "2024-04-26T10:50:18.709Z" } ] ==== schemas ==== === Broadcast === * broadcastId string($uuid) * broadcastSlug string * broadcastShow [[web:web#show|Show]] * broadcastStart string($date-time) * broadcastEnd string($date-time) * broadcastTitle string * broadcastDescription string * broadcastImage string * broadcastRebroadcast boolean * broadcastFile array of [[web:web#file|File]] * broadcastPresenter array of [[web:web#presenter|Presenter]] * broadcastStation array of [[web:web#station|Station]] * broadcastStatus string * broadcastModified string($date-time) === File === * fileId string($uuid) * fileSlug string * filePath string * fileModified string($date-time) === Grid === * gridId string($uuid) * gridShow [[web:web#show|Show]] * gridStart string($date-time) * gridEnd string($date-time) * gridRebroadcast boolean * gridPresenter array of [[web:web#presenter|Presenter]] * gridModified string($date-time) === Presenter === * presenterId string($uuid) * presenterSlug string * presenterName string * presenterTitle string * presenterDescription string * presenterImage string * presenterStation array of [[web:web#station|Station]] * presenterModified string($date-time) === Show === * showId string($uuid) * showSlug string * showTitle string * showDescription string * showImage string * showPresenter array of [[web:web#presenter|Presenter]] * showStation array of [[web:web#station|Station]] * showModified string($date-time) === Station === * stationId string($uuid) * stationSlug string * stationName string * stationDescription string * stationStream string * stationSequence integer($int32) * stationModified string($date-time)