mirror of
https://github.com/DYefremov/DemonEditor.git
synced 2026-05-06 06:46:25 +02:00
enabled additional name cache for EPG (#189)
This commit is contained in:
@@ -324,7 +324,7 @@ class XmlTvReader(Reader):
|
||||
utc = dt.timestamp()
|
||||
offset = datetime.now() - dt
|
||||
|
||||
for srv in filter(lambda s: any(name in names for name in s.names), self._cache.values()):
|
||||
for srv in filter(lambda s: s.id in names or any(name in names for name in s.names), self._cache.values()):
|
||||
[self.process_event(ev, events, offset, srv) for ev in filter(lambda s: s.duration > utc, srv.events)]
|
||||
|
||||
return events
|
||||
|
||||
@@ -317,13 +317,18 @@ class FavEpgCache(EpgCache):
|
||||
def update_xml_data(self):
|
||||
services = self._app.current_services
|
||||
names = {services[s].service for s in self._app.current_bouquets.get(self._current_bq, []) if s in services}
|
||||
if self._app.app_settings.enable_epg_name_cache:
|
||||
id_names = set(filter(lambda n: n in EpgCache.NAME_CACHE, names))
|
||||
names -= id_names
|
||||
names.update({EpgCache.NAME_CACHE.get(n) for n in id_names})
|
||||
|
||||
for name, events in self._reader.get_current_events(names).items():
|
||||
ev = min(events, key=lambda x: x.start, default=None)
|
||||
if ev:
|
||||
self.events[name] = ev
|
||||
|
||||
def get_current_event(self, service_name):
|
||||
return self.events.get(service_name, EpgEvent())
|
||||
return self.events.get(EpgCache.NAME_CACHE.get(service_name, service_name), EpgEvent())
|
||||
|
||||
def get_current_events(self, service_name):
|
||||
return [EpgEvent()]
|
||||
@@ -417,6 +422,12 @@ class TabEpgCache(EpgCache):
|
||||
def update_epg_data(self) -> bool:
|
||||
services = self._app.current_services
|
||||
names = {services[s].service for s in chain.from_iterable(self._app.current_bouquets.values()) if s in services}
|
||||
|
||||
if self._app.app_settings.enable_epg_name_cache:
|
||||
id_names = set(filter(lambda n: n in EpgCache.NAME_CACHE, names))
|
||||
names -= id_names
|
||||
names.update({EpgCache.NAME_CACHE.get(n) for n in id_names})
|
||||
|
||||
for name, events in self._reader.get_current_events(names).items():
|
||||
self.events[name] = events
|
||||
|
||||
@@ -428,7 +439,7 @@ class TabEpgCache(EpgCache):
|
||||
pass
|
||||
|
||||
def get_current_events(self, service_name) -> list:
|
||||
return self.events.get(service_name, [])
|
||||
return self.events.get(EpgCache.NAME_CACHE.get(service_name, service_name), [])
|
||||
|
||||
|
||||
class EpgSettingsPopover(Gtk.Popover):
|
||||
|
||||
Reference in New Issue
Block a user