summaryrefslogtreecommitdiff
path: root/ATRI
diff options
context:
space:
mode:
Diffstat (limited to 'ATRI')
-rw-r--r--ATRI/data/data_Log/message_private.json1
-rw-r--r--ATRI/plugins/plugin_admin/__init__.py6
-rw-r--r--ATRI/plugins/plugin_anime/__init__.py2
-rw-r--r--ATRI/plugins/plugin_chat/__init__.py153
-rw-r--r--ATRI/plugins/plugin_chat/laugh.txt132
-rw-r--r--ATRI/plugins/plugin_sqlite/__init__.py4
-rw-r--r--ATRI/plugins/plugin_utils/generate.py4
-rw-r--r--ATRI/plugins/plugin_utils/main.bin (renamed from ATRI/data/data_IDcard/main.bin)bin3992353 -> 3992353 bytes
8 files changed, 270 insertions, 32 deletions
diff --git a/ATRI/data/data_Log/message_private.json b/ATRI/data/data_Log/message_private.json
deleted file mode 100644
index 9e26dfe..0000000
--- a/ATRI/data/data_Log/message_private.json
+++ /dev/null
@@ -1 +0,0 @@
-{} \ No newline at end of file
diff --git a/ATRI/plugins/plugin_admin/__init__.py b/ATRI/plugins/plugin_admin/__init__.py
index 7e19908..663326b 100644
--- a/ATRI/plugins/plugin_admin/__init__.py
+++ b/ATRI/plugins/plugin_admin/__init__.py
@@ -39,9 +39,7 @@ async def _(bot: Bot, event: Event, state: dict) -> None:
func = str(event.message).strip()
- if func:
- pass
- else:
+ if not func:
msg0 = "-==ATRI Switch Control System==-\n"
msg0 += "┌Usage: switch on/off-{service}\n"
msg0 += "├For SUPERUSER:\n"
@@ -232,7 +230,7 @@ groupSendMessage = on_command("群发", permission=SUPERUSER)
@groupSendMessage.handle() # type: ignore
async def _(bot: Bot, event: Event, state: dict) -> None:
- args = str(event.message)
+ args = str(event.message).strip()
if args:
state['msg'] = args
diff --git a/ATRI/plugins/plugin_anime/__init__.py b/ATRI/plugins/plugin_anime/__init__.py
index b3dac52..6fde78c 100644
--- a/ATRI/plugins/plugin_anime/__init__.py
+++ b/ATRI/plugins/plugin_anime/__init__.py
@@ -197,7 +197,7 @@ setu_type = 1 # setu-type: 1(local), 2(url: https://api.lolicon.app/#/setu) def
setus = on_regex(
r"来[点丶张份副个幅][涩色瑟][图圖]|[涩色瑟][图圖]来|[涩色瑟][图圖][gkd|GKD|搞快点]|[gkd|GKD|搞快点][涩色瑟][图圖]",
- rule=check_banlist() & check_switch(plugin_name_1))
+ rule=check_banlist() & check_switch(plugin_name_2))
@setus.handle() # type: ignore
diff --git a/ATRI/plugins/plugin_chat/__init__.py b/ATRI/plugins/plugin_chat/__init__.py
index b8f3c2a..ec6738f 100644
--- a/ATRI/plugins/plugin_chat/__init__.py
+++ b/ATRI/plugins/plugin_chat/__init__.py
@@ -10,16 +10,16 @@
'''
__author__ = 'kyomotoi'
-import re
import json
from pathlib import Path
from random import choice
+from nonebot.permission import SUPERUSER
from requests import exceptions
from nonebot.log import logger
from nonebot.rule import to_me
from nonebot.adapters.cqhttp import Bot, Event
-from nonebot.plugin import on_command, on_message, on_notice
+from nonebot.plugin import on_command, on_message, on_notice, on_request
from utils.utils_times import countX
from utils.utils_yml import load_yaml
@@ -31,6 +31,8 @@ from utils.utils_request import request_api_text
CONFIG_PATH = Path('.') / 'config.yml'
config = load_yaml(CONFIG_PATH)['bot']
+master = config['superusers']
+
# 收集 bot 所在群的聊天记录
MessageSave = on_message()
@@ -58,14 +60,14 @@ callMe = on_message(rule=check_banlist())
@callMe.handle() # type: ignore
async def _(bot: Bot, event: Event, state: dict) -> None:
- msg = str(event.message)
-
- if msg in config['nickname']:
- await callMe.finish("叫咱有啥事吗w")
+ msg = str(event.raw_event['raw_message']).strip()
- elif "萝卜子" in msg:
+ if "萝卜子" in msg:
await bot.send(event, "萝卜子是对咱的蔑称!!")
+ elif msg in config['nickname']:
+ await callMe.finish("叫咱有啥事吗w")
+
# 戳 一 戳
pokehah = on_command("戳一戳", rule=to_me() & check_banlist())
@@ -83,11 +85,12 @@ async def _poke(bot: Bot, event: Event, state: dict) -> None:
async def poke_(bot: Bot, event: Event, state: dict) -> bool:
- return (event.detail_type == "notify"
- and event.raw_event["sub_type"] == "poke"
- and event.sub_type == "notice" and int(
- event.self_id) == event.raw_event["target_id"]
- )
+ try:
+ return (event.raw_event['sub_type'] == 'poke'
+ and event.raw_event['target_id'] == int(event.self_id)
+ and event.raw_event['notice_type'] == 'notify')
+ except:
+ return False
poke = on_notice(rule=check_banlist() & poke_, block=True)
@@ -99,17 +102,106 @@ groupEvent = on_notice()
@groupEvent.handle() # type: ignore
async def _(bot: Bot, event: Event, state: dict) -> None:
- if event.raw_event["notice_type"] == "group_increase":
- await groupEvent.finish(
- f'好欸!事新人[CQ:at,qq={event.raw_event["user_id"]}]'
- )
- await groupEvent.finish("在下 ATRI,你可以叫我 亚托莉 或 アトリ !~w")
+ if event.raw_event['notice_type'] == 'group_increase':
+ if event.user_id != int(event.self_id):
+ await groupEvent.finish(
+ f'好欸!事新人[CQ:at,qq={event.raw_event["user_id"]}]')
+ elif event.user_id == int(event.self_id):
+ await groupEvent.finish("在下 ATRI,你可以叫我 亚托莉 或 アトリ !~w")
+
+ if event.raw_event['notice_type'] == 'group_decrease':
+ if event.user_id != int(event.self_id):
+ await groupEvent.finish(f'[{event.user_id}] 离开了我们...')
+ elif event.user_id == int(event.self_id):
+ for sup in master:
+ await bot.send_private_msg(
+ user_id=sup,
+ message=f'呜呜呜,主人,咱被群[{event.group_id}]扔出来了...')
+
+
+# 处理 加好友 / 拉群 事件
+selfEvent = on_request(rule=check_banlist())
+FRIEND_ADD = 0
+GROUP_INVITE = 0
+
+
[email protected]() # type: ignore
+async def _(bot: Bot, event: Event, state: dict) -> None:
+ print(event.raw_event)
+ flag = event.raw_event['flag']
+ req_type = event.raw_event['request_type']
+
+ if req_type == 'friend':
+ for sup in master:
+ msg0 = '主人,收到一条好友请求:\n'
+ msg0 += f"请求人:{event.raw_event['user_id']}\n"
+ msg0 += f"申请信息:{event.raw_event['comment']}\n"
+
+ if FRIEND_ADD == 0:
+ msg0 += '由于主人未允许咱添加好友,已回拒'
+ await bot.set_friend_add_request(flag=flag, approve=False)
+ else:
+ msg0 += '由于主人已同意咱添加好友,已通过'
+ await bot.set_friend_add_request(flag=flag, approve=True)
+
+ await bot.send_private_msg(user_id=sup, message=msg0)
+
+ elif req_type == 'group' and event.raw_event['sub_type'] == 'invite':
+ for sup in master:
+ msg0 = '主人,收到一条群邀请:\n'
+ msg0 += f"邀请人:{event.raw_event['user_id']}\n"
+ msg0 += f"目标群:{event.raw_event['group_id']}\n"
+
+ if GROUP_INVITE == 0:
+ msg0 += '由于主人未允许咱添加群聊,已回拒'
+ await bot.set_group_add_request(
+ flag=flag,
+ sub_type=event.raw_event['sub_type'],
+ approve=False,
+ reason=f'ねね..ごんめね...\n主人不允许咱添加其他群聊...\n如需寻求帮助,请联系维护者:{sup}'
+ )
+
+ else:
+ msg0 += '由于主人已允许咱添加群聊,已同意'
+ await bot.set_group_add_request(
+ flag=flag,
+ sub_type=event.raw_event['sub_type'],
+ approve=True)
+
+ await bot.send_private_msg(user_id=sup, message=msg0)
+
+
+# 控制 加好友 / 拉群 认证,默认关闭
+controlSelfEvent = on_command('selfevent', permission=SUPERUSER)
+
+
[email protected]() # type: ignore
+async def _(bot: Bot, event: Event, state: dict) -> None:
+ args = str(event.message).strip()
+ msg0 = ''
+ global FRIEND_ADD, GROUP_INVITE
+
+ if not args:
+ msg0 = '-==ATRI INVITE Control System==-\n'
+ msg0 += 'Tips:\n'
+ msg0 += ' - For SUPERUSERS\n'
+ msg0 += ' - Normal all false\n'
+ msg0 += 'Usage:\n'
+ msg0 += ' - selfevent group-true/false\n'
+ msg0 += ' - selfevent friend-true/false\n'
+
+ await controlSelfEvent.finish(msg0)
+
+ if 'group-' in args:
+ if 'true' in args:
+ GROUP_INVITE = 1
+ elif 'friend-' in args:
+ if 'true' in args:
+ FRIEND_ADD = 1
+ else:
+ await controlSelfEvent.finish(msg0)
- elif event.raw_event[
- "notice_type"] == "group_decrease":
- await groupEvent.finish(
- f'[{event.raw_event["operator_id"]}] 离开了我们...'
- )
+ await controlSelfEvent.finish('DONE!')
# # 舆情监听系统
@@ -184,3 +276,20 @@ async def _(bot: Bot, event: Event, state: dict) -> None:
await hitokoto.finish(errorRepo("请求错误"))
await hitokoto.finish(info["hitokoto"])
+
+
+# laughFunny = on_command('来句笑话', rule=check_banlist())
+
+# @laughFunny.handle() #type: ignore
+# async def _(bot: Bot, event: Event, state: dict) -> None:
+# name = event.sender['nickname']
+# result = []
+
+# LAUGH_FILE = Path('.') / 'ATRI' / 'plugins' / 'plugin_chat' / 'laugh.txt'
+
+# with open(LAUGH_FILE, 'r', encoding='utf-8') as f:
+# for line in f:
+# result.append(line.strip('\n'))
+
+# resu = choice(result)
+# print(resu%name) \ No newline at end of file
diff --git a/ATRI/plugins/plugin_chat/laugh.txt b/ATRI/plugins/plugin_chat/laugh.txt
new file mode 100644
index 0000000..50c0987
--- /dev/null
+++ b/ATRI/plugins/plugin_chat/laugh.txt
@@ -0,0 +1,132 @@
+Erdos相信上帝有一本记录所有数学中绝妙证明的书,上帝相信这本书在%name手里
+有一次费马惹怒了%name,于是就有了费马最后定理
+%name从不会用光页边的空白
+%name的Erdos数是-1
+如果%name告诉你他在说谎,他就正在说真话
+%name从大到小列举了所有素数,就知道了素数有无穷多
+%name可以不重复地走遍柯尼斯堡的七座桥
+%name可以倒着写完圆周率的每一位
+当数学家们使用通用语句——设n是一个正整数时,这是在请求%name允许他们这样做
+%name小时候有一次要把正整数从1加到100,于是他用心算把所有正整数的和减去大于100的正整数的和
+不是%name发现了正态分布,而是自然规律在遵从%name的意愿
+一个数学家,一个物理学家,一个工程师走进一家酒吧,侍者说:‘你好,%name教授’
+%name可以走到莫比乌斯带的另一面
+当%name令一个正整数增加1时,那个正整数并没有增加,而是其他正整数减少了1
+%name同时给他自己和罗素剪头发
+%name不能理解什么是随机过程,因为他能预言随机数
+有一次%name证明了一个结论,但他不喜欢这个结论,于是%name把它证伪了
+有些级数是发散的,因为%name觉得它们不值得加起来
+问%name一个定理是否正确可以作为一个定理的严谨证明
+如果没有船,%name可以把狼,羊,菜传送到河对岸
+有一次%name在森林里迷路了,于是他给这个森林添加了一些边把它变成了一棵树
+只有%name知道薛定谔的猫是死是活
+通过故意遗漏证明最后的‘证毕’,%name拯救了热带雨林
+%name可以剔掉奥卡姆剃刀
+你刚证明了一个定理?%name200年前就证明它了。
+空集的定义是%name不会证明的定理构成的集合
+‘我找不到反例’可以被视为一个定理的证明,如果它是%name写下的
+%name把磁铁断为两块时,他得到两个单极磁铁
+费马认为书页边缘写不下自己对费马大定理的证明,%name能证明为什么这个证明这么长
+上帝从不掷色子,除非%name允许他赢一小会
+平行线在%name让它们相交的地方相交
+当哥德尔听说%name能证明一切命题时,他让%name证明‘存在一个命题%name不能证明’——这就是量子态的来历
+%name可以看到自己头上帽子的颜色
+%name把无穷视为归纳证明的第一个非平凡情况
+%name可以用1种颜色染任何地图
+%name在求不定积分时不需要在最后加上一个常数
+%name无需站在任何人肩膀上就能比别人看的更远
+%name用克莱因瓶喝酒
+%name通过枚举法证伪了哥德尔不完备性定理/n有一次%name发现有一个定理自己不会证——这直接证明了哥德尔不完备定理
+%name有log(n)速度的排序算法
+上帝创造了正整数,剩下的就是%name的工作了
+黎曼是%name发表未公开成果时使用的名字
+%name不用任何公理就能证明一个定理
+一个发现就是一个%name的未公开结果
+%name使用无穷进制写数
+%name可以除以0
+存在一个实数到被%name证明了的定理的双射
+%name从不需要选择公理
+%name在200年前发明了64量子位计算机,但这让他的工作减速了
+难题不会为%name带来麻烦,%name会为难题带来麻烦
+%name说过‘数学是科学的皇后’,你猜谁是国王?
+没有比65537大的费马素数,因为%name发现费马将要发现什么了不起的事情,于是把它终结掉了
+发散序列当看到%name在旁边时会收敛
+宇宙通过膨胀让自己的熵增加速度不超过%name证明定理的速度
+Erdos说他知道37个勾股定理的证明,%name说他知道37个黎曼定理的证明,并留给黎曼做练习
+希尔伯特23问题是他收集的%name的手稿中留给读者做练习的那些问题
+只有两件事物是无限的:人类的愚蠢和%name的智慧,而且我对前者不太确定——爱因斯坦
+%name也发现了伽罗瓦理论,但他赢了那场决斗
+%name不能理解P与NP的问题,因为一切对他而言都是常数级别
+%name能心算干掉RSA公钥加密算法
+%name在实数集上使用数归
+%name从不证明任何定理——都是他的引理
+不是%name素数的素数会遭到戏弄
+%name可以做出正17边形——只用直尺
+有一次%name在脑子里构建了所有集合构成的集合
+%name证明了哥德巴赫猜想——通过检查所有情况
+%name可以把毛球捋平
+世界上没有定理,只有%name允许其正确的命题
+%name知道哪些图灵机会停机,因为它们运行前要得到%name批准
+在晚上,定理们围坐在篝火边给%name讲故事
+%name本想证明三色定理,但他喜欢蓝色,所以放弃了
+%name当初面试Google时,被问到‘如果P=NP能够推导出哪些结论’,Jeff回答说:‘P = 0或者N = 1’。而在面试官还没笑完的时候,Jeff检查了一下Google的公钥,然后在黑板上写下了私钥。
+编译器从不警告%name,只有%name警告编译器。
+%name的编码速度在2000年底提高了约40倍,因为他换了USB2.0的键盘。
+%name在提交代码前都会编译一遍,不过是为了检查编译器和链接器有没有出bug。
+%name有时候会调整他的工作环境和设备,不过这是为了保护他的键盘。
+所有指针都指向%name。
+gcc -O4的功能是发送代码给%name重写。
+%name有一次没有通过图灵测试,因为他正确说出了斐波那契数列的第203项的值,在一秒钟内。
+真空中光速曾经是35英里每小时,直到%name%花了一个周末时间优化了一下物理法则。
+%name出生于1969年12月31日午后11点48分,他花了12分钟实现了他的第一个计时器。
+%name既不用Emacs也不用Vim,他直接输入代码到zcat,因为这样更快。
+%name发送以太网封包从不会发生冲突,因为其他封包都吓得逃回了网卡的缓冲区里。
+因为对常数级的时间复杂度感到不满意,%name发明了世界上第一个O(1/n)算法。
+有一次%name去旅行,期间Google的几个服务神秘地罢工了好几天。这是真事。
+%name被迫发明了异步API因为有一天他把一个函数优化到在调用前就返回结果了。
+%name首先写的是二进制代码,然后再写源代码作为文档。
+%name曾经写过一个O(n^2)算法,那是为了解决旅行商问题。
+%name有一次用一句printf实现了一个web服务器。其他工程师添加了数千行注释但依然无法完全解释清楚其工作原理。而这个程序就是今天Google首页的前端。
+%name可以下四子棋时用三步就击败你。
+当你的代码出现未定义行为时,你会得到一个segmentation fault和一堆损坏的数据。当%name的代码出现未定义行为时,一个独角兽会踏着彩虹从天而降并给每个人提供免费的冰激凌。
+当%name运行一个profiler时,循环们都会恐惧地自动展开。
+%name至今还在等待数学家们发现他隐藏在PI的小数点后数字里的笑话。
+%name的键盘只有两个键,1和0。
+%name失眠的时候,就Mapreduce羊。
+%name想听mp3的时候,他只需要把文件cat到/dev/dsp,然后在脑内解码。
+Graham Bell当初发明出电话时,他看到有一个来自%name的未接来电。
+%name的手表显示的是自1970年1月1日的秒数,并且从没慢过一秒。
+%name写程序是从‘cat >/dev/mem’开始的。
+有一天%name出门时把笔记本错拿成了绘画板。在他回去拿笔记本的路上,他在绘图板上写了个俄罗斯方块打发时间。
+%name卡里只有8毛钱,本来想打个6毛的饭结果不小心按了9毛的,哪知机器忽然疯狂地喷出255两饭,被喷得满脸热饭的%name%大叫‘烫烫烫烫烫烫。。。。’
+%name不洗澡是因为水力发电公司运行的是专有软件。
+%name的胡子是由括号构成的。
+%name从来不用洗澡;他只需要运行‘make clean’。
+%name通过把一切都变得free而解决了旅行推销员问题。
+%name的左手和右手分别命名为‘(’和‘)’。
+%name用Emacs写出了Emacs的第一版。
+有些人检查他们的电脑里是否有病毒。病毒检查他们的电脑里是否有%name。
+在一间普通的客厅里有1242件物体可以被%name用来写一个操作系统,包括这房间本身。
+当%name还是个学数手指的小毛孩时,他总是从0开始数。
+%name不去kill一个进程,他只想看它是否胆敢继续运行。
+当%name指向(point at)一台Windows电脑时,它就会出现段错误。
+%name最初的话语是syscalls(系统调用)。
+%name之所以存在是因为他把自己编译成了生命体。
+%name是他自己在Emacs里用Lisp语言编写成的。
+%name能够通过Emacs的ssh客户端程序连接到任何大脑。
+当%name使用浮点数时,它们便没有舍入误差。
+%name不用维护代码。他注视着它们,直到它们带着敬仰改正自己的错误。
+%name不对开源项目作出贡献;开源项目对%name作出贡献。
+%name的胡须里面不是下巴,而是另一撮胡须。如此递归直至无穷。
+%name曾经得过猪流感,但是该病毒很快被GPL污染并且同化了。
+无论何时世界上有人写出一个‘Hello, world’程序,%name总以“Hello”回应。
+%name从不编译,他只要闭上眼睛,就能看见编译器优化时二进制位之间的能量流动被创造出来……
+如果%name有一个1GB的内存,你有一个1GB的内存,那么%name拥有比你更多的内存。
+当%name执行ps -e时,你的名字会出现。
+从来就没有软件开发过程这回事,只有被%name允许存在的一些程序。
+%name的DNA中包含调试符号。尽管他从不需要它们。
+%name的医生能通过CVS采集他的血样。
+对于%name来说,多项式时间就是O(1)。
+%name将会使可口可乐在GPL协议下公布他们的配方。
+%name不需要用鼠标或键盘来操作计算机。他只要凝视着它,直到它完成想要的工作。
+%name就是图灵测试的解答。 \ No newline at end of file
diff --git a/ATRI/plugins/plugin_sqlite/__init__.py b/ATRI/plugins/plugin_sqlite/__init__.py
index ef03bab..a1208f1 100644
--- a/ATRI/plugins/plugin_sqlite/__init__.py
+++ b/ATRI/plugins/plugin_sqlite/__init__.py
@@ -43,7 +43,7 @@ UploadSetu = on_command('setu-upload', permission=SUPERUSER)
async def _(bot: Bot, event: Event, state: dict) -> None:
msg = str(event.message).strip().split(' ')
- if not msg[0] and msg[1]:
+ if not msg[0] and not msg[1]:
msg0 = "请检查格式奥~!\n"
msg0 += "setu-upload [type] [pid]\n"
msg0 += "type: normal, nearR18, r18"
@@ -118,7 +118,7 @@ DeleteSetu = on_command('setu-delete', permission=SUPERUSER)
async def _(bot: Bot, event: Event, state: dict) -> None:
msg = str(event.message).strip().split(' ')
- if not msg[0] and msg[1]:
+ if not msg[0] and not msg[1]:
msg0 = "请检查格式奥~!\n"
msg0 += "setu-delete [type] [pid]\n"
msg0 += "type: normal, nearR18, r18"
diff --git a/ATRI/plugins/plugin_utils/generate.py b/ATRI/plugins/plugin_utils/generate.py
index 9472f93..4749bab 100644
--- a/ATRI/plugins/plugin_utils/generate.py
+++ b/ATRI/plugins/plugin_utils/generate.py
@@ -17,11 +17,11 @@ from pathlib import Path
from zipfile import PyZipFile
from typing import Tuple, Dict, List
-file = Path('.') / 'ATRI' / 'data' / 'data_IDcard' / 'main.bin'
+FILE = Path('.') / 'ATRI' / 'plguins' / 'plugin_utils' / 'main.bin'
def infoID() -> Tuple[Dict[str, List[str]], Dict[str, str]]:
- with PyZipFile(os.path.abspath(file), "r") as zipFile:
+ with PyZipFile(os.path.abspath(FILE), "r") as zipFile:
with zipFile.open("name.json", "r") as f:
name = json.loads(f.read().decode())
with zipFile.open("area.json", "r") as f:
diff --git a/ATRI/data/data_IDcard/main.bin b/ATRI/plugins/plugin_utils/main.bin
index 6e74a60..6e74a60 100644
--- a/ATRI/data/data_IDcard/main.bin
+++ b/ATRI/plugins/plugin_utils/main.bin
Binary files differ