Fix async blocking state

This commit is contained in:
SebClem 2023-11-02 21:41:53 +01:00
parent f4e4c5dda4
commit bc5683cd72

View File

@ -1,3 +1,4 @@
import asyncio
import logging import logging
import os import os
from shlex import join from shlex import join
@ -55,8 +56,13 @@ async def pixivprev(interaction: discord.Interaction, url: str):
if result and match is not None: if result and match is not None:
await interaction.response.defer() await interaction.response.defer()
with TemporaryDirectory() as tmp_dir: with TemporaryDirectory() as tmp_dir:
data = pixiv_api.dowload_pixiv_images( loop = asyncio.get_running_loop()
int(match.group("id")), tmp_dir, REFRESH_TOKEN data = await loop.run_in_executor(
None,
pixiv_api.dowload_pixiv_images,
int(match.group("id")),
tmp_dir,
REFRESH_TOKEN,
) )
if data is None: if data is None:
await interaction.response.send_message( await interaction.response.send_message(
@ -86,8 +92,13 @@ async def pixiv_preview(interaction: discord.Interaction, message: discord.Messa
if result and match is not None: if result and match is not None:
await interaction.response.defer() await interaction.response.defer()
with TemporaryDirectory() as tmp_dir: with TemporaryDirectory() as tmp_dir:
data = pixiv_api.dowload_pixiv_images( loop = asyncio.get_running_loop()
int(match.group("id")), tmp_dir, REFRESH_TOKEN data = await loop.run_in_executor(
None,
pixiv_api.dowload_pixiv_images,
int(match.group("id")),
tmp_dir,
REFRESH_TOKEN,
) )
if data is None: if data is None:
await interaction.response.send_message( await interaction.response.send_message(
@ -126,8 +137,13 @@ async def on_message(message: discord.Message):
if result and match is not None: if result and match is not None:
with TemporaryDirectory() as tmp_dir: with TemporaryDirectory() as tmp_dir:
async with message.channel.typing(): async with message.channel.typing():
data = pixiv_api.dowload_pixiv_images( loop = asyncio.get_running_loop()
int(match.group("id")), tmp_dir, REFRESH_TOKEN data = await loop.run_in_executor(
None,
pixiv_api.dowload_pixiv_images,
int(match.group("id")),
tmp_dir,
REFRESH_TOKEN,
) )
if data is None: if data is None:
return return