Ejemplo n.º 1
0
def get_inv_direction(lat, lon):
    print('******* Adquiring inv direction *******')
    location = GeocodeGlib.Location.new(cf.s2f(lat), cf.s2f(lon), 1000)
    reverse = GeocodeGlib.Reverse.new_for_location(location)
    aplace = reverse.resolve()
    direction = {}
    direction['city'] = aplace.get_town()
    direction['state'] = aplace.get_state()
    direction['country'] = aplace.get_country()
    direction['lat'] = aplace.get_location().get_latitude()
    direction['lng'] = aplace.get_location().get_longitude()
    direction['woeid'] = None
    direction['search_string'] = aplace.get_name()
    return direction
Ejemplo n.º 2
0
    def get_balance(self, symbol):
        balance = defaultdict(lambda: None)
        data = None
        try:
            if cfg.get_cfg_plat() == 'coinex':
                data = cet.inquire_account_info()[symbol.upper()]
                balance['available'] = s2f(data['available'])
                balance['frozen'] = s2f(data['frozen'])
                balance['balance'] = data['available'] + data['frozen']
            elif cfg.get_cfg_plat() == 'fcoin':
                pass
            elif cfg.get_cfg_plat() == 'okex':
                pass
            else:
                pass

        except:
            log.err("Exception on get_balance! data:%s"%data)
        return balance
Ejemplo n.º 3
0
 def get_depth(self, pair):
     depth = defaultdict(lambda: None)
     data = None
     try:
         if cfg.get_cfg_plat() == 'coinex':
             data = cet.acquire_market_depth(pair)
             depth['buy'] = s2f(data.pop('bids'))
             depth['sell'] = s2f(data.pop('asks'))
         elif cfg.get_cfg_plat() == 'fcoin':
             pass
         elif cfg.get_cfg_plat() == 'okex':
             data = okb.depth(pair)
             depth['buy'] = data.pop('bids')
             depth['sell'] = data.pop('asks')
         else:
             pass
     except:
         log.err("Exception on %s get_depth! data:%s" % (pair, data))
     return depth
Ejemplo n.º 4
0
    def get_balance(self, symbol):
        balance = defaultdict(lambda: None)
        data = None
        try:
            if cfg.get_cfg_plat() == 'coinex':
                data = cet.inquire_account_info()[symbol.upper()]
                balance['available'] = s2f(data['available'])
                balance['frozen'] = s2f(data['frozen'])
                balance['balance'] = data['available'] + data['frozen']
            elif cfg.get_cfg_plat() == 'fcoin':
                pass
            elif cfg.get_cfg_plat() == 'okex':
                pass
            else:
                pass

        except:
            log.err("Exception on get_balance! data:%s" % data)
        return balance
Ejemplo n.º 5
0
 def get_depth(self, pair):
     depth = defaultdict(lambda: None)
     data = None
     try:
         if cfg.get_cfg_plat() == 'coinex':
             data = cet.acquire_market_depth(pair)
             depth['buy'] = s2f(data.pop('bids'))
             depth['sell'] = s2f(data.pop('asks'))
         elif cfg.get_cfg_plat() == 'fcoin':
             pass
         elif cfg.get_cfg_plat() == 'okex':
             data = okb.depth(pair)
             depth['buy'] = data.pop('bids')
             depth['sell'] = data.pop('asks')
         else:
             pass
     except:
         log.err("Exception on %s get_depth! data:%s"%(pair,data))
     return depth
