Данные погоды беру после парсинга страницы http://informer.gismeteo.ru/xml/27612_1.xml
def test(url, town): file = urllib.request.urlopen(url) data = file.read() file.close() current_day = datetime.datetime.now() forecasts = [] # парсю xml dom = parseString(data) forecast = dom.getElementsByTagName('FORECAST') for node in forecast: day = node.getAttribute('day') tod = node.getAttribute('tod')
# формируем массив, в котором лежат данные о погоде forecasts.append({ 'day': int(day), 'tod': int(tod), 'precipitation': int(precipitation), 'temp': temp, 'cloudiness': int(cloudiness), }) for forecast in forecasts[::-1]: day = u'Сегодня' if forecast['day'] == current_day.day else u'Завтра' if forecast['tod'] == 0: tod = u'ночью' elif forecast['tod'] == 1: tod = u'утром' elif forecast['tod'] == 2: tod = u'днем' elif forecast['tod'] == 3: tod = u'вечером' else: tod = '-'
После заливки кода на сервер, твиты публикуются странным образом.
Во-первых, с отставанием в несколько часов.
Во-вторых, прогноз погоды дается по часам: на ночь (3 часа ночи), утро (9 часов утра), день (15ч), вечер (21ч). Твит, каждый раз публикуется с префиксом “Завтра”. То есть: Завтра ночью, Завтра утром, Завтра днем, Завтра вечером.
Подумал, что проблема с временем на сервере. Вроде как там стоит UTC 00:00. По команде heroku config:add TZ=“Europe/Moscow” установил время Московское. Ситуации это не изменило.
Подскажите, проблема в неправильном определении текущего дня (Сегодня/Завтра) или с временем на сервере? Как исправить?