mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2025-06-06 20:06:12 +08:00
34 lines
1002 B
Python
34 lines
1002 B
Python
from nonebot import logger
|
|
import time
|
|
|
|
QUEUE = []
|
|
LAST_SEND_TIME = time.time()
|
|
|
|
|
|
async def do_send_msgs():
|
|
global LAST_SEND_TIME
|
|
if time.time() - LAST_SEND_TIME < 1.5:
|
|
return
|
|
if QUEUE:
|
|
bot, user, user_type, msg, retry_time = QUEUE.pop(0)
|
|
try:
|
|
if user_type == 'group':
|
|
await bot.call_api('send_group_msg', group_id=user, message=msg)
|
|
elif user_type == 'private':
|
|
await bot.call_api('send_private_msg', user_id=user, message=msg)
|
|
except:
|
|
if retry_time > 0:
|
|
QUEUE.insert(0, (bot, user, user_type, msg, retry_time - 1))
|
|
else:
|
|
msg_str = str(msg)
|
|
if len(msg_str) > 50:
|
|
msg_str = msg_str[:50] + '...'
|
|
logger.warning(f'send msg err {msg_str}')
|
|
LAST_SEND_TIME = time.time()
|
|
|
|
def send_msgs(bot, user, user_type, msgs):
|
|
for msg in msgs:
|
|
QUEUE.append((bot, user, user_type, msg, 2))
|
|
|
|
|