Compare commits

..

No commits in common. "08557106b47cec1bd07b242d62134e22035af89d" and "d88d344e4e773607a6823608575cf845284896dc" have entirely different histories.

3 changed files with 9 additions and 15 deletions

View file

@ -2,8 +2,8 @@ FROM python:3.11.6
WORKDIR /usr/src/units WORKDIR /usr/src/units
COPY requirements.txt . COPY requiremtns.txt .
RUN pip install -r requirements.txt RUN pip install -r requirements.com
COPY bot.py . COPY bot.py .

20
bot.py
View file

@ -1,10 +1,9 @@
import os import os
import re
from contextlib import suppress
from urllib.parse import urlparse, parse_qs from urllib.parse import urlparse, parse_qs
from contextlib import suppress
import discord import discord
from discord.ext import commands from discord.ext import commands
import re
intents = discord.Intents.default() intents = discord.Intents.default()
intents.members = True intents.members = True
@ -37,21 +36,16 @@ async def on_message(message):
async def get_youtube_id(url: str, ignore_playlist=True) -> str: async def get_youtube_id(url: str, ignore_playlist=True) -> str:
query = urlparse(url) query = urlparse(url)
if query.hostname == 'youtu.be': if query.hostname == 'youtu.be': return query.path[1:]
return query.path[1:]
if query.hostname in {'www.youtube.com', 'youtube.com', 'music.youtube.com'}: if query.hostname in {'www.youtube.com', 'youtube.com', 'music.youtube.com'}:
if not ignore_playlist: if not ignore_playlist:
# use case: get playlist id not current video in playlist # use case: get playlist id not current video in playlist
with suppress(KeyError): with suppress(KeyError):
return parse_qs(query.query)['list'][0] return parse_qs(query.query)['list'][0]
if query.path == '/watch': if query.path == '/watch': return parse_qs(query.query)['v'][0]
return parse_qs(query.query)['v'][0] if query.path[:7] == '/watch/': return query.path.split('/')[1]
if query.path[:7] == '/watch/': if query.path[:7] == '/embed/': return query.path.split('/')[2]
return query.path.split('/')[1] if query.path[:3] == '/v/': return query.path.split('/')[2]
if query.path[:7] == '/embed/':
return query.path.split('/')[2]
if query.path[:3] == '/v/':
return query.path.split('/')[2]
bot.run(DISCORD_TOKEN) bot.run(DISCORD_TOKEN)