Archived
1
0
Fork 0
This repository has been archived on 2024-04-26. You can view files and clone it, but cannot push or open issues or pull requests.
akari-bot/core/unit_test/template.py

89 lines
3.1 KiB
Python
Raw Normal View History

2021-08-30 18:53:39 +00:00
from typing import List
2021-07-30 18:06:04 +00:00
2021-09-10 18:05:27 +00:00
from PIL import Image
2021-08-30 18:53:39 +00:00
from core.elements import MessageSession, Plain, Image as BImage, Session, MsgInfo, FetchTarget as FT
2021-07-30 18:06:04 +00:00
from core.elements.others import confirm_command
class Template(MessageSession):
class Feature:
image = True
voice = False
async def sendMessage(self, msgchain, quote=True) -> MessageSession:
if isinstance(msgchain, str):
print(msgchain)
2021-08-07 07:56:48 +00:00
return MessageSession(target=self.target,
session=Session(message=msgchain, target='TEST|Console', sender='TEST|Console'))
2021-07-30 18:06:04 +00:00
if isinstance(msgchain, list):
msg_list = []
for x in msgchain:
if isinstance(x, Plain):
print(x.text)
msg_list.append(x.text)
if isinstance(x, BImage):
img = Image.open(await x.get())
2021-07-30 18:06:04 +00:00
img.show()
2021-08-07 07:56:48 +00:00
return MessageSession(target=self.target,
session=Session(message=str(msg_list), target='TEST|Console', sender='TEST|Console'))
2021-07-30 18:06:04 +00:00
2021-09-10 18:05:27 +00:00
async def waitConfirm(self, msgchain=None, quote=True):
if msgchain is not None:
await self.sendMessage(msgchain)
print("(发送“是”或符合确认条件的词语来确认)")
2021-07-30 18:06:04 +00:00
c = input('Confirm: ')
2021-09-10 18:05:27 +00:00
print(c)
2021-07-30 18:06:04 +00:00
if c in confirm_command:
return True
return False
def asDisplay(self):
return self.session.message
async def delete(self):
2021-08-07 03:59:58 +00:00
print("(Try to delete {self.session.message}, but I'm a console so I cannot do it :< )")
2021-07-30 18:06:04 +00:00
return True
2021-08-20 16:32:46 +00:00
async def checkPermission(self):
2021-08-07 03:59:58 +00:00
print("(Try to check your permissions, but this is a unit test environment. Have fun!)")
2021-07-30 18:06:04 +00:00
return True
def checkSuperUser(self):
2021-08-07 03:59:58 +00:00
print("(Try to check if you are superuser, but this is a unit test environment. Have fun!)")
2021-07-30 18:06:04 +00:00
return True
class Typing:
def __init__(self, msg: MessageSession):
self.msg = msg
async def __aenter__(self):
print('Console is typing...')
async def __aexit__(self, exc_type, exc_val, exc_tb):
pass
2021-08-03 16:04:59 +00:00
2021-08-30 18:53:39 +00:00
class FetchTarget(FT):
2021-08-03 16:04:59 +00:00
@staticmethod
2021-08-24 11:00:13 +00:00
async def fetch_target(targetId):
return Template(target=MsgInfo(targetId=targetId,
2021-08-07 07:56:48 +00:00
senderId=targetId,
senderName='',
targetFrom='TEST|Console',
senderFrom='TEST|Console'),
session=Session(message=False, target=targetId, sender=targetId))
2021-08-30 18:53:39 +00:00
@staticmethod
async def post_message(module_name, message, user_list: List[MessageSession] = None):
if isinstance(message, str):
print(message)
elif isinstance(message, list):
for x in message:
if isinstance(x, Plain):
print(x.text)
if isinstance(x, BImage):
img = Image.open(await x.get())
img.show()
return message