Scoparia - 简单易用的SCP新消息通知服务

源页面
2025年11月14日
修订 20

核心指标

更新于 2025年12月11日
评分
151
↑ 151
↓ 0
支持率
100%
总票数 151
Wilson 95% 下界
97.5%
在相同票数下更稳健的支持率估计
争议指数
0.000

评分趋势

按周聚合
加载图表中...

最近修订

1 / 7
编辑内容
17 天前
编辑内容
19 天前
编辑内容
19 天前

最近投票

1 / 16
2025-12-02
2025-12-02
2025-12-01
2025-12-01
2025-12-01
2025-11-30
2025-11-30
2025-11-30
2025-11-26

页面源码

源码字符数 14013文字字数 2819
[[include :scp-wiki-cn:theme:bedrock]]

[[module CSS]]

:root {
  --header-logo: url('https://scoparia.wdfiles.com/local--files/files/scoparia.webp');
  --header-title: 'Scoparia';
  --header-subtitle: '';
}

span.form-value.field-mention_level>label {
  display: block;
}

.join-box a {
  border-radius: unset;
  -webkit-border-radius: unset;
  background-image: unset;
  background-position: unset;
  font-family: var(--UI-font);
  color: rgb(var(--button-text-color));
  background-color: rgb(var(--button-background-color));
  border: solid calc(0.125 * var(--true-font-size)) rgb(var(--button-border-color));
  padding: calc(0.3 * var(--true-font-size));
  outline: rgb(var(--button-outline-color)) solid 0;
  transition: all var(--button-hover-transition);
}

.join-box a:is(:hover, :focus) {
  text-decoration: none;
  color: rgb(var(--button-hover-text-color));
  background-color: rgb(var(--button-hover-background-color));
  border-color: rgb(var(--button-hover-border-color));
  outline-width: .25rem;
}

.join-permission:not(:has(.join-box)),
.join-permission:has(.join-box)+.join-permission-empty {
  display: none;
}

.join-permission .join-box a:any-link{
  font-size: 0 !important;
}

.join-permission:not(:has(.join-box)),
.join-permission:has(.join-box)+.join-permission-empty {
  display: none;
}

.join-permission .join-box a::before,
.join-permission .join-box a::after {
  font-size: var(--true-font-size);
}

.join-permission .join-box a::before {
  content: "🔐";
  font-size: 1.1rem;
}

.join-permission .join-box a::after {
  content: "授予私信权限";
}

.form-value.field-wikidot_pm_info,
.form-value.field-email_info,
.form-value.field-mention_level_info,
.form-value.field-apprise_info {
  padding: calc(5em / 6);
  background: rgb(var(--blockquote-background-color));
  border-left: 3px solid rgb(var(--basalt-undertone));
  border-radius: 4px;
  font-size: 0.9em;
  color: rgb(var(--basalt-overtone));
}

.form-value.field-wikidot_pm_info>p,
.form-value.field-email_info>p,
.form-value.field-mention_level_info>p,
.form-value.field-apprise_info>p {
  margin: 0 !important;
}

textarea[name="field-apprise_urls"] {
  width: 100%;
}

h2 {
    font-size: 1.5em;
    font-weight: normal;
}

h3 {
    font-size: 1.325em
}

.owindow .button-bar>a:not([onclick*=cleanAll]), .owindow div[style*=margin-top] a {
    border: solid calc(0.125 * var(--true-font-size)) rgb(var(--button-border-color));
    padding: calc(0.3 * var(--true-font-size));
}

a[onclick="WIKIDOT.modules.UserInfoWinModule.listeners.addContact(event,10124354)"] {
  font-size: 0 !important;
}

a[onclick="WIKIDOT.modules.UserInfoWinModule.listeners.addContact(event,10124354)"]::before,
a[onclick="WIKIDOT.modules.UserInfoWinModule.listeners.addContact(event,10124354)"]::after {
  font-size: var(--true-font-size);
}

