X-Git-Url: http://git.maemo.org/git/?p=movie-schedule;a=blobdiff_plain;f=src%2Fsearchclients%2Fmovieschedulesearchclient.cpp;h=7041c5ec430ef0a9cb0ff8e09ce4dbc0b65815b1;hp=cb2ac42306eae9555739995af31fe388928e2f4d;hb=fbbb2a758b18a7afff51d27852f85977fe796b35;hpb=2198ae3ccdffc8b6495ee1f5f91657611808ec93 diff --git a/src/searchclients/movieschedulesearchclient.cpp b/src/searchclients/movieschedulesearchclient.cpp index cb2ac42..7041c5e 100644 --- a/src/searchclients/movieschedulesearchclient.cpp +++ b/src/searchclients/movieschedulesearchclient.cpp @@ -90,7 +90,7 @@ void MovieScheduleSearchClient::ReplyFinished(QNetworkReply *reply) QString theater_name; QString theater_address; QString theater_phone; - QList schedule; + QList schedule; QRegExp time_pattern("\\d+:\\d+([aApP][mM])*"); while (!xml.atEnd()) { QXmlStreamReader::TokenType token = xml.readNext(); @@ -164,8 +164,14 @@ void MovieScheduleSearchClient::ReplyFinished(QNetworkReply *reply) if (!theater_phone.isEmpty()) { cinema->SetTelephone(theater_phone); } - Q_FOREACH(const QTime time, schedule) { - _cinema_schedule->AddSchedule(cinema, movie, time, _date); + QList schedule_times = TimesFromString(schedule); + Q_FOREACH(const QTime time, schedule_times) { + if (time.hour() < 3) { + // interpret very early times as shifted by 1 day (seems to be a Google logic) + _cinema_schedule->AddSchedule(cinema, movie, time, _date.addDays(1)); + } else { + _cinema_schedule->AddSchedule(cinema, movie, time, _date); + } } } } @@ -185,11 +191,8 @@ void MovieScheduleSearchClient::ReplyFinished(QNetworkReply *reply) while ((i = time_pattern.indexIn(t, i)) != -1) { int length = time_pattern.matchedLength(); //std::cout << "time " << qPrintable(t.mid(i, length)) << std::endl; - QTime time = TimeUtils::FromTimeString(t.mid(i, length)); - if (time.isValid()) { - schedule.append(time); - } else { - std::cout << "ERROR: time " << qPrintable(t.mid(i, length)) << " is invalid." << std::endl; + if (length > 0) { + schedule.append(t.mid(i, length)); } i += length; found = true;