Ticket #10847 (accepted Bug Report - General)
Opened 11 months ago
Last modified 9 months ago
Time conversion error
|Reported by:||Andreas Reibring <andreas@…>||Owned by:||wagnerrp|
|Component:||Bindings - Python||Version:||Master Head|
After upgrading to 0.25 my old scripts using MythTV.MythXML.getProgramDetails() stopped working, giving either urllib2.HTTPError or httplib.BadStatusLine errors. (Traceback from the Python interpreter attached.) The reason seems to be that getProgramDetails() now expects the starttime argument in UTC. However, when passed a UTC starttime argument, the method returns a Program object with an incorrect starttime attribute that is neither UTC nor local time.
Example: The news program 'Rapport' starts at 19:30 local Swedish time (17:30 UTC).
>>> prog = MythTV.MythXML().getProgramDetails(u'6011', u'2012-06-20 17:30:00') >>> print prog.title, prog.starttime Rapport 2012-06-20 18:30:00
I believe that the problem is the time representation conversion in MythTV.utility.datetime.timestamp(). This method is calling time.mktime(), which expects a struct_time in local time as argument, with a struct_time in UTC. The problem can be resolved by calling calendar.timegm() instead. (See table on http://docs.python.org/library/time.html) Patch is attached.
Changed 11 months ago by Andreas Reibring <andreas@…>
comment:1 Changed 9 months ago by wagnerrp
- Status changed from new to accepted
- Milestone changed from unknown to 0.26
comment:2 Changed 9 months ago by wagnerrp
- Version changed from 0.25-fixes to Master Head
- Milestone changed from 0.26 to unknown