เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
Octahedron80 (คุย | ส่วนร่วม)
OctraBot (คุย | ส่วนร่วม)
ไม่มีความย่อการแก้ไข
บรรทัด 2:
'''OctraBot''' เป็น[[วิกิพีเดีย:บอต|บอต]]ของ Octahedron80 เพื่อการแก้ไขบทความจำนวนมาก อาทิเช่น การเก็บกวาดชื่อบทความ อัปเดตแม่แบบเก่าไปใช้แม่แบบใหม่ เก็บกวาดเนื้อหาทั่วไป อย่างไรก็ตามบอตที่ฉันเขียนเป็นแบบกึ่งอัตโนมัติ หมายความว่า บอตจะทำงานที่ได้มอบหมายเมื่อต้องการให้ทำ ไม่ได้ทำงานตลอดเวลา และไม่ได้ทำเหมือนเดิมทุกครั้ง ถ้าบอตนี้ทำงานผิดพลาดในบทความใด สามารถกดย้อนบทความนั้นได้ และกรุณาช่วยแจ้งความผิดพลาดนั้นด้วย
 
OctraBot เปลี่ยนไปใช้ [[:m:pywikibot|pywikibot]] เพื่อความสะดวกรวดเร็ว และมีชุมชนคอยช่วยอัปเดตตลอดเวลา
OctraBot รุ่นปัจจุบัน 3.6.3 แสดงผลทาง GUI เขียนขึ้นด้วยภาษาจาวา โดยใช้พื้นฐานจาก [https://github.com/MER-C/wiki-java/blob/master/src/org/wikipedia/Wiki.java Wiki.java] รุ่น 0.31-r2015.10.17
 
โครงการที่อนุมัติสถานะบอตแล้ว: ar, da, eo, eu, id, is, ko, li, lt, ms, my, nl, nn, ru, se, sv, ta, '''th''', vi, wuu, zh, thwiktionary, wikidata
 
== งานที่ทำ ==
;วิกิพีเดียข้ามภาษาและวิกิสนเทศ {{color|red|(เลิกใช้งานแล้ว)}}
* <u>Auto WD Migration</u> - เพิ่มลิงก์ข้ามภาษาไปวิกิสนเทศ และเก็บกวาดลิงก์ที่เพิ่มไปแล้ว จำกัดไว้ 3 เทร็ดต่องาน โดยมีวิธีเรียกรายชื่อบทความดังนี้
** Random pages - สุ่มรายชื่อบทความตามจำนวนที่กำหนด โดยใช้คุณลักษณะการสุ่มของมีเดียวิกิ
** Beginning with - เรียกรายชื่อบทความทั้งหมดที่ขึ้นต้นด้วยอักษรหรือคำที่กำหนด ถ้าไม่ระบุหมายถึงทุกบทความในโครงการ
** Under category - เรียกรายชื่อบทความทั้งหมดที่อยู่ในหมวดหมู่ที่กำหนด โดยไม่ลงไปหมวดหมู่ย่อยเพื่อป้องกันการติดลูป
** Newest pages - เรียกรายชื่อบทความล่าสุดที่สร้างขึ้นโดยนับจากปัจจุบันย้อนหลังไปตามจำนวนที่กำหนด
** Random category - สุ่มหมวดหมู่ไปเรื่อย ๆ และรวบรวมรายชื่อบทความภายใต้หมวดหมู่นั้น จนกว่าจะครบตามจำนวนที่กำหนด
* งานตามสั่ง อยากให้ทำอะไรสั่งมาเลย
<gallery style="float:right">
ไฟล์:OctraBot interface.png|first tab
ไฟล์:OctraBot interface 2.png|second tab
<!--ไฟล์:OctraBot interface 3.png|third tab-->
</gallery>
 
;โครงการใดก็ได้
* <u>Text Replacing</u> - แทนที่คำหรือข้อความจำนวนมากในหน้าต่าง ๆ ด้วยนิพจน์ปรกติ สามารถระบุเนมสเปซได้ จำกัดไว้ 3 เทร็ดต่องาน โดยมีวิธีค้นหาดังนี้
** Search result - เรียกรายชื่อหน้าจากผลลัพธ์การค้นหาด้วยคำสำคัญที่กำหนด โดยใช้คุณลักษณะการค้นหาของมีเดียวิกิ
** Linking pages - เรียกรายชื่อหน้าทั้งหมดที่เชื่อมโยงมายังหน้าที่กำหนด
** Under category - เรียกรายชื่อหน้าทั้งหมดในหมวดหมู่ที่กำหนด
** Beginning with - เรียกรายชื่อหน้าทั้งหมดที่ขึ้นต้นด้วยอักษรหรือคำที่กำหนด ถ้าไม่ระบุหมายถึงทุกหน้าในโครงการ
* <u>Bulk Renaming</u> - เปลี่ยนชื่อหน้าจำนวนมากที่ตรงตามเงื่อนไขนิพจน์ปรกติ (TODO)
 
;อื่น ๆ
* ข้อความเทศวิวัตน์สำหรับคำอธิบายย่อดูที่ ผู้ใช้:OctraBot/messages
* รายชื่อหน้าที่จะไม่นำมาพิจารณา ดูที่ ผู้ใช้:OctraBot/optout + หน้าหลักของแต่ละโครงการ
* sulinfo
 
== สถิติ ==
* บางงานได้นำวิธีเทร็ดพูล (thread pool) เข้ามาใช้ ทำให้แก้ไขหน้าได้มากกว่าและเสร็จเร็วกว่าการทำทีละงาน โปรแกรมกำหนดให้เทร็ดพูลกว้าง 20 เทร็ด และอัตราไขก๊อกเป็น 0 วินาที (ใช้ได้เฉพาะเมื่อเป็นบอต) พบว่าอัตราการแก้ไขเฉลี่ย 137 หน้าต่อนาที (หน้าละ 0.4 วินาที) ปัจจุบันใช้วิธีเทร็ดพูลกับงาน Text Replacing
* ข้อจำกัดของมีเดียวิกิ
** โทเคนของวิกิพีเดียสำหรับใช้งานบอต มีอายุประมาณ 3 ชั่วโมงต่อครั้ง (ทำงานได้สามชั่วโมงต่อการเชื่อมต่อหนึ่งครั้ง)
** การดึงรายชื่อหน้าตามลำดับทำได้มากสุดทีละ 5,000 หน้าสำหรับบอต และ 500 หน้าสำหรับไม่ใช่บอต
** การสุ่มรายชื่อหน้าจะมีลำดับ(เกือบ)เหมือนเดิม ถ้าหน้าที่หนึ่งเป็นชื่อเดิม (การสุ่มเทียม)
 
== ปัญหาที่ทราบ ==
* เมื่อบอตแก้ไขบทความเดียวกันเร็วเกินไป เนื่องจากทำงานคนละเทร็ด การแก้ไขครั้งก่อนอาจถูกเขียนทับ เพราะฐานข้อมูลวิกิยังไม่ซิงค์เข้าหากัน หลีกเลี่ยงโดยเว้นวรรคอย่างน้อย 5 นาทีก่อนเริ่มงานถัดไป ส่วนที่แก้ไขไปแล้วก็เติมด้วยมือถ้าทำไหว
* ลิงก์ข้ามภาษาอาจเก็บไปไม่หมดบางหน้า เพราะบางลิงก์ชนกับเอ็นทรีอื่น สาเหตุอาจเกิดจากจับคู่บทความผิด หรือหน้าปลายทางถูกเปลี่ยนชื่อ/ลบไปแล้ว หรือมีหลายเอ็นทรีปนกัน ต้องตามไปแก้โดยย้ายหน้าที่มีปัญหาไปยังเอ็นทรีที่ถูกต้อง
* ผลลัพธ์การค้นหาจากเอพีไอมีมากกว่าจากเว็บไซต์ และอาจมีจำนวนมากเกินไปถ้าใช้คำสั้น และค้นหาสัญลักษณ์ไม่ได้ (ค้นหาได้เพียงตัวอักษร)
* ผลลัพธ์การค้นหาข้อความธรรมดา อาจไม่ได้มาทุกหน้าที่มีข้อความ
* การเรียกรายชื่อบทความภายใต้หมวดหมู่หนึ่ง ๆ จะได้มาทั้งหมด จำกัดจำนวนไม่ได้
* ฟังก์ชัน Text Replacing และ Bulk Renaming อาจส่งผลกระทบมาก ดังนั้นควรตรวจสอบเงื่อนไขให้แน่ใจว่าไม่มีข้อผิดพลาด