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/MessageGen.py

133 lines
4.5 KiB
Python
Raw Normal View History

2020-08-12 16:01:34 +00:00
import re
from graia.application.message.chain import MessageChain
2020-08-18 05:37:35 +00:00
from graia.application.message.elements.internal import Plain, Image, UploadMethods
2020-08-07 06:19:34 +00:00
from os.path import abspath
2020-08-12 16:01:34 +00:00
2020-08-07 06:19:34 +00:00
from CommandGen import command
2020-08-18 05:37:35 +00:00
from plugins.findimage import findimage
2020-08-12 16:01:34 +00:00
async def gen(app, message, target1, target2='0', msgtype='None'):
2020-08-07 06:19:34 +00:00
run = await command(message.asDisplay())
print(run)
if run != None:
2020-08-11 15:49:14 +00:00
if msgtype == 'friend':
mth = UploadMethods.Friend
elif msgtype == 'group':
mth = UploadMethods.Group
elif msgtype == 'temp':
mth = UploadMethods.Temp
2020-08-07 06:19:34 +00:00
else:
2020-08-11 15:49:14 +00:00
mth = None
2020-08-07 06:19:34 +00:00
if run.find('[[usn:') != -1:
2020-08-12 16:01:34 +00:00
user = re.sub(r'.*\[\[usn:|\]\]', '', run)
msg = re.sub(r'\[\[.*\]\]', '', run)
msgchain = MessageChain.create( \
[Plain(msg)])
msgchain = msgchain.plusWith(
[Image.fromLocalFile(filepath=abspath(f"./assests/usercard/{user}.png"), method=mth)])
2020-08-07 06:19:34 +00:00
else:
2020-08-12 16:01:34 +00:00
msgchain = MessageChain.create( \
[Plain(run)])
r = re.findall(r'(https?://.*?/File:.*?\.(?:png|gif|jpg|jpeg|webp|bmp|ico))', run, re.I)
2020-08-11 15:49:14 +00:00
for d in r:
d1 = await findimage(d)
print(d1)
2020-08-12 16:01:34 +00:00
msgchain = msgchain.plusWith([Image.fromNetworkAddress(url=d1, method=mth)])
2020-08-11 15:49:14 +00:00
if msgtype == 'friend':
friend = target1
2020-08-12 16:01:34 +00:00
await app.sendFriendMessage(friend, msgchain.asSendable())
2020-08-11 15:49:14 +00:00
elif msgtype == 'group':
group = target1
member = target2
2020-08-12 16:01:34 +00:00
await app.sendGroupMessage(group, msgchain.asSendable(), quote=message.__root__[0].id)
2020-08-11 15:49:14 +00:00
elif msgtype == 'temp':
group = target1
member = target2
2020-08-12 16:01:34 +00:00
await app.sendTempMessage(group=group, target=member, message=msgchain.asSendable())
2020-08-18 05:37:35 +00:00
from plugins.wiki import im, imt, imarc
2020-08-12 16:01:34 +00:00
async def findwikitext(app, message, target1, target2='0', msgtype='None'):
w = re.findall(r'\[\[(.*?)\]\]', message.asDisplay())
w2 = re.findall(r'\{\{(.*?)\}\}', message.asDisplay())
print(str(w), str(w2))
2020-08-07 06:19:34 +00:00
2020-08-11 15:49:14 +00:00
z = []
c = '\n'
try:
for x in w:
if msgtype == 'group':
group = target1
if group.id == 250500369 or group.id == 676942198:
if x == '':
pass
else:
z.append(await imarc(x))
else:
if x == '':
pass
else:
z.append(await im(x))
else:
if x == '':
pass
else:
z.append(await im(x))
except:
pass
try:
if str(w2) == '['']' or str(w2) == '[]':
pass
else:
for x in w2:
if msgtype == 'group':
2020-08-12 16:01:34 +00:00
group = target1
2020-08-11 15:49:14 +00:00
if group.id == 250500369 or group.id == 676942198:
pass
else:
if x == '':
pass
else:
z.append(await imt(x))
else:
if x == '':
pass
else:
z.append(await imt(x))
except:
pass
2020-08-12 16:01:34 +00:00
if str(z) == '['']['']' or str(z) == '[][]' or str(z) == '[]':
2020-08-11 15:49:14 +00:00
pass
else:
if msgtype == 'friend':
mth = UploadMethods.Friend
elif msgtype == 'group':
mth = UploadMethods.Group
elif msgtype == 'temp':
mth = UploadMethods.Temp
else:
mth = None
v = c.join(z)
2020-08-12 16:01:34 +00:00
r = re.findall(r'(https?://.*?/File:.*?\.(?:png|gif|jpg|jpeg|webp|bmp|ico))', v, re.I)
2020-08-11 15:49:14 +00:00
print(v)
print(str(r))
msgchain = MessageChain.create([Plain(v)])
for d in r:
d1 = await findimage(d)
print(d1)
2020-08-12 16:01:34 +00:00
msgchain = msgchain.plusWith([Image.fromNetworkAddress(url=d1, method=mth)])
2020-08-11 15:49:14 +00:00
if msgtype == 'friend':
friend = target1
2020-08-12 16:01:34 +00:00
await app.sendFriendMessage(friend, msgchain.asSendable())
2020-08-11 15:49:14 +00:00
elif msgtype == 'group':
group = target1
member = target2
2020-08-12 16:01:34 +00:00
await app.sendGroupMessage(group, msgchain.asSendable(), quote=message.__root__[0].id)
2020-08-11 15:49:14 +00:00
elif msgtype == 'temp':
group = target1
member = target2
2020-08-12 16:01:34 +00:00
await app.sendTempMessage(group=group, target=member, message=msgchain.asSendable())