KiTTY, un bot Discord qui est un petit chat :) Il est basé sur une ancienne version du bot Red, sous Python 3.6 et qui a des fonctionnalités bien sympatiques !
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
此仓库已存档。您可以查看文件和克隆,但不能推送或创建工单/合并请求。

37 行
1.3 KiB

  1. from discord.ext import commands
  2. import aiohttp
  3. import re
  4. class YouTube:
  5. """Commands for Youtube"""
  6. def __init__(self, bot):
  7. self.bot = bot
  8. self.youtube_regex = (
  9. r'(https?://)?(www\.)?'
  10. '(youtube|youtu|youtube-nocookie)\.(com|be)/'
  11. '(watch\?v=|embed/|v/|.+\?v=)?([^&=%\?]{11})')
  12. @commands.command(pass_context=True, name='youtube', no_pm=True)
  13. async def _youtube(self, context, *, query: str):
  14. """Search on Youtube"""
  15. try:
  16. url = 'https://www.youtube.com/results?'
  17. payload = {'search_query': ''.join(query)}
  18. headers = {'user-agent': 'KiTTY/1.0'}
  19. conn = aiohttp.TCPConnector()
  20. session = aiohttp.ClientSession(connector=conn)
  21. async with session.get(url, params=payload, headers=headers) as r:
  22. result = await r.text()
  23. session.close()
  24. yt_find = re.findall(r'href=\"\/watch\?v=(.{11})', result)
  25. url = 'https://www.youtube.com/watch?v={}'.format(yt_find[0])
  26. await self.bot.say(url)
  27. except Exception as e:
  28. message = 'Something went wrong :cat: ! [{}]'.format(e)
  29. await self.bot.say(message)
  30. def setup(bot):
  31. n = YouTube(bot)
  32. bot.add_cog(n)