modified: README.md

new file:   app.py
new file:   config/config.toml
new file:   requirements.txt
new file:   run.bat
new file:   run.sh
new file:   src/__init__.py
new file:   src/file_store_api.py
new file:   src/mainprocess.py
new file:   src/modules/__init__.py
new file:   src/modules/plugin_modules.py
new file:   src/modules/user_modules.py
new file:   src/plugin_manager.py
This commit is contained in:
JianFeeeee
2025-08-13 19:41:56 +08:00
parent 0ddb6c3fd3
commit 7d1ccfba46
13 changed files with 1227 additions and 2 deletions

119
src/modules/user_modules.py Normal file
View File

@ -0,0 +1,119 @@
import json
import requests
import time
import src.file_store_api as filer
config_m = filer.ConfigManager()
url = config_m.load_config("config")
mainurl = url.get("app").get("send_url")
class User:
def __init__(self, user_id,url = mainurl):
self.user_id = user_id
self.url = url
self.nickname = None
self.get_name()
self.messages = []
self.signal = True
self.db = filer.ChatManager()
def get_name(self):
"""
获取用户的名称
"""
try:
response = requests.post('{0}/ArkSharePeer'.format(self.url),json={'user_id':self.user_id})
except:
return 0
if response.status_code == 200:
# 解析返回的JSON数据
response_data = response.json()
# 检查是否有错误信息
if response_data.get("status") == "ok":
# 获取用户卡片信息
ark_json = response_data.get("data", {})
ark_msg_str = ark_json.get("arkMsg", "{}")
try:
ark_json = json.loads(ark_msg_str) # 字符串转字典
except json.JSONDecodeError:
ark_json = {}
user_nick = ark_json.get("meta", {}).get("contact", {}).get("nickname")
self.nickname = user_nick
else:
print(f"请求失败,错误信息: {response_data.get('errMsg')}")
else:
print(f"请求失败,状态码: {response.status_code}")
def set_input_status(self, status):
payload = json.dumps({
"user_id": self.user_id,
"event_type": status
})
headers = {
'Content-Type': 'application/json'
}
while self.signal:
print(f"刷新 {self.nickname} 的输入状态为: {status}")
requests.request("POST","{0}/set_input_status".format(self.url), headers=headers, data=payload)
time.sleep(0.5)
def send_message(self, message):
requests.post(url='{0}/send_private_msg'.format(self.url), json={'user_id':self.user_id, 'message':message})
self.db.save_private_message(self,role = 'assistant',content=message)#保存发送的消息
class Group:
def __init__(self, group_id,url = mainurl,user=None,users=None):
self.url = url
self.group_id = group_id
self.current_user = user
self.nickname = None
self.get_group_name()
self.users = users
self.get_group_users()
self.messages =[]
self.db = filer.ChatManager()
def get_group_name(self):
"""
获取群组的名称
"""
try:
response = requests.post('{0}/ArkSharePeer'.format(self.url), json={'group_id': self.group_id})
except:
return 0
if response.status_code == 200:
response_data = response.json()
if response_data.get("status") == "ok":
ark_json = response_data.get("data", {})
ark_msg_str = ark_json.get("arkJson", "{}")
try:
ark_json = json.loads(ark_msg_str)
except json.JSONDecodeError:
ark_json = {}
group_name = ark_json.get("meta", {}).get("contact", {}).get("nickname")
self.nickname = group_name
else:
print(f"请求失败,错误信息: {response_data.get('errMsg')}")
else:
print(f"请求失败,状态码: {response.status_code}")
def get_group_users(self):
try:
response = requests.post('{0}/get_group_member_list'.format(self.url), json={'group_id':self.group_id,'no_cache': False})
except:
return 0
if response.status_code == 200:
response_data = response.json()
if response_data.get("status") == "ok":
group_users = response_data.get("data", {})
self.users = group_users
else:
print(f"请求失败,错误信息: {response_data.get('errMsg')}")
else:
print(f"请求失败,状态码: {response.status_code}")
def send_message(self,message):
requests.post(url='{0}/send_group_msg'.format(self.url), json={'group_id': self.group_id, 'message': message})
self.db.save_group_message(self,'assistant',message, sender_id=0)#保存发送的消息