🎨 新增依赖和方法

This commit is contained in:
KimigaiiWuyi 2023-12-04 02:00:58 +08:00
parent ae8ab23650
commit 41e345621a
2 changed files with 45 additions and 34 deletions

View File

@ -40,39 +40,18 @@ class GsClient:
async def send_msg(self):
while True:
intent = await self._input()
for content in [
Message(type='text', data=intent),
Message(type='text', data='开始一场60秒的游戏'),
Message(type='text', data=intent),
Message(type='text', data='233'),
Message(type='text', data='233'),
Message(type='text', data='233'),
Message(type='text', data='233'),
Message(type='text', data='233'),
Message(type='text', data=intent),
Message(type='text', data=intent),
Message(type='text', data=intent),
Message(type='text', data=intent),
Message(type='text', data=intent),
Message(type='text', data=intent),
Message(type='text', data=intent),
]:
user_type = random.choice(['direct', 'group'])
group_id = random.choice(['555', '666', '777'])
user_id = random.choice(['1', '2', '3', '4', '5'])
if content.data == '开始一场60秒的游戏':
user_type = 'group'
group_id = '555'
msg = MessageReceive(
bot_id='console',
user_type=user_type, # type: ignore
user_pm=1,
group_id=group_id,
user_id=user_id,
content=[content],
)
msg_send = msgjson.encode(msg)
await self.ws.send(msg_send)
content = Message(type='text', data=intent)
group_id = random.choice(['555', '666', '777'])
msg = MessageReceive(
bot_id='console',
user_type='group',
user_pm=0,
group_id=group_id,
user_id='511',
content=[content],
)
msg_send = msgjson.encode(msg)
await self.ws.send(msg_send)
async def start(self):
recv_task = asyncio.create_task(self.recv_msg())

View File

@ -1,6 +1,9 @@
import json
import datetime
from pathlib import Path
from typing import Optional
from typing import Dict, Optional
import httpx
import aiofiles
from aiohttp.client import ClientSession
from aiohttp.client_exceptions import ClientConnectorError
@ -26,3 +29,32 @@ async def download(
logger.info(f'{tag} {name} 下载完成!')
except ClientConnectorError:
logger.warning(f"{tag} {name} 下载失败!")
async def get_data_from_url(
url: str, path: Path, expire_sec: Optional[float] = None
) -> Dict:
time_difference = 10
if path.exists() and expire_sec is not None:
modified_time = path.stat().st_mtime
modified_datetime = datetime.datetime.fromtimestamp(modified_time)
current_datetime = datetime.datetime.now()
time_difference = (
current_datetime - modified_datetime
).total_seconds()
if (
expire_sec is not None and time_difference >= expire_sec
) or not path.exists():
async with httpx.AsyncClient() as client:
response = await client.get(url)
data = response.json()
async with aiofiles.open(path, 'w', encoding='UTF-8') as file:
await file.write(
json.dumps(data, indent=4, ensure_ascii=False)
)
else:
async with aiofiles.open(path, 'r', encoding='UTF-8') as file:
data = json.loads(await file.read())
return data