def initialize(self, amount): # pragma: no cover try: page = urlopen('http://api.icndb.com/jokes/random/15') data = page.read() if isinstance(data, bytes): data = data.decode('utf8') quotes = json.loads(data) quotes = [v['joke'] for v in quotes['value']] except: self.bot.log.error('Failed to get quotes from api.icndb.com') quotes = [u'Hi!', u'lol'] self.bot.log.info('Initialise %s with %s quotes', self.db, len(quotes)) with codecs.open(self.db, 'w', 'utf8') as fd: fd.write(u'\n'.join(quotes))
def ip(self): """return bot's ip as an ``ip_address`` object""" if not self._ip: if 'ip' in self.config: ip = self.config['ip'] else: ip = self.protocol.transport.get_extra_info('sockname')[0] ip = ip_address(ip) if ip.version == 4: self._ip = ip else: # pragma: no cover response = urlopen('http://ipv4.icanhazip.com/') ip = response.read().strip().decode() ip = ip_address(ip) self._ip = ip return self._ip