跳轉到內容

MediaWiki 管理員手冊/反破壞 IRC 機器人

來自華夏公益教科書,開放書籍,開放世界

此頁面記錄了兩個被反破壞頻道廣泛使用的機器人。

機器人概述

[編輯 | 編輯原始碼]

Computer 是最初的近期更改過濾機器人,作為 mIRC 指令碼 編寫的,由 White Cat 開發。它在 2005 年被 pgkbot 取代。

pgkbot 是一個由 pgk 開發的 python 機器人。它被設計為在一個頻道中使用,幷包含許多定製選項,例如外掛支援、複雜的事件路由器、個人列表、個人使用者姓名和文章標題監視列表、頁面移動破壞的檢測以及 IP 地址類別(如開放代理)。但是,配置很困難,而且它比較資源密集。

SWBot 是一個由 TangotangoAz1568 開發的 C# 機器人。它被設計為在聯網或多維基頻道中使用。功能包括動態載入和解除安裝維基和頻道、中央配置檔案和資料庫、全域性列表、將全域性更改自動廣播到所有其他 SWBot 例項以及使用自動 MediaWiki 摘要檢測頁面清空和替換。但是,無法進行每頻道事件配置。

CVNbot 是一個由 Pathoschild 用 Perl 編寫的統一集中式機器人。它目前正在開發中,沒有積極使用。該機器人旨在促進頻道網路管理並提供編輯監控,而無需多餘的功能。

常見機器人:ErosionBot-1、MiszaBot、TheDJBot、ClueBot(RC)。

使用命令

[編輯 | 編輯原始碼]

透過在行的開頭新增其名稱或“computer”來向機器人發出命令。如果新增名稱,該命令將僅被名為該名稱的機器人識別。如果新增“computer”,則在頻道中存在的所有機器人都會識別該命令。例如,如果你想將使用者新增到 pgkbot 的黑名單中,你應該說 pgkbot bl add username。或者,你可以將使用者新增到頻道中每個機器人的黑名單中。建議這樣做,因為它會同步備份機器人。為此,你應該說 computer bl add username

使用者可以發出哪些命令取決於他們所在的列表。

等級 使用者 命令列表
資訊 任何使用者 情報命令;help
操作 有聲使用者 監視列表;情報;helpstatusquietspeak
受限 頻道操作員 所有命令。

使用者列表

[編輯 | 編輯原始碼]

機器人維護著幾個使用者列表,這些列表可以被報告、格式化和以不同於彼此的方式處理。

  • Admins: 這是一個專案管理員列表。相關命令是 computer al add|del username
  • Whitelist: 這是一個可信使用者列表。相關命令是 computer wl add|del username
  • Greylist: 這是一個臨時黑名單,機器人會自動用最近被還原的使用者或與 bnu 列表表示式匹配的使用者來填充它。條目可以從列表中刪除,但不能手動新增。
  • Blacklist: 這是一個可疑使用者列表。黑名單使用者的全部編輯都會被報告。相關命令是 computer bl add|del username
  • Bots: 這是一個專案機器人列表。相關命令是 computer bot add|del user

參考表

[編輯 | 編輯原始碼]

此表是對命令的簡要概述。有關更多幫助,請將以下命令傳送到 IRC 上的 pgkbot:pgkbot help <command>。有兩種可選標誌可用於大多數命令。這些標誌可以透過將它們追加到命令末尾來使用(如果同時使用,則必須在理由之前宣告過期)。

  • "r=value" 提供了一個理由。這對其他使用者很有用,他們可能不知道為什麼沒有理由就將某些內容新增到列表中。
  • "x=value" 提供以小時為單位的過期時間。在指定的小時數後,命令將自動撤銷。

請注意,表格中使用了符號“[|]”;這些符號不應與機器人一起使用(例如,使用“pgk add blah”,而不是“pgk [add] blah”)。多個可能的動作表示為 [選項 1|選項 2];一次只能使用一個。值被指定為 <value>;所有字串都接受 正則表示式

