V变量—建站日记 - Ai
type: channel
link: http://vvars.com/tag/Ai/
items: 利用 Telegram 转发器实现轻量群违规词检测小助手，可接入Ai
items: 创建一个用于typecho的采集插件

利用 Telegram 转发器实现轻量群违规词检测小助手，可接入Ai
type: item
date: 2025-03-17T22:36:00+08:00
description: 详细的设置步骤：1. 绑定群聊直接在当前群聊发送 /bind 群聊名字或链接 直接绑定自己。2. 配置消息模板用户信息模板：在“其他设置”中，将模板设置为：检测到 **{name}({id})** 发送违规信息：时间模板：设置模板为：已呼叫管理员 @admin **{time}**3. 主菜单常规设置显示设置： 开启“原始发送者：显示”和“发送时间：显示”选项。添加白名单关键词：使用 /add 命令添加关键词（例如："广告"），完成基础配置。4. 接入 AI 智能处理（可选）AI 功能开启：在 AI 设置中开启“AI处理”以及“AI处理后再次执行关键字过滤”。设置提示词：输入以下提示词：检测以下群聊消息是否为广告，如果是请返回原消息内容并附带上不超过20个字的原因解析。如果不是，请只返回"非广告"：关键字过滤配置：返回主菜单后，将过滤模式设置为“先白名单后黑名单”，并切换关键字添加模式为“黑名单”，使用 /add 添加关键词“非广告”。5. 违规消息自动删除（可选）如需立即删除违规消息，可在主菜单中开启“删除原消息”功能。GitHub：https://github.com/Heavrnl/TelegramForwarder

创建一个用于typecho的采集插件
type: item
date: 2024-12-01T10:49:00+08:00
description: farea[/farea]不得不佩服现在AI的强大。创建一个用于 Typecho 的采集器插件需要掌握 PHP 和 Typecho 的插件开发机制。以下是一个简化版的 Typecho 插件代码模板，可以通过它采集指定网站的内容并发布到 Typecho 中。插件文件结构在 Typecho 的 usr/plugins 目录下新建一个文件夹，例如 ContentCollector，并创建 Plugin.php 文件。usr/├── plugins/│ ├── ContentCollector/│ │ ├── Plugin.phpPlugin.php 插件代码<?phpif (!defined('__TYPECHO_ROOT_DIR__')) exit;/**ContentCollector 插件一个简单的内容采集插件，支持从目标网站抓取内容并发布到 Typecho 中。@package ContentCollector@author Your Name@version 1.0.0@link https://yourwebsite.com */class ContentCollector_Plugin implements Typecho_Plugin_Interface{/** * 激活插件 */ public static function activate() { Helper::addPanel(1, 'ContentCollector/panel.php', '采集器', '采集内容', 'administrator'); return _t('插件已激活，采集器面板已添加。'); } /** * 禁用插件 */ public static function deactivate() { Helper::removePanel(1, 'ContentCollector/panel.php'); } /** * 插件配置面板 */ public static function config(Typecho_Widget_Helper_Form $form) { $url = new Typecho_Widget_Helper_Form_Element_Text('targetUrl', null, '', _t('目标网站 URL'), _t('请输入要采集的目标网站地址')); $form->addInput($url); $selector = new Typecho_Widget_Helper_Form_Element_Text('contentSelector', null, '', _t('内容选择器'), _t('请输入用于提取内容的 CSS 选择器')); $form->addInput($selector); } /** * 个人用户的配置面板 */ public static function personalConfig(Typecho_Widget_Helper_Form $form) {} /** * 插件实现逻辑 */ public static function collectContent($url, $selector) { // 使用 cURL 或 file_get_contents 抓取内容 $html = file_get_contents($url); if (!$html) { throw new Exception(_t('无法获取目标网站内容')); } // 使用 DOMDocument 或类似库解析 HTML $dom = new DOMDocument(); @$dom->loadHTML($html); $xpath = new DOMXPath($dom); // 使用选择器提取内容 $nodes = $xpath->query($selector); $content = ''; foreach ($nodes as $node) { $content .= $dom->saveHTML($node); } return $content; } /** * 发布到 Typecho */ public static function publishContent($title, $content) { $db = Typecho_Db::get(); $post = array( 'title' => $title, 'text' => $content, 'slug' => Typecho_Common::slugName($title), 'created' => time(), 'modified' => time(), 'type' => 'post', 'sta…