Skip to content

Commit

Permalink
Einzelupdate ardundzdf.py, ARDnew.py, my3Sat.py, util.py
Browse files Browse the repository at this point in the history
  • Loading branch information
rols1 committed Apr 18, 2023
1 parent 3f09c58 commit cb159d1
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 24 deletions.
10 changes: 5 additions & 5 deletions ardundzdf.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,9 @@
# +++++ ARDundZDF - Addon Kodi-Version, migriert von der Plexmediaserver-Version +++++

# VERSION -> addon.xml aktualisieren
# <nr>95</nr> # Numerierung für Einzelupdate
# <nr>96</nr> # Numerierung für Einzelupdate
VERSION = '4.6.9'
VDATE = '17.04.2023'
VDATE = '18.04.2023'


# (c) 2019 by Roland Scholz, rols1@gmx.de
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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 == '':
Expand Down Expand Up @@ -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 == '':
Expand Down
24 changes: 11 additions & 13 deletions resources/lib/ARDnew.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
# 21.11.2019 Migration Python3 Modul kodi_six + manuelle Anpassungen
#
################################################################################
# <nr>40</nr> # Numerierung für Einzelupdate
# Stand: 17.04.2023
# <nr>41</nr> # Numerierung für Einzelupdate
# Stand: 18.04.2023

# Python3-Kompatibilität:
from __future__ import absolute_import # sucht erst top-level statt im akt. Verz.
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand All @@ -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
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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:
Expand Down
30 changes: 27 additions & 3 deletions resources/lib/my3Sat.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
# 18.11.2019 Migration Python3 Modul kodi_six + manuelle Anpassungen
#
################################################################################
# <nr>8</nr> # Numerierung für Einzelupdate
# Stand: 28.03.2023
# <nr>9</nr> # Numerierung für Einzelupdate
# Stand: 18.04.2023

# Python3-Kompatibilität:
from __future__ import absolute_import # sucht erst top-level statt im akt. Verz.
Expand Down Expand Up @@ -437,6 +437,11 @@ def SendungenDatum(SendDate, title):
descr = cleanhtml(descr);
zeit = stringextract('class="time">', '</', rec)
dauer = stringextract('class="label">', '</', rec)
# enddate leer bei Verpasst, anders als üblich (s. get_teaserElement)
#enddate = stringextract('-end-date="', '"', rec)
#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)

sendung = u"[COLOR blue]%s[/COLOR] | %s" % (zeit, sendung)
tagline = title_org + ' | ' + zeit
Expand Down Expand Up @@ -529,7 +534,7 @@ def Start(name, path, rubrik=''):

dauer = stringextract('class="label">', '</', rec)# 2 min
endDate = stringextract('-end-date="', '"', rec) # 2020-07-15T04:00:00.000Z
endDate = time_translate(endDate)
endDate = time_translate(endDate, day_warn=True)

tag = dauer
if endDate:
Expand Down Expand Up @@ -1166,6 +1171,13 @@ def Sendereihe_Sendungen(li, path, title, img='', page='', skip_lazyload='', ski
if dur:
tagline = tagline + ' | ' + dur

enddate = stringextract('-end-date="', '"', rec) # s.a. get_teaserElement
enddate = time_translate(enddate, add_hour=0, day_warn=True)
if enddate:
enddate = "[B]Verfügbar bis [COLOR darkgoldenrod]%s[/COLOR][/B]" % enddate
tagline = "%s | %s" % (tagline, enddate)


if href.endswith('zdf.de/') or '/einstellungen' in href or u'Suche öffnen' in title or title=='':
continue
if href == DreiSat_BASE:
Expand Down Expand Up @@ -1377,6 +1389,13 @@ def get_teaserElement(rec):
tag = stringextract('<span>', '</span>', 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
Expand Down Expand Up @@ -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)
Expand Down
28 changes: 25 additions & 3 deletions resources/lib/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
# 02.11.2019 Migration Python3 Modul future
# 17.11.2019 Migration Python3 Modul kodi_six + manuelle Anpassungen
#
# <nr>45</nr> # Numerierung für Einzelupdate
# Stand: 15.04.2023
# <nr>46</nr> # Numerierung für Einzelupdate
# Stand: 18.04.2023

# Python3-Kompatibilität:
from __future__ import absolute_import
Expand Down Expand Up @@ -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.):
Expand Down Expand Up @@ -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))
Expand Down

0 comments on commit cb159d1

Please sign in to comment.