(meteofrance) site changed

This commit is contained in:
Bezleputh 2015-07-24 14:33:24 +02:00
commit a738d0586f

View file

@ -24,7 +24,6 @@ from weboob.browser.pages import JsonPage, HTMLPage
from weboob.browser.elements import ItemElement, ListElement, DictElement, method from weboob.browser.elements import ItemElement, ListElement, DictElement, method
from weboob.capabilities.weather import Forecast, Current, City, Temperature from weboob.capabilities.weather import Forecast, Current, City, Temperature
from weboob.browser.filters.json import Dict from weboob.browser.filters.json import Dict
from weboob.browser.filters.html import CleanHTML
from weboob.browser.filters.standard import CleanText, CleanDecimal, Regexp, Format from weboob.browser.filters.standard import CleanText, CleanDecimal, Regexp, Format
@ -46,30 +45,31 @@ class SearchCitiesPage(JsonPage):
class WeatherPage(HTMLPage): class WeatherPage(HTMLPage):
@method @method
class iter_forecast(ListElement): class iter_forecast(ListElement):
item_xpath = '//div[@class="group-days-summary"]/div' item_xpath = '//div[@class="group-days-summary"]/article'
class item(ItemElement): class item(ItemElement):
klass = Forecast klass = Forecast
obj_id = CleanText('./div/div/h3[@class="day-summary-title"]') obj_id = CleanText('./header/h4')
obj_date = CleanText('./div/div/h3[@class="day-summary-title"]') obj_date = CleanText('./header/h4')
def obj_low(self): def obj_low(self):
temp = CleanDecimal(Regexp(CleanText('./div/div/div[@class="day-summary-temperature"]'), temp = CleanDecimal(Regexp(CleanText('./ul/li[@class="day-summary-temperature"]'),
'(.*)\|.*'))(self) '(.*) / .*'))(self)
unit = Regexp(CleanText('./div/div/div[@class="day-summary-temperature"]'), u'.*\xb0(\w) \|.*')(self) unit = Regexp(CleanText('./ul/li[@class="day-summary-temperature"]'), u'.*\xb0(\w) Minimale / .*')(self)
return Temperature(float(temp), unit) return Temperature(float(temp), unit)
def obj_high(self): def obj_high(self):
temp = CleanDecimal(Regexp(CleanText('./div/div/div[@class="day-summary-temperature"]'), temp = CleanDecimal(Regexp(CleanText('./ul/li[@class="day-summary-temperature"]'),
'.*\|(.*)'))(self) '.* / (.*)'))(self)
unit = Regexp(CleanText('./div/div/div[@class="day-summary-temperature"]'), u'.*\|.*\xb0(\w).*')(self) unit = Regexp(CleanText('./ul/li[@class="day-summary-temperature"]'), u'.* / .*\xb0(\w).*')(self)
return Temperature(float(temp), unit) return Temperature(float(temp), unit)
obj_text = Format('%s %s %s %s', CleanHTML('./div/div/div[@class="day-summary-broad"]'), obj_text = Format('%s - %s - %s - %s',
CleanHTML('./div/div/div[@class="day-summary-wind"]'), CleanText('./ul/li[@class="day-summary-temperature"]'),
CleanHTML('./div/div/div[@class="day-summary-uv"]'), CleanText('./ul/li[@class="day-summary-image"]'),
CleanHTML('./div/div/div[@class="day-summary-indice"]/img/@title')) CleanText('./ul/li[@class="day-summary-uv"]'),
CleanText('./ul/li[@class="day-summary-wind"]'))
@method @method
class get_current(ItemElement): class get_current(ItemElement):
@ -77,15 +77,14 @@ class WeatherPage(HTMLPage):
obj_id = date.today() obj_id = date.today()
obj_date = date.today() obj_date = date.today()
obj_text = Format('%s %s %s %s', obj_text = Format('%s - %s - %s - %s',
CleanHTML('(//div[@class="group-days-summary"])[1]/div[1]/div/div/div[@class="day-summary-broad"]'), CleanText('(//div[@class="group-days-summary"])[1]/article[1]/ul/li[@class="day-summary-temperature"]'),
CleanHTML('(//div[@class="group-days-summary"])[1]/div[1]/div/div/div[@class="day-summary-wind"]'), CleanText('(//div[@class="group-days-summary"])[1]/article[1]/ul/li[@class="day-summary-image"]'),
CleanHTML('(//div[@class="group-days-summary"])[1]/div[1]/div/div/div[@class="day-summary-uv"]'), CleanText('(//div[@class="group-days-summary"])[1]/article[1]/ul/li[@class="day-summary-uv"]'),
CleanHTML('(//div[@class="group-days-summary"])[1]/div[1]/div/div/div[@class="day-summary-indice"]/img/@title')) CleanText('(//div[@class="group-days-summary"])[1]/article[1]/ul/li[@class="day-summary-wind"]'))
def obj_temp(self): def obj_temp(self):
temp = CleanDecimal(Regexp(CleanText('(//div[@class="group-days-summary"])[1]/div[1]/div/div/div[@class="day-summary-temperature"]'), temp = CleanDecimal('//div[@id="detail-day-01"]/table/tr[@class="in-between"]/td[1]')(self)
'(.*)\|.*'))(self) unit = Regexp(CleanText('//div[@id="detail-day-01"]/table/tr[@class="in-between"]/td[1]'),
unit = Regexp(CleanText('(//div[@class="group-days-summary"])[1]/div[1]/div/div/div[@class="day-summary-temperature"]'), u'.*\xb0(\w)')(self)
u'.*\xb0(\w) \|.*')(self)
return Temperature(float(temp), unit) return Temperature(float(temp), unit)