def updateSchedules(self, ch_list, progress_callback):
sd = SdAPI()
station_ids = []
for ch in ch_list:
station_ids.append(ch.id)
# make sure date is in UTC!
date_local = datetime.datetime.now()
is_dst = time.daylight and time.localtime().tm_isdst > 0
utc_offset = time.altzone if is_dst else time.timezone
td_utc = datetime.timedelta(seconds=utc_offset)
date = date_local + td_utc
xbmc.log("[%s] Local date '%s' converted to UTC '%s'" %
(ADDON.getAddonInfo('id'), str(date_local), str(date)), xbmc.LOGDEBUG)
# [{'station_id': station_id, 'p_id': p_id, 'start': start,
# 'dur': dur, 'title': 'abc', 'desc': 'abc', 'logo': ''}, ... ]
elements_parsed = 0
schedules = sd.get_schedules(station_ids, date, progress_callback)
for prg in schedules:
start = self.to_local(prg['start'])
end = start + datetime.timedelta(seconds=int(prg['dur']))
result = Program(prg['station_id'], prg['title'], '', start, end, prg['desc'],'',
imageSmall=prg['logo'])
elements_parsed += 1
if result:
if progress_callback and elements_parsed % 100 == 0:
percent = 100.0 / len(schedules) * elements_parsed
if not progress_callback(percent):
raise SourceUpdateCanceledException()
yield result
评论列表
文章目录