10.12.2025, 12:17
@Muxosat: já třeba ani nevím k čemu tam ta diakritika slouží. Od začátku mám defaultně BEZ a nikdy nebyl problém
|
Hodnocení tématu:
365 EPG Generator (2.30.0)
|
from lxml import etree
def filter_xmltv(input_path, output_path, channel_ids, mode="include", replace_dict=None):
"""
Filtruje XMLTV soubor podle seznamu ID kanálů a volitelně nahrazuje ID.
:param input_path: cesta ke vstupnímu XMLTV souboru
:param output_path: cesta pro výstupní XMLTV soubor
:param channel_ids: seznam ID kanálů
:param mode: "include" nebo "exclude"
:param replace_dict: slovník pro nahrazení ID {původní_id: nové_id}, default None
"""
assert mode in ("include", "exclude"), "mode musí být 'include' nebo 'exclude'"
parser = etree.XMLParser(remove_blank_text=False)
tree = etree.parse(input_path, parser)
root = tree.getroot()
# Funkce rozhodující, zda kanál/progam zůstanou
def keep_channel(cid):
if mode == "include":
return cid in channel_ids
else: # exclude
return cid not in channel_ids
# Filtruj <channel> a nahraď ID, pokud je ve slovníku
kept_channels = set() # uložení zachovaných ID po nahrazení
for ch in root.findall("channel"):
original_id = ch.get("id")
if not keep_channel(original_id):
root.remove(ch)
continue
new_id = replace_dict.get(original_id, original_id) if replace_dict else original_id
ch.set("id", new_id)
kept_channels.add(new_id)
# Filtruj <programme> a nahraď channel ID podle slovníku
for prog in root.findall("programme"):
original_id = prog.get("channel")
if not keep_channel(original_id):
root.remove(prog)
continue
new_id = replace_dict.get(original_id, original_id) if replace_dict else original_id
# pouze pokud nový ID stále patří mezi zachované kanály
if new_id in kept_channels:
prog.set("channel", new_id)
else:
root.remove(prog)
# Ulož XMLTV se zachováním formátování
tree.write(
output_path,
encoding="utf-8",
xml_declaration=True,
pretty_print=True
)

(03.6.2026, 10:01)michalba Napsal(a): Ahoj , trochu jsem laboroval ze skriptem a podařilo se mě rozchodit magio. Problém nebyl ve skriptu ale se serverem magia neboť skript vyžadoval epg ze všech kanálu a to je cca 240 kanálu , ale ochrana serveru dovolí jen 219 kanálu. Pokud je to víc berete to jako útok na server. Upravil jsem skript aby chvíli počkal a to 0,01 sekundy( případě problému dejte víc času např.0,1 sekundy) a už to stahuje bez problému. Upraveny skript přikládám a je v něm zachováno sms,magenta a magio. Jo ještě taková drobnost trošku to trvá než to stáhne tak nepanikařitRozbalit a vložit do jaké složky?
EDIT: Není to pro KODI to si musíte sami upravit. Stačí rozbalit a vložit do složky. Přidán seznam kanálu s ids.
EDIT 2: Provedl jsem dalsi upravu skriptu vygenerovani txt souboru ve kterem bude toto : tvg-name,tvg-id a IDS. Tuto moznost muzete zapnout/vypnout v soboru settings.py. A stale to neni pro KODI.
je to na mem githubu . Tak muzete zkusit a dejte vedet.
365 EPG Generator (michalba)
(06.6.2026, 22:01)michalba Napsal(a): @gigiosm: do složky 365 EPG Generator . Pokud ho nemáš můžeš si ho stáhnout z GitHubu tam je komplet i s těmi úpravami . Odkaz na GitHub maš v tom mem příspěvku.super, už vše běží jak má i s automatickým ukládání na můj GitHub. Díky moc. Konečně odpadá ruční generování ...