ผู้ใช้:PatsaBot (คุย | ส่วนร่วม)
A Wikipedia bot operated by Patsagorn Y..
task | description | status | previous/next |
---|---|---|---|
#1 | สร้างหน้าหมวดหมู่สำหรับ AfC แบบรายวัน |
- bun for running the bot
mv example.toml config.toml
bun i
Edit config.toml
to add your bot credentials and other configurations.
Then try running the bot with bun . run login
to see if it works.
ไฟล์ log ของบอตถูกจัดการโดย สามารถเข้าถึงได้ที่ https://tools-static.wmflabs.org/patsabot/logs/ ความหมายแต่ละไฟล์คือดังนี้
error.jsonl - ถ้ามี error ที่ไม่ร้ายแรงมากจะถูกบันทึกไว้ที่นี่
exceptions.jsonl - ถ้ามี error ที่ร้ายแรงจะถูกบันทึกไว้ที่นี่
rejections.jsonl - Unhandled rejections จะถูกบันทึกไว้ที่นี่
output-20250108.jsonl.gz - ไฟล์ log ของการทำงานในวันที่ 8 มกราคม 2025 ถูกบีบอัดด้วย gzip (เพราะไม่ใช่ไฟล์ปัจจุบัน)
output-20250109.jsonl - ไฟล์ log ของการทำงานในวันที่ 9 มกราคม 2025 (ไฟล์ปัจจุบันไม่ถูกบีบอัด)
(ให้วันนี้เป็นวันที่ 9 มกราคม 2025)
ไฟล์ log เป็นไฟล์ jsonlines ซึ่งสามารถใช้คำสั่ง jq
ในการค้นหาข้อมูลได้ง่าย ๆ โดยแต่ละบรรทัดประกอบด้วยข้อมูลคคร่าว ๆ ดังนี้:
{
// ระดับของข้อความ (error, warn, info, debug)
"level":"info",
// ข้อความ
"message":"Scheduled afccat (@daily)",
// รหัสการรัน (อ่านเพิ่มด้านล่าง)
"rid":"uhpbka4gq77s7gflxmewqtrc",
// ชื่อของ script ที่ทำงาน
"script":"afccat",
// เวลาที่เกิดเหตุการณ์
"timestamp":"2025-01-08T16:19:50.013Z"
}
คำอธิบายเพิ่มเติม:
rid
เป็นรหัสการรันเฉพาะแต่ละครั้ง เช่นสคริปต์ afccat รันวันนี้อาจเป็นรหัสนี้ แต่หากรันใหม่อีกครั้งจะเป็นรหัสอื่น แต่การันตีว่ารหัสเดียวกันจะมีที่มาจากสคริปต์เดียวกันscript
คือชื่อของสคริปต์ที่ทำงาน สามารถใช้bun . run <script name>
และใช้ค่าจากฟิลด์นี้ได้
ใช้ jq และ gunzip ในการค้นหาข้อมูลในไฟล์ log ได้ดังนี้
$ curl https://tools-static.wmflabs.org/patsabot/logs/output-20250109.jsonl | jq '"\\(.timestamp) \\(.rid) \\(.level): \\(.message)"'
# Outputs:
# > "2025-01-08T17:00:00.954Z oud5v38ftzotx5j0tzww4e6e info: done"
# > "2025-01-08T17:01:45.670Z m45s34rgfg890p1id86x75mk info: Scheduled update-status (@daily)"
กรณีที่ไฟล์ log ถูกบีบอัดด้วย gzip ให้ใช้ gunzip
ก่อนจึงจะใช้ jq
ได้
$ curl https://tools-static.wmflabs.org/patsabot/logs/output-20250108.jsonl.gz | gunzip | jq '"\\(.timestamp) \\(.rid) \\(.level): \\(.message)"'
# Outputs:
# > "2025-01-08T16:19:50.013Z uhpbka4gq77s7gflxmewqtrc info: Scheduled afccat (@daily)"
# > "2025-01-08T16:19:50.204Z s7d32ito7amy68e35obscljh info: Scheduled linked-user-ns0 (@weekly)"
สำหรับดูเฉพาะ log ที่มี rid
= oud5v38ftzotx5j0tzww4e6e
curl https://tools-static.wmflabs.org/patsabot/logs/output-20250109.jsonl | jq 'select(.rid == "oud5v38ftzotx5j0tzww4e6e") | "\\(.timestamp) \\(.rid) \\(.level): \\(.message)"'
# Outputs:
# > "2025-01-08T17:00:00.265Z oud5v38ftzotx5j0tzww4e6e info: Creating categories for categories [\"หมวดหมู่:ฉบับร่างเรียงตามวันที่ส่ง/09 มกราคม 2025\",\"หมวดหมู่:ฉบับร่างเรียงตามวันที่ส่ง/มกราคม 2025\",\"หมวดหมู่:ฉบับร่างเรียงตามวันที่ส่ง/2025\"]"
# > "2025-01-08T17:00:00.416Z oud5v38ftzotx5j0tzww4e6e error: articleexists: The page you tried to create has been created already. หมวดหมู่:ฉบับร่างเรียงตามวันที่ส่ง/มกราคม 2025"
curl https://tools-static.wmflabs.org/patsabot/logs/output-20250108.jsonl.gz | gunzip | jq 'select(.rid == "oud5v38ftzotx5j0tzww4e6e") | "\\(.timestamp) \\(.rid) \\(.level): \\(.message)"'
# Outputs:
# > "2025-01-08T16:48:32.323Z oud5v38ftzotx5j0tzww4e6e info: Scheduled linked-email-ns0 (@weekly)"
ssh toolforge -t "become patsabot -- git -C www/js/ pull"
ssh toolforge -t "become patsabot -- toolforge webservice node18 restart"