去除wcf对象
This commit is contained in:
@@ -8,6 +8,9 @@ import sys
|
||||
import threading
|
||||
import time
|
||||
from datetime import datetime
|
||||
|
||||
from gewechat_client import GewechatClient
|
||||
|
||||
from db.message_storage import MessageStorageDB
|
||||
from db.stats_db import StatsDBOperator
|
||||
from flask import Flask, send_from_directory
|
||||
@@ -44,8 +47,8 @@ class DashboardServer:
|
||||
self.contact_manager = robot_instance.contact_manager
|
||||
self.plugin_manager = robot_instance.plugin_manager
|
||||
self.plugin_registry = robot_instance.plugin_registry
|
||||
# 获取WCF实例
|
||||
self.wcf = robot_instance.wcf
|
||||
self.client:GewechatClient= robot_instance.client
|
||||
self.app_id = robot_instance.app_id
|
||||
self.logger.info("使用Robot实例的对象进行初始化")
|
||||
else:
|
||||
self.logger.error("未提供Robot实例,Dashboard无法正常工作")
|
||||
@@ -173,27 +176,30 @@ class DashboardServer:
|
||||
def get_current_user_info(self):
|
||||
"""获取当前登录的微信用户信息"""
|
||||
try:
|
||||
if not self.wcf:
|
||||
self.logger.error("WCF实例不可用,无法获取当前用户信息")
|
||||
return {"success": False, "message": "WCF实例不可用"}
|
||||
if not self.client:
|
||||
self.logger.error("client实例不可用,无法获取当前用户信息")
|
||||
return {"success": False, "message": "实例不可用"}
|
||||
|
||||
# 获取当前登录的微信ID
|
||||
wx_id = self.self.message_util.get_self_wxid()
|
||||
if not wx_id:
|
||||
return {"success": False, "message": "未获取到微信ID"}
|
||||
|
||||
# 获取用户详细信息
|
||||
user_info = self.self.message_util.get_user_info()
|
||||
self.logger.info(f"获取用户信息:{user_info}")
|
||||
resp = self.client.get_profile(self.app_id)
|
||||
|
||||
if not resp or resp.get("ret") != 200:
|
||||
self.logger.error(f"获取用户信息失败: {resp}")
|
||||
return {"success": False, "message": "获取用户信息失败"}
|
||||
|
||||
# 从新的resp格式中获取用户信息
|
||||
user_data = resp.get("data", {})
|
||||
if not user_data:
|
||||
return {"success": False, "message": "未获取到用户数据"}
|
||||
|
||||
return {
|
||||
"success": True,
|
||||
"data": {
|
||||
"wx_id": user_info.get("wxid", wx_id),
|
||||
"nickname": user_info.get("name", "未知用户"),
|
||||
"avatar": "logo.png", # 使用默认LOGO
|
||||
"mobile": user_info.get("mobile", ""),
|
||||
"home": user_info.get("home", "")
|
||||
"wx_id": user_data.get("wxid", ""),
|
||||
"nickname": user_data.get("nickName", "未知用户"),
|
||||
"avatar": user_data.get("smallHeadImgUrl", "logo.png"), # 使用小头像URL
|
||||
"mobile": user_data.get("mobile", ""),
|
||||
"home": f"{user_data.get('province', '')}-{user_data.get('city', '')}" # 组合省市信息
|
||||
}
|
||||
}
|
||||
except Exception as e:
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import requests
|
||||
import json
|
||||
|
||||
url = "/contacts/fetchContactsList"
|
||||
url = "/login/deviceList"
|
||||
|
||||
base_url="http://192.168.2.240:2531/v2/api"
|
||||
payload = json.dumps({
|
||||
"appId": "wx_3BC6eSHGE5xEm_hH3__7c"
|
||||
|
||||
})
|
||||
|
||||
headers = {
|
||||
@@ -15,4 +15,6 @@ headers = {
|
||||
|
||||
response = requests.request("POST", base_url+url, headers=headers, data=payload)
|
||||
|
||||
print(response.text)
|
||||
print(response.text)
|
||||
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@ import os
|
||||
import random
|
||||
from typing import Dict, Any, List, Optional, Tuple
|
||||
|
||||
from wcferry import Wcf
|
||||
|
||||
from message_util import MessageUtil
|
||||
from plugin_common.message_plugin_interface import MessagePluginInterface
|
||||
@@ -52,7 +51,6 @@ class BeautyLegPlugin(MessagePluginInterface):
|
||||
self.LOG.info(f"正在初始化 {self.name} 插件...")
|
||||
|
||||
# 保存上下文对象
|
||||
self.wcf = context.get("wcf")
|
||||
self.event_system = context.get("event_system")
|
||||
self.message_util: MessageUtil = context.get("message_util")
|
||||
self.gbm = context.get("gbm")
|
||||
@@ -99,7 +97,6 @@ class BeautyLegPlugin(MessagePluginInterface):
|
||||
self.LOG.info(f"插件执行: {self.name}:{content}")
|
||||
sender = message.get("sender")
|
||||
roomid = message.get("roomid", "")
|
||||
wcf: Wcf = message.get("wcf")
|
||||
gbm: GroupBotManager = message.get("gbm")
|
||||
|
||||
# 检查权限
|
||||
|
||||
@@ -133,21 +133,13 @@ class MessageSummaryPlugin(MessagePluginInterface):
|
||||
# 生成总结
|
||||
summary, image_path = self._generate_summary(chat_content, group_name)
|
||||
|
||||
# 发送总结结果
|
||||
wcf = message.get("wcf")
|
||||
if wcf:
|
||||
# if summary:
|
||||
# self.message_util.send_text(f"总结已生成:\n{summary}", group_id, message.get("sender"))
|
||||
|
||||
if image_path:
|
||||
self.message_util.send_file(image_path, group_id)
|
||||
else:
|
||||
self.message_util.send_text("❌ 生成总结图片失败", group_id)
|
||||
if image_path:
|
||||
self.message_util.send_file(image_path, group_id)
|
||||
else:
|
||||
self.message_util.send_text("❌ 生成总结图片失败", group_id)
|
||||
except Exception as e:
|
||||
self.LOG.error(f"异步生成总结失败: {e}")
|
||||
wcf = message.get("wcf")
|
||||
if wcf:
|
||||
self.message_util.send_text(f"❌ 生成总结失败: {str(e)}", group_id)
|
||||
self.message_util.send_text(f"❌ 生成总结失败: {str(e)}", group_id)
|
||||
|
||||
def _sanitize_group_name(self, group_name: str) -> str:
|
||||
"""处理群名,去除特殊字符并限制长度"""
|
||||
|
||||
@@ -57,7 +57,6 @@ class PluginManagerPlugin(MessagePluginInterface):
|
||||
self.LOG.info(f"正在初始化 {self.name} 插件...")
|
||||
|
||||
# 保存上下文对象
|
||||
self.wcf = context.get("wcf")
|
||||
self.event_system = context.get("event_system")
|
||||
self.message_util = context.get("message_util")
|
||||
|
||||
@@ -87,7 +86,6 @@ class PluginManagerPlugin(MessagePluginInterface):
|
||||
|
||||
sender = message.get("sender")
|
||||
roomid = message.get("roomid", "")
|
||||
wcf = message.get("wcf")
|
||||
gbm = message.get("gbm")
|
||||
target = roomid if roomid else sender
|
||||
|
||||
|
||||
@@ -141,14 +141,12 @@ def plugin_points_cost(points: int, description: str = None, feature: Feature =
|
||||
user_points = points_db.get_user_points(sender, roomid)
|
||||
if user_points["total_points"] < points:
|
||||
# 积分不足
|
||||
wcf = message.get("wcf")
|
||||
if wcf:
|
||||
self.message_util.send_text(
|
||||
f"❌ 积分不足\n无法使用 {plugin_name} 功能\n"
|
||||
f"🪙 先参与积分活动[签到,答题/t]赚取吧!\n"
|
||||
f"💰 有: {user_points['total_points']} | 需: {points} |差: {points - user_points['total_points']} ",
|
||||
(roomid if roomid else sender), sender
|
||||
)
|
||||
self.message_util.send_text(
|
||||
f"❌ 积分不足\n无法使用 {plugin_name} 功能\n"
|
||||
f"🪙 先参与积分活动[签到,答题/t]赚取吧!\n"
|
||||
f"💰 有: {user_points['total_points']} | 需: {points} |差: {points - user_points['total_points']} ",
|
||||
(roomid if roomid else sender), sender
|
||||
)
|
||||
logger.info(f"用户 {sender} 积分不足,无法使用功能")
|
||||
return False, "积分不足"
|
||||
|
||||
@@ -168,12 +166,10 @@ def plugin_points_cost(points: int, description: str = None, feature: Feature =
|
||||
# 添加对 response 的类型检查
|
||||
if isinstance(response, str) and "积分" not in response:
|
||||
response += f"\n\n💰 已消费 {points} 积分"
|
||||
wcf = message.get("wcf")
|
||||
if wcf:
|
||||
self.message_util.send_text(
|
||||
f"💰消费 {points} 积分",
|
||||
(roomid if roomid else sender), sender
|
||||
)
|
||||
self.message_util.send_text(
|
||||
f"💰消费 {points} 积分",
|
||||
(roomid if roomid else sender), sender
|
||||
)
|
||||
else:
|
||||
logger.warning(f"用户 {sender} 积分扣除失败: {deduct_result}")
|
||||
|
||||
|
||||
@@ -98,7 +98,7 @@ class MessageStorage:
|
||||
|
||||
def process_image(self, msg: WxMessage):
|
||||
"""异步处理图片消息,与消息存档分离"""
|
||||
if msg.msg_type != 3 or not self.client: # 不是图片消息或没有WCF实例
|
||||
if msg.msg_type != 3 or not self.client: # 不是图片消息或没有client实例
|
||||
return False
|
||||
|
||||
# 提交任务到图片处理线程池
|
||||
|
||||
Reference in New Issue
Block a user