def shorten_url(self, url): '''Return a shortened version of a URL passed in using bitly ''' try: return self.bitly.shorten(url)['url'] except: log.err('[Error]: bitly traceback: {}'.format( traceback.format_exc())) raise pb.CommandError(u'[Error]: Invalid URL', pm=True)
def ytSearch(self, args, irc): '''yt [search term(s)] -- Search YouTube and return the first result ''' try: if not args: raise pb.CommandError(u'[Error]: Missing YouTube search terms', pm=False) terms = u'+'.join(args) r = requests.get(self.YT_SEARCH.format(terms)) soup = BeautifulSoup(r.text) result = soup.find('div', { 'class': 'yt-lockup-content' }).find('a')['href'] url = u'https://youtube.com{}'.format(result) return u'{} | {}'.format(url, self.youtube_data(url)) except: log.err('[Error]: yt {}'.format(sys.exc_info()[0])) raise pb.CommandError(u'[Error]: Could not contact YouTube', pm=True)
def joke(self, args, irc): '''(joke) -- Random joke from goodbadjokes.com ''' try: r = requests.get(self.JOKE_URL) if r.status_code != 200: log.err('Error]: Status code of {} for joke'.format(r.status_code)) return soup = BeautifulSoup(r.text) joke = soup.find('span', {'class': 'joke-content'}) q = joke.find('dt').text a = joke.find('dd').text return '{} {}'.format(q, a) except: log.err('[Error]: {}'.format(sys.exc_info()[0])) raise pb.CommandError('[Error]: Cannot contact goodbadjokes.com', pm=False)