受限機器人命令
[編輯 | 編輯原始碼]
命令 用法 描述
aclo computer aclo [add|del] IRC_name 新增或刪除可以發出受限機器人命令的使用者。
配置 (設定) computer config <option> <newvalue> 修改配置值。請參閱以下深入文件。
配置 (列表) computer config list 列出當前設定
配置 (獲取) computer config [getadmins|getbots] 直接從正在監控的維基中檢索管理員或機器人的列表
配置 (讀取) computer config [readmsgs|readcmds] 重新讀取一些配置檔案。
目標 (設定) computer dest [add|del] #<頻道名稱> grey 配置要向頻道報告的事件。
目標 (交換) computer dest swap #<頻道名稱> #<第二個頻道名稱> 在兩個頻道之間切換報告的事件,這對於更改為預設設定很有用。
閱讀器 computer reader reset 重置與最近更改頻道的連線(如果機器人停止報告)。
[編輯 | 編輯原始碼]
命令 用法 描述
幫助 computer help <command> 提供有關命令的詳細幫助。如果沒有指定命令,它將提供指向此頁面的連結。
狀態 computer status 提供有關機器人的基本狀態資訊,例如它是否正在報告並連線到 RC 饋送。
統計資料 computer stats 各種頻道統計資訊。
安靜 computer quiet 停止向頻道報告事件。
說話 computer speak 向頻道報告事件。
acl computer acl [add|del|show] <IRC_name> 受信任的 IRC 使用者列表。這些使用者可以向機器人發出操作命令。
觀察列表命令
[編輯 | 編輯原始碼]
命令 用法 描述
bl computer bl [add|del|show] <IP 或使用者名稱> 不受信任或破壞使用者列表。
wl computer wl [add|del|show] <使用者名稱> 受信任的使用者列表。
gl computer gl [del|show] <使用者名稱> 可能不受信任或破壞使用者的列表。
al computer al [add|del|show] <使用者名稱> 管理員列表。
bot computer bot [add|del|show] <使用者名稱> 機器人列表。
bnu computer bnu [add|del|show] <字串> 報告包含該字串的所有新使用者名稱。
bna computer bna [add|del|show] <字串> 報告包含該字串的所有新建條目。
cvp computer cvp [add|del|show] <字串> 報告對給定條目的所有編輯。
cnvp computer cnvp [add|del|show] <條目名稱> 要忽略的條目列表。
cvi computer cvi [add|del|show] <圖片名稱>.<副檔名> 報告對特定圖片名稱的所有上傳。
wheels computer wheels [add|del|show] <字串> 報告重新命名為標題包含該字串的頁面。
情報命令
[編輯 | 編輯原始碼]
命令 用法 描述
intel computer intel <IP 或使用者名稱> 查詢有關 IP 或使用者名稱的資訊。
aintel computer aintel <條目名稱> 查詢有關條目的資訊。
iintel computer iintel <圖片名稱>.<副檔名> 查詢有關圖片的資訊。

這些設定會影響機器人過濾原始最近更改以生成報告事件的方式。它們可以透過命令 computer config list 檢視,並透過命令 computer config <option> <new value> 修改。

選項 描述
editbig 可能的胡言亂語(大量新增內容)
editblank 可能的清空(大量刪除內容)
newbig 可能的版權侵權(新建條目大小很大)
newsmall 可能的破壞或存根(新建條目大小很小)
使用者
[編輯 | 編輯原始碼]
選項 描述
blockconflict 要報告的單個使用者的同時封禁次數。
glonrollback 如果管理員回滾了使用者的編輯,則將使用者新增到灰名單的分鐘數。
flagnewuser 將新使用者新增到灰名單的小時數。
glonbnu 將與 bnu 列表上的字串匹配的新使用者新增到灰名單的分鐘數。
選項 描述
pseudonym 機器人除了其名稱之外,還應該響應的另一個名稱。這在反破壞網路頻道中應為“computer”。
startupquiet 啟動時不要報告事件(切換,“yes”或“no”)
bnubnasame 同步 不良新使用者名稱不良新建條目名稱 列表。

