Ejemplo n.º 1
0
 def min_t(cls, data, hashtag):
     if re.search(u'Температура', data.find(hashtag.m_hashtag).text):
         return Parser(hashtag.m_hashtag_desc)(re.search(
             ur'Температура ночью -?\d+°, днём -?\d+°.',
             data.find(hashtag.m_hashtag).text).group())
     else:
         return -100
Ejemplo n.º 2
0
 def get_datetime(cls, data, meteocenter, s_timestep, hashtag):
     today = datetime.today()
     datestr = '%s-%s-%s %s:%s' % (
         today.year, today.month, Parser(u'{_:s}, {:d} {_:s}')(data.find(
             meteocenter.date_tag).text),
         ('12' if hashtag == 'max_t' else '00'), '00')
     return datetime.strptime(datestr, meteocenter.date_reg)
Ejemplo n.º 3
0
 def pressure_min(cls, data, hashtag):
     if re.search(u'Атмосферное давление ночью',
                  data.find(hashtag.m_hashtag).text):
         return Parser(hashtag.m_hashtag_desc)(re.search(
             ur'Атмосферное давление ночью \d+',
             data.find(hashtag.m_hashtag).text).group())
     else:
         return -100
Ejemplo n.º 4
0
 def pop(cls, data, hashtag):
     if re.search(u'Вероятность осадков',
                  data.find(hashtag.m_hashtag).text):
         return Parser(hashtag.m_hashtag_desc)(re.search(
             ur'Вероятность осадков \d+',
             data.find(hashtag.m_hashtag).text).group())
     else:
         return -100
Ejemplo n.º 5
0
    def wind_velocity_max(cls, data, hashtag):
        if re.search(u'Ветер', data.find(hashtag.m_hashtag).text):
            return Parser(hashtag.m_hashtag_desc)(re.search(
                ur'Ветер \W*, \d+ ',
                data.find(hashtag.m_hashtag).text).group())
        else:
            return -100


#----------------------------------------------------------------------------------------------------------------------------------------------------
Ejemplo n.º 6
0
    def get_datetime(cls, data, meteocenter, s_timestep, hashtag):
        if re.search('Current Conditions', data.find(meteocenter.date_tag).text):
            return datetime.now()
        else:
            now = datetime.now()

            day_forecast = '%s' % Parser('Forecast for {:s}')(re.match(r'Forecast for \S*', data.find(meteocenter.date_tag).text).group(0))
            decimal_f = time.strptime(day_forecast,'%A')

            while now.weekday() != decimal_f.tm_wday:
                now += timedelta(days=1)

            if re.search('Night', data.find(meteocenter.date_tag).text):
                datestr = '%s-%s-%s %s:%s' % (now.year, now.month, now.day, '00', '00')
            else:
                datestr = '%s-%s-%s %s:%s' % (now.year, now.month, now.day, '12', '00')

            return datetime.strptime(datestr, meteocenter.date_reg)
Ejemplo n.º 7
0
    def get_datetime(cls, data, meteocenter, s_timestep, hashtag):
        now = datetime.now()
        # Берем день недели на который дан прогноз
        day_forecast = '%s' % Parser('{:s}:')(re.search(
            r'\S*:',
            data.find(meteocenter.date_tag).text).group(0))
        # Сохраняем его в формате даты
        decimal_f = time.strptime(day_forecast, '%A')
        # Добавляем по дню к текущей дате до того, как она не будет равена дню из прогноза
        while now.weekday() != decimal_f.tm_wday:
            now += timedelta(days=1)

        #return now

        datestr = '%s-%s-%s %s:%s' % (now.year, now.month, now.day,
                                      ('12' if hashtag == 'max_t' else '00'),
                                      '00')
        return datetime.strptime(datestr, meteocenter.date_reg)
Ejemplo n.º 8
0
    def get_meteo_town_name(cls, meteo_tree):
        for f in meteo_tree.iter('channel'):
            out = f.find('title').text

        return Parser('{:s},  Weather from Weather Underground')(out)    
Ejemplo n.º 9
0
 def get_meteo_town_name(cls, meteo_tree):
     for f in meteo_tree.iter('channel'):
         out = f.find('title').text
     return Parser('BBC Weather - Forecast for  {:s}, Russia')(out)
Ejemplo n.º 10
0
 def get_meteo_town_name(cls, meteo_tree):
     for f in meteo_tree.iter('location'):
         out = f.attrib.get('city')
         out = Parser('{:s} [{_:s};{_:s}]')(out)
     return out
Ejemplo n.º 11
0
    def get_meteo_town_name(cls, meteo_tree):
        for f in meteo_tree.iter('channel'):
            out = f.find('title').text

        return Parser('The Weather Network - {:s}, Russia')(out)