forked from zhayujie/chatgpt-on-wechat
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
17 changed files
with
253 additions
and
43 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# 目的 | ||
关键字匹配并回复 | ||
|
||
# 试用场景 | ||
目前是在微信公众号下面使用过。 | ||
|
||
# 使用步骤 | ||
1. 复制 `config.json.template` 为 `config.json` | ||
2. 在关键字 `keyword` 新增需要关键字匹配的内容 | ||
3. 重启程序做验证 | ||
|
||
# 验证结果 | ||
![结果](test-keyword.png) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from .keyword import * |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
{ | ||
"keyword": { | ||
"关键字匹配": "测试成功" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
# encoding:utf-8 | ||
|
||
import json | ||
import os | ||
|
||
import plugins | ||
from bridge.context import ContextType | ||
from bridge.reply import Reply, ReplyType | ||
from common.log import logger | ||
from plugins import * | ||
|
||
|
||
@plugins.register( | ||
name="Keyword", | ||
desire_priority=900, | ||
hidden=True, | ||
desc="关键词匹配过滤", | ||
version="0.1", | ||
author="fengyege.top", | ||
) | ||
class Keyword(Plugin): | ||
def __init__(self): | ||
super().__init__() | ||
try: | ||
curdir = os.path.dirname(__file__) | ||
config_path = os.path.join(curdir, "config.json") | ||
conf = None | ||
if not os.path.exists(config_path): | ||
logger.debug(f"[keyword]不存在配置文件{config_path}") | ||
conf = {"keyword": {}} | ||
with open(config_path, "w", encoding="utf-8") as f: | ||
json.dump(conf, f, indent=4) | ||
else: | ||
logger.debug(f"[keyword]加载配置文件{config_path}") | ||
with open(config_path, "r", encoding="utf-8") as f: | ||
conf = json.load(f) | ||
# 加载关键词 | ||
self.keyword = conf["keyword"] | ||
|
||
logger.info("[keyword] {}".format(self.keyword)) | ||
self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context | ||
logger.info("[keyword] inited.") | ||
except Exception as e: | ||
logger.warn( | ||
"[keyword] init failed, ignore or see https://github.com/zhayujie/chatgpt-on-wechat/tree/master/plugins/keyword ." | ||
) | ||
raise e | ||
|
||
def on_handle_context(self, e_context: EventContext): | ||
if e_context["context"].type != ContextType.TEXT: | ||
return | ||
|
||
content = e_context["context"].content.strip() | ||
logger.debug("[keyword] on_handle_context. content: %s" % content) | ||
if content in self.keyword: | ||
logger.debug(f"[keyword] 匹配到关键字【{content}】") | ||
reply_text = self.keyword[content] | ||
|
||
reply = Reply() | ||
reply.type = ReplyType.TEXT | ||
reply.content = reply_text | ||
e_context["reply"] = reply | ||
e_context.action = EventAction.BREAK_PASS # 事件结束,并跳过处理context的默认逻辑 | ||
|
||
def get_help_text(self, **kwargs): | ||
help_text = "关键词过滤" | ||
return help_text |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.