Kaip gaminausi IPTV tiekėjo skenavimo įrankį (mini panel)

PHP

Skaitymo laikas: 2 minutės

Tekstas atnaujintas: 2021-08-03. Teksto parašytas: 2021-08-02

Tekste neminėsiu katro tiekėjo tai kanalai.

Ir pačiu kodu nežadu dalintis.

Tiesiog noriu pasidalinti, kaip ką sekėsi daryti.

Kaip atrodo panel?

Kaip gaminausi IPTV tiekėjo skenavimo įrankį (mini panel) 1

Viskas rašoma su PHP, informaciją gaunu iš json failų, vienas bash skriptas ir stiliui naudoju UiKit.

Paeiliui kas rodoma:

Viršuje matau informaciją.

Kiek laiko galioja paskutinis generuotas token, kuris realiai skirtas priedėliui.

CDN adresai kurie priskirti priedėliui bei naudojama flussonic versija.

Toliau realiai yra 6 dideli mygtukai.

Pirmasis atnaujina kanalų sąrašą kuris skirtas priedėliui.

Antrasis atnaujina sąrašą kuris skirtas telefono programai, bei išsaugo token atskirame txt faile kurį vėliau panaudoju.

Scanner mygtukas aktyvuoja bash skriptą kuriame surašytos komandos.

Toliau eina mygtukas kuris paduoda pilną priedėlio sąrašą su kitu token negu priskirtas.

Bei paskutinis mygtukas atiduoda kanalus kurie oficialiai nėra dar pajungti.

Compare skiltis sulygina tos dienos skenavimą su naujausiu ir atiduoda kanalų sąrašą kurie dar nebuvo prieš tai atliktam skenavime.

Ir apačioje pateikti logotipai kanalų.

Apie skenavimo skriptą

Skenavimui reikėjo susirasti komandinę programą.

Pasinaudojus Google, radau kelis variantus.

Dauguma neleido įterpti variable vidurį pateikiamo adreso.

Bet reddit’e tarp komentarų radau Wfuzz python programą, kuri turi labai daug funkcijų ir yra viskas ko man reikia.

Tada greitai susidėjau komandą kurios man reikia.

Bei programa sugeba viską atiduoti ką rado json formatu, tad galima naudoti duomenis sulyginimui.

Toliau skriptas perkelia naujausią pilną sąrašą į archyvo aplankalą.

Pervadina failą į tokį, kada buvo pradėtas skenavimas.

Galop duoda komandą sulyginimui, jeigu atsirado pakeitimų tada gaunu laišką į el. paštą, bei pateikiamos nuorodos jame.

Turėjau bėdą su skripto paleidimu iš puslapio.

Gaudavosi taip, jog skriptui nebaigus savo darbo jis būdavo nužudomas ir skenavimas neįvykdavo.

Tada gavau kelis patarimus, kaip ką daryti, kelis variantus radau ir Googlei, bet nei vienas nepadėjo.

Bet ir pačiam kilo mintis jog galima pasirašyti systemd failą.

Pasirašius ir paleidus iš terminalo be problemų visas skriptas prabėgdavo.

Dabar liko padaryti jog iš puslapio eitų paleisti systemctl komandą.

Kaip žinia, šiai komandai reikia sudo teisių o jas gauti reikia suvesti slaptažodį.

Tad reikėjo sukurti /etc/sudoers.d aplankale failą ir jame nurodyti kokią komandą gali tam tikras vartotojas paleisti (http vartotojui daviau leidimą) ir nereiktų šiam vartotojui vesti slaptažodžio.

Paspaudus puslapyje mygtuką, PHP paleidžia komandą, kuriai nereikia slaptažodžio.

Dar systemd faile nurodžiau jog komandą paleistų kiekvieną naktį ir rytais bus aišku ar atsinaujino sąrašas.

Mėgstu automatiką ir patogumą, tad įdomu, ką dar reikės pasigaminti 🤨

Ar patiko įrašas?

Spausk jog įvertinti.

Vidutinis įvertinimas / 5. Įvertino:

Įvertinimų nėra, būk pirmas!

Jeigu įrašas patiko...

Pasidalink!

Jeigu įrašas nepatiko.

Padėk patobulinti įrašą!

Būtų malonu sužinoti kodėl?


Jeigu patiko įrašas, siūlau prenumeruoti, kaip tai padaryti aprašiau čia (el. paštu, telegram ir discord kanalai, facebook, twitter).



Gal patiks ir kiti įrašai