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 Aug 12, 2020
1 parent 4b31e83 commit d6f6a42
Show file tree
Hide file tree
Showing 7 changed files with 83 additions and 11 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="3.2.6" provider-name="rols1 (rols1@gmx.de)">
<addon id="plugin.video.ardundzdf" name="ARDundZDF" version="3.2.7" provider-name="rols1 (rols1@gmx.de)">
<requires>
<import addon="xbmc.python" version="2.25.0"/>
<import addon="script.module.kodi-six" />
Expand Down
17 changes: 14 additions & 3 deletions ardundzdf.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@
# +++++ ARDundZDF - Addon Kodi-Version, migriert von der Plexmediaserver-Version +++++

# VERSION -> addon.xml aktualisieren
VERSION = '3.2.6'
VDATE = '07.08.2020'
VERSION = '3.2.7'
VDATE = '12.08.2020'

#
#
Expand Down Expand Up @@ -5674,12 +5674,23 @@ def TVLiveRecordSender(title):
#
# 29.06.0219 Erweiterung Sendung aufnehmen, Call K-Menü <- EPG_ShowSingle
# Check auf Setting pref_epgRecord in EPG_ShowSingle
# Todo: bei Wegfall m3u8-Verfahren Mehrkanal-Check entf. - dto. in LiveRecord
#
def ProgramRecord(url, sender, title, descr, start_end):
PLog('ProgramRecord:')
PLog(url); PLog(sender); PLog(title);
PLog(start_end);

import resources.lib.m3u8 as m3u8
body, new_url = m3u8.get_m3u8_body(url) # Check Mehrkanal-m3u8 vorschalten
if '#EXT-X-MEDIA:TYPE=AUDIO' in body: # Mehrkanal-m3u8 -> Hinw. ffmpeg, Abbruch
msg1 = "Mehrkanalstream - ffmpeg erforderlich!"
msg2 = "Bitte in Settings <Recording TV-Live> die Option"
msg3 = "<Aufnehmen/Recording ohne ffmpeg> ausschalten"
PLog(msg1)
MyDialog(msg1, msg2, msg3)
return

now = EPG.get_unixtime(onlynow=True)

start, end = start_end.split('|') # 1593627300|1593633300
Expand Down Expand Up @@ -8295,7 +8306,7 @@ def get_formitaeten(sid, apiToken1, apiToken2, ID=''):
duration = stringextract('"value":', '}', duration).strip()
PLog(duration)
if duration:
duration = (int(duration) / 1000) / 60 # Rundung auf volle Minuten reicht hier
duration = int((int(duration) / 1000) / 60) # Rundung auf volle Minuten reicht hier
duration = max(1, duration) # 1 zeigen bei Werten < 1
duration = str(duration) + " min"
PLog('duration: ' + duration)
Expand Down
7 changes: 7 additions & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,13 @@ CHANGE HISTORY
max_col 97
--------------

12.08.2020 3.2.7
Abbruch von m3u8-Aufnahmen bei Mehrkanal-Streamlinks: Checks + Abbruch-Dialog
in LiveRecord (Modul util) + ProgramRecord.
Neues Kontextmenü "Umschalter Sofortstart/Downloads": Anpassung in addDir
(util), zusätzliche Funktion switch_Setting (util).
get_formitaeten (ZDF): Rundung für duration-Werte ergänzt.


07.08.2020 3.2.6
Sendereihe_Sendungen (3sat): unescape title.
Expand Down
Binary file removed resources/__init__.pyo
Binary file not shown.
4 changes: 2 additions & 2 deletions resources/lib/m3u8.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#
####################################################################################################
# Start 16.07.2020
# Stand 06.08.2020
# Stand 10.08.2020


# Python3-Kompatibilität:
Expand Down Expand Up @@ -273,7 +273,7 @@ def Main_m3u8(m3u8_url, dest_video, duration, JobID):
global SESSION_TS_URL
SESSION_TS_URL=''

