diff --git a/addon.xml b/addon.xml index 4418b92..cb58217 100644 --- a/addon.xml +++ b/addon.xml @@ -1,5 +1,5 @@ - + diff --git a/ardundzdf.py b/ardundzdf.py index 2f2280f..48fddbc 100644 --- a/ardundzdf.py +++ b/ardundzdf.py @@ -57,8 +57,8 @@ # VERSION -> addon.xml aktualisieren # 163 # Numerierung für Einzelupdate -VERSION = '4.9.0' -VDATE = '19.11.2023' +VERSION = '4.9.1' +VDATE = '26.11.2023' # (c) 2019 by Roland Scholz, rols1@gmx.de @@ -83,7 +83,6 @@ PREFIX = '/video/ardundzdf' # PLAYLIST = 'livesenderTV.xml' # TV-Sender-Logos erstellt von: Arauco (Plex-Forum). -FAVORITS_Pod = 'podcast-favorits.txt' # Lesezeichen für Podcast-Erweiterung FANART = 'fanart.png' # ARD + ZDF - breit ART = 'art.png' # ARD + ZDF ICON = 'icon.png' # ARD + ZDF @@ -237,18 +236,27 @@ now = time.time() # Abgleich Flags # die tvtoday-Seiten decken 12 Tage ab, trotzdem EPG-Lauf alle 12 Stunden -# (dto. Cachezeit für einz. EPG-Seite in EPG.EPG). +# (dto. Cachezeit für einz. EPG-Seite in EPG.EPG). +# 26.11.2023 Intervall optional statt 12 Std. - s.a. EPG-Modul # 26.10.2020 Update der Datei livesenderTV.xml hinzugefügt - s. thread_getepg if SETTINGS.getSetting('pref_epgpreload') == 'true': # EPG im Hintergrund laden? + eci = SETTINGS.getSetting('pref_epg_intervall') + eci = re.search(u'(\d+) ', eci).group(1) # "12 Std.|1 Tag|5 Tage|10 Tage" + eci = int(eci) + PLog("eci: %d" % eci) + if eci == 12: # 12 Std. + EPGCacheTime = 43200 + else: + EPGCacheTime = eci * 86400 # 1-10 Tage + EPGACTIVE = os.path.join(DICTSTORE, 'EPGActive') # Marker thread_getepg aktiv - EPGCacheTime = 43200 # 12 STd. is_activ=False if os.path.exists(EPGACTIVE): # gesetzt in thread_getepg is_activ=True mtime = os.stat(EPGACTIVE).st_mtime diff = int(now) - mtime - PLog(diff) - if diff > EPGCacheTime: # entf. wenn älter als 1 Tag + PLog(diff); PLog(EPGCacheTime) + if diff > EPGCacheTime: # Flag entf. wenn älter als Option os.remove(EPGACTIVE) is_activ=False if is_activ == False: # EPG-Daten veraltet, neu holen @@ -408,15 +416,15 @@ def Main(): summary=summ, fparams=fparams) title = "ARD Mediathek" - tagline = u'die Classic-Version der Mediathek existiert nicht mehr - sie wurde von der ARD eingestellt' + tagline = u'einschließlich Teletext und sportschau.de (WDR) ' CurSender = Dict('load', "CurSender") if ":" in str(CurSender): - tagline = "%s\nSender: [B]%s[/B]" % (tagline, CurSender.split(":")[0]) + tagline = "%s\n\nSender: [B]%s[/B]" % (tagline, CurSender.split(":")[0]) fparams="&fparams={'name': '%s'}" % (title) addDir(li=li, label=title, action="dirList", dirID="resources.lib.ARDnew.Main_NEW", fanart=R(FANART), thumb=R(ICON_MAIN_ARD), tagline=tagline, fparams=fparams) - tagline = u"einschließlich ZDF-funk" + tagline = u"einschließlich Teletext und ZDF-funk" summ = "funk-Podcasts befinden sich in der Audiothek" fparams="&fparams={'name': 'ZDF Mediathek'}" addDir(li=li, label="ZDF Mediathek", action="dirList", dirID="Main_ZDF", fanart=R(FANART), @@ -906,14 +914,10 @@ def AddonInfos(): a7 = u"%s [B]Filterliste:[/B] %s" % (t,filterfile) searchwords = os.path.join(ADDON_DATA, "search_ardundzdf") a8 = u"%s [B]Suchwortliste:[/B] %s" % (t,searchwords) - fname = SETTINGS.getSetting('pref_podcast_favorits') - if os.path.isfile(fname) == False: - fname = os.path.join(PluginAbsPath, "resources", "podcast-favorits.txt") - a9 = u"%s [B]Podcast-Favoriten:[/B]\n%s%s" % (t,t,fname) # fname in 2. Zeile log = xbmc.translatePath("special://logpath") log = os.path.join(log, "kodi.log") - a10 = u"%s [B]Debug-Log:[/B] %s" % (t, log) - a11 = u"%s [B]TV-und Event-Livestreams:[/B] %s/%s" % (t, PluginAbsPath, "resources/livesenderTV.xml") + a9 = u"%s [B]Debug-Log:[/B] %s" % (t, log) + a10 = u"%s [B]TV-und Event-Livestreams:[/B] %s/%s" % (t, PluginAbsPath, "resources/livesenderTV.xml") p3 = u"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n" % (a,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) page = u"%s\n%s\n%s" % (p1,p2,p3) @@ -5499,15 +5503,6 @@ def DownloadTools(): (title, '', movie_path) addDir(li=li, label=title, action="dirList", dirID="DirectoryNavigator", fanart=R(ICON_DOWNL_DIR), thumb=R(ICON_DIR_MOVE), fparams=fparams, tagline=tagline, summary=summ) - - PLog(SETTINGS.getSetting('pref_podcast_favorits')) # Pfad zur persoenlichen Podcast-Favoritenliste - path = SETTINGS.getSetting('pref_podcast_favorits') - title = u'Persoenliche Podcast-Favoritenliste festlegen/ändern (%s)' % path - tagline = 'Format siehe podcast-favorits.txt (Ressourcenverzeichnis)' - # summary = # s.o. - fparams="&fparams={'settingKey': 'pref_podcast_favorits', 'mytype': '1', 'heading': '%s', 'path': '%s'}" % (title, path) - addDir(li=li, label=title, action="dirList", dirID="DirectoryNavigator", fanart=R(ICON_DOWNL_DIR), - thumb=R(ICON_DIR_FAVORITS), fparams=fparams, tagline=tagline) if mpcnt > 0: # Videos / Podcasts? dirsize='' diff --git a/changelog.txt b/changelog.txt index 463b73a..6e5b8cf 100644 --- a/changelog.txt +++ b/changelog.txt @@ -10,6 +10,28 @@ CHANGE HISTORY max_col 97 -------------- +26.11.2023 4.9.1 + Merkliste: Sortieroption key=str.lower für Ordner entfernt (Problem in + PYY2). + EPG (Modul EPG): Abgleich Datentyp geändert von str(type(page)) auf + '' in page (komp. mit PY2). + thread_getepg: Ende-Notification mit Anzahl der Abrufe ergänzt. Delay + von 500 auf 250 millisec verringert. + Kika_Rubriken (childs): py2_encode für addDir-Parameter (komp. mit PY2). + Kika_get_singleItem (childs): py2_encode für return-Parameter (komp. mit + PY2). + Tivi_AZ (childs): element -> button für addDir-Parameter. + + Main: Hinweis auf ARD-Classic-Version entfernt, Hinweis auf Teletext in + ARD- und ZDF-Button hinzugefügt. + DownloadTools: Button Podcast-Favoritenliste entfernt obsolet), dto. Verweise + im restl. Addon. + SingleVideo (Modul arte): Check zusätzliche UHD-Quellen in api_opa und api_V2 - + neg., wie bisher nur HLS-Quellen. + EPG: Nachlade-Intervall von 12 Std. geändert auf Option "12 Std. | 1 Tag | + 5 Tage | 10 Tage" - Anpassung settings.xml, Haupt-PRG (Zeit-Abgleich und + Initialisierung thread_getepg), Nutzung EPGCacheTime EPG-Modul). + 19.11.2023 4.9.0 thread_getepg (Modul EPG): EPG-Abruf unterdrückt bei fehlender ID. Kika_Subchannel (Modul childs): Eintrag ohne Url abgefangen. @@ -557,7 +579,7 @@ CHANGE HISTORY ngplayer_2_3 -> ngplayer_2_4). get_pagination (ARDnew): Sicherung 'null' ergänzt. ARDStart (ARDnew): Ergänzung für regionale Inhalte nach Katalog (Sender, Titel, - Url). + Url). 31.01.2023 4.6.0 build_Streamlists_buttons: UHD-Kennz. im Titel bei UHD-Streams in den diff --git a/resources/lib/EPG.py b/resources/lib/EPG.py index 625d43b..e6e15f2 100644 --- a/resources/lib/EPG.py +++ b/resources/lib/EPG.py @@ -11,7 +11,7 @@ # # 20.11.2019 Migration Python3 Modul kodi_six + manuelle Anpassungen # 17 # Numerierung für Einzelupdate -# Stand: 20.11.2023 +# Stand: 26.11.2023 # from kodi_six import xbmc, xbmcgui, xbmcaddon @@ -41,6 +41,16 @@ msg = "callfrom_router" PLog(msg) +# EPGCacheTime wie Haupt-PRG: +eci = SETTINGS.getSetting('pref_epg_intervall') +eci = re.search(u'(\d+) ', eci).group(1) # "12 Std.|1 Tag|5 Tage|10 Tage" +eci = int(eci) +PLog("eci: %d" % eci) +if eci == 12: # 12 Std. + EPGCacheTime = 43200 +else: + EPGCacheTime = eci * 86400 # 1-10 Tage + ADDON_ID = 'plugin.video.ardundzdf' SETTINGS = xbmcaddon.Addon(id=ADDON_ID) ADDON_PATH = SETTINGS.getAddonInfo('path') @@ -51,16 +61,15 @@ # Kopfbereich) abhängig von Setting pref_epgpreload + Abwesenheit # von EPGACTIVE (Setting "Recording TV-Live"/"EPG im Hintergrund # laden ..") -# Startverzögerung 10 sec, 2 sec-Ladeintervall -# Aktiv-Signal EPGACTIVE wird nach 12 Std. von +# Startverzögerung 10 sec +# Aktiv-Signal EPGACTIVE wird abhängig von pref_epg_intervall im # Haupt-PRG wieder entfernt. -# Dateilock nicht erf. - CacheTime hier und in EPG identisch +# Dateilock nicht erf. # 26.10.2020 Update der Datei livesenderTV.xml hinzugefügt - entf. ab # 09.10.2021 siehe update_single # def thread_getepg(EPGACTIVE, DICTSTORE, PLAYLIST): PLog('thread_getepg:') - CacheTime = 43200 # 12 Std.: (60*60)*12 wie EPG s.u. open(EPGACTIVE, 'w').close() # Aktiv-Signal setzen (DICT "EPGActive") xbmc.sleep(1000 * 10) # verzög. Start @@ -108,7 +117,6 @@ def update_single(PluginAbsPath): # nicht verwenden: addon.xml + settings.xml (CAddonSettings-error), # changelog.txt, slides.xml, ca-bundle.pem, Icons SINGLELIST = ["%s/%s" % (PluginAbsPath, "resources/livesenderTV.xml"), - "%s/%s" % (PluginAbsPath, "resources/podcast-favorits.txt"), "%s/%s" % (PluginAbsPath, "resources/settings.xml"), "%s/%s" % (PluginAbsPath, "resources/arte_lang.json"), "%s/%s" % (PluginAbsPath, "ardundzdf.py") @@ -301,12 +309,11 @@ def update_single(PluginAbsPath): def EPG(ID, mode=None, day_offset=None, load_only=False): PLog('EPG_ID: ' + ID) PLog(mode) - CacheTime = 43200 # 12 Std.: (60*60)*12 url="http://www.tvtoday.de/programm/standard/sender/%s.html" % ID Dict_ID = "EPG_%s" % ID PLog(url) - page = Dict("load", Dict_ID, CacheTime=CacheTime) + page = Dict("load", Dict_ID, CacheTime=EPGCacheTime) PLog(type(page)) if page == False or len(page) == 0: # Cache miss - vom Server holen page, msg = get_page(path=url) @@ -314,7 +321,7 @@ def EPG(ID, mode=None, day_offset=None, load_only=False): EPG_dict = get_data_web(page, Dict_ID) # Web -> 2-dim-Array EPG_rec -> Dict else: # EPG_rec = type list EPG_dict = page - PLog(len(page)) + PLog(len(str(page))) # today.de verwendet Unix-Format, Bsp. 1488830442 now,today,today_5Uhr,nextday,nextday_5Uhr = get_unixtime(day_offset)# lokale Unix-Zeitstempel holen + Offsets diff --git a/resources/lib/arte.py b/resources/lib/arte.py index a2395dc..d578537 100644 --- a/resources/lib/arte.py +++ b/resources/lib/arte.py @@ -8,7 +8,7 @@ # ################################################################################ # 37 # Numerierung für Einzelupdate -# Stand: 04.10.2023 +# Stand: 24.11.2023 # Python3-Kompatibilität: from __future__ import absolute_import # sucht erst top-level statt im akt. Verz. @@ -706,6 +706,8 @@ def Beitrag_Liste(url, title): # 14.01.2023 Korrektur "_de"-Endung in pid (falls pid=url) # 11.03.2023 bei Bedarf alternative HBBTV-Quellen nutzen, siehe # lokale Doku 00_Arte_HBBTV_Links +# 24.11.2023 Check api_opa und api_V2: wie bisher nur HLS-UHD-Quellen in +# api_V2 # def SingleVideo(img, title, pid, tag, summ, dur, geo, trailer=''): PLog("SingleVideo: " + pid) diff --git a/resources/lib/util.py b/resources/lib/util.py index db9bd2d..ac81659 100644 --- a/resources/lib/util.py +++ b/resources/lib/util.py @@ -1053,7 +1053,6 @@ def addDir(li, label, action, dirID, fanart, thumb, fparams, summary='', tagline li.addContextMenuItems(commands) xbmcplugin.addDirectoryItem(handle=HANDLE,url=add_url,listitem=li,isFolder=isFolder) - PLog('addDir_End') return diff --git a/resources/settings.xml b/resources/settings.xml index 18844d7..3320b92 100644 --- a/resources/settings.xml +++ b/resources/settings.xml @@ -53,7 +53,7 @@ - + @@ -62,6 +62,7 @@ +