Ejemplo n.º 6
0
    def __daylen__(self, year, month, day, lon, lat, altit, upper_limb):
        """
        Note: year,month,date = calendar date, 1801-2099 only.
              Eastern longitude positive, Western longitude negative
              Northern latitude positive, Southern latitude negative
              The longitude value is not critical. Set it to the correct
              longitude if you're picky, otherwise set to, say, 0.0
              The latitude however IS critical - be sure to get it correct
              altit = the altitude which the Sun should cross
                      Set to -35/60 degrees for rise/set, -6 degrees
                      for civil, -12 degrees for nautical and -18
                      degrees for astronomical twilight.
                upper_limb: non-zero -> upper limb, zero -> center
                      Set to non-zero (e.g. 1) when computing day length
                      and to zero when computing day+twilight length.

        """

        # Compute d of 12h local mean solar time
        lon = cf.s2f(lon)
        d = self.daysSince2000Jan0(year, month, day) + 0.5 - (lon / 360.0)

        # Compute obliquity of ecliptic (inclination of Earth's axis)
        obl_ecl = 23.4393 - 3.563E-7 * d

        # Compute Sun's position
        res = self.sunpos(d)
        slon = res[0]
        sr = res[1]

        # Compute sine and cosine of Sun's declination
        sin_sdecl = self.sind(obl_ecl) * self.sind(slon)
        cos_sdecl = math.sqrt(1.0 - sin_sdecl * sin_sdecl)

        # Compute the Sun's apparent radius, degrees
        sradius = 0.2666 / sr

        # Do correction to upper limb, if necessary
        if upper_limb:
            altit = altit - sradius

        cost = (self.sind(altit) - self.sind(lat) * sin_sdecl) / \
            (self.cosd(lat) * cos_sdecl)
        if cost >= 1.0:
            t = 0.0  # Sun always below altit

        elif cost <= -1.0:
            t = 24.0  # Sun always above altit

        else:
            t = (2.0 / 15.0) * self.acosd(cost)

        return t
Ejemplo n.º 7
0
    def get_balance_all(self):
        balance = defaultdict(lambda: None)
        data = None
        try:
            if cfg.get_cfg_plat() == 'coinex':
                data = cet.inquire_account_info()
                for i in data.items():
                    balance[i[0]]['available'] = s2f(i[1]['available'])
                    balance[i[0]]['frozen'] = s2f(i[1]['frozen'])
                    balance[i[0]]['balance'] = s2f(i[1]['available']) + s2f(i[1]['frozen'])
                #print(balance)
            elif cfg.get_cfg_plat() == 'fcoin':
                pass
            elif cfg.get_cfg_plat() == 'okex':
                pass
            else:
                pass

        except:
            log.err("Exception on get_balance_all! data:%s"%data)

        return balance
Ejemplo n.º 8
0
    def get_balance_all(self):
        balance = defaultdict(lambda: None)
        data = None
        try:
            if cfg.get_cfg_plat() == 'coinex':
                data = cet.inquire_account_info()
                for i in data.items():
                    balance[i[0]]['available'] = s2f(i[1]['available'])
                    balance[i[0]]['frozen'] = s2f(i[1]['frozen'])
                    balance[i[0]]['balance'] = s2f(i[1]['available']) + s2f(
                        i[1]['frozen'])
                #print(balance)
            elif cfg.get_cfg_plat() == 'fcoin':
                pass
            elif cfg.get_cfg_plat() == 'okex':
                pass
            else:
                pass

        except:
            log.err("Exception on get_balance_all! data:%s" % data)

        return balance
Ejemplo n.º 9
0
    def get_last_price(self, pair):
        price = 0
        data = None
        try:
            if cfg.get_cfg_plat() == 'coinex':
                data = s2f(cet.acquire_market_data(pair))
                price = data['last']
            elif cfg.get_cfg_plat() == 'fcoin':
                #data = ft.get_market_ticker(pair)
                pass
            elif cfg.get_cfg_plat() == 'okex':
                data = okb.ticker(pair)
                price = data['last']
            else:
                pass

        except:
            log.err("Exception on get_last_price! data:%s" % data)
        return price
Ejemplo n.º 10
0
    def get_last_price(self,pair):
        price = 0
        data = None
        try:
            if cfg.get_cfg_plat() == 'coinex':
                data = s2f(cet.acquire_market_data(pair))
                price = data['last']
            elif cfg.get_cfg_plat() == 'fcoin':
                #data = ft.get_market_ticker(pair)
                pass
            elif cfg.get_cfg_plat() == 'okex':
                data = okb.ticker(pair)
                price = data['last']
            else:
                pass

        except:
            log.err("Exception on get_last_price! data:%s"%data)
        return price