body, new_url = get_m3u8_body(m3u8_url) # gesamte m3u8-Seite
body, new_url = get_m3u8_body(m3u8_url) # gesamte m3u8-Seite
# PLog(body)
if '#EXT-X-TARGETDURATION' in body: # reclink in livesenderTV.xml (DasErste)
PLog('reclink, ohne master.m3u8') # master.m3u8 entfällt
Expand Down
62 changes: 58 additions & 4 deletions resources/lib/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
# 02.11.2019 Migration Python3 Modul future
# 17.11.2019 Migration Python3 Modul kodi_six + manuelle Anpassungen
#
# Stand 26.07.2020
# Stand 11.08.2020

# Python3-Kompatibilität:
from __future__ import absolute_import
Expand Down Expand Up @@ -70,6 +70,8 @@

FANART = xbmc.translatePath('special://home/addons/' + ADDON_ID + '/fanart.jpg')
ICON = xbmc.translatePath('special://home/addons/' + ADDON_ID + '/icon.png')
ICON_TOOLS = "icon-tools.png"

# Github-Icons zum Nachladen aus Platzgründen
ICON_MAINXL = 'https://github.com/rols1/PluginPictures/blob/master/ARDundZDF/TagesschauXL/tagesschau.png?raw=true'

Expand Down Expand Up @@ -685,12 +687,31 @@ def addDir(li, label, action, dirID, fanart, thumb, fparams, summary='', tagline
add_url = PLUGIN_URL+"?action="+action+"&dirID="+dirID+"&fanart="+fanart+"&thumb="+thumb+quote(fparams)
PLog("addDir_url: " + unquote(add_url)[:200])

# todo: Ausschluss-Filter
if cmenu: # Kontextmenüs Merkliste hinzufügen

# ------------------------------- # Kontextmenüs
if cmenu: # default: True
Plot = Plot.replace('\n', '||') # || Code für LF (\n scheitert in router)
# PLog('Plot: ' + Plot)
fparams_folder=''; fparams_filter=''; fparams_delete='';
fparams_change=''; fparams_record=''; fparams_recordLive='';
fparams_setting_sofortstart=''

if filterstatus != 'set': # Doppel im Hauptmenü vermeiden (s. home)
if SETTINGS.getSetting('pref_video_direct') == 'true': # ständig: Umschalter Settings
menu_entry = "Sofortstart AUS / Downl. EIN"
msg1 = "Video-Sofortstart AUS"
msg2 = "Downloads EIN"
else:
menu_entry = "Sofortstart EIN / Downl. AUS"
msg1 = "Video-Sofortstart EIN"
msg2 = "Downloads AUS"
icon = R(ICON_TOOLS) # ständig: Umschalter Settings
fp = {'ID': 'pref_video_direct', 'msg1': msg1,\
'msg2': msg2, 'icon': quote_plus(icon), 'delay': '3000'}
fparams_setting_sofortstart = "&fparams={0}".format(fp)
PLog("fparams_setting_sofortstart: " + fparams_setting_sofortstart[:100])
fparams_setting_sofortstart = quote_plus(fparams_setting_sofortstart)

if merkname: # Aufrufer ShowFavs (Settings: Ordner)
if SETTINGS.getSetting('pref_watchlist') == 'true': # Merkliste verwenden
# Param name reicht für folder + filter # Ordner ändern / Filtern
Expand Down Expand Up @@ -795,6 +816,13 @@ def addDir(li, label, action, dirID, fanart, thumb, fparams, summary='', tagline
if fparams_recordLive: # Aufrufer EPG_ShowAll -> LiveRecord
commands.append(('Recording TV-Live', 'RunScript(%s, %s, ?action=dirList&dirID=LiveRecord%s)' \
% (MY_SCRIPT, HANDLE, fparams_recordLive)))

if fparams_setting_sofortstart:
MY_SCRIPT=xbmc.translatePath('special://home/addons/%s/ardundzdf.py' % (ADDON_ID))
commands.append((menu_entry, 'RunScript(%s, %s, ?action=dirList&dirID=switch_Setting%s)' \
% (MY_SCRIPT, HANDLE, fparams_setting_sofortstart)))
PLog(MY_SCRIPT); PLog(fparams_setting_sofortstart)


li.addContextMenuItems(commands)

Expand Down Expand Up @@ -2063,6 +2091,7 @@ def MakeDetailText(title, summary,tagline,quality,thumb,url): # Textdatei für D
# Verlagert nach util (import aus ardundzdf klappt nicht in epgRecord).
# 24.07.2020 Anpassung für Modul m3u8: JobID wird für KillFile verwendet, für
# LiveRecording wird neuer Aufnahme-Job erzeugt (via JobMain 'setjob')
# Todo: bei Wegfall m3u8-Verfahren Mehrkanal-Check entf. - dto. in ProgramRecord
#
def LiveRecord(url, title, duration, laenge, epgJob='', JobID=''):
PLog('LiveRecord:')
Expand Down Expand Up @@ -2112,9 +2141,17 @@ def LiveRecord(url, title, duration, laenge, epgJob='', JobID=''):
url = os.path.join(M3U8STORE, url) # rtmp-Url's nicht lokal
url = '"%s"' % url # Pfad enthält Leerz. - für ffmpeg in "" kleiden

if SETTINGS.getSetting('pref_m3u8_get') == 'true':
if SETTINGS.getSetting('pref_m3u8_get') == 'true':
from threading import Thread
import resources.lib.m3u8 as m3u8
body, new_url = m3u8.get_m3u8_body(url) # Check Mehrkanal-m3u8 vorschalten
if '#EXT-X-MEDIA:TYPE=AUDIO' in body: # Mehrkanal-m3u8 -> Hinw. ffmpeg, Abbruch
msg1 = "Mehrkanalstream - ffmpeg erforderlich!"
msg2 = "Bitte in Settings <Recording TV-Live> die Option"
msg3 = "<Aufnehmen/Recording ohne ffmpeg> ausschalten"
PLog(msg1)
MyDialog(msg1, msg2, msg3)
return

if epgJob: # Job existiert bereits
play_url = R('ttsMP3_Monitor_Aufnahme_gestartet.mp3')
Expand Down Expand Up @@ -2235,6 +2272,23 @@ def check_Setting(ID):
return False
return True

#---------------------------------------------------------------------------------------------------
# schaltet boolean-Setting ID um und gibt Notification aus
# Aufrufer: Kontextmenü (Umschalter Downloads/Sofortstart)
#
def switch_Setting(ID, msg1,msg2,icon,delay):
PLog('switch_Setting:')
delay = int(delay)

if SETTINGS.getSetting(ID) == 'true':
SETTINGS.setSetting(ID, 'false')
else:
SETTINGS.setSetting(ID, 'true')

xbmc.executebuiltin('Container.Refresh')
xbmcgui.Dialog().notification(msg1,msg2,icon,delay)
return

####################################################################################################
# PlayVideo aktuell 23.03.2019:
# Sofortstart + Resumefunktion, einschl. Anzeige der Medieninfo:
Expand Down
2 changes: 1 addition & 1 deletion resources/settings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
</category>

<category label="Download Einstellungen">
<setting label="Downloads freischalten" type="bool" id="pref_use_downloads" default="false"/>
<setting label="Downloads freischalten (auch im Kontextmenü möglich)" type="bool" id="pref_use_downloads" default="false"/>
<setting label="alle verfuegbaren Video-Qualitaeten anbieten" type="bool" id="pref_show_qualities" default="false"/>
<setting label="Dateinamen aus dem Titel erzeugen (statt Download_{Datum}_{Uhrzeit})" type="bool" id="pref_generate_filenames" default="false"/>
<setting label="Downloadverzeichnis (auch für Recording TV-Live)" type="folder" option="writeable" id="pref_download_path" default=""/>
Expand Down

0 comments on commit d6f6a42

Please sign in to comment.