meme cog: Don't convert images if already in PNG format; sing cog: remove ephemeral=True from bridge s/sing command initial response; misc_util: remove 2 coffees
This commit is contained in:
25
cogs/meme.py
25
cogs/meme.py
@ -264,10 +264,13 @@ class Meme(commands.Cog):
|
|||||||
phash: str = str(imagehash.phash(_image))
|
phash: str = str(imagehash.phash(_image))
|
||||||
query: str = "INSERT INTO memes(discord_uid, timestamp, image, message_ids, phash) VALUES(?, ?, ?, ?, ?)"
|
query: str = "INSERT INTO memes(discord_uid, timestamp, image, message_ids, phash) VALUES(?, ?, ?, ?, ?)"
|
||||||
image.seek(0)
|
image.seek(0)
|
||||||
converted = self.convert_to_png(image)
|
if not self.is_png(image):
|
||||||
|
store_image = self.convert_to_png(image)
|
||||||
|
else:
|
||||||
|
store_image = image.read()
|
||||||
async with sqlite3.connect(self.meme_db_path, timeout=5) as db_conn:
|
async with sqlite3.connect(self.meme_db_path, timeout=5) as db_conn:
|
||||||
insert = await db_conn.execute_insert(
|
insert = await db_conn.execute_insert(
|
||||||
query, (discord_uid, timestamp, converted, message_id, phash)
|
query, (discord_uid, timestamp, store_image, message_id, phash)
|
||||||
)
|
)
|
||||||
if insert:
|
if insert:
|
||||||
await db_conn.commit()
|
await db_conn.commit()
|
||||||
@ -860,6 +863,24 @@ class Meme(commands.Cog):
|
|||||||
else:
|
else:
|
||||||
await ctx.respond("NO embed :(")
|
await ctx.respond("NO embed :(")
|
||||||
|
|
||||||
|
def is_png(self, buffer: bytes | io.BytesIO) -> bool:
|
||||||
|
"""
|
||||||
|
Check if image (in-memory buffer, or bytes) is a PNG
|
||||||
|
Args:
|
||||||
|
buffer (bytes|io.BytesIO)
|
||||||
|
Returns:
|
||||||
|
bool
|
||||||
|
"""
|
||||||
|
# Accepts either bytes or a BytesIO-like object
|
||||||
|
if isinstance(buffer, io.BytesIO):
|
||||||
|
if hasattr(buffer, "read") and hasattr(buffer, "seek"):
|
||||||
|
pos = buffer.tell()
|
||||||
|
buffer.seek(0)
|
||||||
|
signature = buffer.read(8)
|
||||||
|
buffer.seek(pos)
|
||||||
|
else:
|
||||||
|
signature = buffer[:8]
|
||||||
|
return signature == b"\x89PNG\r\n\x1a\n"
|
||||||
|
|
||||||
def convert_to_png(self, in_buffer: io.BytesIO) -> bytes:
|
def convert_to_png(self, in_buffer: io.BytesIO) -> bytes:
|
||||||
"""
|
"""
|
||||||
|
@ -61,7 +61,7 @@ class Sing(commands.Cog):
|
|||||||
)
|
)
|
||||||
|
|
||||||
await ctx.respond(
|
await ctx.respond(
|
||||||
"*Searching...*", ephemeral=True
|
"*Searching...*"
|
||||||
) # Must respond to interactions within 3 seconds, per Discord
|
) # Must respond to interactions within 3 seconds, per Discord
|
||||||
|
|
||||||
parsed = self.utility.parse_song_input(song, activity)
|
parsed = self.utility.parse_song_input(song, activity)
|
||||||
|
@ -115,8 +115,6 @@ class Util:
|
|||||||
"a sweet cream cold brew",
|
"a sweet cream cold brew",
|
||||||
"a matcha latte",
|
"a matcha latte",
|
||||||
"a golden latte",
|
"a golden latte",
|
||||||
"a turmeric latte",
|
|
||||||
"a beetroot latte",
|
|
||||||
"a kopi luwak",
|
"a kopi luwak",
|
||||||
]
|
]
|
||||||
self.LAST_5_COFFEES: list = []
|
self.LAST_5_COFFEES: list = []
|
||||||
|
Reference in New Issue
Block a user