From 7cf41119253764ef4552b8905b75372ca40d2745 Mon Sep 17 00:00:00 2001 From: Roxedus Date: Wed, 9 Jan 2019 00:08:16 +0100 Subject: [PATCH] .gitignore added IDE and tests folder bot.py PEP8 cogs/music.py added thumbnails to now playing, and when song is added to queue cogs/utils/RoxUtils.py added function to fetch thumbnail url youtube = OK soundcloud = OK requirements.txt added bs4, and requests requirements --- .gitignore | 2 ++ bot.py | 1 + cogs/music.py | 23 ++++++++++++++++++----- cogs/utils/RoxUtils.py | 13 +++++++++++++ requirements.txt | 4 +++- 5 files changed, 37 insertions(+), 6 deletions(-) create mode 100644 cogs/utils/RoxUtils.py diff --git a/.gitignore b/.gitignore index ddca512..2d87eb7 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ config.json data/ lavalink/ lavasettings.py +.tests/ +.idea/ #Python crap diff --git a/bot.py b/bot.py index ff1aeaf..efa4dbe 100644 --- a/bot.py +++ b/bot.py @@ -88,5 +88,6 @@ def run_bot(): bot = Bot() bot.run() + if __name__ == '__main__': run_bot() diff --git a/cogs/music.py b/cogs/music.py index 824d135..869c0a7 100644 --- a/cogs/music.py +++ b/cogs/music.py @@ -10,6 +10,8 @@ import logging import math import re +from cogs.utils import RoxUtils + import discord import lavalink from discord.ext import commands @@ -46,10 +48,11 @@ class Music: return if isinstance(event, lavalink.Events.TrackStartEvent): - await channel.send(embed=discord.Embed(title='Now playing:', - description=event.track.title, - color=discord.Color.blurple())) - + embed = discord.Embed(title='Now playing:', description=event.track.title, color=discord.Color.blurple()) + thumbnail_url = RoxUtils.thumbnailer(self, event.player.current.identifier, event.player.current.uri) + if thumbnail_url: + embed.set_thumbnail(url=thumbnail_url) + await channel.send(embed=embed) elif isinstance(event, lavalink.Events.QueueEndEvent): await channel.send('Queue ended! Why not queue more songs?') @@ -83,6 +86,11 @@ class Music: else: track = results['tracks'][0] embed.title = 'Track Enqueued' + + thumbnail_url = RoxUtils.thumbnailer(self, track['info']['identifier'], track['info']['uri']) + if thumbnail_url: + embed.set_thumbnail(url=thumbnail_url) + embed.description = f'[{track["info"]["title"]}]({track["info"]["uri"]})' await ctx.send(embed=embed) player.add(requester=ctx.author.id, track=track) @@ -207,6 +215,11 @@ class Music: embed = discord.Embed(color=discord.Color.blurple(), title='Now Playing', description=song) + + thumbnail_url = RoxUtils.thumbnailer(self, player.current.identifier, player.current.uri) + if thumbnail_url: + embed.set_thumbnail(url=thumbnail_url) + await ctx.send(embed=embed) @commands.command(name='queue', aliases=['q']) @@ -369,4 +382,4 @@ class Music: def setup(bot): - bot.add_cog(Music(bot)) \ No newline at end of file + bot.add_cog(Music(bot)) diff --git a/cogs/utils/RoxUtils.py b/cogs/utils/RoxUtils.py new file mode 100644 index 0000000..d87add8 --- /dev/null +++ b/cogs/utils/RoxUtils.py @@ -0,0 +1,13 @@ +import requests +from bs4 import BeautifulSoup as BS + +def thumbnailer(self, identifier, uri): + thumbnail_url = "" + if "youtube" in uri: + thumbnail_url = f"https://img.youtube.com/vi/{identifier}/0.jpg" + return thumbnail_url + elif "soundcloud" in uri: + thumbnail_url = BS(requests.get(uri).text, "html.parser").find("meta", property="twitter:image")["content"] + return thumbnail_url + else: + return None diff --git a/requirements.txt b/requirements.txt index b4a3f47..637edb0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,5 @@ git+https://github.com/Rapptz/discord.py@rewrite asyncio -lavalink \ No newline at end of file +lavalink +requests +bs4 \ No newline at end of file