def weather(bot, trigger): """.weather location - Show the weather at the given location.""" location = trigger.group(2) woeid = '' if not location: woeid = bot.db.get_nick_value(trigger.nick, 'woeid') if not woeid: return bot.msg(trigger.sender, "I don't know where you live. " + 'Give me a location, like .weather London, or tell me where you live by saying .setlocation London, for example.') else: location = location.strip() woeid = bot.db.get_nick_value(location, 'woeid') if woeid is None: first_result = woeid_search(location) if first_result is not None: woeid = first_result.get('woeid') if not woeid: return bot.reply("I don't know where that is.") query = web.urlencode({'w': woeid, 'u': 'c'}) raw = web.get('http://weather.yahooapis.com/forecastrss?' + query, dont_decode=True) parsed = xmltodict.parse(raw).get('rss') location = parsed.get('channel').get('title') cover = get_cover(parsed) temp = get_temp(parsed) humidity = get_humidity(parsed) wind = get_wind(parsed) bot.say(u'%s: %s, %s, %s, %s' % (location, cover, temp, humidity, wind))
def weather(bot, trigger): """.weather location - Show the weather at the given location.""" location = trigger.group(2) woeid = '' if not location: woeid = bot.db.get_nick_value(trigger.nick, 'woeid') if not woeid: return bot.msg( trigger.sender, "I don't know where you live. " + 'Give me a location, like .weather London, or tell me where you live by saying .setlocation London, for example.' ) else: location = location.strip() woeid = bot.db.get_nick_value(location, 'woeid') if woeid is None: first_result = woeid_search(location) if first_result is not None: woeid = first_result.get('woeid') if not woeid: return bot.reply("I don't know where that is.") query = web.urlencode({'w': woeid, 'u': 'c'}) url = 'http://weather.yahooapis.com/forecastrss?' + query parsed = feedparser.parse(url) location = parsed['feed']['title'].replace('Yahoo! Weather - ', '') cover = get_cover(parsed) temp = get_temp(parsed) humidity = get_humidity(parsed) wind = get_wind(parsed) bot.say(u'%s: %s, %s, %s, %s' % (location, cover, temp, humidity, wind))
def old_wea(woeid): query = web.urlencode({'w': woeid, 'u': 'c'}) url = 'http://weather.yahooapis.com/forecastrss?' + query parsed = feedparser.parse(url) location = parsed['feed']['title'] cover = get_cover(parsed) temp = get_temp(parsed) pressure = get_pressure(parsed) wind = get_wind(parsed) bot.say('%s: %s, %s, %s, %s' % (location, cover, temp, pressure, wind))
def get_tinyurl(url): """Returns a shortened tinyURL link of the URL""" base_url = "https://tinyurl.com/api-create.php" tinyurl = "%s?%s" % (base_url, web.urlencode({'url': url})) try: res = requests.get(tinyurl) res.raise_for_status() except requests.exceptions.RequestException: return None # Replace text output with https instead of http to make the # result an HTTPS link. return res.text.replace("http://", "https://")