szabbenjamin/digionline

EPG letöltés refactor

Closed this issue · 5 comments

szerintem kellene párhuzamosítani az EPG urlek letöltését és feldolgozását, mert így elég szenvedés. 5-6 "threadet" talán a JS is tud kezelni :) Én a Typescripthez értek, nodejs-hez nem, de láttam, hogy ott van

async.queue(task, concurrency)

esetleg érdemes lenne megnézni.

akar ugy is lehetne, hogy a digi sajat musorujsagjat parsoljuk. vagy korabban volt valami megoldas a porthu-ra is.

elonyok

  • van reszletes musorinfo (alcim, rovid leiras)
  • 1 request kell csak (szemben a mostani 55-el)
  • sokkal hamarabb elkeszul, kvazi azonnal van epg
  • egy siterol "veszunk" mindent (digi)

hatranyok

  • csak 24 oraval elore van, de a cel gondolom az hogy eppen mi megy, es mi lesz kesobb, nem az hogy 5 nap mulva este mi lesz (ezt biztos nem ott fogod kikeresni) :)
  • gyakrabban kell futtatni (naponta legalabb 2-3x, de mivel gyorsan lefut nem lesz gond)
  • at kell irni a parsert

nalam az is gond, hogy mar az applet frissiti az epg filet, de a kodi mar nem, igy muszaj hasznalni a force_reload_epg.sh-t cronbol vagy kezzel, ami kodi restarttal jar. erre nincs valami kevesbe radikalis reload megoldas?

Párhuzamosítani nem lehetséges mivel a port.hu detektálni fogja a túl gyakori lekérdezéseket és bannolni fog. @kbalint, amit te mondasz az virtuális thread, azaz egyetlen cpu magon fog párhuzamosan több feldolgozás futni amitől egyszerűen nem fog cpu idő jutni a lejátszáshoz szükséges servletnek.

@droM4X A digi saját műsorújságának parsolása nem rossz ötlet, anno próbáltam is, de letettem róla, mert sokszor hibás volt - lehet azóta már jobban odafigyelnek rá, szóval érdemes lehet vele egy plusz kört futni, igen. Elképzelhető, hogy anno azért 5 napos EPG-t raktam bele, hogy a force reload-ra ne legyen szükség, mondván, hogy azért 5 naponta 1x csakcsak bekapcsolják az emberek a tévét. 🙃

Összességében az a legnagyobb hiba, hogy az epg készítése egy processzen belül van a digionline videó közvetítő alkalmazásával. Jelenleg arra törekednék, hogy az epg-t teljesen kitakarítsam a rendszerből és külön vegyem a két funkciót.

@szabbenjamin
En ezeket a sajat forkomban mar hetekkel/honapokkal ezelott osszedobtam, amikor volt idom foglalkozni vele. Nem kuldtem rola PR-eket, mert sok dologba belenyultam/atirtam/kidobaltam, de biztos ossze lehet hazasitani ha ugy erzitek van benne mergelni erdemes dolog. En azota Rpi4-en hasznalom ahova azota sincs OSMC, ezert raspberrypi os-re tolt kodi-val hasznalom. Valoszinuleg mukodne a verziom rpi3/osmc-n is, mert megadhato hova telepitse.

Az epg-t atirtam hogy a digi sajat epgjet hasznalja, raadasul apirol megy, nem kell parsolgatni semmit a html kodbol. 54 csatornanal 2mp alatt van 3 napos epg, megse 10 perc :)
Hasznalom napi szinten, teljesen jol mukodik es a musor leirasa is benne van. Csinaltam meg csatorna szurest (nem kerul be a listaba amit nem szeretnek latni), cronba lett kiteve a program frissitese es az epg update, stb. Az epg-t 12 orankent frissitem, 1.5-2 nappal elore latni, a kodiban beallithato hogy milyen idokozonkent toltse ujra, nem kell force reload.
A docker supportot dobtam, de nincs lenyegi valtoztatas a mukodesben, valoszinuleg menne a regi docker fileokkal is.

https://github.com/droM4X/digionline

@droM4X Köszi, vetek rá egy pillantást. Gyorsan lett is belőle egy konténer.

Agyaltam rajta. Mivel az EPG nem 1 napos így nincs abból gond ha másnap kapcsolja be valaki újra az appot, lesz műsorlistája még ekkor is. Nem tartom indokolnak a refatorálást a musor.tv-ről jelenleg.