From cb159d1ff8643f499e282e2f15ddb3e7c9efa6cc Mon Sep 17 00:00:00 2001 From: rols1 Date: Tue, 18 Apr 2023 17:50:07 +0200 Subject: [PATCH] Einzelupdate ardundzdf.py, ARDnew.py, my3Sat.py, util.py --- ardundzdf.py | 10 +++++----- resources/lib/ARDnew.py | 24 +++++++++++------------- resources/lib/my3Sat.py | 30 +++++++++++++++++++++++++++--- resources/lib/util.py | 28 +++++++++++++++++++++++++--- 4 files changed, 68 insertions(+), 24 deletions(-) diff --git a/ardundzdf.py b/ardundzdf.py index 22e04bf..bedd65c 100644 --- a/ardundzdf.py +++ b/ardundzdf.py @@ -55,9 +55,9 @@ # +++++ ARDundZDF - Addon Kodi-Version, migriert von der Plexmediaserver-Version +++++ # VERSION -> addon.xml aktualisieren -# 95 # Numerierung für Einzelupdate +# 96 # Numerierung für Einzelupdate VERSION = '4.6.9' -VDATE = '17.04.2023' +VDATE = '18.04.2023' # (c) 2019 by Roland Scholz, rols1@gmx.de @@ -3516,7 +3516,7 @@ def ARDSportMediaPlayer(li, item): avail = stringextract('av_original_air_time":"', '"', cont) if avail: - verf = time_translate(avail) + verf = time_translate(avail, day_warn=True) chapter = stringextract('chapter1":"', '"', cont) creator = stringextract('creator":"', '"', cont) @@ -8613,7 +8613,7 @@ def ZDF_get_teaserDetails(page, NodePath='', sophId=''): title = unescape(title); title = repl_json_chars(py2_decode(title)); enddate = stringextract('-end-date="', '"', page) # kann leer sein, wie get_teaserElement - enddate = time_translate(enddate, add_hour=0) # Abgleich summer_time entfällt für ZDF + enddate = time_translate(enddate, add_hour=0, day_warn=True) # Abgleich summer_time entfällt für ZDF path = stringextract('plusbar-url="', '"', page) if path == '': @@ -9217,7 +9217,7 @@ def ZDF_get_content(li, page, ref_path, ID=None, sfilter='Alle ZDF-Sender', skip plusbar_title = stringextract('plusbar-title="', '"', rec) # Bereichs-, nicht Einzeltitel, nachrangig plusbar_path = stringextract('plusbar-url="', '"', rec) # plusbar nicht vorh.? - sollte nicht vorkommen enddate = stringextract('plusbar-end-date="', '"', rec) # kann leer sein - enddate = time_translate(enddate, add_hour=False) # Abgleich summer_time entfällt für ZDF + enddate = time_translate(enddate, add_hour=False, day_warn=True)# Abgleich summer_time entfällt für ZDF PLog('plusbar_path: ' + plusbar_path); PLog('ref_path: %s' % ref_path); PLog('enddate: ' + enddate); if plusbar_path == '': diff --git a/resources/lib/ARDnew.py b/resources/lib/ARDnew.py index 258a72a..fc1defb 100644 --- a/resources/lib/ARDnew.py +++ b/resources/lib/ARDnew.py @@ -10,8 +10,8 @@ # 21.11.2019 Migration Python3 Modul kodi_six + manuelle Anpassungen # ################################################################################ -# 40 # Numerierung für Einzelupdate -# Stand: 17.04.2023 +# 41 # Numerierung für Einzelupdate +# Stand: 18.04.2023 # Python3-Kompatibilität: from __future__ import absolute_import # sucht erst top-level statt im akt. Verz. @@ -431,6 +431,9 @@ def img_preload(ID, path, title, caller, icon=ICON_MAIN_ARD): #--------------------------------------------------------------------------------------------------- # Auflistung der Rubriken in json-Inhalt page (json bei html-Seite # in script id="fetchedContextValue") +# Hinw.: vorerst Verzicht auf ev. Topnavigation (Submenüs), außer +# Sportseite +# def ARDRubriken(li, path="", page=""): PLog('ARDRubriken:') li_org=li @@ -614,6 +617,7 @@ def ARDStartRegion(path, title, widgetID='', ID=''): # # Aufrufe: Rubriken aus ARDStart, Sendereihen aus A-Z-Seiten, Mehrfachbeiträge aus ARDSearchnew # 28.05.2020 getrennte Swiper-Auswertung entfällt nach Änderung der ARD-Seiten +# 18.04.2023 Cache für Startseite entfällt (obsolet - api-Call) # def ARDStartRubrik(path, title, widgetID='', ID='', img=''): PLog('ARDStartRubrik: %s' % ID); PLog(title); PLog(path) @@ -629,15 +633,9 @@ def ARDStartRubrik(path, title, widgetID='', ID='', img=''): else: li = home(li, ID='ARD Neu') # Home-Button - page = False - if '/editorials/' in path == False: # nur kompl. Startseite aus Cache laden (nicht Rubriken) - if ID != 'ARDStartSingle': - page = Dict("load", 'ARDStartNEW_%s' % sendername, CacheTime=ARDStartCacheTime) # Seite aus Cache laden - - if page == False: # keine Startseite od. Cache miss - page, msg = get_page(path=path, GetOnlyRedirect=True) - path = page - page, msg = get_page(path=path) + page, msg = get_page(path=path, GetOnlyRedirect=True) + path = page + page, msg = get_page(path=path) if page == '': msg1 = "Fehler in ARDStartRubrik: %s" % title msg2 = msg @@ -968,7 +966,7 @@ def ARD_FlatListRec(item, vers): if up_low(fsk) == "NONE": fsk = "ohne" end = stringextract('availableTo":"', '"', item) - end = time_translate(end) + end = time_translate(end, day_warn=True) end = u"[B]Verfügbar bis [COLOR darkgoldenrod]%s[/COLOR][/B]" % end # geo = stringextract('Rating":"', '"', item) # Geo fehlt dauer = stringextract('"duration":', ',', item) @@ -1336,7 +1334,7 @@ def get_json_content(li, page, ID, mark='', mehrzS=''): if "live" not in typ: # nicht in Livestreams if verf == None: verf="" - verf = time_translate(verf) + verf = time_translate(verf, day_warn=True) if verf: summ = u"[B]Verfügbar bis [COLOR darkgoldenrod]%s[/COLOR][/B]\n\n%s" % (verf, summ) if "broadcastedOn" in s: diff --git a/resources/lib/my3Sat.py b/resources/lib/my3Sat.py index 22e9cb4..945b316 100644 --- a/resources/lib/my3Sat.py +++ b/resources/lib/my3Sat.py @@ -11,8 +11,8 @@ # 18.11.2019 Migration Python3 Modul kodi_six + manuelle Anpassungen # ################################################################################ -# 8 # Numerierung für Einzelupdate -# Stand: 28.03.2023 +# 9 # Numerierung für Einzelupdate +# Stand: 18.04.2023 # Python3-Kompatibilität: from __future__ import absolute_import # sucht erst top-level statt im akt. Verz. @@ -437,6 +437,11 @@ def SendungenDatum(SendDate, title): descr = cleanhtml(descr); zeit = stringextract('class="time">', '', '', '', '', page) dauer = stringextract('icon-opaque is-not-selected', '/span>', page) dauer = stringextract('class="label">', '<', dauer) # label allein unsicher (Bsp. Vorab) + + enddate = stringextract('-end-date="', '"', page) # kann leer sein + enddate = time_translate(enddate, add_hour=0, day_warn=True) + if dauer and enddate: + dauer = "%s | [B]Verfügbar bis [COLOR darkgoldenrod]%s[/COLOR][/B]" % (dauer, enddate) + + path = stringextract('href="', '"', page) if path.startswith('http') == False: path = DreiSat_BASE + path @@ -1476,6 +1495,11 @@ def get_zdfplayer_content(li, page): title = (title.replace('\\"', '').replace('"', '')) dauer = stringextract('duration": "', '",', videoinfos) # Bsp. 2 min + enddate = stringextract('-end-date="', '"', page) # get_teaserElement + enddate = time_translate(enddate, add_hour=0, day_warn=True) + if dauer and enddate: + dauer = "%s | [B]Verfügbar bis [COLOR darkgoldenrod]%s[/COLOR][/B]" % (dauer, enddate) + play_id = stringextract('zdfplayer-id="', '"', rec) # z.B. die-anstalt-vom-5-oktober-2021-100 path = stringextract('embed_content": "', '"', rec) diff --git a/resources/lib/util.py b/resources/lib/util.py index 5534865..3c3b4be 100644 --- a/resources/lib/util.py +++ b/resources/lib/util.py @@ -11,8 +11,8 @@ # 02.11.2019 Migration Python3 Modul future # 17.11.2019 Migration Python3 Modul kodi_six + manuelle Anpassungen # -# 45 # Numerierung für Einzelupdate -# Stand: 15.04.2023 +# 46 # Numerierung für Einzelupdate +# Stand: 18.04.2023 # Python3-Kompatibilität: from __future__ import absolute_import @@ -1971,7 +1971,7 @@ def seconds_translate(seconds, days=False): # Korr.-Faktor hour_info entfällt. add_hour jetzt Flag für Abgleich mit Tab. summer_time (False # bei "Verfügbar bis..") # -def time_translate(timecode, add_hour=True): +def time_translate(timecode, add_hour=True, day_warn=False): PLog("time_translate: " + timecode) # summer_time aus www.ptb.de, konvertiert zum date_format (s.u.): @@ -2019,6 +2019,28 @@ def time_translate(timecode, add_hour=True): new_ts = ts + datetime.timedelta(hours=add_hour) # add-Faktor addieren ret_ts = new_ts.strftime("%d.%m.%Y %H:%M") PLog(ret_ts) + + if day_warn: # Info, Bsp.: NOCH 5 TAGE + today = datetime.datetime.today() + sday = new_ts + dif = str(sday-today) # 18 days, 15:33:08.596024 + PLog(new_ts); + PLog("sday-today: %s" % dif) + try: + if dif.find("day") < 0: # nur Stunden: 16:32:05.225575 + dif = "1" + else: + dif = re.search(u'(\d+) day', dif).group(1) + except Exception as exception: + PLog(str(exception)) + dif="" + PLog("dif: %s" % dif) + if dif and int(dif) <= 6: + if dif == "1": + ret_ts = "%s | NOCH 1 TAG!" % ret_ts + else: + ret_ts = "%s | NOCH %s TAGE!" % (ret_ts, dif) + return ret_ts except Exception as exception: PLog(str(exception))