Ejemplo n.º 11
0
    def get_kline(self, pair, dtype, limit, since=0):
        kl = pd.DataFrame()
        data = None
        try:
            if cfg.get_cfg_plat() == 'coinex':
                data = cet.acquire_K_line_data(pair, dtype, limit)
                if len(data) > 0:
                    for i in data:
                        i.pop()  ##remove the last market string
                kl = pd.DataFrame(s2f(data), columns=['t','o', 'c','h', 'l', 'v', 'a'])
            elif cfg.get_cfg_plat() == 'fcoin':
                pass
            elif cfg.get_cfg_plat() == 'okex':
                data = okb.kline(pair, dtype, limit, since)
                kl = pd.DataFrame(data, columns = ['t', 'o', 'h', 'l', 'c', 'v', 'a'])
            else:
                pass

        except:
            log.err("Exception on get_kline! data:%s"%data)
        return kl
Ejemplo n.º 12
0
    def get_kline(self, pair, dtype, limit, since=0):
        kl = pd.DataFrame()
        data = None
        try:
            if cfg.get_cfg_plat() == 'coinex':
                data = cet.acquire_K_line_data(pair, dtype, limit)
                if len(data) > 0:
                    for i in data:
                        i.pop()  ##remove the last market string
                kl = pd.DataFrame(s2f(data),
                                  columns=['t', 'o', 'c', 'h', 'l', 'v', 'a'])
            elif cfg.get_cfg_plat() == 'fcoin':
                pass
            elif cfg.get_cfg_plat() == 'okex':
                data = okb.kline(pair, dtype, limit, since)
                kl = pd.DataFrame(data,
                                  columns=['t', 'o', 'h', 'l', 'c', 'v', 'a'])
            else:
                pass

        except:
            log.err("Exception on get_kline! data:%s" % data)
        return kl
Ejemplo n.º 13
0
 def get_price(self, pair):
     price = defaultdict(lambda: None)
     data = None
     try:
         if cfg.get_cfg_plat() == 'coinex':
             data = cet.acquire_market_data(pair)
             #price['buy'] = s2f(data['buy'])    #buy 1
             #price['high'] = s2f(data['high'])  #24H highest price
             #price['last'] = s2f(data['last'])  #latest price
             #price['low'] = s2f(data['low'])    #24H lowest price
             #price['sell'] = s2f(data['sell'])  #sell 1
             #price['vol'] = s2f(data['vol'])    #24H volume
             price = s2f(data)
         elif cfg.get_cfg_plat() == 'fcoin':
             #data = ft.get_market_ticker(pair)
             pass
         elif cfg.get_cfg_plat() == 'okex':
             data = okb.ticker(pair)
             price = data
         else:
             pass
     except:
         log.err("Exception on get_price! data:%s" % data)
     return price
Ejemplo n.º 14
0
 def get_price(self, pair):
     price = defaultdict(lambda: None)
     data = None
     try:
         if cfg.get_cfg_plat() == 'coinex':
             data = cet.acquire_market_data(pair)
             #price['buy'] = s2f(data['buy'])    #buy 1
             #price['high'] = s2f(data['high'])  #24H highest price
             #price['last'] = s2f(data['last'])  #latest price
             #price['low'] = s2f(data['low'])    #24H lowest price
             #price['sell'] = s2f(data['sell'])  #sell 1
             #price['vol'] = s2f(data['vol'])    #24H volume
             price = s2f(data)
         elif cfg.get_cfg_plat() == 'fcoin':
             #data = ft.get_market_ticker(pair)
             pass
         elif cfg.get_cfg_plat() == 'okex':
             data = okb.ticker(pair)
             price = data
         else:
             pass                
     except:
         log.err("Exception on get_price! data:%s"%data)
     return price
