@chatroom_id来源

这是一个Perl脚本,用于获取并整理`@chatroom_id`的列表。脚本构建了一个POST请求,其中包含从`init`接口获取的数据,并通过`sort -u`命令去重并显示唯一的`ChatRoomId`。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sub _get_chatroom{
    my $self  = shift;
    my @chatroom_id = @_;
    my $post = {
        BaseRequest =>  {
            Uin         =>  $self->wxuin,
            DeviceID    =>  $self->deviceid,
            Sid         =>  $self->wxsid,
            Skey        =>  $self->skey,
        },
        Count       =>  @chatroom_id+0,
        List        =>  [map { {UserName=>$_,ChatRoomId=>""} } @chatroom_id ],
    };
    print "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy\n";
    print @chatroom_id;
    print "\n";
    print "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy\n";
	
	
	
	8880--yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
@@247828a9b566a0f4c22a78d04cec84e52318d84ac537d82ba97ce76cf33fad2c

@@82ce890c84a406b69ed33da8e38769d32fefc5d658b73998f831c
.版本 2 .子程序 Qx_EventSendMsg, 整数型, 公开, 机器人发出消息 .参数 robot_wxid, 文本型, , 机器人账号wxid(收到这条消息的机器人wxid,适用于多微信区分) .参数 jsonStr, 文本型, , 原始数据 .局部变量 内容, 文本型 .局部变量 事件_数据_消息, 事件_数据_消息 事件_数据_消息 = 事件_解析消息 (jsonStr) 返回 (#消息处理_继续) 发送消息例子,api.发送文本消息 以上的是千寻微信框架SDK的开发模板中程序集,请根据这个模板帮我写个插件,我可以直接复制代码到开发模板使用的那种,要求如下 1.设置多个分组,分组内是多个微信ID用符号隔开(如需要添加分组在配置文件内手动添加),分组可以无限添加 2.在手机上向文件传输助手发送消息,消息内容末尾有关键词‘群发消息’,触发询问群发到哪个分组,框架在文件传输助手上发送分组名字,手机上发送分组序号进行群发(询问回复编号的时候显示规则名,不要显示群ID),限制在30秒内回复超过后需要重新发送群发内容 3.电脑上没有‘是否数字’命令 4.电脑上没有‘取配置节名’命令 5.使用读配置项命令 我是个小白,我想学习怎样写这个插件,告诉我怎样写并讲解一下,我想一个一个步骤来分来写,比如先写发送消息关键触发询问分组,写好后先测试成功后再写群发的 尽量使用易语言自带的命令写 重要重要讲解一下每行代码运用及逻辑 一下是分组配置例子 [分组] 测试群组=123456@chatroom,789012@chatroom VIP客户群=345678@chatroom
最新发布
03-29
from gewechat_client import GewechatClientimport osimport timefrom openai import OpenAIfrom flask import Flask, request # 全局参数base_url = os.environ.get("BASE_URL", "http://127.0.0.1:2531/v2/api")token = os.environ.get("GEWECHAT_TOKEN", "bb56xxxxxxxxxxxxxxxxx")app_id = os.environ.get("APP_ID", "wx_lNnbxxxxxxxxxxxxx")client = None def login():    global client, app_id    # 创建 GewechatClient 实例    client = GewechatClient(base_url, token)    # 登录, 自动创建二维码,扫码后自动登录    app_id, error_msg = client.login(app_id=app_id)    if error_msg:        print("登录失败")        return None    return client def send_to_llm(client, messages):    response = client.chat.completions.create(        model="deepseek-chat",        messages=messages,        temperature=2.0,    )    print('【llm response】', response)    return response.choices[0].message.content def handle_at_message(message_content, llm_client):    """处理@消息并返回合适的回复"""    # 首先判断是否是问题    is_question_prompt = f"请判断下面这句话是否在描述一个问题,只需要回答'是'或'否':\n{message_content}"    is_question_response = send_to_llm(llm_client, messages=[{"role": "user", "content": is_question_prompt}])        if "是" in is_question_response:        # 如果是问题,让 LLM 回答        answer_prompt = f"请帮我回答这个问题,回答要专业、简洁且友善:\n{message_content}"        return send_to_llm(llm_client, messages=[{"role": "user", "content": answer_prompt}])    else:        # 如果不是问题,返回幽默回复        chat_prompt = f"请根据下面这句话,回复一句幽默风趣的话,要体现出和对方互动的感觉,不要超过30字:\n{message_content}"        return send_to_llm(llm_client, messages=[{"role": "user", "content": chat_prompt}]) def split_content(content):    """从字符串中按 ':\n' 分隔,返回除第一段外的其他部分组合"""    parts = content.split(':\n', 1)  # 最多分割一次    if len(parts) > 1:        return parts[1]    return content def start_callback_server():    app = Flask(__name__)     # 创建 LLM 客户端    llm_client = OpenAI(        api_key="sk-612e6xxxxxxxxxxxxxxxxxxx",        base_url="https://api.deepseek.com",    )        @app.route('/wx_callback', methods=['POST'])    def wx_callback():        global client, app_id        try:            msg = request.json            print('【callback_msg】', msg)            chatroomID = "xxxxxxxx@chatroom"                        # 检查是否是目标群的消息且@了自己            chatroom_or_user_ID = msg.get('Data',{}).get('FromUserName',{}).get('string',"")            content = msg.get('Data',{}).get('Content',{}).get('string',"")            content = split_content(content)            print('【callback_msg】', chatroom_or_user_ID, content)            if chatroom_or_user_ID == chatroomID and '@你的微信名称' in content:                content = content.replace('@你的微信名称', '').strip()                if not content:                    print('!没有content!')                    return 'ok'                # 处理消息并获取回复                reply = handle_at_message(content, llm_client)                # 发送回复                if client is None:                    client = login()                if client is None:                    print("!登录失败!")                    return                if client:                    send_msg_result = client.post_text(app_id, chatroomID, reply)                    if send_msg_result.get('ret') != 200:                        print("【发送消息失败】", send_msg_result)                    else:                        print("【发送消息成功】", reply)            return 'ok'        except Exception as e:            print("!处理回调消息出错!", str(e))            return 'error'    app.run(host='0.0.0.0', port=8989) def set_callback():    global client, app_id    if client is None:        client = login()    if client is None:        print("!登录失败!")        return            # 注册回调地址    result = client.set_callback(token, "http://1.2.3.4:8989/wx_callback")    if result.get('ret') != 200:        print("注册回调地址失败:", result)        return if __name__ == "__main__":    from threading import Thread    # 创建并启动消息监听线程    monitor_thread = Thread(target=start_callback_server, daemon=True)    monitor_thread.start()     time.sleep(10)    set_callback()    time.sleep(99999999) 解析代码
03-17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

scan724

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值