Ticket #11541: programdata_midnight_diff.cpp

File programdata_midnight_diff.cpp, 1.8 KB (added by m.a.zulliger@…, 11 years ago)

Fix missing midnight program endtime compleation

Line 
1diff --git a/mythtv/libs/libmythtv/programdata.cpp b/mythtv/libs/libmythtv/programdata.cpp
2index 06e822f..d1a0ae8 100644
3--- a/mythtv/libs/libmythtv/programdata.cpp
4+++ b/mythtv/libs/libmythtv/programdata.cpp
5@@ -996,7 +996,8 @@ void ProgramData::FixProgramList(QList<ProgInfo*> &fixlist)
6                 {
7                     (*cur)->endtime = QDateTime(
8                         (*cur)->endtime.date().addDays(1),
9-                        QTime(0, 0), Qt::UTC);
10+                        QTime(0, 0), Qt::LocalTime);
11+                    (*cur)->endtime = (*cur)->endtime.toUTC();
12                 }
13 
14                 (*cur)->endts =
15@@ -1138,7 +1139,7 @@ int ProgramData::fix_end_times(void)
16     MSqlQuery query1(MSqlQuery::InitCon()), query2(MSqlQuery::InitCon());
17 
18     querystr = "SELECT chanid, starttime, endtime FROM program "
19-               "WHERE (DATE_FORMAT(endtime,'%H%i') = '0000') "
20+               "WHERE (DATE_FORMAT(CONVERT_TZ(endtime, 'UTC', 'SYSTEM'),'%H%i') = '0000') "
21                "ORDER BY chanid, starttime;";
22 
23     if (!query1.exec(querystr))
24@@ -1155,11 +1156,11 @@ int ProgramData::fix_end_times(void)
25         endtime = query1.value(2).toString();
26 
27         querystr = QString("SELECT chanid, starttime, endtime FROM program "
28-                           "WHERE starttime BETWEEN '%1 00:00:00'"
29-                           "AND '%2 23:59:59' AND chanid = '%3' "
30+                           "WHERE starttime > '%1'"
31+                           "AND starttime <= ADDTIME('%2', '1 00:00:00.0') AND chanid = '%3' "
32                            "ORDER BY starttime LIMIT 1;")
33-                           .arg(endtime.left(10))
34-                           .arg(endtime.left(10))
35+                           .arg(starttime)
36+                           .arg(starttime)
37                            .arg(chanid);
38 
39         if (!query2.exec(querystr))