diff options
Diffstat (limited to 'ATRI/plugins/utils/data_source.py')
-rw-r--r-- | ATRI/plugins/utils/data_source.py | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/ATRI/plugins/utils/data_source.py b/ATRI/plugins/utils/data_source.py index b83cd33..f41a1d1 100644 --- a/ATRI/plugins/utils/data_source.py +++ b/ATRI/plugins/utils/data_source.py @@ -1,3 +1,34 @@ -from nonebot.adapters.cqhttp.message import MessageSegment +import re +import random -MessageSegment.
\ No newline at end of file + +def roll_dice(par: str) -> str: + result = 0 + proc = '' + proc_list = [] + p = par.split("+") + + for i in p: + args = re.findall(r"(\d{0,10})(?:(d)(\d{1,10}))", i) + args = list(args[0]) + + args[0] = args[0] or 1 + if int(args[0]) >= 5000 or int(args[2]) >= 5000: + return "阿...好大......" + + for a in range(1, int(args[0]) + 1): + rd = random.randint(1, int(args[2])) + result = result + rd + + if len(proc_list) <= 10: + proc_list.append(rd) + + if len(proc_list) <= 10: + proc += "+".join(map(str, proc_list)) + elif len(proc_list) > 10: + proc += "太长了不展示了就酱w" + else: + proc += str(result) + + result = f"{par}=({proc})={result}" + return result |