fix #693
This commit is contained in:
parent
9a632bfab1
commit
b45a1eea6b
1 changed files with 22 additions and 1 deletions
|
@ -1,5 +1,6 @@
|
|||
import asyncio
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
from datetime import datetime, timedelta
|
||||
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})))
|
||||
|
||||
|
||||
def isfloat(num):
|
||||
try:
|
||||
float(num)
|
||||
return True
|
||||
except ValueError:
|
||||
return False
|
||||
|
||||
|
||||
_config = module('config', developers=['OasisAkari'], required_superuser=True, alias='cfg')
|
||||
|
||||
|
||||
@_config.handle('write <k> <v> [-s]')
|
||||
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"))
|
||||
|
||||
|
||||
|
|
Reference in a new issue