Archived
1
0
Fork 0
This commit is contained in:
yzhh 2023-07-15 00:23:16 +08:00
parent 9a632bfab1
commit b45a1eea6b

View file

@ -1,5 +1,6 @@
import asyncio import asyncio
import os import os
import re
import sys import sys
from datetime import datetime, timedelta from datetime import datetime, timedelta
from dateutil.relativedelta import relativedelta from dateutil.relativedelta import relativedelta
@ -410,12 +411,32 @@ if Config('enable_eval'):
await msg.finish(str(eval(msg.parsed_msg['<display_msg>'], {'msg': msg}))) await msg.finish(str(eval(msg.parsed_msg['<display_msg>'], {'msg': msg})))
def isfloat(num):
try:
float(num)
return True
except ValueError:
return False
_config = module('config', developers=['OasisAkari'], required_superuser=True, alias='cfg') _config = module('config', developers=['OasisAkari'], required_superuser=True, alias='cfg')
@_config.handle('write <k> <v> [-s]') @_config.handle('write <k> <v> [-s]')
async def _(msg: Bot.MessageSession): async def _(msg: Bot.MessageSession):
CFG.write(msg.parsed_msg['<k>'], msg.parsed_msg['<v>'], msg.parsed_msg['-s']) value = msg.parsed_msg['<v>']
if value == 'True':
value = True
elif value == 'False':
value = False
elif value.isdigit():
value = int(value)
elif isfloat(value):
value = float(value)
elif re.match('^(?:{.*}|[.*])$', value):
value = json.loads(value)
CFG.write(msg.parsed_msg['<k>'], value, msg.parsed_msg['-s'])
await msg.finish(msg.locale.t("success")) await msg.finish(msg.locale.t("success"))