855 协议版本-调整完毕内容
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import logging
|
||||
from loguru import logger
|
||||
import os.path
|
||||
import random
|
||||
import time
|
||||
from typing import Any, Tuple, Coroutine
|
||||
|
||||
|
||||
from gewechat.client import gewe_client
|
||||
from utils.wechat.contact_manager import ContactManager
|
||||
from wechat_ipad import WechatAPIClient
|
||||
|
||||
|
||||
class MessageUtil:
|
||||
@@ -15,11 +15,10 @@ class MessageUtil:
|
||||
"""
|
||||
|
||||
# 修改 MessageUtil 类的初始化方法,接受联系人管理器而不是联系人字典
|
||||
def __init__(self):
|
||||
self.app_id = gewe_client.app_id
|
||||
self.client = gewe_client.client
|
||||
def __init__(self, client: WechatAPIClient = None):
|
||||
self.client = client
|
||||
self.contact_manager = ContactManager.get_instance()
|
||||
self.LOG = logging.getLogger("MessageUtil")
|
||||
self.LOG = logger
|
||||
|
||||
def send_text(self, msg: str, receiver: str, at_list: str = "") -> None:
|
||||
"""
|
||||
@@ -39,15 +38,15 @@ class MessageUtil:
|
||||
else:
|
||||
wxids = at_list.split(",")
|
||||
if len(wxids) > 0:
|
||||
ats += self.get_user_chatroom_nickname(receiver, wxids)
|
||||
ats += self.client.get_nickname(receiver)
|
||||
|
||||
# {msg}{ats} 表示要发送的消息内容后面紧跟@,例如 北京天气情况为:xxx @张三
|
||||
if ats == "":
|
||||
self.LOG.info(f"To {receiver}: {msg}")
|
||||
self.client.post_text(self.app_id, receiver, "{msg}", "")
|
||||
self.client.send_text_message(receiver, "{msg}", "")
|
||||
else:
|
||||
self.LOG.info(f"To {receiver}: {ats}\r{msg}")
|
||||
self.client.post_text(self.app_id, receiver, f"{ats}\n{msg}", at_list)
|
||||
self.client.send_text_message(receiver, f"{ats}\n{msg}", at_list)
|
||||
|
||||
def send_file(self, file_path: str, receiver: str) -> str:
|
||||
"""
|
||||
@@ -64,7 +63,7 @@ class MessageUtil:
|
||||
self.LOG.info(f"Sending file to {path}: {filename}")
|
||||
return self.client.post_file(self.app_id, receiver, file_path, filename)
|
||||
|
||||
def send_image(self, image_path: str, receiver: str) -> str:
|
||||
def send_image(self, image_path: str, receiver: str) -> Coroutine[Any, Any, tuple[int, int, int]]:
|
||||
"""
|
||||
发送文件消息
|
||||
|
||||
@@ -75,7 +74,7 @@ class MessageUtil:
|
||||
time.sleep(random.uniform(0.5, 1.5))
|
||||
|
||||
self.LOG.info(f"Sending file to {receiver}: {image_path}")
|
||||
return self.client.post_image(self.app_id, receiver, image_path)
|
||||
return self.client.send_image_message(receiver, image_path)
|
||||
|
||||
def send_rich_text(self, name: str, account: str, title: str, digest: str, url: str, thumburl: str,
|
||||
receiver: str) -> int:
|
||||
@@ -105,18 +104,12 @@ class MessageUtil:
|
||||
time.sleep(random.uniform(0.5, 1.5))
|
||||
|
||||
self.LOG.info(f"Sending rich text to {receiver}: {title}")
|
||||
return self.client.post_link(self.app_id, receiver, title, digest, url, thumburl)
|
||||
|
||||
def get_user_chatroom_nickname(self, chatroom_id: str, member_wxids: list[str]) -> str:
|
||||
data = self.client.get_chatroom_member_detail(self.app_id, chatroom_id, member_wxids)
|
||||
nicknames_with_at = [" @" + member["nickName"] for member in data["data"] if member.get("nickName")]
|
||||
return " ".join(nicknames_with_at)
|
||||
return self.client.send_link_message(self.app_id, receiver, title, digest, url, thumburl)
|
||||
|
||||
def invite_member(self, group_id, sender):
|
||||
return self.client.invite_member(self.app_id, sender, group_id, "自动加群邀请")
|
||||
return self.client.invite_chatroom_member( sender, group_id)
|
||||
|
||||
def get_chatroom_members(self, group_id) -> dict:
|
||||
data = self.client.get_chatroom_member_list(self.app_id, group_id)
|
||||
members = {member["wxid"]: member["nickName"] for member in data["data"]["memberList"]}
|
||||
return members
|
||||
|
||||
|
||||
Reference in New Issue
Block a user