====== SCRIPT ====== A //Script// modul felel az automatizációs folyamatok konfigurálásáért és felügyeletéért, biztosítva a háttérben zajló műveletek zökkenőmentes működését. Az integrált értesítési funkció révén a felhasználó azonnal értesítést kap, ha a rendszer bármelyik feladat végrehajtása során problémákba ütközik. A rendszer nemcsak a beépített, általános célú szkripteket támogatja, hanem lehetőséget biztosít egyedi, az ügyfelek specifikus igényeire szabott alkalmazások integrálására is. ---- ===== Converter ===== == script-converter == > Automatikus hangfájl konvertáló script A forrás mappába bekerült tetszőleges formátumú hangfájt a megadott cél mappába helyezi konvertálás után. * **Név**: tetszőleges, egyedi elnevezés * **Forrás mappa**: ezt a könyvtárt vizsgálja át 30 másodpercenként a script, és ha talál új fájlt, megkezdi a konvertálást (pl.: ''D:\CONVERT\44.1k_wav\'') * **Cél mappa**: ide kerülnek az átkonvertált fájlok (pl.: ''D:\CONVERTED\44.1k_wav\'') * **Kész mappa**: a konvertálást követően ide kerülnek a fájlok a forrás mappából (pl.: ''D:\CONVERT\44.1k_wav\kesz'') * **Szűrő**: szűrési lehetőség a forrásmappában elhelyezett fájlokra (pl.: *.mp3 vagy hirek*.wav) * **Formátum**: a cél fájl formátuma (pl.: ''wav 44.1k 16bit stereo'') * **Értesítés**: telegram értesítés hiba esetén (a központi chaten) * **Aktív**: aktiválás Ha nincs megadva **cél mappa**, az eredeti, konvertálás előtti fájl törlődik a konvertálás befejeztével! ===== Loader ===== == script-loader == > Automatikus fájl betöltő script A forrás mappába bekerült tetszőleges fájlt a megadott cél mappába helyezi átnevezés után. * **Név**: tetszőleges, egyedi elnevezés * **Forrás mappa**: ezt a könyvtárt vizsgálja át 60 másodpercenként a script, és ha talál új fájlt, megkezdi a feldolgozást (pl.: ''D:\LOAD\hirek\'') * **Cél mappa**: ide másolja a talált fájlokat, ez általában az adáslebonyolító szoftver egy automatikus import mappája (pl.: ''D:\AUTOLOAD\hirek\'') * **Szűrő**: szűrési lehetőség a forrásmappában elhelyezett fájlokra (pl.: ''*.mp3'' vagy ''hirek*.wav'') * **Minta**: [[script:script#regularis_kifejezesek|reguláris kifejezés]] a fájlnevek szűrésére (pl.: ''^.*$'') * **Cél fájlnév**: a fájl neve a feldolgozás után a cél mappában (pl.: ''hirek.wav'') * **Biztonsági idő**: a fájl létrehozása és a fájl feldolgozása között eltelt minimális idő (alapérték: ''60'') * **Forrás megtartása**: a forrás mappában megtartja az eredeti fájlt és amíg annak újabb verziója nem jelenik meg, figyelmen kívül hagyja * **Almappák**: keresés a forrásmappa almappáiban is * **Értesítés**: telegram értesítés hiba esetén (a központi chaten) * **Aktív**: aktiválás ==== reguláris kifejezések ==== A reguláris kifejezés (regex) egy karakterlánc, amely mintaként szolgál a szövegkereséshez és -manipulációhoz. Segítségével bonyolult szöveges minták azonosítására és kezelésére van lehetőség. A példának megadott ''^.*$'' kifejezés minden fájlnévre egyezést mutat. Ha nem kell bonyolult átnevezéseket végrehajtanunk, ezt a mintát kell alkalmazni. Bonyolultabb átnevezésekhez az alábbiak alapján állíthatunk össze mintákat: **Alap Szintaxis** * ''**.**'': Bármilyen egyedi karaktert jelöl (kivéve az új sor karaktert). * ''**^**'': A szöveg kezdetét jelöli. * ''**$**'': A szöveg végét jelöli. * ''**[]**'': Karakterhalmaz. Bármelyik karaktert jelölheti, ami a zárójelek között van. * ''**|**'': Alternatíva. A|B jelentése A vagy B. * ''**()**'': Csoportosítás. A regex részeinek csoportosítására szolgál. * ''**?**'': Az előtte álló karakter nulla vagy egy előfordulását jelöli. * ''*****'': Az előtte álló karakter nulla vagy több előfordulását jelöli. * ''**+**'': Az előtte álló karakter egy vagy több előfordulását jelöli. * ''**{n}**'': Az előtte álló karakter pontosan n-szer fordul elő. * ''**{n,}**'': Az előtte álló karakter n vagy több alkalommal fordul elő. * ''**{n,m}**'': Az előtte álló karakter legalább n, de legfeljebb m alkalommal fordul elő. **Speciális Karakterek** * ''**\d**'': Bármely számjegyet jelöl (0-9). * ''**\D**'': Bármely nem számjegy karaktert jelöl. * ''**\w**'': Bármely "szó" karaktert jelöl (betűk, számjegyek, aláhúzás). * ''**\W**'': Bármely nem "szó" karaktert jelöl. * ''**\s**'': Bármely whitespace karaktert jelöl (szóköz, tab, új sor). * ''**\S**'': Bármely nem whitespace karaktert jelöl. A ''**?**'' konstrukció a reguláris kifejezésekben a csoportnevek deklarálására szolgál, ami lehetővé teszi számunkra, hogy ne csak sorszámmal, hanem névvel is hivatkozzunk a csoportokra. **Példa** Minta: ''**^(?[\d]{6})_(?[\d]{2})_(?HIREK)$**''\\ Cél fájlnév: ''**hirblokk_${hour}**'' A ''**240101_18_HIREK.mp3**'' séma szerint elnevezett fájlt ''**hirblokk_18.mp3**'' néven menti a célmappába. A reguláris kifejezés értelmezése részletesen: * ''^'': A kifejezés elején azt jelzi, hogy a mintának a szöveg elejétől kell kezdődnie. * ''(?[\d]{6})'': Ez egy elnevezett csoport (date), ami pontosan hat számjegyet (\d) fogad el. * ''_'': Ez egyszerűen egy alulvonás karakter, ami elválasztja a csoportokat egymástól. * ''(?[\d]{2})'': Ez a második elnevezett csoport (hour), ami pontosan két számjegyet fogad el. * ''_'': Ismét egy alulvonás karakter. * ''(?HIREK)'': Ez a harmadik elnevezett csoport (format), amely konkrétan a "HIREK" szöveget fogadja el. * ''$'': A kifejezés végén azt jelzi, hogy a mintának a szöveg végéig kell tartania. Mintákat a legegyszerűbben [[https://regex101.com|regex101]] oldal segítségével lehet létrehozni és tesztelni, de a [[https://chat.openai.com/|ChatGPT]] is pillanatok alatt megír helyettünk egy ilyet, ha kérjük. A //Loader// script a reguláris kifejezéseket kizárólag a fájl nevének a szűrésére használja, a kiterjesztést figyelmen kívül hagyja. ===== Purger ===== == script-purger == > Automatikus fájltörlő script Törli a megadott mappában található fájlokat a beállított idő letelte után. * **Név**: tetszőleges, egyedi elnevezés * **Mappa**: ezt a könyvtárt vizsgálja át a script, és ha talál a lenti kritériumoknak megfelelő fájlt, törli. (pl.: ''D:\CONVERT\44.1k_wav\kesz\'') * **Szűrő**: szűrési lehetőség a mappában található fájlokra (pl.: ''*.mp3'' vagy ''hirek*.wav'') * **Fájlok megtartása**: a napok száma, miután a fájl törlésre kerül (pl.: ''0'' - azonnal, alapérték: ''30'') * **Almappák**: keresés a mappa almappáiban is * **Értesítés**: telegram értesítés hiba esetén (a központi chaten) * **Aktív**: aktiválás A //Purger// script nem folyamatos futású, hanem az [[script:script#agent|Agent]] futtatja, megadott időközönként. ===== Syncer ===== == script-syncer == > Automatikus tükrözés Percenként tükrözi a forrás mappát a cél mappába. * **Név**: tetszőleges, egyedi elnevezés * **Forrás mappa**: ezt a könyvtárt vizsgálja át a script, és végzi el a fájlok másolását a célmappába a megadott feltételek alapján (pl.: ''D:\LOGGER'') * **Cél mappa**: ide tükröződnek az adatok a forrás mappából (pl.: ''\\ARCHIVE\LOGGER'') * **Szűrő**: szűrési lehetőség a forrás mappában található fájlokra (pl.: ''*.wav'') * **Cél takarítása**: ha egy fájl a forrás mappában törlésre került, a cél mappában is törlésre kerül. * **Értesítés**: telegram értesítés hiba esetén (a központi chaten) * **Aktív**: aktiválás A //Syncer// script minden esetben a forrás mappa almappáit is kezeli. ===== Agent ===== == script-agent == > Script futtató script Egyes modulok, illetve egyedi scriptek szabályos időközönként történő futtatásáért felel. * **Név**: tetszőleges, egyedi elnevezés * **Elérési út**: (pl.: ''D:\SCRIPT\purger.ps1'') * **Argumentumok**: futási paraméterek (pl.: ''-Force'') * **Első futás ideje**: az első futás időpontja * **Futás időköz**: a script futtatásának gyakorisága az első futás idejétől számítva * **Értesítés**: telegram értesítés hiba esetén (a központi chaten) * **Aktív**: aktiválás Az //Agent// csak Powershell 7.4 kompatibilis scripteket tud futtatni. ===== WatchDog ===== == script-watchdog == > Script ellenőrző script Scriptek és folyamatok futását ellenőrző script, mely ha leállást észlel, megpróbálkozik az újraindítással, ellenőrzi, hogy sikeres volt-e az újraindítás és ezek után üzenetet küld az eredményről. * **Név**: tetszőleges, egyedi elnevezés * **Folyamat**: a futtatható állomány neve, ahogy a feladatkezelőben szerepel (kiterjesztés nem szükséges) (pl.: ''BroAdminAPI'' vagy ''pwsh'') * **Parancs**: a futtatott fájl neve, folyamat esetén a futtatható állomány neve, script esetén a script neve (pl.: ''BroAdminAPI.exe'' vagy ''loader.ps1'' * **Elérési út**: a futtatható állomány elérési útja (pl.: ''C:\Program Files\BroAdminAPI\BroAdminAPI.exe'' vagy powershell script esetén: ''pwsh.exe'') * **Argumentumok**: futási paraméterek (pl.: powershell script esetén pl.: ''-file "D:\SCRIPT\loader.ps1"'') * **Értesítés**: telegram értesítés hiba esetén (a központi chaten) * **Aktív**: aktiválás Amikor a //Watchdog// a futást ellenőrzi, azt a //Folyamat// és a //Parancs// mezők alapján teszi. Amikor megpróbálja újraindítani a folyamatot, akkor az //Elérési út// és az //Argumentumok// mező alapján jár el. **Futtatható állományoknál** //Elérési útként// bármit meg lehet adni, például .lnk vagy .bat kiterjesztésű fájlokat, amik valamilyen futtatható állományra mutatnak. Ezt a futtatható állományt kell a //Folyamat// mezőben megadni.\\ Folyamat: ''icecast''\\ Paranacs: ''icecast.exe''\\ Elérési út: ''D:\run-icecast-server.lnk'' **Powershell** script esetén az //Argumentumok// mezőben tudunk a scriptre hivatkozni, amit a //Parancs// mezőben is meg kell tennünk:\\ Folyamat: ''pwsh''\\ Paranacs: ''loader.ps1''\\ Elérési út: ''pwsh.exe''\\ Argumentumok: ''D:\SCRIPT\loader.ps1'' ===== Custom ===== Egyedi szkriptek == x_convert_log.ps1 == Letömöríti az archivált loggerfájlokat mp3-ba. Paraméterek: - == x_transition.ps1 == Átmásolja állomások között a tartalmat Paraméterek: ''-Date'' - ha meg van adva, akkor az adott napot dolgozza fel (pl. ''-Date "2024-01-01"''), ha nincs megadva, akkor a következő hét minden napját.