diff --git a/lovecalculator/lovecalculator.py b/lovecalculator/lovecalculator.py index 1b7e5c1..d43146d 100644 --- a/lovecalculator/lovecalculator.py +++ b/lovecalculator/lovecalculator.py @@ -1,9 +1,13 @@ +import logging + import aiohttp import discord from bs4 import BeautifulSoup from redbot.core import commands from redbot.core.commands import Cog +log = logging.getLogger("red.fox_v3.chatter") + class LoveCalculator(Cog): """Calculate the love percentage for two users!""" @@ -28,18 +32,23 @@ class LoveCalculator(Cog): url = "https://www.lovecalculator.com/love.php?name1={}&name2={}".format( x.replace(" ", "+"), y.replace(" ", "+") ) - async with aiohttp.ClientSession() as session: + async with aiohttp.ClientSession(headers={"Connection": "keep-alive"}) as session: async with session.get(url) as response: + log.debug(f"{response=}") + assert response.status == 200 soup_object = BeautifulSoup(await response.text(), "html.parser") try: description = ( - soup_object.find("div", attrs={"class": "result__score"}) - .get_text() - .strip() + soup_object.find("div", class_="result__score").get_text().strip() ) except: description = "Dr. Love is busy right now" + result_image = soup_object.find("img", class_="result__image").get("src") + + result_text = soup_object.find("div", class_="result-text").get_text() + result_text = " ".join(result_text.split()) + try: z = description[:2] z = int(z) @@ -47,11 +56,12 @@ class LoveCalculator(Cog): emoji = "❤" else: emoji = "💔" - title = "Dr. Love says that the love percentage for {} and {} is:".format(x, y) + title = f"Dr. Love says that the love percentage for {x} and {y} is: {emoji} {description} {emoji}" except: - emoji = "" title = "Dr. Love has left a note for you." - description = emoji + " " + description + " " + emoji - em = discord.Embed(title=title, description=description, color=discord.Color.red()) + em = discord.Embed(title=title, description=result_text, color=discord.Color.red()) + if result_image: + em.set_image(url=f"https://www.lovecalculator.com/{result_image}") + await ctx.send(embed=em)