事件報告切換

[編輯 | 編輯原始碼]

這些選項會切換向頻道報告哪些事件。它們可以透過命令 computer dest listcomputer dest [add|del] #<頻道名稱> <事件> 訪問。事件列在下面。每個事件只會向頻道報告一次,無論是否符合這些類別中的多個類別。

以下表格中的“操作”是指對資料庫的所有可見更改,包括編輯、頁面移動和刪除。

使用者
[編輯 | 編輯原始碼]
事件 描述
-admin 不要報告管理員的操作。
-white 不要報告白名單使用者的操作。
-bot 不要報告機器人的操作。
black 報告黑名單使用者的全部操作。
grey 報告灰名單使用者的全部操作。
newuser 報告所有新使用者的建立。
ip 報告匿名使用者的全部編輯。
iptmp 報告未登入使用者對模板的所有編輯
ipcat 報告未登入使用者對分類的所有編輯
字串和正則表示式
[編輯 | 編輯原始碼]
事件 描述
wwuser 報告與 **bnu** 列表中的條目匹配的新使用者名稱。
wheeler 報告頁面移動到與 **wheel** 列表中的條目匹配的標題。
bna 報告與 **bna** 列表中的條目匹配的文章建立。
cvp 報告對 **cvp** 列表中的頁面進行的編輯。
cvi 報告對 **cvi** 列表中的影像進行的上傳。
事件 描述
block 報告封禁。
unblock 報告解除封禁。
delete 報告頁面刪除。
move 報告頁面移動。
protect 報告非使用者空間頁面保護/取消保護。
upload 報告檔案上傳。
事件 描述
bigremove 報告可能的清空(刪除超過配置 **bigremove** 的內容)。
bigedit 報告可能的亂碼(新增超過配置 **bigedit** 的內容)。
bignew 報告可能的版權侵犯(建立大小超過配置 **bignew** 的頁面)。
tinynew 報告可能的無意義內容(建立大小小於配置 **tinynew** 的頁面)。
機器人命令
[編輯 | 編輯原始碼]
事件 描述
cmdsq 監聽此頻道中的命令,但除非透過暱稱而不是“computer”進行定址,否則不會響應。
cmds 監聽此頻道中的命令,並做出響應。

先決條件

[編輯 | 編輯原始碼]
  • **Python:** 機器人需要 Python 環境才能執行,可以在 python.org 下載頁面 免費獲取。建議您為所有使用者安裝到C:\Python並啟用所有選項。
  • **Twisted:** 還需要 Twisted Python 庫,可以在 官方網站 獲取。
  • **注意** - Pgkbot 只能與 Python 2.4 或 2.5 版本一起使用,不能與舊版本一起使用。
  1. pathos.ca/tools/pgkbot 下載 pgkbot 的最新公開版本 (1.7)。
  2. 將其解壓縮到C:\pgkbot.

在使用之前,需要編輯幾個文字檔案。

C:\pgkbot\Config\IRCConsole.conf
欄位 說明
server irc.freenode.net 這是機器人將連線到的 IRC 伺服器。
port 6667 要連線到的伺服器埠;此值應該沒問題。
nick botnick 將其更改為您要使用的機器人的暱稱。**不要**使用“pgkbot”或“computer”。
password password 標識時要使用的密碼。如果未使用 Nickserv,請註釋掉此行。
owner yournick 更改為您的暱稱。這使您能夠完全訪問介面。
C:\pgkbot\Config\RCReader.conf
欄位 說明
server irc.wikimedia.org 這是機器人將連線到的 IRC 伺服器,用於獲取 RC 饋送。
port 6667 要連線到的伺服器埠;此值應該沒問題。
nick yournick 更改為您的暱稱。這使您能夠完全訪問介面。
C:\pgkbot\Config\en\StaticConfig
欄位 說明
controlchannel #pgktesting 機器人將報告到的頻道。
rcsourcechannel #en.wikipedia 包含原始 RC 饋送的頻道(參見 IRC channels)。

