แม่แบบ:เก็บอภิปรายอัตโนมัติ
การเก็บกรุดำเนินการโดย PatsaBot (พูดคุย · เรื่องที่เขียน) โดยนำสคริปต์มาจาก lowercase sigmabot III และปรับให้เข้ากับวิกิพีเดียภาษาไทย |
ก่อนนำการเก็บลงกรุไปใช้ในหน้าอภิปราย โปรดผ่านความเห็นพ้องก่อนว่าต้องการใช้งานจริง ๆ |
หากไม่แน่ใจว่าจะใช้โค้ดใดดี ดูที่ #ตัวอย่างที่ 2: กรุแบบเพิ่มจำนวนและดูที่ส่วนคัดลอกวาง
ตั้งค่าการเก็บกรุ[แก้]
ใส่แม่แบบต่อไปนี้ที่ด้านบนของหน้าที่ต้องการให้เก็บลงกรุอัตโนมัติ
โค้ดด้านล่างแบบตรงกันนี้ไม่ทำงาน – ดูตัวอย่างด้านล่างแล้วนำมาปรับ |
{{เก็บอภิปรายอัตโนมัติ | algo = old(...) | archive = ชื่อหน้ากรุ: สำหรับหน้ากรุหลายหน้าโปรดดูที่การใช้งานตัวแปรด้านล่าง [พารามิเตอร์อื่น ๆ ***ดูด้านล่าง***] }}
เรียบร้อย อย่างไรก็ตามแม่แบบนี้ไม่มีเนื้อหาและถูกป้องกัน ดังนั้นจึงไม่ต้องห่วงว่าจะมีผลกระทบต่อการแสดงผลหน้า
บอตจะทำงานได้ดีที่สุดเมื่อใช้งานพารามิเตอร์บรรทัดละ 1 พารามิเตอร์ และต้องไม่มีช่องว่างอยู่ก่อนหน้าไปป์ และไม่มีบรรทัดเปล่า ถ้าคุณทำให้แม่แบบอยู่ในบรรทัดเดียว บอตอาจจะไม่ทำงานอย่างที่คุณคาด
และแม่แบบนี้จะต้องอยู่ที่:
- ก่อน == หัวข้อระดับสอง == บนหน้า
- บนหน้าที่จะใช้โดยห้ามใช้การรวมผ่าน เช่นอย่าวางไว้ในหน้า /ส่วนหัว หรือที่คล้ายกันโดยเด็ดขาด
ตัวอย่าง[แก้]
- อย่าลืมแก้ "คุยกับผู้ใช้:ตัวอย่าง" เป็นชื่อหน้าของคุณเอง
- ถ้ายังไม่ทำงานอีก อ่านเกี่ยวกับพารามิเตอร์ "minthreadsleft" และ "minthreadstoarchive" ด้านล่าง
ตัวอย่างที่ 1: กรุหน้าเดี่ยว[แก้]
เรียบง่ายที่สุดแต่ไม่ใช่ตัวเลือกที่ดีเท่าไรนัก ตัวอย่างที่สองเป็นที่นิยมและมักใช้งานมากกว่า |
{{เก็บอภิปรายอัตโนมัติ | algo = old(7d) | archive = คุยกับผู้ใช้:ตัวอย่าง/กรุ }}
(อย่าลืมว่าก็อบตรงนี้ไปตรง ๆ ใช้ไม่ได้กับหน้าของคุณ)
นี่เป็นตัวอย่างการตั้งค่าให้เก็บการอภิปรายจากหน้าคุยกับผู้ใช้:ตัวอย่างไปที่คุยกับผู้ใช้:ตัวอย่าง/กรุหลังจากส่วนอายุเก่ากว่า 7 วัน นับจากตราเวลาที่ใหม่ที่สุด บอตจะหยุดเก็บลงหน้านี้เมื่อใหญ่กว่า 2000KB อาจจะไม่ใช่การตั้งค่าที่เป็นประโยชน์เท่าใดนัก เว้นแต่คุณอยากให้ย้ายการอภิปรายลงกล่องขยะที่จะลบตามเวลา หรือคุณอยากตัดสินใจเองว่าจะย้ายไปที่หน้าไหนต่อ
ตัวอย่างที่ 2: กรุแบบเพิ่มจำนวน[แก้]
{{เก็บอภิปรายอัตโนมัติ | algo = old(30d) | archive = คุยกับผู้ใช้:ตัวอย่าง/กรุ %(counter)d | counter = 1 | maxarchivesize = 150K | archiveheader = {{aan}} | minthreadstoarchive = 1 | minthreadsleft = 4 }}
{{เก็บอภิปรายอัตโนมัติ | algo = old(30d) | archive = {{SUBST:FULLPAGENAME}}/กรุ %(counter)d | counter = 1 | maxarchivesize = 150K | archiveheader = {{aan}} | minthreadstoarchive = 1 | minthreadsleft = 4 }}
การคัดลอกและวางโค้ดด้านบนที่มีการใช้ตัวแปร FULLPAGENAME อาจใช้ไม่ได้เมื่อชื่อบทความมีอักขระพิเศษบางตัว โปรดดูที่วิธีใช้:กรุ#FULLPAGENAME สำหรับสิ่งที่ต้องทำหลังจากใส่โค้ดด้านบนที่หน้าของคุณแล้ว |
การใช้งานนี้ทำให้บอตส่วนเก็บลงกรุเมื่อส่วนใด ๆ เก่ากว่า 30 วัน และเว้น 4 ส่วนล่าสุดไว้ จากหน้าคุยกับผู้ใช้:ตัวอย่างไปยังคุยกับผู้ใช้:ตัวอย่าง/กรุ 1 (อ่านเกี่ยวกับตัวแปรด้านล่าง) จนกว่าจะเต็ม 150 กิโลไบต์ ซึ่งหลังจากนั้นจะย้ายไปที่กรุ 2 อย่าลืมระบุขนาดสูงสุดของกรุ มิเช่นนั้นมันจะทำงานเหมือนในตัวอย่างแรก และการใช้การตั้งค่านี้จะเพิ่ม {{ann}} ซึ่งเป็นแม่แบบสำหรับอธิบายหน้าย่อยของกรุการอภิปราย เพื่อให้ไปยังกรุต่าง ๆ ได้ง่ายขึ้น
ตัวอย่างที่ 3: กรุตามเวลา[แก้]
ห้ามแทนที่ %(year)d และ %(monthname) กับค่าเดือนจริง ๆ บอตจะแทนที่ค่าตัวแปรเหล่านี้เมื่อทำการเก็บลงกรุ |
ตัวแปร %(year)d จะใช้ปีพุทธศักราช เช่น 2567 หากต้องการปีคริสตศักราชแทนโปรดใช้ %(ceyear)d |
{{เก็บอภิปรายอัตโนมัติ | algo = old(5d) | archive = คุยกับผู้ใช้:ตัวอย่าง/กรุ/%(year)d/%(monthname)s | archiveheader = {{MonthlyArchive}} }}
(อย่าลืมว่าก็อบตรงนี้ไปตรง ๆ ใช้ไม่ได้กับหน้าของคุณ คัดลอกส่วนด้านล่างไปแทน)
{{เก็บอภิปรายอัตโนมัติ | algo = old(5d) | archive = {{SUBST:FULLPAGENAME}}/%(year)d/%(monthname)s | archiveheader = {{MonthlyArchive}} }}
การคัดลอกและวางโค้ดด้านบนที่มีการใช้ตัวแปร FULLPAGENAME อาจใช้ไม่ได้เมื่อชื่อบทความมีอักขระพิเศษบางตัว โปรดดูที่วิธีใช้:กรุ#FULLPAGENAME สำหรับสิ่งที่ต้องทำหลังจากใส่โค้ดด้านบนที่หน้าของคุณแล้ว |
การตั้งค่านี้จะเก็บการอภิปรายที่เก่ากว่า 5 วันลงกรุ ซึ่งจะลงกรุไหนนั้นขึ้นอยู่กับตราเวลาใหม่ที่สุดในส่วนนั้น ๆ คุณสามารถอ่านเพิ่มเติมเกี่ยวกับตัวแปรอื่น ๆ ได้ด้านล่าง
อธิบายแต่ละพารามิเตอร์[แก้]
{{เก็บอภิปรายอัตโนมัติ | archive = | algo = | counter = | maxarchivesize = | minthreadsleft = | minthreadstoarchive = | archiveheader = | key = | donetl = }}
พารามิเตอร์ | ค่าปริยาย | คำอธิบาย |
---|---|---|
archive | ไม่มี (จำเป็น) | ชื่อของหน้ากรุที่จะเก็บลง พรารามิเตอร์นี้รองรับการใช้งานตัวแปร ซึ่งสามารถตั้งชื่อกรุตามแต่เวลานั้น ๆ ได้ เช่นช่วงเวลา หมายเหตุว่า Magic words ไม่สามารถทำงานได้ และบอตจะไม่เก็บการอภิปรายไปยังกรุที่ไม่ใช่หน้ารองของหน้าปัจจุบัน เว้นเสียแต่ใช้พารามิเตอร์ key ร่วมด้วย (ดูด้านล่าง) และจะเพิ่มไปยังหมวดหมู่:หน้าที่พารามิเตอร์กรุไม่ใช่หน้ารอง |
algo | old(24h) | จำนวนเวลาขั้นต่ำของการตอบกลับสุดท้ายในส่วนก่อนที่บอตจะเก็บลงกรุ ต้องอยู่ในรูปแบบ: old(nT) เมื่อ n คือตัวเลข และ T ระบุชั่วโมงหรือวัน คุณสามารถเว้น T เพื่อระบุเป็นวินาที (ถึงแม้ว่าจะไม่มีกรณีต้องใช้ก็ตาม) ตัวอย่าง: 600, 72h, 5d คือการระบุเวลา 600 วินาที, 72 ชั่วโมง หรือ 5 วันตามลำดับ สำหรับกรณีช่วงเวลายาว ๆ ใช้หน่วยวันจะเหมาะสมกว่า เช่น algo=old(1100d) ซึ่งเท่ากับราว 3 ปี สูตรที่ซับซ้อนกว่านี้อื่น ๆ อาจมีให้ใช้งานในอนาคต |
counter | 1 | ตัวนับเลขปัจจุบันของกรุล่าสุด หากไม่ได้ใช้ตัวแปร %(counter)d พารามิเตอร์นี้จะไม่ได้ใช้งาน และ PatsaBot จะอัปเดตพารามิเตอร์ตามความจำเป็น |
maxarchivesize | 1954K | ขนาดใหญ่ที่สุดของกรุเมื่อเป็นข้อความล้วน (เช่น 256M สำหรับเมกะไบต์ 256K สำหรับกิโลไบต์ หรือ 256B สำหรับไบต์) หรือระบุเป็นเธรด (เช่น 10T) เมื่อเต็มจำนวนแล้วบอตจะเพิ่มตัวนับ ไม่ได้ถูกใช้งานถ้าไม่ได้ใช้ counter |
minthreadsleft | 5 | จำนวนส่วนขั้นต่ำที่จะทิ้งไว้บนหน้า (เพื่อไม่ให้เป็นหน้าว่างเปล่าจนเกินไป) |
minthreadstoarchive | 2 | จำนวนส่วนขั้นต่ำที่ต้องเก็บในแต่ละครั้ง เพื่อลดความถี่ในการแก้ไข PatsaBot จะไม่เก็บการอภิปรายลงกรุหากส่วนที่ต้องเก็บมีจำนวนน้อยกว่าตัวเลขนี้ |
archiveheader | {{กรุ}}{{กล่องกรุ/หน้าใน}} | เนื้อหาที่จะใส่ไว้ที่ส่วนบนของหน้าเพื่อเป็นส่วนหัว |
key | โค้ดลับ (ที่เมื่อถูกต้อง) จะให้สามารถเก็บส่วนลงกรุได้โดยไม่จำเป็นต้องเป็นหน้ารองของหน้าอภิปรายนั้น ๆ หากต้องการใช้คุณสมบัตินี้ โปรดส่งคำขอพร้อมคำอธิบายกับผู้ใช้นี้ พารามิเตอร์นี้มีไว้เพื่อความปลอดภัย | |
donetl | นิพจน์ปรกติสำหรับตรวจสอบว่าส่วนควรถูกเก็บลงกรุหรือไม่ เช่นหน้าวิกิพีเดีย:แจ้งผู้ดูแลระบบจะเก็บลงกรุเมื่อพ้นจำนวนวันที่กำหนดและมี {{done}} หรือ {{not done}} ก่อนเท่านั้น หากไม่ได้ใส่จะยึดพฤติกรรมปกติ พารามิเตอร์นี้ใช้แทน {{DNAU}} เพื่อความสะดวก แต่หากใช้ {{DNAU}} แล้ว พารามิเตอร์นี้ไม่มีผล
|
ตัวแปร[แก้]
ชื่อตัวแปร | ไว้สำหรับ |
---|---|
%(counter)d | จำนวนปัจจุบันของ counter |
%(year)d | ปี พ.ศ. ของส่วนที่จะถูกเก็บลงกรุ (เช่น 2567) |
%(ceyear)d | ปี ค.ศ. ของส่วนที่จะถูกเก็บลงกรุ (เช่น 2024) |
%(quarter)d | รอบไตรมาสของส่วนที่จะเก็บลงกรุ (เลข 1-4) |
%(month)d | เดือนของส่วนที่จะเก็บลงกรุ (เป็นตัวเลข 1-12) |
%(monthname)s | ชื่อเดือนเป็นภาษาไทย |
%(monthnameshort)s | ชื่อเดือนย่อภาษาไทย |
หากใครเคยเขียนหรือคุ้นชินกับภาษาไพธอนอาจจำได้ว่าตัวแปรเหล่านี้คือตัวแปรซึ่งจะถูกแทนที่ด้วยค่าเมื่อรันโปรแกรม และอาจพอทราบว่าจะปรับรูปแบบอย่างไรได้บ้าง นี่คือจุดที่ผู้ไม่ทราบอาจต้องการรู้:
- อย่าแก้ไขตัวอักษรหลังวงเล็บ ("d" คือจำนวนเต็ม และ "s" คือ สายอักขระ)
- ตัวแปรจำนวนเต็มอาจเต็ม 0 เพิ่มทางด้านซ้ายได้ โดย:
- %(counter)03d ทำให้ได้ค่า 013 หากค่า counter เท่ากับ 13
- %(month)02d ได้ 05 สำหรับพฤษภาคม
หลังจากตั้งค่าการเก็บลงกรุแล้ว[แก้]
บอตจะทำงานวันละครั้งเมื่อถึงเวลาที่กำหนด (โดยปกติจะเริ่มทำงานเวลา 00:15 น. เวลาประเทศไทย) โปรดรอจนถึงช่วงนั้นและรอดูผลลัพธ์ ในหน้าประวัติจะแสดงลิงก์ว่าการอภิปรายถูกย้ายไปที่ใดบ้าง
แม่แบบหลาย ๆ อย่างจะถูกใช้เพื่อแสดงรายการกรุ แม่แบบมักจะเพิ่มไปที่หน้าอภิปรายหลักเพื่อให้หาง่ายเพียงเพิ่มชื่อแม่แบบที่อยู่ในวงเล็บปีกกาไว้ที่ที่คุณต้องการให้แสดงผล แม่แบบที่มักจะใช้ได้แก่:
{{กล่องกรุ}}
แม่แบบนี้ไว้ใส่ที่หน้ากรุเพื่อความสะดวกในการไปหน้าต่าง ๆ:
{{กล่องกรุ/หน้าใน}}
ของดั้งเดิมบนวิกิพีเดียภาษาไทย มีตัวเลขเท่านั้น ไม่เหมาะกับการนำทาง แต่มีกล่องค้นหา{{Automatic archive navigator}}
รูปแบบวิกิพีเดียภาษาอังกฤษ เหมาะสำหรับการนำทาง แต่ไม่มีกล่องค้นหา
การเว้นหรือเลื่อนการเก็บลงกรุ[แก้]
สามารถเลื่อนการเก็บลงกรุได้โดยใส่ {{DNAU}} ในส่วน ใช้ {{subst:DNAU}}
เพื่อให้เว้นการเก็บกรุเป็นระยะเวลานาน หรือ {{subst:DNAU|<integer>}}
เมื่อ <integer> คือระยะเวลาเป็นวัน ดูที่คู่มือการใช้แม่แบบสำหรับรายละเอียดการใช้งาน
กรณีขาดลายเซ็น[แก้]
ปัญหาใหญ่ในตอนนี้คือ PatsaBot จะไม่เก็บส่วนที่ไม่มีลายเซ็น แต่บางครั้งผู้ใช้ก็ลืมใส่ลายเซ็นการแก้ไข ทำให้บางครั้งอาจข้ามไปและเก็บการอภิปรายที่ใหม่กว่า
ตัวเลือกหนึ่งคือการเก็บส่วนที่มีข้อความไม่ได้ลงลายเซ็นโดยลงกรุด้วยมือ อีกวิธีคือใส่ลายเซ็นลงที่ข้อความสุดท้ายของส่วนนั้น ๆ
ข้อมูลที่ส่งออกมาจากแม่แบบ[แก้]
เมื่อใช้พารามิเตอร์ |key=
ข้อมูลเดียวที่ส่งออกมาจากแม่แบบ คือการจัดหมวดหมู่ไปยังหมวดหมู่:หน้าที่เก็บกรุโดยใช้งาน key หากไม่แล้ว แม่แบบจะส่งออก <nowiki />
มาแทน โดยเป็นทริกสำหรับการป้องกันพื้นที่ว่างที่ไม่พึงประสงค์
สาเหตุที่ทำให้ไม่เก็บกรุ[แก้]
มีหลายปัจจัยที่ทำให้หน้าไม่ถูกเก็บลงกรุ:
|archive=
ไม่ได้ระบุหน้าที่ต้องเก็บการอภิปราย บางครั้งอาจมาจากการย้ายหน้าโดยยังไม่ได้อัปเดตพารามิเตอร์- บอตยังไม่ถึงเวลาทำงาน โดยปกติจะทำงานวันละครั้ง ดูกิจกรรมล่าสุดที่ พิเศษ:เรื่องที่เขียน/PatsaBot
- ลิงก์ภายนอกที่อยู่ในส่วนมีบางจุดตรงกับมีเดียวิกิ:Spam-blacklistหรือcommons:MediaWiki:Spam-blacklist ซึ่งจะส่งผลให้ไม่มีการเก็บลงกรุเลย แต่สามารถปิดใช้งานการป้องกันได้โดยใช้
<nowiki>...</nowiki>
. |minthreadstoarchive=
มีค่ามากกว่าจำนวนส่วนที่พร้อมเก็บลงกรุ|minthreadsleft=
มากเกินกว่าจะทำให้เกิดการเก็บลงกรุ|algo=old(...)
นานเกินไปที่จะเก็บ- แม่แบบตั้งค่าเก็บกรุไม่ได้ใส่ไว้เหนือส่วนแรก
- แม่แบบตั้งค่าเก็บกรุถูกใส่ไว้ในโค้ดแม่แบบอื่น
- พารามิเตอร์แม่แบบไม่ได้แบ่งพารามิเตอร์ละบรรทัดอย่างถูกต้อง
- หากส่วนที่ใหม่กว่าถูกเก็บ แต่มีบางส่วนไม่ อาจเกิดจากการขาดลายเซ็นที่มีตราเวลาที่ถูกต้อง ดูที่#กรณีขาดลายเซ็นด้านบน
- ชื่อหน้าอาจมีเครื่องหมายวรรคตอนบางตัว (
"&'
) ดูที่ วิธีใช้:กรุ#FULLPAGENAME สำหรับคำอธิบายและวิธีการแก้ปัญหา
ข้อมูลแม่แบบ[แก้]
ข้อมูลแม่แบบสำหรับ เก็บอภิปรายอัตโนมัติ (ยังไม่มีการตรวจสอบ)
สำหรับตั้งค่าการเก็บกรุโดยบอตผู้ใช้:PatsaBot
พารามิเตอร์ | คำอธิบาย | ชนิด | สถานะ | |
---|---|---|---|---|
ชื่อหน้ากรุ | archive | ชื่อของหน้ากรุที่จะเก็บลง พรารามิเตอร์นี้รองรับการใช้งานตัวแปร ซึ่งสามารถตั้งชื่อกรุตามแต่เวลานั้น ๆ ได้ เช่นช่วงเวลา หมายเหตุว่า Magic words ไม่สามารถทำงานได้ และบอตจะไม่เก็บการอภิปรายไปยังกรุที่ไม่ใช่หน้ารองของหน้าปัจจุบัน เว้นเสียแต่ใช้พารามิเตอร์ key ร่วมด้วย (ดูด้านล่าง) และจะเพิ่มไปยังหมวดหมู่:หน้าที่พารามิเตอร์กรุไม่ใช่หน้ารอง
| สตริง | จำเป็น |
ตรรกกะสำหรับย้ายการอภิปรายลงกรุ | algo | จำนวนเวลาขั้นต่ำของการตอบกลับสุดท้ายในส่วนก่อนที่บอตจะเก็บลงกรุ ต้องอยู่ในรูปแบบ: old(nT) เมื่อ n คือตัวเลข และ T ระบุชั่วโมงหรือวัน คุณสามารถเว้น T เพื่อระบุเป็นวินาที (ถึงแม้ว่าจะไม่มีกรณีต้องใช้ก็ตาม) ตัวอย่าง: 600, 72h, 5d คือการระบุเวลา 600 วินาที, 72 ชั่วโมง หรือ 5 วันตามลำดับ สำหรับกรณีช่วงเวลายาว ๆ ใช้หน่วยวันจะเหมาะสมกว่า เช่น algo=old(1100d) ซึ่งเท่ากับราว 3 ปี สูตรที่ซับซ้อนกว่านี้อื่น ๆ อาจมีให้ใช้งานในอนาคต
| สตริง | เลือกได้ |
ตัวนับ | counter | ตัวนับเลขปัจจุบันของกรุล่าสุด หากไม่ได้ใช้ตัวแปร %(counter)d พารามิเตอร์นี้จะไม่ได้ใช้งาน และ PatsaBot จะอัปเดตพารามิเตอร์ตามความจำเป็น
| จำนวน | เลือกได้ |
ขนาดอย่างมากของกรุ | maxarchivesize | ขนาดใหญ่ที่สุดของกรุเมื่อเป็นข้อความล้วน (เช่น 256M สำหรับเมกะไบต์ 256K สำหรับกิโลไบต์ หรือ 256B สำหรับไบต์) หรือระบุเป็นเธรด (เช่น 10T) เมื่อเต็มจำนวนแล้วบอตจะเพิ่มตัวนับ ไม่ได้ถูกใช้งานถ้าไม่ได้ใช้ counter
| สตริง | เลือกได้ |
จำนวนส่วนขั้นต่ำที่จะทิ้งไว้บนหน้า | minthreadsleft | เพื่อไม่ให้เป็นหน้าว่างเปล่าจนเกินไป
| จำนวน | เลือกได้ |
จำนวนส่วนขั้นต่ำที่ต้องเก็บในแต่ละครั้ง | minthreadstoarchive | เพื่อลดความถี่ในการแก้ไข บอตจะไม่เก็บการอภิปรายลงกรุหากส่วนที่ต้องเก็บมีจำนวนน้อยกว่าตัวเลขนี้
| จำนวน | เลือกได้ |
ส่วนหัวกรุ | archiveheader | เนื้อหาที่จะใส่ไว้ที่ส่วนบนของหน้าเพื่อเป็นส่วนหัว
| ไม่ทราบชนิด | เลือกได้ |
คีย์ | key | ใช้เมื่อหน้ากรุไม่ใช่หน้ารองของหน้าอภิปราย โปรดติดต่อผู้ดูแลบอตหากต้องการใช้งาน | สตริง | เลือกได้ |
คู่มือการใช้งานที่ปรากฏด้านบนนี้ดึงมาจาก แม่แบบ:เก็บอภิปรายอัตโนมัติ/doc (แก้ | ประวัติ) ผู้เขียนสามารถทำการทดลองได้ที่กระบะทราย (สร้าง | คัดลอก) และชุดทดสอบ (สร้าง) ของแม่แบบนี้ โปรดเพิ่มหมวดหมู่ไปที่หน้าย่อย /doc หน้าย่อยของแม่แบบนี้ |