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 Apr 30, 2023
1 parent a77bce9 commit ca85d52
Show file tree
Hide file tree
Showing 10 changed files with 1,191 additions and 3,011 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,11 +114,11 @@ Funktionen:
- Updates einzelner Bestandteile des Addons (Einzelupdate) zwischen den regulären Updates - Näheres siehe [Startpost im kodinerds-Forum](https://www.kodinerds.net/index.php/Thread/64244-RELEASE-Kodi-Addon-ARDundZDF/?postID=502022#post502022)

#### weitere Module (optional)
- ZDFmobile (gedacht als Alternative bei Ausfall der Webseite)
- ~~ZDFmobile~~ - entfernt ab Juni 2023 (obsolet)
- 3Sat
- funk
- ~~funk~~ - deaktiviert ab Mai 2023
- Kinderprogramme (z.Z. KIKA und ZDFtivi)
- TagesschauXL (https://www.tagesschau.de/)
- TagesschauXL
- phoenix (https://www.phoenix.de/)
- Arte-Kategorien
- "Zuletzt gesehen"-Funktion (im Tools-Menü)
Expand Down
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.6.9+matrix" provider-name="rols1 (rols1@gmx.de)">
<addon id="plugin.video.ardundzdf" name="ARDundZDF" version="4.7.0+matrix" provider-name="rols1 (rols1@gmx.de)">
<requires>
<import addon="xbmc.python" version="3.0.0"/>
<import addon="script.module.kodi-six" />
Expand Down
3,291 changes: 856 additions & 2,435 deletions ardundzdf.py

Large diffs are not rendered by default.

22 changes: 22 additions & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,28 @@ CHANGE HISTORY
max_col 97
--------------

30.04.2023 4.7.0
ARDPagination: get_page_content -> get_json_content (übersehen in V4.6.9).
get_json_content (ARD): key-Auswahl für "teasers" aktualisiert.
full_shows: fehlenden Return-Flag zum Funktionsstart gesetzt.
ARDStartRubrik (ARD): Cache für Startseite entfernt (obsolet - api-Call).
time_translate (util): Info verbleibende Tage (<= 6) bis Sendungsdatum
ergänzt, Anpassung ARDnew (get_json_content ARD_FlatListRec), Haupt-PRG
(ARDSportMediaPlayer, ZDF_get_teaserDetails, ZDF_get_content), 3sat (Start,
Sendereihe_Sendungen, get_teaserElement, get_zdfplayer_content, SingleBeitrag).
get_page (util): Rückgabe new_url bei Exeption auf leer geändert (Reuse
praktisch ausgeschlossen).
GetJsonByPath (util): Rückabe mit error-Text.
Audiothek: skip personenbezogene Beiträge (leer) in Audio_get_homescreen,
globale Var AUDIOSENDER entfernt - obsolet.
ZDF-Mediathek: komplett überarbeitet (Umstellung zdf.de -> zdf-cdn), einschl.
Serien-Erkennung.
ZDF-tivi: Sendereihe ZDFchen hinzugefügt.
TagesschauXL: Menüs der Livestreams an ARD-Änderungen angepasst (json-Quellen
-> ../livestreams/index.html), dto. Auswertung zu Tagesschau-Menüs + Tages-
themen. Wegfall Menüs: Nachtmagazin, Sendungsarchiv, #kurzerklaert, Weitere
Themen.

16.04.2023 4.6.9
Audio_get_items_single (Audiothek): Fix img-Auswertung (fehlte: '"').
get_page_content (ARD): neues Blockmerkmal nach ARD-Änderung (images).
Expand Down
49 changes: 29 additions & 20 deletions resources/lib/ARDnew.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
ICON_ARD_BARRIEREARM = 'ard-barrierearm.png'

ICON_SEARCH = 'ard-suche.png'
ICON_ZDF_SEARCH = 'zdf-suche.png'
ICON_DIR_FOLDER = "Dir-folder.png"
ICON_DIR_STRM = "Dir-strm.png"
ICON_SPEAKER = "icon-speaker.png"
Expand Down Expand Up @@ -452,7 +453,7 @@ def ARDRubriken(li, path="", page=""):

try:
obs = json.loads(page)
PLog(str(page)[:80])
PLog(str(obs)[:80])
widgets = obs["widgets"] # "teasers" hier leer
except Exception as exception:
PLog(str(exception))
Expand Down Expand Up @@ -1142,7 +1143,7 @@ def ARD_getStrmList(path, title, ID="ARD"):
head = u"Liste synchronisieren"
msg1 = u"Soll das Addon diese Liste regelmäßig abgleichen?"
msg2 = u"Intervall: %s Stunden" % sync_hour
ret = MyDialog(msg1=msg1, msg2=msg2, msg3='', ok=False, cancel='Abbruch', yes='OK', heading=head)
ret = MyDialog(msg1=msg1, msg2=msg2, msg3='', ok=False, cancel='Nein', yes='OK', heading=head)
if ret == 1: # Liste neu aufnehmen
strm.strm_synclist(mode="save", item=item)
line = "%6s | %15s | %s..." % ("NEU", list_title[:15], "Liste neu aufgenommen")
Expand Down Expand Up @@ -1450,18 +1451,12 @@ def ARDStartSingle(path, title, summary, ID='', mehrzS=''):
IsPlayable = xbmc.getInfoLabel('ListItem.Property(IsPlayable)') # 'true' / 'false'
PLog("IsPlayable: %s" % IsPlayable)
if len(elements) > 1:
if '_quality"' not in page: # bei Streamlinks bleiben wir hier
msg1 = u">%s< enthält keine Videoquellen aber Folgebeiträge." % title
if '_quality"' not in page: # Keine Quellen -> Abbruch
msg1 = u"[B]%s[/B] enthält keine Videoquellen" % title
msg2 = u"Mögliche Ursache: Altersbeschränkung"
msg3 = u"Das Addon zeigt die Folgebeiträge."
if IsPlayable == "false": # IsPlayable-Einträge nur mit Video-Quellen auswerten
PLog('%s Elemente -> ARDStartRubrik' % str(len(elements)))
MyDialog(msg1, msg2, msg3)
return ARDStartRubrik(path,title,ID='ARDStartSingle')
else:
msg3 = u"Sofortstart ist nicht möglich."
MyDialog(msg1, msg2, msg3)
return # hebt IsPlayable auf (Player-Error: skipping ..)
msg3 = u"Eine Suche in MediathekViewWeb könnte helfen."
MyDialog(msg1, msg2, msg3)
return # hebt IsPlayable auf (Player-Error: skipping ..)

if len(elements) == 0: # möglich: keine Video (dto. Web)
msg1 = u'keine Beiträge zu %s gefunden' % title
Expand Down Expand Up @@ -1933,6 +1928,8 @@ def SearchARDundZDFnew(title, query='', pagenr=''):

query_lable = query_ard.replace('+', ' ')
path = 'https://api.ardmediathek.de/search-system/mediathek/%s/search/vods?query=%s&pageNumber=%s&pageSize=24' % (sender, query_ard, pageNumber)
icon = R(ICON_SEARCH)
xbmcgui.Dialog().notification("ARD-Suche",query_lable,icon,1000, sound=False)
page, msg = get_page(path,JsonPage=True)

vodTotal = stringextract('"totalElements":', '}', page) # Beiträge?
Expand All @@ -1957,18 +1954,30 @@ def SearchARDundZDFnew(title, query='', pagenr=''):
fanart=R('suche_ardundzdf.png'), thumb=R('suche_ardundzdf.png'), tagline=tag_positiv, fparams=fparams)

#------------------------------------------------------------------ # 2. Suche ZDF
ZDF_Search_PATH = 'https://www.zdf.de/suche?q=%s&from=&to=&sender=alle+Sender&attrs=&contentTypes=episode&sortBy=date&page=%s'
ZDF_Search_PATH = 'https://zdf-cdn.live.cellular.de/mediathekV2/search?profile=cellular-5&q=%s&page=%s'
if pagenr == '': # erster Aufruf muss '' sein
pagenr = 1
path_zdf = ZDF_Search_PATH % (quote(query_zdf), pagenr)
page, msg = get_page(path=path_zdf, do_safe=False)
searchResult = stringextract('data-loadmore-result-count="', '"', page) # Anzahl Ergebnisse
PLog(searchResult);
path_zdf = ZDF_Search_PATH % (quote(query_zdf), pagenr)
path_zdf = transl_umlaute(path_zdf)

query_lable = (query_zdf.replace('%252B', ' ').replace('+', ' ')) # quotiertes ersetzen
query_lable = unquote(query_lable)
query_lable=py2_encode(query_lable); searchResult=py2_encode(searchResult);
icon = R(ICON_ZDF_SEARCH)
xbmcgui.Dialog().notification("ZDF-Suche",query_lable,icon,1000, sound=False)
page, msg = get_page(path_zdf) # json.load erst hier

if searchResult == '0' or 'class="artdirect"' not in page: # Sprung hierher
try:
jsonObject = json.loads(page)
searchResult = str(jsonObject["totalResultsCount"])
nextUrl = str(jsonObject["nextPageUrl"])
nextPage = str(jsonObject["nextPage"])
except:
searchResult=""; nextUrl=""; nextPage=""
PLog("searchResult: " + searchResult);
PLog("nextPage: " + nextPage);

query_lable=py2_encode(query_lable); searchResult=py2_encode(searchResult);
if searchResult == '': # Sprung hierher
label = "[B]ZDF[/B] | nichts gefunden zu: %s | neue Suche" % query_lable
title="Suche in ARD und ZDF"
title=py2_encode(title);
Expand Down
Loading

0 comments on commit ca85d52

Please sign in to comment.