執行機器人

[編輯 | 編輯原始碼]
  1. 開啟一個 DOS 提示符。
  2. 導航到 pgkbot 安裝所在的目錄。
  3. 輸入 **c:\python24\python.exe CVUBot.py en**。
  4. pgkbot 連線後將保持靜默。請務必使其說話並路由一些事件(參見上文)。
常見機器人:SWBot*(SWBot2 除外)、SWMTBot*、TheDJBot(3-5)。

與 pgkbot 的比較

[編輯 | 編輯原始碼]

SWMTBot 是 pgkbot 移植到 C# 的版本,專門為滿足 小型維基監控團隊 和其他在單個頻道中監控大量饋送的使用者的需求而設計。大多數命令都保持與 pgkbot 等效命令相同,除非有必要;訊息也儘可能保持與 pgkbot 相似。

SWMTBot 的新功能 pgkbot 中存在但 SWMTBot 中不存在的功能
  • 熱插拔維基(按需載入/解除安裝)
  • 支援以最少的資源使用量同時監控大量維基
  • 一個包含所有維基資訊的配置檔案
  • 一個 SQLite 資料庫,使用最少的資源,用於所有維基
  • 全域性黑名單/白名單/灰名單
  • 全域性使用者名稱/文章標題觀察列表(支援正則表示式)
  • 全域性編輯摘要觀察列表(標記潛在的破壞性編輯摘要;支援正則表示式)
  • 自動將所有全域性列表廣播到其他 SWMTBot
  • 捕獲頁面清空/替換(使用新的自動摘要)
  • 外掛
  • 資料庫後端的多種選擇
  • Telnet 介面
  • 複雜的目標/事件路由器
  • 單獨的黑名單/白名單
  • 單獨的使用者名稱/文章標題觀察列表
  • Wheeler 檢測
  • IP 類別
  • 命令重新命名

所有 **全域性** 列表都會自動在所有 SWMTBot 之間同步;**每個維基** 列表則不會同步。所有維基都使用一個全域性文章觀察列表,每個維基也使用一個單獨的列表;您可以透過省略“p=”引數(請參見下面的命令列表以瞭解更多資訊)來新增/刪除/顯示全域性列表中的條目。

全域性列表 每個維基列表
  • 不良新使用者名稱 (BNU)
  • 不良新文章標題 (BNA)
  • 不良編輯摘要 (BES)
  • 使用者白名單 (WL)
  • 使用者黑名單 (BL)
  • 使用者灰名單 (GL)
  • 全域性文章觀察列表 (CVP)
  • 管理員列表 (AL)
  • 機器人列表 (BOTS)
  • 文章觀察列表 (CVP)
