small-banner_script.jpg

Loader

fájlok automatikus feldolgozása és konvertálása

A Loader script feladata, hogy a megadott forrásmappában megjelenő, a megadott minta alapján azonosított fájlokat automatikusan feldolgozza és a célmappába másolja. A feldolgozás során a fájlok hangzásilag vagy technikailag átalakíthatók (pl. formátum- vagy mintavételi frekvencia-konverzió). Opcionálisan az eredeti fájlokat archiválja, és nyilvántartja a már feldolgozottakat, hogy azokat ne dolgozza fel újra.

Tipikus felhasználás:

Hogyan működik a Loader?

  1. Megnyitja a megadott Forrás mappát (és ha be van kapcsolva, az almappáit is)
  2. Kiválasztja a Mintának megfelelő fájlokat
  3. Kihagyja a már korábban feldolgozottakat (ha Forrás megtartása be van kapcsolva)
  4. Kihagyja a más program által éppen használt (zárolt) fájlokat
  5. Elvégzi a fájl átalakítást/másolást a Paraméterek szerint
  6. Sikeres feldolgozás esetén:
    1. Az eredeti fájlt bemásolja az Archív mappába (ha meg van adva)
    2. Ha Forrás megtartása be van kapcsolva: nyilvántartja a feldolgozott fájlt
    3. Ha Forrás megtartása ki van kapcsolva: törli az eredeti fájlt
  7. Hibák esetén naplóz és (ha kéred) értesít

Loader beállításai

Ha a Forrás megtartása ki van kapcsolva, a forrásfájl törlésre kerül sikeres feldolgozás után. Ha be van kapcsolva, a fájl megmarad, de a rendszer nyilvántartja és nem dolgozza fel újra — az azonosítás az elérési út, a fájlméret és a módosítási dátum alapján történik.

A Minta és a Fájlnév mező szorosan összefügg: a Minta azonosítja a forrásfájlt, a Fájlnév sablon pedig meghatározza, hogy a célfájl milyen nevet kapjon. Helytelen beállítás esetén a fájlok nem kerülnek feldolgozásra, vagy a célfájl neve hibás lesz.

Tipikus statikus minták

Egyszerű másolás, változatlan néven:


Dátum feldolgozása: Pl.: 20251231-barmi.wavbarmi_2025-12-31.wav:


Óra, perc értelmezése és érdektelen részek ignorálása: Pl.: 0800_bkkinfo_2025-12-31.mp3bkkinfo.mp3

Itt igazából a fájlnévnek csak a 0800_bkkinfo pontig kell stimmelnie, utána nem számít, hogy mi van a fájlnévben, ezt nem is használjuk. Fontos, hogy csak mp3 vagy wav kiterjesztésű fájlokat fog feldolgozni, de mindegyiknek a neve pontosan bkkinfo.mp3 lesz a feldolgozás során, függetlenül az eredeti formátumtól. A Loader ezt automatikusan átkonvertálja ilyenkor.

Tipikus dinamikus minták

Egyszerű feles hírek: minden óra kezdetétől érvényes az óra 30. percében elhangzó hanganyag frissítése. A feldolgozandó fájlnevek formátuma: 20251231-08-feles.mp3 - ezzel kell minden óra elején felülírnunk a HIREK-FELES.wav fájlt.

Ha ezt a mintát a powershell feldolgozza, akkor a következőt kapjuk (ha már elmúlt 8 óra): ^20251231[_-]08[_-]feles\..+$ - tehát ahogy az idő eléri a megfelelő időpontot, stimmelni kezd a minta és a fájl feldolgozásra kerül és átkonvertálódik automatikusan a HIREK-FELES.wav fájllá a célmappában. A [_-] kifejezés a mintában azt jelenti, hogy - és _ karaktert is elfogad, felhasználói elgépelések kiküszöbölése érdekében.


Egyszerű egészes hírek: minden óra elején hangzik el és minden óra 15. percétől a következőt keressük. Tehát 07:15-től már lecserélhető a HIREK.wav célfájlunk a nyolcasra, mert addigra biztosan lement a hírblokk az óra elején. A szakemberek a 20251231-08-hirek.mp3 formátumban mentik a feldolgozandó fájlokat.

