<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="/wp-content/plugins/rss-beauty/pink.xsl"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>插件 Archives - obaby 𝐢‍𝐧⃝ void</title>
	<atom:link href="https://zhongxiaojie.cn/tag/%e6%8f%92%e4%bb%b6/feed/" rel="self" type="application/rss+xml" />
	<link>https://oba.by/tag/插件/</link>
	<description>程序媛 / 独立开发者 / 智商不稳定的女神经</description>
	<lastBuildDate>Tue, 07 Apr 2026 01:14:18 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://zhongxiaojie.cn/wp-content/uploads/2026/01/uugai.com-166111691272754-100x100.png</url>
	<title>插件 Archives - obaby 𝐢‍𝐧⃝ void</title>
	<link>https://oba.by/tag/插件/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Baby Anti-Spam 自建反垃圾评论系统</title>
		<link>https://zhongxiaojie.cn/2026/04/798/</link>
					<comments>https://zhongxiaojie.cn/2026/04/798/#comments</comments>
		
		<dc:creator><![CDATA[obaby]]></dc:creator>
		<pubDate>Mon, 06 Apr 2026 10:05:11 +0000</pubDate>
				<category><![CDATA[程序媛]]></category>
		<category><![CDATA[akismet]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[垃圾评论]]></category>
		<category><![CDATA[插件]]></category>
		<category><![CDATA[机器学习]]></category>
		<guid isPermaLink="false">https://zhongxiaojie.cn/?p=798</guid>

					<description><![CDATA[很久之前，就经常收到akismet的授权提醒，对应一个错误码10010。 刚开始还以为是多域名访问导致的授权校 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/330A0347.jpg" data-lbwps-width="4000" data-lbwps-height="6211" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/330A0347.jpg" data-lightbox="gal[798]" data-lbwps-exif="&lt;span class=&quot;pswp__caption__exif_camera&quot;&gt;Canon EOS R6m2&lt;/span&gt; &lt;span class=&quot;pswp__caption__exif_focal&quot;&gt;50mm&lt;/span&gt; &lt;span class=&quot;pswp__caption__exif_fstop&quot;&gt;𝑓/4&lt;/span&gt; &lt;span class=&quot;pswp__caption__exif_shutter&quot;&gt;1/160s&lt;/span&gt; &lt;span class=&quot;pswp__caption__exif_iso&quot;&gt;ISO500&lt;/span&gt; &lt;span class=&quot;pswp__caption__exif_datetime&quot;&gt;2026年3月5日&lt;/span&gt; "><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-807" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/330A0347-scaled.jpg" alt="" width="1649" height="2560" srcset="https://zhongxiaojie.cn/wp-content/uploads/2026/04/330A0347-scaled.jpg?v=1775469075 1649w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/330A0347-193x300.jpg?v=1775469075 193w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/330A0347-659x1024.jpg?v=1775469075 659w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/330A0347-97x150.jpg?v=1775469075 97w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/330A0347-768x1193.jpg?v=1775469075 768w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/330A0347-989x1536.jpg?v=1775469075 989w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/330A0347-1319x2048.jpg?v=1775469075 1319w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/330A0347-665x1033.jpg?v=1775469075 665w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/330A0347-167x260.jpg?v=1775469075 167w" sizes="(max-width: 1649px) 100vw, 1649px" /></a></p>
<p>很久之前，就经常收到akismet的授权提醒，对应一个错误码10010。</p>
<p><span id="more-798"></span></p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-13-58.png" data-lbwps-width="2540" data-lbwps-height="303" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-13-58-665x79.png" data-lightbox="gal[798]"><img decoding="async" class="alignnone size-full wp-image-799" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-13-58.png" alt="" width="2540" height="303" srcset="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-13-58.png?v=1775467728 2540w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-13-58-300x36.png?v=1775467728 300w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-13-58-1024x122.png?v=1775467728 1024w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-13-58-150x18.png?v=1775467728 150w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-13-58-768x92.png?v=1775467728 768w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-13-58-1536x183.png?v=1775467728 1536w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-13-58-2048x244.png?v=1775467728 2048w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-13-58-665x79.png?v=1775467728 665w" sizes="(max-width: 2540px) 100vw, 2540px" /></a></p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-16-0.png" data-lbwps-width="1121" data-lbwps-height="1398" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-16-0.png" data-lightbox="gal[798]"><img decoding="async" class="alignnone size-full wp-image-801" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-16-0.png" alt="" width="1121" height="1398" srcset="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-16-0.png?v=1775467732 1121w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-16-0-241x300.png?v=1775467732 241w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-16-0-821x1024.png?v=1775467732 821w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-16-0-120x150.png?v=1775467732 120w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-16-0-768x958.png?v=1775467732 768w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-16-0-665x829.png?v=1775467732 665w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_14-16-0-208x260.png?v=1775467732 208w" sizes="(max-width: 1121px) 100vw, 1121px" /></a></p>
<p>刚开始还以为是多域名访问导致的授权校验出问题了。后来换了n个key，同时添加了插件hook掉所有的垃圾评论检测逻辑，让全部走统一的域名，结果前几天又收到这个提醒了。</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-202533.png" data-lbwps-width="952" data-lbwps-height="1556" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-202533.png" data-lightbox="gal[798]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-820" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-202533.png" alt="" width="952" height="1556" srcset="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-202533.png?v=1775478429 952w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-202533-184x300.png?v=1775478429 184w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-202533-627x1024.png?v=1775478429 627w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-202533-92x150.png?v=1775478429 92w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-202533-768x1255.png?v=1775478429 768w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-202533-940x1536.png?v=1775478429 940w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-202533-665x1087.png?v=1775478429 665w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-202533-159x260.png?v=1775478429 159w" sizes="auto, (max-width: 952px) 100vw, 952px" /></a></p>
<p>插件代码：</p>
<pre class="EnlighterJSRAW" data-enlighter-language="php">&lt;?php
/**
 * Plugin Name: Akismet 单一主域名（多域名站点）
 * Description: 当站点配置了多个域名时，强制发往 Akismet 的请求只使用一个主域名，避免被计为多站点触发 10010。
 * Version: 1.0
 * Author: obaby
 *
 * 使用：在下方设置 AKISMET_CANONICAL_HOME 为主域名（或留空则用 WordPress「设置」里的站点地址）。
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

/**
 * 主域名（规范 URL，不要末尾斜杠）。留空则使用 get_option( 'home' )。
 * 例如: https://www.example.com
 */
if ( ! defined( 'AKISMET_CANONICAL_HOME' ) ) {
    define( 'AKISMET_CANONICAL_HOME', 'https://zhongxiaojie.cn' );
}

/**
 * 获取发往 Akismet 时使用的唯一主域名 URL。
 */
function akismet_single_domain_get_canonical_home() {
    $home = AKISMET_CANONICAL_HOME;
    if ( $home === '' || $home === null ) {
        $home = get_option( 'home' );
    }
    return untrailingslashit( $home );
}

/**
 * 将任意 URL 替换为使用主域名的版本（只改 host，保留 path/query）。
 */
function akismet_single_domain_normalize_url( $url, $canonical_home ) {
    if ( empty( $url ) || ! is_string( $url ) ) {
        return $url;
    }
    $parsed = wp_parse_url( $url );
    $canon  = wp_parse_url( $canonical_home );
    if ( empty( $canon['scheme'] ) || empty( $canon['host'] ) ) {
        return $url;
    }
    $scheme = isset( $parsed['scheme'] ) ? $parsed['scheme'] : $canon['scheme'];
    $host   = $canon['host'];
    $path   = isset( $parsed['path'] ) ? $parsed['path'] : '/';
    $query  = isset( $parsed['query'] ) ? '?' . $parsed['query'] : '';
    $frag   = isset( $parsed['fragment'] ) ? '#' . $parsed['fragment'] : '';
    return $scheme . '://' . $host . $path . $query . $frag;
}

/**
 * 统一 verify-key / get-subscription / get-stats 的 blog 为主域名。
 */
add_filter( 'akismet_request_args', function ( $request_args, $path ) {
    $paths = array( 'verify-key', 'get-subscription', 'get-stats' );
    if ( ! in_array( $path, $paths, true ) ) {
        return $request_args;
    }
    $canon = akismet_single_domain_get_canonical_home();
    if ( ! empty( $request_args['blog'] ) ) {
        $request_args['blog'] = $canon;
    }
    return $request_args;
}, 10, 2 );

/**
 * 统一 comment-check（以及 recheck）的 blog、permalink，并把请求里的 HTTP_HOST 等改为主域名。
 */
add_filter( 'akismet_request_args', function ( $request_args, $path ) {
    if ( $path !== 'comment-check' ) {
        return $request_args;
    }
    $canon = akismet_single_domain_get_canonical_home();
    $parsed = wp_parse_url( $canon );
    if ( empty( $parsed['host'] ) ) {
        return $request_args;
    }
    $canon_host = $parsed['host'];

    $request_args['blog'] = $canon;
    if ( ! empty( $request_args['permalink'] ) ) {
        $request_args['permalink'] = akismet_single_domain_normalize_url( $request_args['permalink'], $canon );
    }

    // 让服务端看到的“当前请求”也统一为主域名，减少被计为多站点
    if ( isset( $request_args['HTTP_HOST'] ) ) {
        $request_args['HTTP_HOST'] = $canon_host;
    }
    if ( isset( $request_args['REQUEST_URI'] ) ) {
        $uri = $request_args['REQUEST_URI'];
        $request_args['REQUEST_URI'] = ( is_string( $uri ) &amp;&amp; ( $p = wp_parse_url( $uri, PHP_URL_PATH ) ) !== null ) ? $p : '/';
    }
    if ( isset( $request_args['DOCUMENT_URI'] ) ) {
        $uri = $request_args['DOCUMENT_URI'];
        $request_args['DOCUMENT_URI'] = ( is_string( $uri ) &amp;&amp; ( $p = wp_parse_url( $uri, PHP_URL_PATH ) ) !== null ) ? $p : '/';
    }
    return $request_args;
}, 10, 2 );

/**
 * 统一 submit-spam / submit-ham 的 blog、permalink。
 */
add_filter( 'akismet_request_args', function ( $request_args, $path ) {
    if ( ! in_array( $path, array( 'submit-spam', 'submit-ham' ), true ) ) {
        return $request_args;
    }
    $canon = akismet_single_domain_get_canonical_home();
    $request_args['blog'] = $canon;
    if ( ! empty( $request_args['permalink'] ) ) {
        $request_args['permalink'] = akismet_single_domain_normalize_url( $request_args['permalink'], $canon );
    }
    return $request_args;
}, 10, 2 );
</pre>
<p>这次授权的密钥撑得时间稍微长了点，但是最终还是收到了这个提醒，意思是需要订购商业版授权。我这个人站点为了发垃圾评论订购一个商业版授权，确实有些难以接受。</p>
<p>于是，我决定自建反垃圾评论系统，基于scikit-learn实现了现在的这套垃圾评论检测系统，训练数据一部分来源于github的开源数据，另外一个就是我自己博客的评论数据。为了保证样本正例和负例数量差别不至于过大，经过各种方式进行了多轮数据清洗。</p>
<p>如果想要评论识别更加准确，可以提供自己的博客评论数据，如果能提供垃圾评论更好。现在欠缺的主要是垃圾评论数据，正常的评论数据我已经提供几千条数据。</p>
<p>效果测试：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352.png" data-lbwps-width="3070" data-lbwps-height="1673" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352-665x362.png" data-lightbox="gal[798]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-808" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352-scaled.png" alt="" width="2560" height="1395" srcset="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352-scaled.png?v=1775469300 2560w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352-300x163.png?v=1775469300 300w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352-1024x558.png?v=1775469300 1024w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352-150x82.png?v=1775469300 150w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352-768x419.png?v=1775469300 768w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352-1536x837.png?v=1775469300 1536w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352-2048x1116.png?v=1775469300 2048w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352-665x362.png?v=1775469300 665w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175352-477x260.png?v=1775469300 477w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539.png" data-lbwps-width="2894" data-lbwps-height="1666" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539-665x383.png" data-lightbox="gal[798]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-809" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539-scaled.png" alt="" width="2560" height="1474" srcset="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539-scaled.png?v=1775469393 2560w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539-300x173.png?v=1775469393 300w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539-1024x589.png?v=1775469393 1024w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539-150x86.png?v=1775469393 150w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539-768x442.png?v=1775469393 768w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539-1536x884.png?v=1775469393 1536w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539-2048x1179.png?v=1775469393 2048w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539-665x383.png?v=1775469393 665w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175539-452x260.png?v=1775469393 452w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>测试地址：<a href="https://anti-spam.zhongxiaojie.cn/test/spam" target="_blank" rel="noopener">https://anti-spam.zhongxiaojie.cn/test/spam</a></p>
<p>简介：</p>
<p>面向 <strong>中英混合</strong> 评论的 WordPress 垃圾识别方案：PHP 插件在评论入库前调用 <strong>本机 Python 服务</strong>，由小型多语种向量模型 + 分类器（或演示用规则）给出垃圾概率。</p>
<p>适合评论量不大、单机部署（例如 <strong>4 核 / 8GB RAM</strong> 的 Ubuntu），服务与 WordPress 同机时使用 <code>127.0.0.1</code> 即可。</p>
<p>目录结构：</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">baby_anti_spam/
├── README.md
├── screenshots/             # 文档：服务启动与 curl 自测示意
│   ├── service.png
│   └── test.png
├── service/                 # Python FastAPI 侧车服务
│   ├── .env.example
│   ├── requirements.txt
│   ├── requirements-ml.txt
│   ├── run.py
│   ├── app/
│   │   └── stats_backends/   # 统计存储：sqlite / mysql
│   └── scripts/
│       ├── init_stats_mysql.sql
│       └── init_stats_mysql.py
│       ├── train_sklearn.py
│       ├── download_embedding_model.py
│       └── download_embedding_model.sh
└── wordpress/baby-anti-spam/
    └── baby-anti-spam.php # WordPress 插件</pre>
<p>关键配置：</p>
<pre class="EnlighterJSRAW" data-enlighter-language="md">| 变量 | 说明 |
|------|------|
| `SPAM_HOST` | 监听地址，同机建议 `127.0.0.1` |
| `SPAM_PORT` | 端口，默认 `8765` |
| `SPAM_API_SECRET` | **单密钥模式（兼容旧版）**：未配置 `SPAM_API_KEYS` 且未配置 `SPAM_API_KEYS_FILE` 时，仅此密钥有效，等价于 name=`default`、不限流（`max_rpm=0`）。与 WP 插件里填写的密钥一致 |
| `SPAM_API_KEYS` | **多密钥**：JSON 数组。每项为 `name`（唯一，用于统计与限流分组）、`key` 或 `secret`（与请求头一致）、`max_rpm` 或 `rpm`（每分钟最大请求数，`0` 表示不限制）。与 `SPAM_API_KEYS_FILE` 合并时：**先读文件条目，再追加本变量** |
| `SPAM_API_KEYS_FILE` | 可选，指向 JSON 文件，根节点为与上表相同结构的**数组**。文件必须存在，否则进程启动失败 |
| `SPAM_MODEL_PATH` | 训练得到的 `*.joblib` 路径；留空则取决于 `SPAM_FALLBACK_RULES` |
| `SPAM_FALLBACK_RULES` | 无模型文件时是否启用内置极简规则（演示用）；生产训练后应设为 `false` 并配置 `SPAM_MODEL_PATH` |
| `SPAM_LABEL_THRESHOLD` | 可选，默认 `0.8`。`spam_score` ≥ 此值时 JSON 中 `label` 为 `spam`，否则为 `normal` |
| `SPAM_DFA_ENABLED` | 默认 `true`。为 `true` 时使用 `dfa-python-filter/keywords` 做敏感词检测；命中则直接 `spam_score=1`、`detail=dfa_sensitive`（早于 sklearn） |
| `SPAM_DFA_KEYWORDS_PATH` | 可选，自定义敏感词文件路径；留空则用 `service/dfa-python-filter/keywords` |
| `SPAM_NON_CHINESE_FLOOR_ENABLED` | 默认 `true`。为 `true` 时若合并后的 author/email/url/text 中**无任何 CJK 表意字符**（主要针对中文训练语料），则将 `spam_score` **至少**抬到 `SPAM_NON_CHINESE_SPAM_FLOOR` |
| `SPAM_NON_CHINESE_SPAM_FLOOR` | 默认 `0.9`。与上项配合，在「无中文」评论上与 sklearn / 规则分取 `max` |
| `SPAM_STATS_ENABLED` | 默认 `true`。为 `true` 时记录每次**成功**返回的 `/v1/classify` 请求与响应（失败 / 401 不落库），并允许 `/v1/mark-spam` 写入 `spam_marks` 表 |
| `SPAM_STATS_BACKEND` | `sqlite`（默认）或 `mysql`。选 `mysql` 时需安装 `pymysql`（已在 `requirements.txt`）并配置下方 MySQL 变量 |
| `SPAM_STATS_DB_PATH` | 仅 `sqlite`：数据库文件路径；留空则为 `service/data/stats.sqlite`（已加入 `.gitignore`） |
| `SPAM_STATS_MYSQL_HOST` / `SPAM_STATS_MYSQL_PORT` | 仅 `mysql`：默认 `127.0.0.1` / `3306` |
| `SPAM_STATS_MYSQL_USER` / `SPAM_STATS_MYSQL_PASSWORD` | 仅 `mysql`：连接账号（`user` 必填） |
| `SPAM_STATS_MYSQL_DATABASE` | 仅 `mysql`：库名（必填），默认示例 `baby_spam_stats` |
| `SPAM_STATS_MYSQL_CHARSET` | 仅 `mysql`：默认 `utf8mb4` |</pre>
<p>&nbsp;</p>
<p>系统服务启动截图：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/service.png" data-lbwps-width="2664" data-lbwps-height="1395" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/service-665x348.png" data-lightbox="gal[798]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-803" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/service-scaled.png" alt="" width="2560" height="1341" srcset="https://zhongxiaojie.cn/wp-content/uploads/2026/04/service-scaled.png?v=1775467740 2560w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/service-300x157.png?v=1775467740 300w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/service-1024x536.png?v=1775467740 1024w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/service-150x79.png?v=1775467740 150w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/service-768x402.png?v=1775467740 768w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/service-1536x804.png?v=1775467740 1536w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/service-2048x1072.png?v=1775467740 2048w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/service-665x348.png?v=1775467740 665w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/service-497x260.png?v=1775467740 497w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p>wp插件配置：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175939.png" data-lbwps-width="1029" data-lbwps-height="1724" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175939.png" data-lightbox="gal[798]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-810" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175939.png" alt="" width="1029" height="1724" srcset="https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175939.png?v=1775469593 1029w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175939-179x300.png?v=1775469593 179w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175939-611x1024.png?v=1775469593 611w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175939-90x150.png?v=1775469593 90w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175939-768x1287.png?v=1775469593 768w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175939-917x1536.png?v=1775469593 917w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175939-665x1114.png?v=1775469593 665w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/Screenshot-2026-04-06-175939-155x260.png?v=1775469593 155w" sizes="auto, (max-width: 1029px) 100vw, 1029px" /></a></p>
<p>项目地址：<a href="https://anti-spam.zhongxiaojie.cn" target="_blank" rel="noopener">https://anti-spam.zhongxiaojie.cn</a></p>
<p>代码地址：<a href="https://cnb.cool/oba.by/baby-wp-anti-spam" target="_blank" rel="noopener">https://cnb.cool/oba.by/baby-wp-anti-spam</a></p>
<p>说明：如果自己不想训练数据，下载发布版的spam_pipeline.joblib 放入指定目录下配置服务启动即可，<a class="hover:underline hover:text-link truncate" href="https://cnb.cool/oba.by/baby-wp-anti-spam/-/releases/download/v2.0/baby-anti-spam.zip" download="">baby-anti-spam.zip</a> 为wp插件。</p>
<p>训练耗时大约11分钟：</p>
<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_18-3-45.png" data-lbwps-width="2088" data-lbwps-height="112" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_18-3-45-665x36.png" data-lightbox="gal[798]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-811" src="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_18-3-45.png" alt="" width="2088" height="112" srcset="https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_18-3-45.png?v=1775469858 2088w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_18-3-45-300x16.png?v=1775469858 300w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_18-3-45-1024x55.png?v=1775469858 1024w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_18-3-45-150x8.png?v=1775469858 150w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_18-3-45-768x41.png?v=1775469858 768w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_18-3-45-1536x82.png?v=1775469858 1536w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_18-3-45-2048x110.png?v=1775469858 2048w, https://zhongxiaojie.cn/wp-content/uploads/2026/04/BaiduShurufa_2026-4-6_18-3-45-665x36.png?v=1775469858 665w" sizes="auto, (max-width: 2088px) 100vw, 2088px" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://zhongxiaojie.cn/2026/04/798/feed/</wfw:commentRss>
			<slash:comments>58</slash:comments>
		
		
			</item>
		<item>
		<title>开源项目目录📇</title>
		<link>https://zhongxiaojie.cn/2026/03/593/</link>
					<comments>https://zhongxiaojie.cn/2026/03/593/#comments</comments>
		
		<dc:creator><![CDATA[obaby]]></dc:creator>
		<pubDate>Sat, 14 Mar 2026 08:14:31 +0000</pubDate>
				<category><![CDATA[程序媛]]></category>
		<category><![CDATA[gitee]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[WP]]></category>
		<category><![CDATA[微信]]></category>
		<category><![CDATA[插件]]></category>
		<guid isPermaLink="false">https://zhongxiaojie.cn/?p=593</guid>

					<description><![CDATA[部分开源项目源码。 PHP8 探针项目（包含WP插件） 专业的服务器监控和管理工具，提供实时系统监控、性能测试 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://zhongxiaojie.cn/wp-content/uploads/2026/03/58603a31.jpg" data-lbwps-width="2127" data-lbwps-height="1080" data-lbwps-srcsmall="https://zhongxiaojie.cn/wp-content/uploads/2026/03/58603a31-665x338.jpg" data-lightbox="gal[593]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-597" src="https://zhongxiaojie.cn/wp-content/uploads/2026/03/58603a31.jpg" alt="" width="2127" height="1080" srcset="https://zhongxiaojie.cn/wp-content/uploads/2026/03/58603a31.jpg?v=1773476059 2127w, https://zhongxiaojie.cn/wp-content/uploads/2026/03/58603a31-300x152.jpg?v=1773476059 300w, https://zhongxiaojie.cn/wp-content/uploads/2026/03/58603a31-1024x520.jpg?v=1773476059 1024w, https://zhongxiaojie.cn/wp-content/uploads/2026/03/58603a31-150x76.jpg?v=1773476059 150w, https://zhongxiaojie.cn/wp-content/uploads/2026/03/58603a31-768x390.jpg?v=1773476059 768w, https://zhongxiaojie.cn/wp-content/uploads/2026/03/58603a31-1536x780.jpg?v=1773476059 1536w, https://zhongxiaojie.cn/wp-content/uploads/2026/03/58603a31-2048x1040.jpg?v=1773476059 2048w, https://zhongxiaojie.cn/wp-content/uploads/2026/03/58603a31-665x338.jpg?v=1773476059 665w, https://zhongxiaojie.cn/wp-content/uploads/2026/03/58603a31-512x260.jpg?v=1773476059 512w" sizes="auto, (max-width: 2127px) 100vw, 2127px" /></a></p>
<p>部分开源项目源码。</p>
<p><span id="more-593"></span></p>
<h1>PHP8 探针项目（包含WP插件）</h1>
<p>专业的服务器监控和管理工具，提供实时系统监控、性能测试、数据库检测等功能。本项目包含两个版本：独立PHP探针和WordPress插件版本。</p>
<h2> 项目结构</h2>
<div class="markdown-code-block">
<pre><code class="hljs hljs-">php8-probe/
├── phpprobe.php              # 独立PHP探针（可直接访问）
├── php-probe-widget/         # WordPress插件版本
│   ├── php-probe-widget.php  # 主插件文件
│   ├── includes/             # 小组件类
│   ├── css/                  # 前端样式
│   ├── js/                   # 前端脚本
│   └── README.md             # 插件详细文档
├── LICENSE                   # 许可证
└── README.md                 # 本文件
</code></pre>
<div class="markdown-code-block-copy-btn"></div>
</div>
<h2><a id="user-content--快速开始" class="anchor" href="https://gitee.com/obaby/php8-probe#-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B"></a><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 快速开始</h2>
<h3><a id="user-content-方式一独立php探针" class="anchor" href="https://gitee.com/obaby/php8-probe#%E6%96%B9%E5%BC%8F%E4%B8%80%E7%8B%AC%E7%AB%8Bphp%E6%8E%A2%E9%92%88"></a>方式一：独立PHP探针</h3>
<ol>
<li>将 <code>phpprobe.php</code> 上传到您的Web服务器</li>
<li>通过浏览器访问该文件即可查看服务器信息</li>
<li>支持实时监控、性能测试、数据库检测等功能</li>
</ol>
<p><strong>特点：</strong></p>
<ul>
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 无需安装，直接使用</li>
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 单文件部署，简单方便</li>
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 支持多平台（Linux、Windows、macOS、FreeBSD）</li>
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 实时系统监控</li>
</ul>
<h3><a id="user-content-方式二wordpress插件" class="anchor" href="https://gitee.com/obaby/php8-probe#%E6%96%B9%E5%BC%8F%E4%BA%8Cwordpress%E6%8F%92%E4%BB%B6"></a>方式二：WordPress插件</h3>
<ol>
<li>将 <code>php-probe-widget</code> 文件夹复制到 <code>wp-content/plugins/</code> 目录</li>
<li>在WordPress后台激活&#8221;服务器监控探针&#8221;插件</li>
<li>进入 <strong>外观 &gt; 小组件</strong> 页面</li>
<li>将&#8221;服务器监控探针&#8221;小组件拖拽到侧边栏</li>
<li>配置显示选项和主题设置</li>
</ol>
<p><a href="https://gitee.com/obaby/php8-probe" target="_blank" rel="noopener">https://gitee.com/obaby/php8-probe</a></p>
<hr />
<h1>结巴分词HTTP服务</h1>
<p>基于Flask和jieba的本地HTTP分词服务。</p>
<p><a href="https://gitee.com/obaby/baby-jb-server" target="_blank" rel="noopener">https://gitee.com/obaby/baby-jb-server</a></p>
<hr />
<h1>WordPress 博客数据分析工具</h1>
<p>这是一个用于分析 WordPress 博客数据的 Python 工具，可以通过 WordPress REST API 获取并分析博客的文章和评论数据。</p>
<h2><a id="user-content-功能特性" class="anchor" href="https://gitee.com/obaby/baby-wp-data-analysis-tool#%E5%8A%9F%E8%83%BD%E7%89%B9%E6%80%A7"></a>功能特性</h2>
<ul>
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4dd.png" alt="📝" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 统计指定年份发布的文章数量（按月统计）</li>
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4ac.png" alt="💬" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 统计指定年份的评论数量</li>
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3c6.png" alt="🏆" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 分析评论用户的评论数排行</li>
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4be.png" alt="💾" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 将分析结果保存为 JSON 文件</li>
</ul>
<p><a href="https://gitee.com/obaby/baby-wp-data-analysis-tool" target="_blank" rel="noopener">https://gitee.com/obaby/baby-wp-data-analysis-tool</a></p>
<hr />
<h1>微信双开脚本 (WeChat Dual Launch Script)</h1>
<p>一个用于 macOS 系统的微信双开自动化脚本，通过复制微信应用并修改 Bundle ID 实现真正的微信双开功能。</p>
<h2><a id="user-content--功能特性" class="anchor" href="https://gitee.com/obaby/baby-wechat#-%E5%8A%9F%E8%83%BD%E7%89%B9%E6%80%A7"></a><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4cb.png" alt="📋" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 功能特性</h2>
<ul>
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>一键双开</strong> &#8211; 自动完成所有设置步骤</li>
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>智能检测</strong> &#8211; 自动检测已存在的 WeChat2.app</li>
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>安全可靠</strong> &#8211; 完善的错误处理和权限检查</li>
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>彩色输出</strong> &#8211; 友好的命令行界面</li>
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>进程管理</strong> &#8211; 查看和管理微信进程</li>
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>自动化设置</strong> &#8211; 无需手动执行复杂命令</li>
</ul>
<p><a href="https://github.com/obaby/baby-wechat" target="_blank" rel="noopener">https://github.com/obaby/baby-wechat</a></p>
<hr />
<div class="markdown-heading" dir="auto">
<h1 class="heading-element" dir="auto" tabindex="-1">Baby 足迹地图</h1>
<p>&nbsp;</p>
</div>
<div class="markdown-heading" dir="auto">
<h2 class="heading-element" dir="auto" tabindex="-1">简介：</h2>
<p>&nbsp;</p>
</div>
<p dir="auto">基于百度地图的足迹地图。<br />
启动服务之后，先去后台 地图 key 设置页面，添加百度地图浏览器端 ak！<br />
启动服务之后，先去后台 地图 key 设置页面，添加百度地图浏览器端 ak！<br />
启动服务之后，先去后台 地图 key 设置页面，添加百度地图浏览器端 ak！</p>
<p dir="auto">为了防止 js 地址解析受限，需要同时添加服务端 ak！<br />
为了防止 js 地址解析受限，需要同时添加服务端 ak！<br />
为了防止 js 地址解析受限，需要同时添加服务端 ak！</p>
<p dir="auto">添加之后，访问： <a href="http://127.0.0.1:10099/api/location/process-my-location/" rel="nofollow">http://127.0.0.1:10099/api/location/process-my-location/</a> 地址刷新数据库的地点坐标信息，后续无需再通过 js 接口进行解析！</p>
<p><a href="https://github.com/obaby/BabyFootprintV2" target="_blank" rel="noopener">https://github.com/obaby/BabyFootprintV2</a></p>
<hr />
<h1 class="heading-element" dir="auto" tabindex="-1">Simple microblogging</h1>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">Add a microblog to your site; display the microposts in a widget or using a shortcode. 
增强版优化页面显示，增加分页功能。wp微博插件。</pre>
<p>&nbsp;</p>
<p><a href="https://github.com/obaby/Simple-microblogging-wordpress-plugin" target="_blank" rel="noopener">https://github.com/obaby/Simple-microblogging-wordpress-plugin</a></p>
<hr />
<div class="markdown-heading" dir="auto">
<h1 class="heading-element" dir="auto" tabindex="-1">Baby WP 评论强化拦截插件</h1>
<p>&nbsp;</p>
</div>
<p dir="auto">一个强大的WordPress评论过滤插件，支持字数限制、中文检测、关键词过滤等功能。</p>
<div class="markdown-heading" dir="auto">
<h2 class="heading-element" dir="auto" tabindex="-1">插件信息</h2>
<p>&nbsp;</p>
</div>
<ul dir="auto">
<li><strong>插件名称</strong>: Baby WP 评论强化拦截插件</li>
<li><strong>版本</strong>: 1.0.5</li>
<li><strong>作者</strong>: obaby</li>
<li><strong>作者网址</strong>: <a href="https://h4ck.org.cn/" rel="nofollow">https://h4ck.org.cn</a></li>
<li><strong>许可证</strong>: GPL v2 or later</li>
</ul>
<div class="markdown-heading" dir="auto">
<h2 class="heading-element" dir="auto" tabindex="-1">功能特性</h2>
<p>&nbsp;</p>
</div>
<div class="markdown-heading" dir="auto">
<h3 class="heading-element" dir="auto" tabindex="-1"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6e1.png" alt="🛡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 评论过滤功能</h3>
<p>&nbsp;</p>
</div>
<ul dir="auto">
<li><strong>字数限制</strong>: 设置评论的最少和最多字数</li>
<li><strong>中文检测</strong>: 要求评论必须包含中文字符</li>
<li><strong>关键词过滤</strong>: 支持自定义关键词和WordPress设置的关键词</li>
<li><strong>正则表达式支持</strong>: 支持使用正则表达式进行高级匹配</li>
</ul>
<div class="markdown-heading" dir="auto">
<h3 class="heading-element" dir="auto" tabindex="-1"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2699.png" alt="⚙" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 管理功能</h3>
<p>&nbsp;</p>
</div>
<ul dir="auto">
<li><strong>简单设置界面</strong>: 直观的管理后台设置页面</li>
<li><strong>错误消息自定义</strong>: 可以自定义各种错误提示消息和标题</li>
<li><strong>统计信息</strong>: 记录评论过滤统计信息，支持重置功能</li>
<li><strong>WordPress集成</strong>: 与WordPress讨论设置完美集成，支持实时预览</li>
<li><strong>设置验证</strong>: 完整的输入验证和数据清理机制</li>
</ul>
<div class="markdown-heading" dir="auto">
<h3 class="heading-element" dir="auto" tabindex="-1"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 技术特性</h3>
<p>&nbsp;</p>
</div>
<ul dir="auto">
<li><strong>简单架构</strong>: 采用简单的面向对象架构，易于维护</li>
<li><strong>性能优化</strong>: 高效的过滤算法，不影响网站性能</li>
<li><strong>兼容性</strong>: 支持WordPress 5.0+版本，PHP 7.4+</li>
<li><strong>多语言</strong>: 支持多语言环境</li>
<li><strong>数据安全</strong>: 完整的输入验证和清理机制</li>
<li><strong>错误处理</strong>: 完善的错误处理和日志记录</li>
</ul>
<p><a href="https://github.com/obaby/baby-wp-comment-filter" target="_blank" rel="noopener">https://github.com/obaby/baby-wp-comment-filter</a></p>
<hr />
<div class="markdown-heading" dir="auto">
<h1 class="heading-element" dir="auto" tabindex="-1">WinRAR-Keygen</h1>
<p>&nbsp;</p>
</div>
<div class="markdown-heading" dir="auto">
<h2 class="heading-element" dir="auto" tabindex="-1">1. What is WinRAR?</h2>
<p>&nbsp;</p>
</div>
<ul dir="auto">
<li>
<p dir="auto">WinRAR is a trialware file archiver utility for Windows, developed by Eugene Roshal of win.rar GmbH.</p>
</li>
<li>
<p dir="auto">It can create and view archives in RAR or ZIP file formats and unpack numerous archive file formats.</p>
</li>
<li>
<p dir="auto">WinRAR is not a free software. If you want to use it, you should pay to <a href="https://rarlab.com/" rel="nofollow"><strong>RARLAB</strong></a> and then you will get a license file named <code>"rarreg.key"</code>.</p>
</li>
<li>
<p dir="auto">This repository will tell you how WinRAR license file <code>"rarreg.key"</code> is generated.</p>
</li>
</ul>
<div class="markdown-heading" dir="auto">
<h2 class="heading-element" dir="auto" tabindex="-1">2. How is &#8220;rarreg.key&#8221; generated?</h2>
<p>&nbsp;</p>
</div>
<ul dir="auto">
<li>
<p dir="auto">WinRAR uses a signature algorithm, which is a variant of Chinese SM2 digital signature algorithm, to process the user&#8217;s name and the license type he/she got. Save the result to &#8220;rarreg.key&#8221; and add some header info, then a license file is generated.</p>
</li>
</ul>
<p><a href="https://github.com/obaby/winrar-keygen" target="_blank" rel="noopener">https://github.com/obaby/winrar-keygen</a></p>
<hr />
<div class="markdown-heading" dir="auto">
<h1 class="heading-element" dir="auto" tabindex="-1">Baby Device Manager</h1>
<p>&nbsp;</p>
</div>
<p dir="auto">一个功能强大的WordPress设备管理系统插件，支持设备分组管理、设备信息管理、自定义排序、状态跟踪等功能。</p>
<div class="markdown-heading" dir="auto">
<h2 class="heading-element" dir="auto" tabindex="-1">功能特点</h2>
<p>&nbsp;</p>
</div>
<ul dir="auto">
<li>设备分组管理
<ul dir="auto">
<li>创建和管理设备分组</li>
<li>自定义分组排序</li>
<li>分组描述信息</li>
</ul>
</li>
<li>设备管理
<ul dir="auto">
<li>添加/编辑/删除设备</li>
<li>设备状态管理（在售、停售、已售出、维修中、已报废）</li>
<li>设备图片和产品链接</li>
<li>自定义设备排序</li>
<li>设备描述信息</li>
</ul>
</li>
<li>前端展示
<ul dir="auto">
<li>响应式布局</li>
<li>按分组分类显示</li>
<li>支持多种排序方式</li>
<li>美观的界面设计</li>
<li>支持自定义每行显示设备数量（1-6个）</li>
</ul>
</li>
<li>其他功能
<ul dir="auto">
<li>图片管理：支持设备图片上传和显示</li>
<li>产品链接：支持添加产品详情页链接</li>
<li>状态跟踪：支持多种设备状态管理</li>
<li>自定义排序：支持设备分组和设备的自定义排序</li>
</ul>
</li>
</ul>
<p><a href="https://github.com/obaby/Baby-Device-Manager" target="_blank" rel="noopener">https://github.com/obaby/Baby-Device-Manager</a></p>
<hr />
<div class="relative cnb-markdown-heading group">
<h1 class="cnb-markdown-heading-com">RSS Beauty</h1>
<p>&nbsp;</p>
</div>
<p>为 WordPress RSS Feed 提供美观的网页展示样式（基于 <a class="cursor-pointer hover:underline" href="https://cnb.cool/110?url=https%3A%2F%2Frss.beauty" target="_blank" rel="noopener">RSS.Beauty</a> 的 Pink 主题）。</p>
<div class="relative cnb-markdown-heading group">
<h2 class="cnb-markdown-heading-com">项目功能</h2>
<p>&nbsp;</p>
</div>
<ul>
<li><strong>RSS 样式化</strong>：在 Feed 中注入 XSL 样式表，浏览器打开 feed 地址时以 HTML 页面形式展示，而非原始 XML。</li>
<li><strong>Feed Content-Type</strong>：将 feed 的 Content-Type 设为 <code>application/xml</code>，使浏览器按 XML 解析并应用 <code>xml-stylesheet</code>。</li>
<li><strong>XSL 地址</strong>：样式表使用插件目录下的静态文件 <code>pink.xsl</code>。需在 OpenResty/Nginx 中为 <code>.xsl</code> 配置正确的 Content-Type（见下方配置说明），否则浏览器可能不按 XSL 解析。</li>
<li><strong>主题</strong>：内置淡粉色（light pink）页面背景与适配的文字颜色。</li>
</ul>
<p><a href="https://cnb.cool/oba.by/rss-beauty" target="_blank" rel="noopener">https://cnb.cool/oba.by/rss-beauty</a></p>
<hr />
<div class="relative cnb-markdown-heading group">
<h1 class="cnb-markdown-heading-com">WP-UserAgent</h1>
<p>&nbsp;</p>
</div>
<p><strong>Contributors:</strong> obaby<br />
<strong>Donate Link:</strong> <a class="cursor-pointer hover:underline" href="https://cnb.cool/110?url=https%3A%2F%2Foba.by" target="_blank" rel="noopener">https://oba.by</a><br />
<strong>Tags:</strong> useragent, user-agent, user agent, web, browser, web browser, operating system, platform, os, mac, apple, windows, win, linux, phone<br />
<strong>Requires at least:</strong> 2.0<br />
<strong>Tested up to:</strong> 6.3<br />
<strong>Stable tag:</strong> 16.06.99</p>
<div class="relative cnb-markdown-heading group">
<h2 class="cnb-markdown-heading-com">IP 查询方式（归属地）</h2>
<p>&nbsp;</p>
</div>
<p>插件支持四种 IP 查询方式，可在 <strong>设置 → WP-UserAgent</strong> 中选择：</p>
<table>
<thead>
<tr>
<th>方式</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>IP2Location</strong></td>
<td>使用 IP2Location 数据库（需将 BIN 文件放入 <code>show-useragent/ip2location_db/db/</code>），依赖 Composer</td>
</tr>
<tr>
<td><strong>CZDB</strong></td>
<td>使用纯真 CZDB 数据库（需授权与 db 文件放入 <code>show-useragent/czdb/db/</code>），依赖 Composer</td>
</tr>
<tr>
<td><strong>ip2region</strong></td>
<td>使用 ip2region xdb（<strong>仅内置 ip2reginapi，不依赖 Composer</strong>）。需将 xdb 文件放入 <code>show-useragent/ip2region_db/</code>，文件名：<code>ip2region_v4.xdb</code>、<code>ip2region_v6.xdb</code></td>
</tr>
<tr>
<td><strong>纯真QQWRY</strong></td>
<td>使用 qqwry_api（qqwry.dat + ipv6wry.db），无需 Composer。数据文件放入 <code>show-useragent/qqwry_api/ipdata/</code></td>
</tr>
</tbody>
</table>
<p>选择 <strong>ip2region</strong> 或 <strong>纯真QQWRY</strong> 时不会加载 <code>vendor/autoload.php</code>。若选择 IP2Location 或 CZDB 时 vendor 加载失败，插件会自动回退为 ip2region 模式，避免站点白屏。</p>
<div class="relative cnb-markdown-heading group">
<h2 class="cnb-markdown-heading-com">Description</h2>
<p>&nbsp;</p>
</div>
<p><strong>WP-UserAgent</strong> is a simple plugin that allows you to display details about a computer&#8217;s <a class="cursor-pointer hover:underline" href="https://cnb.cool/110?url=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FOperating_system" target="_blank" rel="noopener">operating system</a> or <a class="cursor-pointer hover:underline" href="https://cnb.cool/110?url=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FWeb_browser" target="_blank" rel="noopener">web browser</a> that your visitors comment from.</p>
<p>It uses the comment-&gt;agent property to access the <a class="cursor-pointer hover:underline" href="https://cnb.cool/110?url=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FUser_agent" target="_blank" rel="noopener">User-Agent string</a>. Through a series of regular expressions, this plugin is able to detect the operating system and browser which can be integrated in comments or placed in custom places through your template(s).</p>
<p>I&#8217;m adding new web browsers and operating systems frequently, as well as updating and optimizing the source code. Your feedback is very important, new features have been added by request, so if there&#8217;s something you would like to see in <strong>WP-UserAgent</strong>, <a class="cursor-pointer hover:underline" href="https://cnb.cool/110?url=https%3A%2F%2Fwww.kyleabaker.com%2Fgoodies%2Fcoding%2Fwp-useragent%2F" target="_blank" rel="noopener">leave a comment</a>, and I&#8217;ll see what I can do.</p>
<p><strong>WP-UserAgent</strong> was written with Geany &#8211; <a class="cursor-pointer hover:underline" href="https://cnb.cool/110?url=http%3A%2F%2Fwww.geany.org%2F" target="_blank" rel="noopener">http://www.geany.org/</a><br />
Images created with The Gimp &#8211; <a class="cursor-pointer hover:underline" href="https://cnb.cool/110?url=http%3A%2F%2Fwww.gimp.org%2F" target="_blank" rel="noopener">http://www.gimp.org/</a></p>
<blockquote><p><strong>注意：</strong></p>
<ul>
<li>使用 <strong>CZDB</strong> 时：若更新替换纯真数据库，请同步更新 <code>show-useragent/ip2c-text.php</code> 中的 <code>$key = 'n2pf2+PrE1y9I55MjdpLpg==';</code></li>
<li>使用 <strong>ip2region</strong> 时：将 xdb 文件放入 <code>show-useragent/ip2region_db/</code>（<code>ip2region_v4.xdb</code>、<code>ip2region_v6.xdb</code>），无需 Composer。</li>
</ul>
</blockquote>
<p><a href="https://cnb.cool/oba.by/wp-useragent" target="_blank" rel="noopener">https://cnb.cool/oba.by/wp-useragent</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://zhongxiaojie.cn/2026/03/593/feed/</wfw:commentRss>
			<slash:comments>81</slash:comments>
		
		
			</item>
	</channel>
</rss>