a[onclick="WIKIDOT.modules.UserInfoWinModule.listeners.addContact(event,10124354)"]::before {
  content: "📧";
  font-size: 1.1rem;
}

a[onclick="WIKIDOT.modules.UserInfoWinModule.listeners.addContact(event,10124354)"]::after {
  content: "Grant email permissions";
}

/* Hide everything else in the Scoparia popup */
.owindow:has(img[src*="u=10124354"][src*="onlyKarma=true"]) :is(.table, .btn[href*="user:info"], .btn[href*="messages#/new"], .btn[onclick*="flagUser"]) {
  display: none !important;
}

.owindow:has(img[src*="u=10124354"][src*="onlyKarma=true"]) div[style="margin-top: 10px"] {
  display: block !important;
  justify-self: center !important;
  text-align: center;
}

.owindow:has(img[src*="u=10124354"][src*="onlyKarma=true"]) div[style="margin-top: 10px"]::before {
  content: "To give Scoparia permission to email you, use the button below:";
  display: block !important;
  margin-bottom: 0.5rem;
  text-align: center;
}

a#u-config-page,
div#u-scoparia-user .printuser a {
    margin: 0;
    display: inline-block;
    flex-basis: 12em;
    flex-grow: 1;
    text-align: center;
    padding: calc(0.5 * var(--true-font-size));
    font-family: var(--UI-font);
    text-decoration: none;
    color: rgb(var(--basalt-positive-color));
    background-color: rgb(var(--button-background-color));
    border: solid calc(0.125 * var(--true-font-size)) rgb(var(--button-border-color));
    outline: rgb(var(--button-outline-color)) solid 0;
    transition: all var(--button-hover-transition);
}

a#u-config-page:is(:hover, :focus),
div#u-scoparia-user .printuser a:is(:hover, :focus) {
    color: rgb(var(--button-hover-text-color));
    background-color: rgb(var(--button-hover-background-color));
    border-color: rgb(var(--button-hover-border-color));
    outline-width: .25rem;
}

div#u-scoparia-user .printuser a::before {
    content: "🚀 点此一键订阅 ";
}

div#u-scoparia-user .printuser a::after {
    content: " 服务";
}

.owindow:has(img[src*="u=10124354"][src*="onlyKarma=true"]) div[style="margin-top: 10px"]::before {
    content: "一键订阅功能会默认为您开启 Wikidot 私信通知和邮箱通知。如果您不希望 Scoparia 机器人账号获取您的邮箱信息,请不要使用一键订阅,而是退出此对话框,点击 编辑详细配置 手动订阅。";
    display: block !important;
    margin-bottom: 0.5rem;
    text-align: center;
}

a[onclick="WIKIDOT.modules.UserInfoWinModule.listeners.addContact(event,10124354)"]::before {
    content: "🚀 ";
    font-size: 1.1rem;
}

a[onclick="WIKIDOT.modules.UserInfoWinModule.listeners.addContact(event,10124354)"]::after {
    content: "点此将 Scoparia 添加为联系人,一键订阅 Scoparia 服务";
}

.c-inline {
    margin-block-start: 1em;
    margin-block-end: 1em;
}

.c-inline > * {
    display: inline-flex;
}

#page-content .creditRate {
    margin-block-start: 1em;
    margin-block-end: 1em;
}

img.c-pseudoavatar {
    align-self: center;
    height: 1.25em;
    width: 1.25em;
    padding: 0;
    padding-left: .5em;
    object-fit: contain;
    background-size: cover;
    overflow: hidden;
    margin-right: unset;
    vertical-align: -0.3em;
    margin: 0;
    z-index: 0;
    background-repeat: no-repeat;
    background-position: center left;
}

[[/module]]

[[toc]]