全域性命令
命令 描述 示例
quit 退出機器人 SWMTBot quit
restart 重啟機器人 SWMTBot restart
list 返回所有當前監控的維基的列表 SWMTBot list
**load** wiki.name [interwiki] 載入一個維基以進行監控 SWMTBot load en.wikipedia en
SWMTBot load meta.wikimedia
**reload** wiki.name 從維基下載新訊息;如果該維基上 MediaWiki: 名稱空間中的任何日誌條目訊息已更改,請使用此命令 SWMTBot reload fr.wikipedia
batchreload 對所有當前載入的維基執行 **reload** 操作。極其佔用資源,不建議使用 SWMTBot batchreload
**drop** wiki.name 停止監控一個維基 SWMTBot drop als.wikipedia
**purge** wiki.name 從資料庫中刪除與特定維基相關的使用者和觀察列表專案 SWMTBot purge als.wikipedia
msgs 從 Console.msgs 檔案重新載入訊息;僅在檔案已更改時才需要 SWMTBot msgs
**bleep** wiki.name 查詢監控特定專案的機器人。您可以向任何聯網機器人發出此命令以接收相同的結果 SWMTBot bleep commons.wikimedia
count 查詢每個機器人監控的維基數量和每個機器人的版本。您可以向任何聯網機器人發出此命令以獲得相同的結果 SWMTBot count
列出命令
命令 描述 示例
bl 新增/刪除/顯示 使用者名稱 [x=持續時間] [r=原因] 在全域性黑名單中新增、刪除或顯示專案。將 x=0 設定為無限期 SWMTBot bl add Tangotango x=0 r=Bad vandal (將 Tangotango 無限期新增到全域性黑名單)
SWMTBot bl del Tangotango (從全域性黑名單中刪除 Tangotango)
gl 刪除 使用者名稱 從灰名單中刪除使用者。如果您想將使用者列入白名單,但他們已在灰名單中,請使用此方法。將他們從 gl 中刪除並新增到 wl 中。 SWMTBot gl del Mike.lifeguard (從灰名單中刪除 Mike.lifeguard)
wl 新增/刪除/顯示 使用者名稱 [x=持續時間] [r=原因] 在白名單中新增、刪除或顯示專案。將 x=0 設定為無限期 (見上文;wl 的語法與 bl 相同)
cvp 新增/刪除/顯示 文章名稱 [p=wiki.name] [x=持續時間] [r=原因] 在觀察列表中新增、刪除或顯示文章。省略 p= 以監控所有維基中具有相同名稱的文章;將 x=0 設定為無限期 SWMTBot cvp add United States p=en.wikipedia x=0 (將“美國”新增到 en.wikipedia 觀察列表)
SWMTBot cvp add Main Page x=0 (將所有維基中名為“主頁”的頁面新增到觀察列表)
al 新增/刪除/顯示 使用者名稱 p=wiki.name [x=持續時間] [r=原因] 在特定維基的管理員列表中新增、刪除或顯示專案。將 x=0 設定為無限期 SWMTBot al add Tangotango p=ga.wikipedia (將 Tangotango 新增到 ga.wikipedia 的管理員列表)
bots 新增/刪除/顯示 使用者名稱 p=wiki.name [x=持續時間] [r=原因] 在特定維基的標記機器人列表中新增、刪除或顯示專案。將 x=0 設定為無限期 (見上文;bots 的語法與 al 相同)
bnu 新增/刪除/顯示 正則表示式 [x=持續時間] [r=原因] 在全域性錯誤的新使用者名稱列表中新增、刪除或顯示專案。將 x=0 設定為無限期 SWMTBot bnu add Tangot.*?ngo x=128 r=vandal meme (將 Tangot.*?ngo 新增為錯誤的新使用者名稱)
bna 新增/刪除/顯示 正則表示式 [x=持續時間] [r=原因] 在全域性錯誤的新文章標題列表中新增、刪除或顯示專案。將 x=0 設定為無限期 SWMTBot bna add index\.php r=vandal meme (將“index.php”匹配為錯誤的新頁面標題)
bes 新增/刪除/顯示 正則表示式 [x=持續時間] [r=原因] 在全域性錯誤的編輯摘要列表中新增、刪除或顯示專案。將 x=0 設定為無限期 SWMTBot bes add !{3,} r=Too many exclamation marks (使 SWMTBot 標記任何具有 3 個或更多感嘆號的編輯摘要)
config getadmins wiki.name 從指定的專案下載管理員列表並自動將其新增到 SWMTBot 資料庫 SWMTBot config getadmins en.wikipedia
config getbots wiki.name 從指定的專案下載標記的機器人列表並自動將其新增到 SWMTBot 資料庫 SWMTBot config getbots da.wiktionary
batchgetusers 對所有當前載入的維基執行 getadminsgetbots SWMTBot batchgetusers

安裝

[edit | edit source]

SWMTBot 經過測試並積極開發,可在 Mac OS XLinux (Debian) 和 Windows 上執行。該軟體在 MIT 許可證 下獲得許可。

CVNbot

[edit | edit source]

參見 m:CVN/CVNbot.

另請參見

[edit | edit source]

支援

[edit | edit source]
  • #countervandalism 用於 反破壞網路運營的頻道中的 機器人
  • pgkbot
    • pgk— 用於評論、建議和解決機器人指令碼故障。
華夏公益教科書