QR invite fixes

flask-develop
bobloy 6 years ago
parent eecfb821a0
commit 50a61398e6

@ -2,13 +2,10 @@ import pathlib
import aiohttp
import discord
from MyQR import myqr
from PIL import Image
from redbot.core import Config, checks, commands
from redbot.core import Config, commands
from redbot.core.bot import Red
from MyQR import myqr
from redbot.core.data_manager import cog_data_path
@ -27,7 +24,7 @@ class QRInvite:
self.config.register_guild(**default_guild)
@commands.command()
async def qrinvite(self, ctx: commands.Context, invite: str=None, colorized: bool=False, image_url: str=None):
async def qrinvite(self, ctx: commands.Context, invite: str = None, colorized: bool = False, image_url: str = None):
"""
Create a custom QR code invite for this server
"""
@ -46,10 +43,15 @@ class QRInvite:
if image_url is None:
image_url = ctx.guild.icon_url
extension = pathlib.Path(image_url).parts[-1].replace('.','?').split('?')[1]
if image_url == "": # Still
await ctx.send(
"Could not get an image, please provide one. *(`{}help qrinvite` for details)*".format(ctx.prefix))
return
extension = pathlib.Path(image_url).parts[-1].replace('.', '?').split('?')[1]
path: pathlib.Path = cog_data_path(self)
image_path = path / (ctx.guild.icon+"."+extension)
image_path = path / (ctx.guild.icon + "." + extension)
async with aiohttp.ClientSession() as session:
async with session.get(image_url) as response:
image = await response.read()
@ -62,20 +64,21 @@ class QRInvite:
else:
new_path = str(image_path)
myqr.run(invite,picture=new_path,save_name=ctx.guild.icon+"_qrcode.png",
save_dir=str(cog_data_path(self)),colorized=colorized,)
myqr.run(invite, picture=new_path, save_name=ctx.guild.icon + "_qrcode.png",
save_dir=str(cog_data_path(self)), colorized=colorized, )
png_path: pathlib.Path = path / (ctx.guild.icon+"_qrcode.png")
png_path: pathlib.Path = path / (ctx.guild.icon + "_qrcode.png")
with png_path.open("rb") as png_fp:
await ctx.send(file=discord.File(png_fp.read(), "qrcode.png"))
def convert_png(path):
im = Image.open(path)
im.load()
alpha = im.split()[-1]
im = im.convert('RGB').convert('P', palette=Image.ADAPTIVE, colors=255)
mask = Image.eval(alpha, lambda a: 255 if a <=128 else 0)
mask = Image.eval(alpha, lambda a: 255 if a <= 128 else 0)
im.paste(255, mask)
newPath = path.replace(".webp",".png")
im.save(newPath, transparency=255)
return newPath
new_path = path.replace(".webp", ".png")
im.save(new_path, transparency=255)
return new_path

Loading…
Cancel
Save