[[div style="text-align: center;"]]
[[image https://scoparia.wdfiles.com/local--files/files/scoparia.webp width="400px"]]
+ Scoparia
------
[[image https://img.shields.io/badge/python-3.11+-blue.svg]] [[image https://github.com/Crimone/Scoparia/actions/workflows/notify.yml/badge.svg link="*https://github.com/Crimone/Scoparia/actions/workflows/notify.yml"]] [[image https://img.shields.io/badge/license-AGPL--3.0-663366 link="*https://github.com/Crimone/Scoparia/blob/main/LICENSE"]] [[image https://img.shields.io/badge/maintainer-Mercuresphere-2c8484?logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJtb25lIiB2aWV3Qm94PSIwIDAgMjM0LjUgMjQxLjIzIiBmaWxsPSIjZmZmIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6bm9uZTtzdHJva2U6I2ZmZjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLXdpZHRoOjIuNXB4fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGQ9Ik0xMTguNSAxNjYuNzh2NjIuMjFIMTE2di02Mi4yMWMuNDEuMDEuODMuMDIgMS4yNC4wMnMuODQgMCAxLjI2LS4wMnpNOC41MyA3My4yOEMzLjAzIDg2Ljg2IDAgMTAxLjcgMCAxMTcuMjVjMCA1OS4yNCA0My45NCAxMDguMjEgMTAxIDExNi4xMkw4LjUzIDczLjI4ek0yMDkuNiA0NWMtMjEuNDYtMjcuMzktNTQuODUtNDUtOTIuMzUtNDVTNDYuMzYgMTcuNjEgMjQuOSA0NWgxODQuN3ptLTc2IDE4OC4zNmM1Ny4wMi03Ljk2IDEwMC45LTU2LjkgMTAwLjktMTE2LjExIDAtMTUuNTUtMy4wMy0zMC4zOC04LjUzLTQzLjk2bC05Mi4zOCAxNjAuMDdoLjAxeiIvPjxjaXJjbGUgY2xhc3M9ImNscy0xIiBjeD0iMTE3LjI1IiBjeT0iMjM0LjQ5IiByPSI1LjQ5Ii8+PHBhdGggZD0iTTIxNC42NiA2Mi40NGwtNTMuODYgMzEuMWMtLjQtLjczLS44Mi0xLjQ1LTEuMjYtMi4xNmw1My44Ny0zMS4xMSAxLjI1IDIuMTd6Ii8+PGNpcmNsZSBjbGFzcz0iY2xzLTEiIGN4PSIyMTguNzkiIGN5PSI1OC42MSIgcj0iNS40OSIvPjxwYXRoIGQ9Ik03NC45NyA5MS4zOGMtLjQ0LjcxLS44NiAxLjQzLTEuMjYgMi4xNmwtNTMuODYtMzEuMSAxLjI1LTIuMTcgNTMuODcgMzEuMTF6Ii8+PGNpcmNsZSBjbGFzcz0iY2xzLTEiIGN4PSIxNS43MSIgY3k9IjU4LjYxIiByPSI1LjQ5Ii8+PHBhdGggZD0iTTEyMS40OSAxMzUuMzNjMC0yLjM0LTEuOS00LjI0LTQuMjQtNC4yNHMtNC4yNCAxLjktNC4yNCA0LjI0IDEuOSA0LjI0IDQuMjQgNC4yNCA0LjI0LTEuOSA0LjI0LTQuMjR6Ii8+PHBhdGggZD0iTTE2MC44IDkzLjU0bC0yMS41MSAxMi40MmMuNDUgMS4yNy41MSAyLjY1LjE1IDMuOThhNi42OTggNi42OTggMCAwIDEtMy4xNCA0LjA5IDYuNzAzIDYuNzAzIDAgMCAxLTUuMTIuNjggNi42OTggNi42OTggMCAwIDEtNC4wOS0zLjE0IDYuNjkxIDYuNjkxIDAgMCAxLS42Ny01LjEyIDYuNjk4IDYuNjk4IDAgMCAxIDMuMTQtNC4wOWMxLjU2LS45IDMuMzgtMS4xNCA1LjEyLS42NyAxLjMzLjM2IDIuNDkgMS4xIDMuMzcgMi4xMmwyMS41LTEyLjQxYy04LjctMTQuMjItMjQuMzktMjMuNzEtNDIuMjktMjMuNzFTODMuNjggNzcuMTggNzQuOTggOTEuNGwyMS41IDEyLjQyYzIuMDctMi40MSA1LjYzLTMuMDkgOC40OC0xLjQ1IDMuMjIgMS44NiA0LjMzIDUuOTkgMi40NyA5LjIxYTYuNzUzIDYuNzUzIDAgMCAxLTkuMjEgMi40NyA2LjY2MyA2LjY2MyAwIDAgMS0zLjE0LTQuMDljLS4zNi0xLjMzLS4zLTIuNzEuMTUtMy45OEw3My43MiA5My41NmMtMy44NCA3LjA0LTYuMDIgMTUuMTEtNi4wMiAyMy42OSAwIDI2Ljk3IDIxLjUyIDQ4LjkgNDguMzIgNDkuNTV2LTI0LjgzYy0zLjEyLS41OS01LjUtMy4zMy01LjUtNi42MiAwLTMuNzIgMy4wMi02Ljc0IDYuNzQtNi43NHM2Ljc0IDMuMDMgNi43NCA2Ljc0YzAgMy4yOS0yLjM3IDYuMDMtNS40OSA2LjYydjI0LjgzYzI2LjgtLjY2IDQ4LjMxLTIyLjU5IDQ4LjMxLTQ5LjU1IDAtOC41OC0yLjE4LTE2LjY1LTYuMDItMjMuNjl6Ii8+PHBhdGggZD0iTTk5LjQ2IDExMS44NmMyLjAzIDEuMTcgNC42Mi40NyA1LjgtMS41NSAxLjE3LTIuMDMuNDctNC42My0xLjU1LTUuOGE0LjIzMyA0LjIzMyAwIDAgMC01Ljc5IDEuNTUgNC4yNTYgNC4yNTYgMCAwIDAgMS41NSA1Ljh6bTI5LjM2LTQuNzdjLS4yOSAxLjA5LS4xNCAyLjI0LjQyIDMuMjJhNC4yMzggNC4yMzggMCAwIDAgNS43OSAxLjU1Yy45OC0uNTcgMS42OC0xLjQ4IDEuOTgtMi41OHMuMTQtMi4yNC0uNDItMy4yMmE0LjI1MSA0LjI1MSAwIDAgMC0yLjU4LTEuOTggNC4xNTMgNC4xNTMgMCAwIDAtMy4yMS40MmMtLjk4LjU3LTEuNjggMS40OC0xLjk4IDIuNTh6Ii8+PC9zdmc+ link="*https://www.wikidot.com/account/messages#/new/6207446"]]
[[/div]]

[[include :scp-wiki-cn:credit:start]]

**作者:**[[*user Mercuresphere]] feat. [[*user Mahashi Kazuhiro]]

[[[mercuresphere | Mercuresphere的作者页]]]

[[[mahashi-kazuhiro | Mahashi Kazuhiro的作者页]]]

[[include :scp-wiki-cn:credit:end]]

中文分部一直没有自己的回复提醒功能,因此我产生了为中分开发新消息通知系统的想法。

如果以一个现代的论坛系统为参照,wikidot的功能是较为原始的,回帖之后贴主无法收到任何通知,同时也缺失@提到我这样的功能。Scoparia 是为了解决这种问题而应运而生的。

Scoparia 与其他站点已经实现的通知服务相比,有着更为即时的发送提醒周期(3分钟左右)、更为广泛的提醒服务支持范围(所有兼容 Apprise 框架的提醒服务,如 Discord、QQ Push、Ntfy.sh 等均可支持)、更为轻量的结构(以无服务器结构为基础开发)。

Scoparia 的命名与logo均取自于车前科野甘草属植物 野甘草(二名法://Scoparia dulcis//)。

+ 功能介绍

[[div_ class="c-inline"]]
订阅 Scoparia 服务之后,你可以在3分钟左右的间隔之内,收到新消息通知,同时在其他人用[[*user]]模块提到你,如:

[[module ListUsers users="."]]
[[div class="printuser"]]
[[image https://www.wikidot.com/avatar.php?userid=%%number%% alt="%%title%%" class="c-pseudoavatar" style="background-image:url(https://www.wikidot.com/userkarma.php?u=%%number%%)"]][[user %%title%%]]
[[/div]]
[[/module]]

的时候,你会收到通知,类似现代论坛中常见的“@到你”功能。
[[/div]]

Scoparia 支持以下三种不同的通知类型。对这些通知类型,具体的配置方式请查看后文中使用方法一节。

++ Wikidot私信通知

在收到新消息之后,[[*user Scoparia]]会向你的Wikidot账号发送私信。如果你的账号关闭了接收私信功能,那么你需要向[[*user Scoparia]]账号授权私信权限。

++ 邮件通知

在收到新消息之后,你的邮箱会收到邮件通知。有可能 Scoparia 发送的邮件会出现在垃圾箱中,需要你手动信任 Scoparia 的发送邮件账号。**此功能当前为公开测试状态,Scoparia 的发信地址未来可能会变化。如果更换了新的发信地址,会另行通知。**

++ Apprise 通知

Scoparia 支持通过兼容 Apprise 框架的提醒服务发送通知。Apprise 是一个统一的通知框架,支持多种通知渠道,包括 Discord、QQ Push、Ntfy.sh 等。

+ 源存储库

> *https://github.com/Crimone/Scoparia

+ 使用方法

++ 一键订阅

[[div id="scoparia-user"]]
= **[[user Scoparia]]**
[[/div]]

在添加到通讯录之后,**Wikidot 会自动将与你的 Wikidot 账号关联的邮箱地址共享给 Scoparia 机器人账号**。Scoparia 会自动为你开启 Wikidot 私信通知和邮箱通知两种通知类型。Scoparia 发送的邮件有可能会出现在垃圾箱中,你可以在第一次收到邮件之后点击信任,或者提前把当前的 Scoparia 发信地址:alias_alice@outlook.com,加入到白名单中。

++ 配置你的 Scoparia 服务

[[module ListUsers users="."]]
= [[a id="config-page" target="_blank" href="https://scoparia.wikidot.com/secret-notify:%%number%%/edit/true/title/%%title%% (%%number%%)"]]**⚙️ 点此编辑详细配置**[[/a]]
[[/module]]

Scoparia 支持通过各种兼容 Apprise 框架的提醒服务发送通知,详情请参考 [*https://github.com/caronc/apprise/wiki Apprise 官方文档]。这里详细介绍几种比较常用的提醒服务的配置方式:

+++ Discord

要向 Discord 发送通知,你需要建立一个自己的服务器。

[[div class="blockquote"]]

++++ 步骤 1:创建服务器

1. 在左侧服务器列表的底部,找到 **"+"** 按钮,提示为“添加服务器”
[[image https://scoparia.wdfiles.com/local--files/files/discord_0.png]]
2. 选择“亲自创建”,配置服务器名称、头像等信息
[[image https://scoparia.wdfiles.com/local--files/files/discord_1.png]]
@@@@
[[image https://scoparia.wdfiles.com/local--files/files/discord_2.png]]

++++ 步骤 2:创建和配置 Webhook

1. 点击服务器名称右侧的下拉菜单,点击“服务器设置”
[[image https://scoparia.wdfiles.com/local--files/files/discord_3.png]]
2. 在服务器设置页面中,先点击“整合”,再点击 "创建 Webhook" 按钮
[[image https://scoparia.wdfiles.com/local--files/files/discord_4.png]]
3. 点击新创建出的Webhook的右侧的下拉菜单,再点击“复制 Webhook URL”
[[image https://scoparia.wdfiles.com/local--files/files/discord_5.png]]

++++ 步骤 3:构建 Apprise URL

1. 在上个步骤中,你会复制到格式类似于以下的URL:
[[code]]
https://discord.com/api/webhooks/4174216298/JHMHI8qBe7bk2ZwO5U711o3dV_js
[[/code]]

Discord Webhook URL 的最后两个部分为发送通知所需的两个值:

**WebhookID**:URL 中 `/webhooks/` 后面的数字部分
**WebhookToken**:URL 最后的字符串部分

以上面的示例为例:

WebhookID 为 {{4174216298}}
WebhookToken 为 {{JHMHI8qBe7bk2ZwO5U711o3dV_js}}

2. 构建 Apprise URL 格式:
[[code]]
discord://{WebhookID}/{WebhookToken}/?format=markdown
[[/code]]

以上面的示例为例,最终的 Apprise URL:

[[code]]
discord://4174216298/JHMHI8qBe7bk2ZwO5U711o3dV_js/?format=markdown
[[/code]]

3. 将 Apprise URL 填写到设置当中,勾选“启用 Apprise 通知”即可。

[[/div]]

+++ QQ Push

QQ Push,又称Qmsg酱,是zendee提供的第三方通知服务,可以直接把提醒通过QQ消息的方式推送给你。但该平台有一个重大限制:推送内容不能包含任何链接。因此,QQ Push无法让你直接访问到消息,建议与Wikidot私信通知联合使用。在QQ Push收到消息之后,访问你的 Wikidot 私信来跳转到具体回复的帖子。

除此之外,QQ Push有每日消息上限100条的限制,如果超过该限制,你不会继续收到提醒。

[[div class="blockquote"]]

++++ 步骤 1:登录Qmsg管理台

1. 访问[*https://qmsg.zendee.cn https://qmsg.zendee.cn],点击“立即使用”,登录之后来到Qmsg管理台。
[[image https://scoparia.wdfiles.com/local--files/files/qq_1.png]]

++++ 步骤 2:获取Qmsg Key
1. 选择一个未来你将会使用的Qmsg酱账号。点击“已选择”之后,在你的QQ里面加这个Qmsg酱账号为好友。

2. 接下来在"我的QQ列表"这里点击“添加QQ号”,添加完之后,在上面“我的KEY”这里复制你的Qmsg Key。
[[image https://scoparia.wdfiles.com/local--files/files/qq_2.png]]

3. 你会复制到格式类似于以下的Key:

[[code]]
abc123def456ghi789jkl012mno345pq
[[/code]]

获取到Key之后,在前面添加“qq://”,即为所需的Apprise URL。

以上面的示例为例,最终的 Apprise URL:

[[code]]
qq://abc123def456ghi789jkl012mno345pq
[[/code]]

4. 将 Apprise URL 填写到设置当中,勾选“启用 Apprise 通知”即可。

[[/div]]

Apprise 框架还兼容很多种不同的通知服务,您可以在 [*https://github.com/caronc/apprise/wiki Apprise 官方文档] 中自行查阅。

+ 关于

Scoparia 由[[*user Mercuresphere]]开发,以AGPLv3协议开源。Scoparia logo由[[*user Mahashi Kazuhiro]]设计、绘制。

此最强copyleft许可的权限以在同一许可下提供许可作品和修改的完整源代码为条件,其中包括使用许可作品的较大作品。**版权和许可声明必须保留。**贡献者明确授予专利权。当使用修改后的版本通过网络提供服务时,必须提供修改后版本的完整源代码。

**任何使用、修改、传播本程序或提供基于本程序服务的行为,均必须保留通知消息底部的 Powered by Scoparia 授权信息以及指向原始存储库的链接。**