diff --git a/config.py b/config.py index b1f9222..4d5ca1c 100644 --- a/config.py +++ b/config.py @@ -144,6 +144,12 @@ 'cfg_record_mask', "Record name mask", '%date% - %title%' +], + +[ +'cfg_xmltvtimeshift', +'Time shift for XMLTV data (in hours)', +'0' ] ] diff --git a/js/tvstreamrecord.basic.js b/js/tvstreamrecord.basic.js index 712ecb1..1f8f5d0 100644 --- a/js/tvstreamrecord.basic.js +++ b/js/tvstreamrecord.basic.js @@ -989,10 +989,14 @@ $(function() { toggledOn: function() { $("#cfg_xmltvinitpath").removeAttr("disabled"); $("#cfg_xmltvinitpath").removeClass("ui-state-disabled"); + $("#cfg_xmltvtimeshift").removeAttr("disabled"); + $("#cfg_xmltvtimeshift").removeClass("ui-state-disabled"); }, toggledOff: function() { $("#cfg_xmltvinitpath").prop("disabled", "true"); $("#cfg_xmltvinitpath").addClass("ui-state-disabled"); + $("#cfg_xmltvtimeshift").prop("disabled", "true"); + $("#cfg_xmltvtimeshift").addClass("ui-state-disabled"); } }); $("#cfg_switch_grab_auto").slickswitch({ diff --git a/lang/tvstreamrecord.dummy.json b/lang/tvstreamrecord.dummy.json index 48c9229..e352bf5 100644 --- a/lang/tvstreamrecord.dummy.json +++ b/lang/tvstreamrecord.dummy.json @@ -37,6 +37,7 @@ "Lenghten an EPG-record (delta before and after), [minutes]": "", "Enable XMLTV import": "", "Initial path for an XMLTV import": "", + "Time shift for XMLTV data (in hours)": "", "Enable stream scan/grab": "", "Maximal EPG scan duration per channel, [seconds] (default: '60')": "", "Time to perform daily EPG/XMLTV grab (hh:mm format, 24h based, default '0' for manual only)": "", diff --git a/lang/tvstreamrecord.german.json b/lang/tvstreamrecord.german.json index 9bb8a96..11b5a73 100644 --- a/lang/tvstreamrecord.german.json +++ b/lang/tvstreamrecord.german.json @@ -37,6 +37,7 @@ "Lenghten an EPG-record (delta before and after), [minutes]": "EPG Aufnahme verlängern um (vor und nach) [Minuten]", "Enable XMLTV import": "XMLTV-Import einschalten", "Initial path for an XMLTV import": "Suchpfad für XMLTV-Import", + "Time shift for XMLTV data (in hours)": "Zeitverschiebung für die XMLTV-Daten (in Stunden)", "Enable stream scan/grab": "Import aus Streams einschalten", "Maximal EPG scan duration per channel, [seconds] (default: '60')": "Maximale Importdauer pro Sender [Sekunden] (Vorgabe '60')", "Time to perform daily EPG/XMLTV grab (hh:mm format, 24h based, default '0' for manual only)": "Uhrzeit für täglichen automatischen Import (hh:mm Format, 24h-basiert, Vorgabe '0' zum Ausschalten)", diff --git a/lang/tvstreamrecord.russian.json b/lang/tvstreamrecord.russian.json index 89d00ab..e2b49a4 100644 --- a/lang/tvstreamrecord.russian.json +++ b/lang/tvstreamrecord.russian.json @@ -37,6 +37,7 @@ "Lenghten an EPG-record (delta before and after), [minutes]": "Продлевать EPG записи на (до и после) [мин.])", "Enable XMLTV import": "Включить XMLTV-импорт", "Initial path for an XMLTV import": "Адрес для XMLTV-импорта", + "Time shift for XMLTV data (in hours)": "Сдвиг пво времени данных XMLTV (в часах)", "Enable stream scan/grab": "Включить импорт из потокового видео", "Maximal EPG scan duration per channel, [seconds] (default: '60')": "Максимальная длительность импортирования одного канала [сек.] (по умолчанию '60')", "Time to perform daily EPG/XMLTV grab (hh:mm format, 24h based, default '0' for manual only)": "Время для ежедневного импорта из выбранных источников (формат hh:mm, 24 часа, по умолчанию '0' для ручного импорта)", diff --git a/views/config.tpl b/views/config.tpl index ca5e719..f98f4d4 100644 --- a/views/config.tpl +++ b/views/config.tpl @@ -66,6 +66,7 @@ §Lenghten an EPG-record (delta before and after), [minutes]§ §Enable XMLTV import§ §Initial path for an XMLTV import§ +§Time shift for XMLTV data (in hours)§ §Enable stream scan/grab§ §Maximal EPG scan duration per channel, [seconds] (default: '60')§ §Time to perform daily EPG/XMLTV grab (hh:mm format, 24h based, default '0' for manual only)§ diff --git a/xmltv.py b/xmltv.py index 6bd580c..564b4cb 100644 --- a/xmltv.py +++ b/xmltv.py @@ -123,12 +123,18 @@ def getProgList(ver=''): return -def getProg(strp, channellist=[]): +def getProg(strp, channellist=[]): + deltaxmltv_txt = config.cfg_xmltvtimeshift + try: + deltaxmltv = timedelta(hours=float(config.cfg_xmltvtimeshift)) + except: + deltaxmltv = timedelta(hours=0) + sqllist = [] for attr,innertxt in getList(strp, 'programme'): - dt1 = datetime.strptime(getAttr(attr, "start")[0:14],"%Y%m%d%H%M%S") - dt2 = datetime.strptime(getAttr(attr, "stop")[0:14],"%Y%m%d%H%M%S") + dt1 = datetime.strptime(getAttr(attr, "start")[0:14],"%Y%m%d%H%M%S") + deltaxmltv + dt2 = datetime.strptime(getAttr(attr, "stop")[0:14],"%Y%m%d%H%M%S") + deltaxmltv p_id = getAttr(attr, "channel") if len(channellist)==0 or p_id in channellist: desc = ""