phrik

出自 ArchWiki

phrik 是一个 IRC 机器人,存在于大多数 Arch IRC 频道中。它是一个 Limnoria (以前是一个 supybot),带有大量方便的 factoid 和实用程序,用于引用经常重复的短语,快速为人们提供有用的链接以及其他管理任务。自定义的“命令”,称为 factoid,可以在注册后编辑或添加(不要与 NickServ 注册混淆)。

账户

警告: 请记住在私信中向 phrik 查询 /msg phrik 以进行与您的账户相关的操作。在这种情况下,命令前缀 ! 不是必需的。

注册

要创建新的或更改已存在的 factoid,您需要拥有一个 phrik 账户,该账户的名称不必与您的 IRC 昵称相同。

register name password

示例:register demize stuff 以注册一个名为 demize,密码为 stuff 的账户

身份验证

要为当前会话或直到您 unidentify 时对 phrik 进行身份验证,您需要运行以下命令

identify name password

示例:identify demize stuff

使用主机名验证身份

如果您不想每次连接时都必须对 phrik 进行身份验证,您可以向您的 phrik 账户添加主机掩码,这将使其在您每次从该主机连接时自动验证您的身份。它们的形式为 nick!ident@host

但请小心您添加的主机掩码,因为任何使用该主机掩码连接的人都将被识别为您,因此您不希望添加来自您的 ISP 的主机,因为这很可能会经常更改。要使用主机掩码自动验证身份,您需要从服务器进行 IRC 连接或拥有 cloak,否则主机可能会经常更改,因此其他人可能会被识别为您。如果您要使用主机进行身份验证,您可能还需要运行 ident 服务器,以便从同一服务器连接的其他用户无法伪造您的身份。

两个好的例子是 demize!kyrias@theos.kyriasis.com*!*@archlinux/op/demize

添加新的主机掩码

要添加主机掩码,请在私信中向 phrik 发送以下命令

hostmask add hostmask

示例:!hostmask add demize!kyrias@theos.kyriasis.com

移除主机掩码

hostmask remove name hostmask
hostmask remove demize demize!kyrias@theos.kyriasis.com

列出主机掩码

hostmask list

Factoid

phrik 具有 MoobotFactoids 插件,这意味着用户可以创建、回忆并向他人提供 factoid,即小消息。

要使 phrik 回忆 factoid,您可以将 factoid 的键前缀为感叹号发送到它所在的频道或私信中,就像这样

!welcome

搜索 Factoid

要搜索现有的 factoid,您可以使用 listkeys 和 listvalues 命令

!listkeys welcome

!listvalues welcome

按创建者列出 Factoid

使用 !listauth 查找昵称创建的所有 factoid。当某人意外创建了 factoid 时,这非常有用,因为 phrik 不会返回已创建 factoid 的名称。

!listauth phrik

查找关于 Factoid 的信息

如果您想查找 factoid 的创建者和创建时间,您可以使用 factinfo 命令

!factinfo welcome

创建新的 Factoid

创建新的 factoid 非常简单,只需输入您希望用于回忆 factoid 的键,is,然后输入消息。通常您希望在消息前加上 <reply>,以便 phrik 只会完全按照您给出的消息编写消息,而不是打印 <key> is <value>

像这样创建一个 factoid

!example is "<reply>This is an example factoid"

将使 phrik 在有人在频道中说 !example 时向频道或私信发送 This is an example factoid。如果省略 <reply>,phrik 将改为说 example is This is an example factoid

Factoid 锁定

Factoid 可以被锁定以防止其他人移除或覆盖 factoid,但通常没有必要这样做,因为如果最终有充分的理由更改 factoid,这只会妨碍事情。通常锁定和解锁将通过从 MoobotFactoids 插件调用命令来完成,但 !fact 为了方便起见已别名为 !MoobotFactoids

如果您认为应该更改的 factoid 已被锁定,首先请联系锁定它的人 (!factinfo 会告诉您),如果该人不可用或拒绝更改它,但您仍然认为应该更改它,因为违反规则或类似原因,请随时联系 ops。(要获取 ops 列表,请在私信中向 phrik 发送 !listops。)

!fact lock factoid_key

!fact unlock factoid_key

修改 Factoid

对于修改 factoid,有两种选择,第一种是使用正则表达式替换,第二种是完全替换它。正则表达式替换的优点是保留原始创建者信息和上次修改者信息。

正则表达式替换

要将示例 factoid 中的单词“This”替换为单词“That”,您可以使用如下所示的正则表达式替换

!example =~ s/This/That/

替换 Factoid

使用 no 命令可以完全替换一个全新的 factoid,如下所示

!no example is "<reply>a really bad example factoid"

删除 Factoid

移除 factoid 使用 !MoobotFactoids remove factoid_key 完成,但由于这太长,因此为了方便起见存在一个别名 !rmfact。没有充分的理由不要删除他人的 factoid,如果不确定,请先询问。

!rmfact factoid_key

语录

phrik 使用 QuoteGrabs 插件来提供一个易于使用的系统,用于存储和检索用户说的话。您无需通过 phrik 验证身份即可抓取/检索语录。所有 QuoteGrabs 命令都可以使用命令 !list QuoteGrabs 列出。

channel 参数似乎对下面列出的任何命令的结果都没有任何影响。)

警告: 由于许多语录是在跑题或本地化频道中捕获的,它们可能不恰当甚至不适合工作场所 (NSFW)。不要在非跑题频道中显示随机语录,因为显示的结果可能会造成干扰。

抓取

!grab nickname 命令用于“抓取”语录。这意味着 nickname 说的最后一句话将存储在 phrik 的内部数据库中。示例

!grab Arch-TK

!grab!QuoteGrabs grab 同义。

语录

!quote nickname 命令用于查看上次抓取的语录。

!quote!QuoteGrabs quote 同义,!q 也是如此

随机

!QuoteGrabs random nickname 命令用于查看随机选择的语录。给定一个 <nickname>,选择范围将缩小到仅限一个用户。

别名 !rq 可以代替 !QuoteGrabs random 使用,别名 !multirq 提供 5 个随机语录的选择,而不是仅 1 个。

搜索

!QuoteGrabs search [channel] text 命令用于在 phrik 的语录数据库中搜索包含给定字符串的语录。此命令执行字面搜索,这意味着除非找到字面结果,否则搜索“Arch-TK broken”将不会返回任何搜索结果。例如

!QuoteGrabs search "Arch-TK Windows"

将不会返回 #35732: Windows ME, best windows.

别名 !qfind 可以代替 !QuoteGrabs search 使用。

列表

!QuoteGrabs list [channel] nickname 命令用于列出给定用户的所有语录。

别名 !qlist 可以代替 !QuoteGrabs list 使用。

说出

!QuoteGrabs say [channel] id 命令用于使用搜索和列表函数返回的 ID 查看完整的语录文本。

例如

!QuoteGrabs say 34656

将返回

<sudokode> ew you might as well be using windows

别名 !qsay 可以代替 !QuoteGrabs say 使用。

获取

!QuoteGrabs get [channel] id 命令与 Say 命令非常相似。它返回语录的完整文本以及其他信息。

例如

!QuoteGrabs get 34656

将返回

<sudokode> ew you might as well be using windows (Said by: sudokode!~ponies@unaffiliated/sudokode; grabbed by quantum-mechanic!~neutrino@unaffiliated/electron/x-8286743 at 11:21 AM, November 12, 2014

别名 !qget 可以代替 !QuoteGrabs get 使用,但不允许使用 channel 参数。

参见