Ha ezt a mintát a powershell feldolgozza, akkor a következőt kapjuk (07:15-től): ^20251231[_-]08[_-]hirek\..+$ vagyis 45 perccel előbb kezdi el keresni a feldolgozandó fájlt. Ennek érdekében az aktuális időponthoz hozzáadtunk 45 percet az AddMinutes() függvénnyel. A [_-] kifejezés a mintában azt jelenti, hogy - és _ karaktert is elfogad.


Ugyanabban az órában elhangzó hírek: Ha a szokás úgy alakult ki, hogy az óra hírei még az órafurduló előtt elhangzanak, mondjuk :55 körül, és a szakemberek olyan formában mentik mondjuk a híreket, hogy 20251231-0855-hirek.mp3 - akkor egy kis negatív csúsztatást bele kell vinnünk a rendszerbe, valahogy így:

Erre azért van szükség, hogyha elüti az óra az egészt és még megy a hírek, ne álljon neki lecserélgetni a rendszer a fájlokat, így várunk óra tizenötig és csak utána lesz érvényes a minta az aktuális óra végén elhangzásra kerülő hírekre.


Naponta egyszer jelentkező műsor: tegyük fel, hogy van egy műsorunk, ami minden reggel hatkor jelentkezik, minden esetben hat részből áll, a kollégák elkészítik már előző este és szeretnénk, ha a rendszer beolvasná a helyére. (Leginkább azért, hogy össze lehessen időre húzni a műsort ha az elkészült). Így lényegében reggel nyolctól már simán lehet figyelni, hogy elkészült-e már és ha igen, akkor cserélje le a rendszer a REGGELI-MAGAZIN-1.wav fájlt (és a haverjait emelkedő számsorrendben). A feldolgozandó fájl formátuma mondjuk: 20251231-reggeli-magazin-1.wav - a -1 a rész sorszámát jelenti.

A Get-Date függvény által megadott aktuális dátumhoz hozzáadtunk 16 órát, így ami ma reggel nyolc után történik, abból a holnapi dátumot kapjuk (egészen holnap reggel nyolcig). A mintát powershellben lefuttatva 2025. 12. 31-én reggel nyolctól a következő mintát kapjuk: ^20260101[_-]reggeli[_-]magazin[_-](?<part>\d{1})\.wav$, így reggel nyolctól már a következő napi fájlt keresi a rendszer. Azért nem előbb, mert eddigre biztosan lemegy a műsor és ha előre bekészítettünk több napi műsort, akkor csak ezután kell lecserélnünk.


Komplex, különböző adókra szétosztott feldolgozás: A fentiekhez hasonló példa, de itt még különböző adókra is szét van szedve a feldolgozás. A feldolgozandó fájl formátuma: 20251231-0800-city-part.mp3, ahol a city és a part dinamikusan változhat, pl.: 20251231-0800-budapest-headline.mp3.

Ha feldolgozza a powershell, így néz ki a mintánk: ^20251231[_-]08[_-](?<city>.+)[_-](?<part>[headline|hirek|idojaras|sport]+)\..+$. Fontos, hogy itt a part részre csak a headline, hirek, idojaras vagy sport szavakat fogadja el. A cél fájlneve pedig így fog kinézni: hirek-budapest-headline.wav

GYIK

Beérkezett a fájl, de nem történt semmi — mi lehet az oka?

A leggyakoribb okok sorrendben: a fájlnév nem illeszkedik a Mintára (érdemes regex-tesztelővel ellenőrizni), a fájl más program által még zárolva van (ilyenkor a következő futás dolgozza fel), bekapcsolt Forrás megtartása mellett a rendszer már nyilvántartja a fájlt korábbi feldolgozásból, vagy az Ütemezés időablakán kívül érkezett és a rendszer a következő engedélyezett időpontra vár.

Ugyanazt a fájlt frissítve feltöltötték újra — feldolgozza a rendszer?

Igen: a nyilvántartás az elérési út mellett a fájlméretet és a módosítási dátumot is nézi, így a megváltozott tartalmú fájl új fájlnak számít és feldolgozásra kerül.

Kell-e konverzióhoz értenem az FFmpeg-hez?

A leggyakoribb esetekhez nem: üresen hagyott Paraméterek mezővel a fájl változatlanul másolódik, a tipikus konverziós beállításokat pedig a telepítéskor a support segít összeállítani.

Kapcsolódó