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-12-25 14:01:33 +00:00
|
|
|
from core.elements import MessageSession, Plain, Image as BImage, Session, MsgInfo, FetchTarget as FT, Voice, Embed
|
2021-07-30 18:06:04 +00:00
|
|
|
from core.elements.others import confirm_command
|
2021-12-31 14:44:34 +00:00
|
|
|
from core.elements.message.chain import MessageChain
|
|
|
|
from core.logger import Logger
|
2021-07-30 18:06:04 +00:00
|
|
|
|
|
|
|
|
|
|
|
class Template(MessageSession):
|
|
|
|
class Feature:
|
|
|
|
image = True
|
|
|
|
voice = False
|
2021-10-11 14:45:28 +00:00
|
|
|
forward = False
|
2021-11-21 13:20:07 +00:00
|
|
|
delete = True
|
2021-07-30 18:06:04 +00:00
|
|
|
|
|
|
|
async def sendMessage(self, msgchain, quote=True) -> MessageSession:
|
2021-12-31 14:44:34 +00:00
|
|
|
Logger.info(msgchain)
|
|
|
|
msgchain = MessageChain(msgchain)
|
|
|
|
Logger.info(msgchain)
|
|
|
|
msg_list = []
|
|
|
|
for x in msgchain.asSendable(embed=False):
|
|
|
|
if isinstance(x, Plain):
|
|
|
|
msg_list.append(x.text)
|
2022-01-07 15:02:57 +00:00
|
|
|
print(x.text)
|
2021-12-31 14:44:34 +00:00
|
|
|
if isinstance(x, BImage):
|
|
|
|
img = Image.open(await x.get())
|
|
|
|
img.show()
|
2022-01-07 15:02:57 +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):
|
2022-01-05 11:14:45 +00:00
|
|
|
name = 'TEST'
|
|
|
|
|
2021-08-03 16:04:59 +00:00
|
|
|
@staticmethod
|
2021-08-24 11:00:13 +00:00
|
|
|
async def fetch_target(targetId):
|
2021-08-04 16:14:23 +00:00
|
|
|
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
|