Ejemplo n.º 15
0
 def get_cfg_all(self):
     cfg_all = {}
     for s in self.cp.sections():
         items = dict(self.cp.items(s))
         cfg_all = s2f(dict(cfg_all, **items))
     return cfg_all
Ejemplo n.º 16
0
 def _get_weather(self):
     weather_data = self.get_default_values()
     print('-------------------------------------------------------')
     print('-------------------------------------------------------')
     print('Underground Weather Service url: %s' % URL %
           (self.key, self.latitude, self.longitude))
     print('-------------------------------------------------------')
     print('-------------------------------------------------------')
     parsed_json = read_json_from_url(
         URL % (self.key, self.latitude, self.longitude))
     if parsed_json is None:
         return weather_data
     weather_data['update_time'] = time.time()
     weather_data['ok'] = True
     condition = gvfco('weather', parsed_json).lower()
     #
     weather_data['current_conditions']['condition_text'] =\
         weatherservice.get_condition(condition, 'text')
     if weather_data['current_conditions']['isday']:
         weather_data['current_conditions']['condition_image'] =\
             weatherservice.get_condition(condition, 'image')
         weather_data['current_conditions']['condition_icon_dark'] =\
             weatherservice.get_condition(condition, 'icon-dark')
         weather_data['current_conditions']['condition_icon_light'] =\
             weatherservice.get_condition(condition, 'icon-light')
     else:
         weather_data['current_conditions']['condition_image'] =\
             weatherservice.get_condition(condition, 'image-night')
         weather_data['current_conditions']['condition_icon_dark'] =\
             weatherservice.get_condition(condition, 'icon-night-dark')
         weather_data['current_conditions']['condition_icon_light'] =\
             weatherservice.get_condition(condition, 'icon-night-light')
     temperature = cf.s2f(gvfco('temp_f', parsed_json))
     weather_data['current_conditions']['temperature'] =\
         cf.change_temperature(
             temperature, self.units.temperature)
     pressure = cf.s2f(gvfco('pressure_mb', parsed_json))
     weather_data['current_conditions']['pressure'] =\
         weatherservice.change_pressure(pressure, self.units.pressure)
     humidity = cf.s2f(gvfco('relative_humidity', parsed_json)[:-1])
     weather_data['current_conditions']['humidity'] = str(
         int(humidity)) + ' %'
     weather_data['current_conditions']['dew_point'] =\
         weatherservice.get_dew_point(
             humidity, temperature, self.units.temperature)
     wind_velocity = cf.s2f(gvfco('wind_mph', parsed_json))
     wind_direction = gvfco('wind_dir', parsed_json)
     weather_data['current_conditions']['wind_condition'] =\
         weatherservice.get_wind_condition(
             wind_velocity, wind_direction, self.units.wind)
     weather_data['current_conditions']['wind_icon'] =\
         weatherservice.get_wind_icon(wind_direction)
     #
     weather_data['current_conditions']['heat_index'] =\
         weatherservice.get_heat_index(temperature, humidity)
     weather_data['current_conditions']['windchill'] =\
         weatherservice.get_wind_chill(temperature, wind_velocity)
     #
     weather_data['current_conditions']['feels_like'] =\
         weatherservice.get_feels_like(
             temperature, humidity, wind_velocity, self.units.temperature)
     #
     weather_data['current_conditions']['visibility'] =\
         weatherservice.change_distance(
             gvfco('visibility_mi', parsed_json), self.units.visibility)
     weather_data['current_conditions']['solarradiation'] = gvfco(
         'solarradiation', parsed_json)
     weather_data['current_conditions']['UV'] = gvfco('UV', parsed_json)
     weather_data['current_conditions']['precip_1hr'] =\
         weatherservice.change_longitude(
             gvfco('precip_1hr_in', parsed_json), self.units.rain)
     weather_data['current_conditions']['precip_today'] =\
         weatherservice.change_longitude(
             gvfco('precip_today_in', parsed_json), self.units.rain)
     for i in range(0, 4):
         weather_data['forecasts'][i]['low'] =\
             cf.change_temperature(
                 gvff('low', i, parsed_json)['fahrenheit'],
                 self.units.temperature)
         weather_data['forecasts'][i]['high'] =\
             cf.change_temperature(
                 gvff('high', i, parsed_json)['fahrenheit'],
                 self.units.temperature)
         #
         weather_data['forecasts'][i]['qpf_allday'] =\
             weatherservice.change_longitude(
                 gvff('qpf_allday', i, parsed_json)['in'], self.units.rain)
         weather_data['forecasts'][i]['qpf_day'] =\
             weatherservice.change_longitude(
                 gvff('qpf_day', i, parsed_json)['in'], self.units.rain)
         weather_data['forecasts'][i]['qpf_night'] =\
             weatherservice.change_longitude(
                 gvff('qpf_night', i, parsed_json)['in'], self.units.rain)
         weather_data['forecasts'][i]['snow_allday'] =\
             weatherservice.change_longitude(
                 gvff('snow_allday', i, parsed_json)['in'], self.units.snow)
         weather_data['forecasts'][i]['snow_day'] =\
             weatherservice.change_longitude(
                 gvff('snow_day', i, parsed_json)['in'], self.units.snow)
         weather_data['forecasts'][i]['snow_night'] =\
             weatherservice.change_longitude(
                 gvff('snow_night', i, parsed_json)['in'], self.units.snow)
         wind = gvff('maxwind', i, parsed_json)
         weather_data['forecasts'][i]['maxwind'] =\
             weatherservice.get_wind_condition(
                 wind['mph'], wind['dir'], self.units.wind)
         wind = gvff('avewind', i, parsed_json)
         weather_data['forecasts'][i]['avewind'] =\
             weatherservice.get_wind_condition(
                 wind['mph'], wind['dir'], self.units.wind)
         weather_data['forecasts'][i]['avehumidity'] = '%s %%' % gvff(
             'avehumidity', i, parsed_json)
         weather_data['forecasts'][i]['maxhumidity'] = '%s %%' % gvff(
             'maxhumidity', i, parsed_json)
         weather_data['forecasts'][i]['minhumidity'] = '%s %%' % gvff(
             'minhumidity', i, parsed_json)
         #
         condition = gvff('conditions', i, parsed_json).lower()
         weather_data['forecasts'][i]['condition'] = condition
         weather_data['forecasts'][i]['condition_text'] =\
             weatherservice.get_condition(condition, 'text')
         weather_data['forecasts'][i]['condition_image'] =\
             weatherservice.get_condition(condition, 'image')
         weather_data['forecasts'][i]['condition_icon'] =\
             weatherservice.get_condition(condition, 'icon-light')
     weather_data['forecast_information']['city'] =\
         gvfi('city', parsed_json)
     weather_data['forecast_information']['postal_code'] =\
         gvfi('zip', parsed_json)
     weather_data['forecast_information']['latitude_e6'] =\
         gvfi('latitude', parsed_json)
     weather_data['forecast_information']['longitude_e6'] =\
         gvfi('longitude', parsed_json)
     return weather_data
