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://")
def _find_geoip_db(bot): """Find the GeoIP database""" config = bot.config if config.ip.GeoIP_db_path: cities_db = os.path.join(config.ip.GeoIP_db_path, 'GeoLite2-City.mmdb') ipasnum_db = os.path.join(config.ip.GeoIP_db_path, 'GeoLite2-ASN.mmdb') if (os.path.isfile(cities_db) and os.path.isfile(ipasnum_db)): return config.ip.GeoIP_db_path else: LOGGER.warning( 'GeoIP path configured but DB not found in configured path') if (os.path.isfile(os.path.join(config.core.homedir, 'GeoLite2-City.mmdb')) and os.path.isfile( os.path.join(config.core.homedir, 'GeoLite2-ASN.mmdb'))): return config.core.homedir elif (os.path.isfile(os.path.join( '/usr/share/GeoIP', 'GeoLite2-City.mmdb')) and os.path.isfile( os.path.join('/usr/share/GeoIP', 'GeoLite2-ASN.mmdb'))): return '/usr/share/GeoIP' elif urlretrieve: LOGGER.info('Downloading GeoIP database') bot.say('Downloading GeoIP database, please wait...') common_params = {'license_key': 'JXBEmLjOzislFnh4', 'suffix': 'tar.gz'} base_url = 'https://download.maxmind.com/app/geoip_download' geolite_urls = [] for edition in ['ASN', 'City']: geolite_urls.append('{base}?{params}'.format( base=base_url, params=web.urlencode( dict(common_params, **{'edition_id': 'GeoLite2-%s' % edition})), )) for url in geolite_urls: LOGGER.debug('GeoIP Source URL: %s', url) full_path = os.path.join(config.core.homedir, url.split("/")[-1]) urlretrieve(url, full_path) _decompress(full_path, config.core.homedir) return bot.config.core.homedir else: return False