Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cf35e5923c | |||
| 4107a4875c |
4
.env.dev
4
.env.dev
@ -1,4 +1,2 @@
|
||||
DRIVER=~fastapi+~httpx+~websockets
|
||||
COMMAND_START=["!", "!", "", "/"]
|
||||
|
||||
ALCONNA_USE_ORIGIN=true
|
||||
COMMAND_START=["!", "!", "", "/"]
|
||||
@ -1,4 +1,2 @@
|
||||
DRIVER=~fastapi+~httpx+~websockets
|
||||
COMMAND_START=["!", "!", "", "/"]
|
||||
|
||||
ALCONNA_USE_ORIGIN=true
|
||||
COMMAND_START=["!", "!", "", "/"]
|
||||
46
konabot/plugins/openssl_rand/__init__.py
Normal file
46
konabot/plugins/openssl_rand/__init__.py
Normal file
@ -0,0 +1,46 @@
|
||||
import base64
|
||||
import secrets
|
||||
from typing import Literal
|
||||
|
||||
from nonebot.adapters import Event as BaseEvent
|
||||
from nonebot.adapters.discord.event import MessageEvent as DiscordMessageEvent
|
||||
from nonebot_plugin_alconna import (Alconna, Args, Field, Subcommand,
|
||||
UniMessage, on_alconna)
|
||||
|
||||
evt = on_alconna(Alconna(
|
||||
"openssl",
|
||||
Subcommand(
|
||||
"rand",
|
||||
Args["mode", Literal["-hex", "-base64"], Field(
|
||||
missing_tips=lambda: "请输入生成模式,-hex 或 -base64,例如 openssl rand -hex 16",
|
||||
unmatch_tips=lambda mode: f"{mode} 不是一个有效的格式,请使用 -hex 或 -base64"
|
||||
)],
|
||||
Args["num", int, Field(
|
||||
missing_tips=lambda: "请输入需要生成的字节数,例如 openssl rand -hex 16",
|
||||
)],
|
||||
)
|
||||
), use_cmd_start=True, use_cmd_sep=False, skip_for_unmatch=False)
|
||||
|
||||
@evt.assign("rand")
|
||||
async def _(event: BaseEvent, mode: str, num: int):
|
||||
if num <= 0:
|
||||
await evt.send(await UniMessage().text(
|
||||
"生成的字节数必须是一个正整数"
|
||||
).export())
|
||||
return
|
||||
if num > 256:
|
||||
await evt.send(await UniMessage().text(
|
||||
"太大了!!!!!"
|
||||
).export())
|
||||
return
|
||||
|
||||
random_bytes = secrets.token_bytes(num)
|
||||
if mode == "-hex":
|
||||
result = random_bytes.hex()
|
||||
else:
|
||||
result = base64.b64encode(random_bytes).decode()
|
||||
|
||||
if isinstance(event, DiscordMessageEvent):
|
||||
result = f"```{result}```"
|
||||
|
||||
await evt.send(await UniMessage().text(result).export())
|
||||
Reference in New Issue
Block a user