Ejemplo n.º 17
0
 def get_cfg_all(self):
     cfg_all = {}
     for s in self.cp.sections():
         items = dict(self.cp.items(s))
         cfg_all = s2f(dict(cfg_all, **items))
     return cfg_all
 def get_weather(self):
     weather_data = self.get_default_values()
     print('-------------------------------------------------------')
     print('-------------------------------------------------------')
     print('WorldWeatherOnline Weather Service url: %s' %
           (URL % (self.latitude, self.longitude, self.key)))
     print('-------------------------------------------------------')
     print('-------------------------------------------------------')
     try:
         parsed_json = read_json_from_url(
             URL % (self.latitude, self.longitude, self.key))
         if parsed_json is None or\
                 'data' not in parsed_json.keys() or\
                 parsed_json['data'] is None or\
                 'current_condition' not in parsed_json['data'].keys() or\
                 'weather' not in parsed_json['data'].keys():
             return weather_data
         weather_data['update_time'] = time.time()
         weather_data['ok'] = True
         number_condition = gvfco('weatherCode', parsed_json)
         condition = get_condition(number_condition)
         print('*******************')
         print('********11***********')
         print('*******************')
         #
         weather_data['current_conditions']['condition_text'] =\
             weatherservice.get_condition_wwa(condition, 'text')
         if weather_data['current_conditions']['isday']:
             weather_data['current_conditions']['condition_image'] =\
                 weatherservice.get_condition_wwa(condition, 'image')
             weather_data['current_conditions']['condition_icon_dark'] =\
                 weatherservice.get_condition_wwa(condition, 'icon-dark')
             weather_data['current_conditions']['condition_icon_light'] =\
                 weatherservice.get_condition_wwa(condition, 'icon-light')
         else:
             weather_data['current_conditions']['condition_image'] =\
                 weatherservice.get_condition_wwa(condition, 'image-night')
             weather_data['current_conditions']['condition_icon_dark'] =\
                 weatherservice.get_condition_wwa(
                     condition, 'icon-night-dark')
             weather_data['current_conditions']['condition_icon_light'] =\
                 weatherservice.get_condition_wwa(
                     condition, 'icon-night-light')
         temperature = cf.s2f(gvfco('temp_F', parsed_json))
         weather_data['current_conditions']['temperature'] =\
             cf.change_temperature(
                 temperature, self.units.temperature)
         pressure = cf.s2f(gvfco('pressure', parsed_json))
         weather_data['current_conditions']['pressure'] =\
             weatherservice.change_pressure(pressure, self.units.pressure)
         humidity = cf.s2f(gvfco('humidity', parsed_json))
         weather_data['current_conditions']['humidity'] = '%s %%' % (
             int(humidity))
         weather_data['current_conditions']['dew_point'] =\
             weatherservice.get_dew_point(
                 humidity, temperature, self.units.temperature)
         wind_velocity = cf.s2f(gvfco('windspeedMiles', parsed_json))
         wind_direction = weatherservice.degToCompass2(
             gvfco('winddirDegree', parsed_json))
         weather_data['current_conditions']['wind_condition'] =\
             weatherservice.get_wind_condition2(
                 wind_velocity, wind_direction[0], self.units.wind)
         weather_data['current_conditions']['wind_icon'] = wind_direction[2]
         #
         weather_data['current_conditions']['heat_index'] =\
             weatherservice.get_heat_index(temperature, humidity)
         weather_data['current_conditions']['windchill'] =\
             weatherservice.get_wind_chill(temperature, wind_velocity)
         #
         weather_data['current_conditions']['feels_like'] =\
             weatherservice.get_feels_like(
                 temperature, humidity, wind_velocity,
                 self.units.temperature)
         #
         weather_data['current_conditions']['visibility'] =\
             weatherservice.change_distance(
                 gvfco('visibility', parsed_json), self.units.visibility)
         weather_data['current_conditions']['solarradiation'] = None
         weather_data['current_conditions']['UV'] = None
         weather_data['current_conditions']['precip_1hr'] = None
         weather_data['current_conditions']['precip_today'] =\
             weatherservice.change_longitude(
                 cf.s2f(
                     gvfco('precipMM', parsed_json)) / 25.4,
                 self.units.rain)
         for i in range(0, 5):
             t1 = cf.s2f(gvff('tempMinF', i, parsed_json))
             t2 = cf.s2f(gvff('tempMaxF', i, parsed_json))
             if t1 < t2:
                 tmin = str(t1)
                 tmax = str(t2)
             else:
                 tmin = str(t2)
                 tmax = str(t1)
             weather_data['forecasts'][i]['low'] =\
                 cf.change_temperature(
                     tmin, self.units.temperature)
             weather_data['forecasts'][i]['high'] =\
                 cf.change_temperature(
                     tmax, self.units.temperature)
             #
             weather_data['forecasts'][i]['qpf_allday'] =\
                 weatherservice.change_longitude(
                     cf.s2f(
                         gvff('precipMM', i, parsed_json)) / 25.4,
                     self.units.rain)
             weather_data['forecasts'][i]['qpf_day'] = None
             weather_data['forecasts'][i]['qpf_night'] = None
             weather_data['forecasts'][i]['snow_allday'] = None
             weather_data['forecasts'][i]['snow_day'] = None
             weather_data['forecasts'][i]['snow_night'] = None
             weather_data['forecasts'][i]['maxwind'] = None
             winddir = gvff('winddirDegree', i, parsed_json)
             winsped = gvff('windspeedMiles', i, parsed_json)
             wind_direction = weatherservice.degToCompass2(winddir)
             weather_data['forecasts'][i]['avewind'] =\
                 weatherservice.get_wind_condition2(
                     winsped, wind_direction[0], self.units.wind)
             weather_data['forecasts'][i]['wind_icon'] = wind_direction[2]
             weather_data['forecasts'][i]['avehumidity'] = None
             weather_data['forecasts'][i]['maxhumidity'] = None
             weather_data['forecasts'][i]['minhumidity'] = None
             #
             number_condition = gvff('weatherCode', i, parsed_json).lower()
             condition = get_condition(number_condition)
             weather_data['forecasts'][i]['condition'] = condition
             weather_data['forecasts'][i]['condition_text'] =\
                 weatherservice.get_condition_wwa(condition, 'text')
             weather_data['forecasts'][i]['condition_image'] =\
                 weatherservice.get_condition_wwa(condition, 'image')
             weather_data['forecasts'][i]['condition_icon'] =\
                 weatherservice.get_condition_wwa(condition, 'icon-light')
         weather_data['forecast_information']['city'] = None
         weather_data['forecast_information']['postal_code'] = None
         weather_data['forecast_information']['latitude_e6'] = None
         weather_data['forecast_information']['longitude_e6'] = None
     except Exception as e:
         print(e)
         weather_data['ok'] = False
     return weather_data
