# See readme.md for instructions on running this bot.
import requests
from bs4 import BeautifulSoup

class YoutubeHandler(object):
    def usage(self):
        return '''
            This bot will return the first Youtube search result for the give query.
            '''

    def handle_message(self, message, bot_handler, state_handler):
        help_content = '''
            To use the, Youtube Bot send `@mention-bot search terms`
            Example:
            @mention-bot funny cats
            '''.strip()
        if message['content'] == '':
            bot_handler.send_reply(message, help_content)
        else:
            text_to_search = message['content']
            url = "https://www.youtube.com/results?search_query=" + text_to_search
            r = requests.get(url)
            soup = BeautifulSoup(r.text, 'lxml')
            video_id = soup.find(attrs={'class': 'yt-uix-tile-link'})
            try:
                link = 'https://www.youtube.com' + video_id['href']
                bot_handler.send_reply(message, link)
            except TypeError:
                bot_handler.send_reply(message, 'No video found for specified search terms')

handler_class = YoutubeHandler
