news 2026/10/23 19:39:15

社群自动化实战:用 Python + 微信 API 搞定关键词自动踢人与违规撤回

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
社群自动化实战:用 Python + 微信 API 搞定关键词自动踢人与违规撤回

群规的自动化执行比发欢迎语难——要先撤回再踢人、要分级警告、要留违规证据、要防止误踢。这篇按执行顺序走一遍,每个环节说清为什么要这么做。

一、执行顺序:先撤回再踢人

收到违规关键词,正确的动作顺序是:撤回消息 → 发警告 → 踢人。直接踢不撤回,违规内容还留在群里,其他人都能看到。撤回和踢人之间要有一个时间差,让撤回生效再踢。

不是所有违规都要踢人。建议分级:第一次违规只警告、连续两次再踢、严重违规(广告链接、辱骂)直接踢。分级规则做成配置,改规则不用改代码。

二、关键词匹配:别只做精确匹配

精确匹配关键词容易漏——用户打个错别字、换个写法就逃过去了。做法是精确匹配加模糊匹配加正则:精确匹配管最直接的违规词,模糊匹配管变体,正则管格式类违规(比如手机号、二维码、广告 URL)。

关键词库建议按类型分组:广告类、辱骂类、链接类、政治类,每组可以配不同的处理级别。

三、违规证据:留痕备查

每一次处罚都要留证据:违规者的 wxid、群 ID、消息内容、命中的关键词、触发的规则、执行的动作、执行时间。记录要持久化,别只放内存,防止进程重启后丢失。

证据的价值有两个:一是群管理员可能会问为什么踢,拿得出记录;二是误踢了可以反向定位是哪条规则触发的。

四、白名单和灰度:别误踢自己人

群主和管理员应该在白名单里,永远不会被自动处罚。还有一些正常业务场景可能会包含"违规关键词"的变体——比如活动群里允许发活动的邀请链接,那就把这个群加入灰度组,链接类规则在这个群里跳过。

群规执行对照

步骤

做什么

关键点

常见坑

匹配

精确+模糊+正则

关键词库分组

漏匹配变体

分级

警告/踢人/禁言

可配置

一刀切全踢

执行

先撤回再踢人

时间差让撤回生效

踢了没撤回

证据

全字段记录

持久化

误踢无据可查

白名单

群主/管理员免处理

按群配置

误踢自己人

群规执行实现

import time, json from collections import defaultdict class GroupEnforcer: def __init__(self, api, store, rules): self.api = api self.store = store self.rules = rules # 关键词组 -> 级别 self.warn_count = defaultdict(int) # (group_id, wxid) -> 警告次数 self.admin_set = set() # 白名单 def check(self, group_id, wxid, content, mid): # 白名单跳过 if wxid in self.admin_set: return # 关键词匹配 hit_level = None hit_kw = None for level, patterns in self.rules.items(): for kw in patterns: if self._match(content, kw): hit_level = level hit_kw = kw break if hit_level: break if not hit_level: return # 执行分级处罚 key = (group_id, wxid) count = self.warn_count[key] if hit_level == "severe": self._execute(group_id, wxid, content, mid, hit_kw, "direct_kick") elif count < 1: self.warn_count[key] += 1 self._execute(group_id, wxid, content, mid, hit_kw, "warn") else: self._execute(group_id, wxid, content, mid, hit_kw, "kick") self.warn_count[key] = 0 # 重置 def _match(self, content, kw): if kw.startswith("regex:"): import re return re.search(kw[6:], content) return kw in content def _execute(self, gid, wxid, content, mid, kw, action): # 先撤回再处罚 try: self.api.post("/group/recall", {"group_id": gid, "msg_id": mid}) except Exception: pass # 撤回失败不阻断后续 time.sleep(1) # 等撤回生效 record = { "group_id": gid, "wxid": wxid, "content": content, "keyword": kw, "action": action, "ts": time.time(), } self.store.save("violation", record) if action == "warn": self.api.post("/send", { "group_id": gid, "content": f"@{wxid} 违规:{kw},再犯将被踢出", }) elif action in ("kick", "direct_kick"): self.api.post("/group/remove", { "group_id": gid, "wxid": wxid, }) time.sleep(3) def on_group_message(self, event): self.check( event["group_id"], event["from"], event["content"], event["msg_id"])