Ejemplo n.º 19
0
 def get_weather(self):
     weather_data = self.get_default_values()
     xml_response = download_xml(self.url)
     print(xml_response)
     root = etree.fromstring(xml_response).xpath(
         '/data/parameters/temperature')
     try:
         #
         xml_response = download_xml(self.url)
         root = etree.fromstring(xml_response).xpath(
             '/data/parameters/temperature')
         if len(root) == 0:
             raise Exception('Root 0')
         temperature = get_data(root[0], 'temp_f')
         velocity = get_data(root[0], 'wind_condition')
         velocity = cf.s2f(velocity.split(' ')[3])
         humidity = weatherservice.get_humidity(
             get_data(root[0], 'humidity'))
         condition = get_data(root[0], 'condition').lower()
         weather_data['current_conditions']['condition'] = condition
         weather_data['current_conditions'][
             'condition_text'] = weatherservice.get_condition(
                 condition, 'text')
         if weatherservice.is_day_now(
                 weather_data['current_conditions']['sunrise_time'],
                 weather_data['current_conditions']['sunset_time']):
             weather_data['current_conditions'][
                 'condition_image'] = weatherservice.get_condition(
                     condition, 'image')
             weather_data['current_conditions'][
                 'condition_icon_dark'] = weatherservice.get_condition(
                     condition, 'icon-dark')
             weather_data['current_conditions'][
                 'condition_icon_light'] = weatherservice.get_condition(
                     condition, 'icon-light')
         else:
             weather_data['current_conditions'][
                 'condition_image'] = weatherservice.get_condition(
                     condition, 'image-night')
             weather_data['current_conditions'][
                 'condition_icon_dark'] = weatherservice.get_condition(
                     condition, 'icon-night-dark')
             weather_data['current_conditions'][
                 'condition_icon_light'] = weatherservice.get_condition(
                     condition, 'icon-night-light')
         weather_data['current_conditions'][
             'temperature'] = cf.change_temperature(temperature,
                                                    self.units.temperature)
         weather_data['current_conditions']['pressure'] = None
         weather_data['current_conditions']['humidity'] = '%s %%' % (
             humidity)
         weather_data['current_conditions'][
             'dew_point'] = weatherservice.get_dew_point(
                 humidity, temperature, self.units.temperature)
         wind = get_data(root[0], 'wind_condition')
         wind_direction = wind.split(' ')[1]
         wind_direction = wind_direction.lower()
         wind_velocity = wind.split(' ')
         weather_data['current_conditions'][
             'wind_condition'] = weatherservice.get_wind_condition(
                 wind_velocity, wind_direction, self.units.wind)
         #
         weather_data['current_conditions'][
             'heat_index'] = weatherservice.get_heat_index(
                 temperature, humidity)
         weather_data['current_conditions'][
             'windchill'] = weatherservice.get_wind_chill(
                 temperature, wind_velocity)
         #
         weather_data['current_conditions'][
             'feels_like'] = weatherservice.get_feels_like(
                 temperature, humidity, velocity, self.units.temperature)
         #
         weather_data['current_conditions']['visibility'] = None
         weather_data['current_conditions']['solarradiation'] = None
         weather_data['current_conditions']['UV'] = None
         weather_data['current_conditions']['precip_1hr'] = None
         weather_data['current_conditions']['precip_today'] = None
         #
         root = etree.fromstring(xml_response).xpath(
             '/xml_api_reply/weather/forecast_conditions')
         for i, el in enumerate(root):
             weather_data['forecasts'][i]['low'] = cf.change_temperature(
                 get_data(el, 'low'), self.units.temperature)
             weather_data['forecasts'][i]['high'] = cf.change_temperature(
                 get_data(el, 'high'), self.units.temperature)
             #
             weather_data['forecasts'][i]['qpf_allday'] = None
             weather_data['forecasts'][i]['qpf_day'] = None
             weather_data['forecasts'][i]['qpf_night'] = None
             weather_data['forecasts'][i]['snow_allday'] = None
             weather_data['forecasts'][i]['snow_day'] = None
             weather_data['forecasts'][i]['snow_night'] = None
             weather_data['forecasts'][i]['maxwind'] = None
             weather_data['forecasts'][i]['avewind'] = None
             weather_data['forecasts'][i]['avehumidity'] = None
             weather_data['forecasts'][i]['maxhumidity'] = None
             weather_data['forecasts'][i]['minhumidity'] = None
             #
             condition = get_data(el, 'condition').lower()
             weather_data['forecasts'][i]['condition'] = condition
             weather_data['forecasts'][i][
                 'condition_text'] = weatherservice.get_condition(
                     condition, 'text')
             weather_data['forecasts'][i][
                 'condition_image'] = weatherservice.get_condition(
                     condition, 'image')
             weather_data['forecasts'][i][
                 'condition_icon'] = weatherservice.get_condition(
                     condition, 'icon-light')
         #
         root = etree.fromstring(xml_response).xpath(
             '/xml_api_reply/weather/forecast_information')
         weather_data['forecast_information']['city'] = get_data(
             root[0], 'city')
         weather_data['forecast_information']['postal_code'] = get_data(
             root[0], 'postal_code')
         weather_data['forecast_information']['latitude_e6'] = get_data(
             root[0], 'latitude_e6')
         weather_data['forecast_information']['longitude_e6'] = get_data(
             root[0], 'longitude_e6')
         weather_data['forecast_information']['forecast_date'] = get_data(
             root[0], 'forecast_date')
         weather_data['forecast_information'][
             'current_date_time'] = get_data(root[0], 'current_date_time')
         weather_data['forecast_information']['unit_system'] = get_data(
             root[0], 'unit_system')
         return weather_data
     except Exception as e:
         print(e)
     return weather_data