Skip to content

Commit

Permalink
Änderungen / Korrekturen siehe changelog.txt
Browse files Browse the repository at this point in the history
  • Loading branch information
rols1 committed Nov 26, 2023
1 parent 6db09b5 commit c6b187e
Show file tree
Hide file tree
Showing 7 changed files with 65 additions and 39 deletions.
2 changes: 1 addition & 1 deletion addon.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.ardundzdf" name="ARDundZDF" version="4.9.0+nexus" provider-name="rols1 (rols1@gmx.de)">
<addon id="plugin.video.ardundzdf" name="ARDundZDF" version="4.9.1+nexus" provider-name="rols1 (rols1@gmx.de)">
<requires>
<import addon="xbmc.python" version="3.0.1"/>
<import addon="script.module.kodi-six" />
Expand Down
45 changes: 20 additions & 25 deletions ardundzdf.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@

# VERSION -> addon.xml aktualisieren
# <nr>163</nr> # 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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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),
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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=''
Expand Down
24 changes: 23 additions & 1 deletion changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
'<!DOCTYPE html>' 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.
Expand Down Expand Up @@ -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
Expand Down
25 changes: 16 additions & 9 deletions resources/lib/EPG.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#
# 20.11.2019 Migration Python3 Modul kodi_six + manuelle Anpassungen
# <nr>17</nr> # Numerierung für Einzelupdate
# Stand: 20.11.2023
# Stand: 26.11.2023
#

from kodi_six import xbmc, xbmcgui, xbmcaddon
Expand Down Expand Up @@ -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')
Expand All @@ -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
Expand Down Expand Up @@ -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")
Expand Down Expand Up @@ -301,20 +309,19 @@ 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)
if '<!DOCTYPE html>' in page: # Webseite
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
Expand Down
4 changes: 3 additions & 1 deletion resources/lib/arte.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#
################################################################################
# <nr>37</nr> # 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.
Expand Down Expand Up @@ -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)
Expand Down
1 change: 0 additions & 1 deletion resources/lib/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
3 changes: 2 additions & 1 deletion resources/settings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
<setting label="Aufnehmen mit EPG: Nachlauf" type="select" values="00:00:00 = 0 Minuten|00:05:00 = 5 Minuten|00:15:00 = 15 Minuten|00:30:00 = 30 Minuten" default="00:00:00 = 0 Minuten" id="pref_post_rec"/>
<setting label="Aufnehmen mit EPG: max. Größe der Aufnahmeliste (Anzahl)" type="select" values="10|25|50|100" default="10" id="pref_max_reclist"/>
<setting type="sep"/>
<setting label="EPG im Hintergrund laden (12 Std.-Intervall)" type="bool" id="pref_epgpreload" default="false"/>
<setting label="EPG im Hintergrund laden (Intervall siehe Addon-Cache)" type="bool" id="pref_epgpreload" default="false"/>
</category>

<category label="Addon-Cache: Löschfristen (Tage)">
Expand All @@ -62,6 +62,7 @@
<setting label="Bildersammlungen (Slide Shows)" type="select" values="1|10|30|100" default="30" id="pref_SLIDES_store_days"/>
<setting label="Inhaltstexte (im Voraus geladen)" type="select" values="5|10|30|100" default="30" id="pref_TEXTE_store_days"/>
<setting label="ARD- und ZDF-TV-Livestream-Quellen" type="select" values="0|1|5|10|20|60" default="10" id="pref_tv_store_days"/>
<setting label="EPG: Intervall für die Aktualisierung" type="select" values="12 Std.|1 Tag|5 Tage|10 Tage" default="12 Std." id="pref_epg_intervall"/>
</category>

<category label="Favoriten / Merkliste / strm-Dateien">
Expand Down

0 comments on commit c6b187e

Please sign in to comment.