落地建议

执行顺序必须先撤回再踢人,中间留 1 秒让撤回生效。分级处罚——第一次警告、连续两次踢人、严重违规直接踢,分级做成配置不改代码。关键词匹配别只做精确,加模糊和正则。所有处罚都留全字段证据并持久化,防止误踢无据可查。群主和管理员加白名单永远跳过。微信侧的群消息、撤回、踢人接口由Eyun这类个人微信API平台 提供,规则和执行在自建服务实现,具体字段以平台开发文档为准。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/23 19:38:21

SAP PPDS优化器黑盒子避坑指南:主数据、CIF队列与齐套报表实战

简介&#xff1a;SAP PPDS 实施挑战详解这份资料面向 SAP 实施顾问、生产计划与排产相关从业者&#xff0c;系统梳理 PPDS 从主数据维护、启发式 MRP、匹配 Pegging 到排产优化器的核心概念&#xff0c;并重点剖析其在实际落地中常见的数据集成与定制开发难题。资料为单个 PDF …

作者头像 李华
网站建设 2026/10/23 19:33:15

Python requests响应处理全指南:正文、状态码、Cookie、耗时、响应头

做网络请求处理这行&#xff0c;不管是写爬虫还是调接口&#xff0c;拿到response对象都只算开了个头。真正见功夫的&#xff0c;是怎么把响应里的数据榨干用尽——正文怎么解、状态码怎么判断、时间怎么统计、cookie怎么取、响应头怎么看。这篇接着我们系列前两篇的节奏&#…

作者头像 李华
网站建设 2026/10/23 19:25:32

并行计算入门:从搬砖比喻到多核编程实战

简介&#xff1a;这份资源是天津大学并行计算课程的配套学习资料&#xff0c;面向计算机专业学生、高性能计算方向的学习者以及需要系统梳理并行编程知识的技术人员&#xff0c;帮助其理解共享内存与分布式内存模型、掌握OpenMP与MPI等并行编程工具&#xff0c;并具备将串行算法…

作者头像 李华
网站建设 2026/10/23 19:23:25

矩形微带天线尺寸计算:MATLAB脚本与公式详解

简介&#xff1a;这份资源面向无线通信、射频电路与天线设计方向的学习者和工程师&#xff0c;提供一套用MATLAB计算矩形微带天线尺寸的实用脚本。矩形微带天线因结构简单、易于加工而应用广泛&#xff0c;设计难点在于根据中心频率、相对介电常数和基板高度快速确定贴片宽度、…

作者头像 李华
网站建设 2026/10/23 19:15:39

深入理解ifft:缩放、共轭与循环移位的底层机制

简介&#xff1a;本资源是一份面向信号处理初学者与MATLAB实践者的逆傅里叶变换&#xff08;IFFT&#xff09;核心实现脚本&#xff0c;聚焦于理解频域到时域转换原理及自定义函数开发思路。资源提供一个精简实用的MATLAB函数F2T.m&#xff0c;完整封装了预处理&#xff08;如零…

作者头像 李华
网站建设 2026/10/23 19:11:42

Java面向对象实验代码全解析:从类与对象到文件I/O的六个实战

简介&#xff1a;这份资源是东北大学Java面向对象课程实验1至6的完整代码合集&#xff0c;面向正在学习Java OOP的高校学生与自学者&#xff0c;帮助解决实验无从下手、缺少参考实现的问题。压缩包共124个文件&#xff0c;约51KB&#xff0c;以java源码与class字节码为主&#…

作者头像 李华