mirror of
https://github.com/LiteyukiStudio/nonebot-plugin-marshoai.git
synced 2025-08-02 08:29:51 +00:00
MegaKits插件移植 (#28)
* 新增了萌百插件(meowiki) * 更新萌百搜索 * 删除萌百插件, 结束开发 * 新建MegaKits插件 * 修复 * 摩尔斯电码加密/解码 * 猫语转换/翻译
This commit is contained in:
@ -0,0 +1,74 @@
|
||||
# NyaCode
|
||||
|
||||
import base64
|
||||
import random
|
||||
|
||||
NyaCodeCharset = ["喵", "呜", "?", "~"]
|
||||
NyaCodeSpecialCharset = ["唔", "!", "...", ".."]
|
||||
NyaCodeEncode = {}
|
||||
|
||||
for i in range(64):
|
||||
triplet = ""
|
||||
for j in range(3):
|
||||
index = (i // (4**j)) % 4
|
||||
triplet += NyaCodeCharset[index]
|
||||
|
||||
if i < 26:
|
||||
char = chr(65 + i) # 大写字母 A-Z
|
||||
elif i < 52:
|
||||
char = chr(97 + (i - 26)) # 小写字母 a-z
|
||||
elif i < 62:
|
||||
char = chr(48 + (i - 52)) # 数字 0-9
|
||||
elif i == 62:
|
||||
char = chr(43) # 特殊字符 +
|
||||
else:
|
||||
char = chr(47) # 特殊字符 /
|
||||
NyaCodeEncode[char] = triplet
|
||||
NyaCodeDecode = {value: key for key, value in NyaCodeEncode.items()}
|
||||
|
||||
|
||||
async def nya_encrypt(msg: str):
|
||||
result = ""
|
||||
b64str = base64.b64encode(msg.encode()).decode().replace("=", "")
|
||||
|
||||
nyastr = ""
|
||||
for b64char in b64str:
|
||||
nyastr += NyaCodeEncode[b64char]
|
||||
|
||||
for char in nyastr:
|
||||
if char == "呜" and random.random() < 0.5:
|
||||
result += "!"
|
||||
if random.random() < 0.25:
|
||||
result += random.choice(NyaCodeSpecialCharset) + char
|
||||
else:
|
||||
result += char
|
||||
return result
|
||||
|
||||
|
||||
async def nya_decrypt(msg: str):
|
||||
msg = msg.replace("唔", "").replace("!", "").replace(".", "")
|
||||
nyastr = []
|
||||
|
||||
i = 0
|
||||
if len(msg) % 3 != 0:
|
||||
return "这句话不是正确的猫语"
|
||||
|
||||
while i < len(msg):
|
||||
nyachar = msg[i : i + 3]
|
||||
try:
|
||||
if all(char in NyaCodeCharset for char in nyachar):
|
||||
nyastr.append(nyachar)
|
||||
i += 3
|
||||
except Exception:
|
||||
return "这句话不是正确的猫语"
|
||||
|
||||
b64str = ""
|
||||
for nyachar in nyastr:
|
||||
b64str += NyaCodeDecode[nyachar]
|
||||
b64str += "=" * (4 - len(b64str) % 4)
|
||||
|
||||
try:
|
||||
result = base64.b64decode(b64str.encode()).decode()
|
||||
except Exception:
|
||||
return "翻译失败"
|
||||
return result
|
Reference in New Issue
Block a user