แม่แบบ:เก็บอภิปรายอัตโนมัติ/doc

หากไม่แน่ใจว่าจะใช้โค้ดใดดี ดูที่ #ตัวอย่างที่ 2: กรุแบบเพิ่มจำนวนและดูที่ส่วนคัดลอกวาง

**ตั้งค่าการเก็บกรุ**
ใส่แม่แบบต่อไปนี้ที่ด้านบนของหน้าที่ต้องการให้เก็บลงกรุอัตโนมัติ
เรียบร้อย อย่างไรก็ตามแม่แบบนี้ไม่มีเนื้อหาและถูกป้องกัน ดังนั้นจึงไม่ต้องห่วงว่าจะมีผลกระทบต่อการแสดงผลหน้า
บอตจะทำงานได้ดีที่สุดเมื่อใช้งานพารามิเตอร์บรรทัดละ 1 พารามิเตอร์ และต้องไม่มีช่องว่างอยู่ก่อนหน้าไปป์ และไม่มีบรรทัดเปล่า ถ้าคุณทำให้แม่แบบอยู่ในบรรทัดเดียว บอตอาจจะไม่ทำงานอย่างที่คุณคาด
และแม่แบบนี้จะต้องอยู่ที่:
# ก่อน == หัวข้อระดับสอง == บนหน้า
# บนหน้าที่จะใช้โดยห้ามใช้การรวมผ่าน เช่นอย่าวางไว้ในหน้า /ส่วนหัว หรือที่คล้ายกันโดยเด็ดขาด

**ตัวอย่าง**
อย่าลืมแก้ "คุยกับผู้ใช้:ตัวอย่าง" เป็นชื่อหน้าของคุณเอง
ถ้ายังไม่ทำงานอีก อ่านเกี่ยวกับพารามิเตอร์ "minthreadsleft" และ "minthreadstoarchive" ด้านล่าง

**ตัวอย่างที่ 1: กรุหน้าเดี่ยว**
(อย่าลืมว่าก็อบตรงนี้ไปตรง ๆ ใช้ไม่ได้กับหน้าของคุณ)
นี่เป็นตัวอย่างการตั้งค่าให้เก็บการอภิปรายจากหน้าคุยกับผู้ใช้:ตัวอย่างไปที่คุยกับผู้ใช้:ตัวอย่าง/กรุหลังจากส่วนอายุเก่ากว่า 7 วัน นับจากตราเวลาที่ใหม่ที่สุด บอตจะหยุดเก็บลงหน้านี้เมื่อใหญ่กว่า 2000KB อาจจะไม่ใช่การตั้งค่าที่เป็นประโยชน์เท่าใดนัก เว้นแต่คุณอยากให้ย้ายการอภิปรายลงกล่องขยะที่จะลบตามเวลา หรือคุณอยากตัดสินใจเองว่าจะย้ายไปที่หน้าไหนต่อ

**ตัวอย่างที่ 2: กรุแบบเพิ่มจำนวน**

การใช้งานนี้ทำให้บอตส่วนเก็บลงกรุเมื่อส่วนใด ๆ เก่ากว่า 30 วัน และเว้น 4 ส่วนล่าสุดไว้ จากหน้าคุยกับผู้ใช้:ตัวอย่างไปยังคุยกับผู้ใช้:ตัวอย่าง/กรุ 1 (อ่านเกี่ยวกับตัวแปรด้านล่าง) จนกว่าจะเต็ม 150 กิโลไบต์ ซึ่งหลังจากนั้นจะย้ายไปที่กรุ 2 อย่าลืมระบุขนาดสูงสุดของกรุ มิเช่นนั้นมันจะทำงานเหมือนในตัวอย่างแรก และการใช้การตั้งค่านี้จะเพิ่ม  ซึ่งเป็นแม่แบบสำหรับอธิบายหน้าย่อยของกรุการอภิปราย เพื่อให้ไปยังกรุต่าง ๆ ได้ง่ายขึ้น

**ตัวอย่างที่ 3: กรุตามเวลา**
(อย่าลืมว่าก็อบตรงนี้ไปตรง ๆ ใช้ไม่ได้กับหน้าของคุณ คัดลอกส่วนด้านล่างไปแทน)

การตั้งค่านี้จะเก็บการอภิปรายที่เก่ากว่า 5 วันลงกรุ ซึ่งจะลงกรุไหนนั้นขึ้นอยู่กับตราเวลาใหม่ที่สุดในส่วนนั้น ๆ คุณสามารถอ่านเพิ่มเติมเกี่ยวกับตัวแปรอื่น ๆ ได้ด้านล่าง

**อธิบายแต่ละพารามิเตอร์**

**ตัวแปร**
หากใครเคยเขียนหรือคุ้นชินกับภาษาไพธอนอาจจำได้ว่าตัวแปรเหล่านี้คือตัวแปรซึ่งจะถูกแทนที่ด้วยค่าเมื่อรันโปรแกรม และอาจพอทราบว่าจะปรับรูปแบบอย่างไรได้บ้าง นี่คือจุดที่ผู้ไม่ทราบอาจต้องการรู้:- อย่าแก้ไขตัวอักษรหลังวงเล็บ ("d" คือจำนวนเต็ม และ "s" คือ สายอักขระ)- ตัวแปรจำนวนเต็มอาจเต็ม 0 เพิ่มทางด้านซ้ายได้ โดย:
*:%(counter)03d ทำให้ได้ค่า 013 หากค่า counter เท่ากับ 13
*:%(month)02d ได้ 05 สำหรับพฤษภาคม

**หลังจากตั้งค่าการเก็บลงกรุแล้ว**
บอตจะทำงานวันละครั้งเมื่อถึงเวลาที่กำหนด (โดยปกติจะเริ่มทำงานเวลา 00:15 น. เวลาประเทศไทย) โปรดรอจนถึงช่วงนั้นและรอดูผลลัพธ์ ในหน้าประวัติจะแสดงลิงก์ว่าการอภิปรายถูกย้ายไปที่ใดบ้าง
แม่แบบหลาย ๆ อย่างจะถูกใช้เพื่อแสดงรายการกรุ แม่แบบมักจะเพิ่มไปที่หน้าอภิปรายหลักเพื่อให้หาง่ายเพียงเพิ่มชื่อแม่แบบที่อยู่ในวงเล็บปีกกาไว้ที่ที่คุณต้องการให้แสดงผล แม่แบบที่มักจะใช้ได้แก่:- กล่องกรุ
แม่แบบนี้ไว้ใส่ที่หน้ากรุเพื่อความสะดวกในการไปหน้าต่าง ๆ:- กล่องกรุ/หน้าใน ของดั้งเดิมบนวิกิพีเดียภาษาไทย มีตัวเลขเท่านั้น ไม่เหมาะกับการนำทาง แต่มีกล่องค้นหา- Automatic archive navigator รูปแบบวิกิพีเดียภาษาอังกฤษ เหมาะสำหรับการนำทาง แต่ไม่มีกล่องค้นหา

**การเว้นหรือเลื่อนการเก็บลงกรุ**
สามารถเลื่อนการเก็บลงกรุได้โดยใส่ DNAU ในส่วน ใช้ DNAU เพื่อให้เว้นการเก็บกรุเป็นระยะเวลานาน หรือ  เมื่อ  คือระยะเวลาเป็นวัน ดูที่คู่มือการใช้แม่แบบสำหรับรายละเอียดการใช้งาน

**กรณีขาดลายเซ็น**
ปัญหาใหญ่ในตอนนี้คือ PatsaBot จะไม่เก็บส่วนที่ไม่มีลายเซ็น แต่บางครั้งผู้ใช้ก็ลืมใส่ลายเซ็นการแก้ไข ทำให้บางครั้งอาจข้ามไปและเก็บการอภิปรายที่ใหม่กว่า
ตัวเลือกหนึ่งคือการเก็บส่วนที่มีข้อความไม่ได้ลงลายเซ็นโดยลงกรุด้วยมือ อีกวิธีคือใส่ลายเซ็นลงที่ข้อความสุดท้ายของส่วนนั้น ๆ

**ข้อมูลที่ส่งออกมาจากแม่แบบ**
เมื่อใช้พารามิเตอร์ key ข้อมูลเดียวที่ส่งออกมาจากแม่แบบ คือการจัดหมวดหมู่ไปยัง:หมวดหมู่:หน้าที่เก็บกรุโดยใช้งาน key หากไม่แล้ว แม่แบบจะส่งออก s มาแทน โดยเป็นทริกสำหรับการป้องกันพื้นที่ว่างที่ไม่พึงประสงค์

**สาเหตุที่ทำให้ไม่เก็บกรุ**
มีหลายปัจจัยที่ทำให้หน้าไม่ถูกเก็บลงกรุ:- archive ไม่ได้ระบุหน้าที่ต้องเก็บการอภิปราย บางครั้งอาจมาจากการย้ายหน้าโดยยังไม่ได้อัปเดตพารามิเตอร์- บอตยังไม่ถึงเวลาทำงาน โดยปกติจะทำงานวันละครั้ง ดูกิจกรรมล่าสุดที่ พิเศษ:เรื่องที่เขียน/PatsaBot- ลิงก์ภายนอกที่อยู่ในส่วนมีบางจุดตรงกับมีเดียวิกิ:Spam-blacklistหรือ:commons:MediaWiki:Spam-blacklist ซึ่งจะส่งผลให้ไม่มีการเก็บลงกรุเลย แต่สามารถปิดใช้งานการป้องกันได้โดยใช้ nowiki.- minthreadstoarchive มีค่ามากกว่าจำนวนส่วนที่พร้อมเก็บลงกรุ- minthreadsleft มากเกินกว่าจะทำให้เกิดการเก็บลงกรุ- old(...) นานเกินไปที่จะเก็บ- แม่แบบตั้งค่าเก็บกรุไม่ได้ใส่ไว้เหนือส่วนแรก - แม่แบบตั้งค่าเก็บกรุถูกใส่ไว้ในโค้ดแม่แบบอื่น- พารามิเตอร์แม่แบบไม่ได้แบ่งพารามิเตอร์ละบรรทัดอย่างถูกต้อง- หากส่วนที่ใหม่กว่าถูกเก็บ แต่มีบางส่วนไม่ อาจเกิดจากการขาดลายเซ็นที่มีตราเวลาที่ถูกต้อง ดูที่#กรณีขาดลายเซ็นด้านบน- ชื่อหน้าอาจมีเครื่องหมายวรรคตอนบางตัว ("&') ดูที่ วิธีใช้:กรุ#FULLPAGENAME สำหรับคำอธิบายและวิธีการแก้ปัญหา

**ข้อมูลแม่แบบ**
{
	"params": {
		"key": {
			"label": "คีย์",
			"description": "ใช้เมื่อหน้ากรุไม่ใช่หน้ารองของหน้าอภิปราย โปรดติดต่อผู้ดูแลบอตหากต้องการใช้งาน",
			"type": "string"
		},
		"archive": {
			"label": "ชื่อหน้ากรุ",
			"description": "ชื่อของหน้ากรุที่จะเก็บลง พรารามิเตอร์นี้รองรับการใช้งานตัวแปร ซึ่งสามารถตั้งชื่อกรุตามแต่เวลานั้น ๆ ได้ เช่นช่วงเวลา หมายเหตุว่า Magic words ไม่สามารถทำงานได้ และบอตจะไม่เก็บการอภิปรายไปยังกรุที่ไม่ใช่หน้ารองของหน้าปัจจุบัน เว้นเสียแต่ใช้พารามิเตอร์ key ร่วมด้วย (ดูด้านล่าง) และจะเพิ่มไปยังหมวดหมู่:หน้าที่พารามิเตอร์กรุไม่ใช่หน้ารอง",
			"example": "คุยกับผู้ใช้:ตัวอย่าง/กรุ %(counter)d",
			"type": "string",
			"suggestedvalues": 
				"/%(year)d/%(monthname)s",
				"/กรุ %(counter)d"
			,
			"required": true
		},
		"algo": {
			"label": "ตรรกกะสำหรับย้ายการอภิปรายลงกรุ",
			"description": "จำนวนเวลาขั้นต่ำของการตอบกลับสุดท้ายในส่วนก่อนที่บอตจะเก็บลงกรุ ต้องอยู่ในรูปแบบ: old(nT) เมื่อ n คือตัวเลข และ T ระบุชั่วโมงหรือวัน คุณสามารถเว้น T เพื่อระบุเป็นวินาที (ถึงแม้ว่าจะไม่มีกรณีต้องใช้ก็ตาม) ตัวอย่าง: 600, 72h, 5d คือการระบุเวลา 600 วินาที, 72 ชั่วโมง หรือ 5 วันตามลำดับ สำหรับกรณีช่วงเวลายาว ๆ ใช้หน่วยวันจะเหมาะสมกว่า เช่น algo=old(1100d) ซึ่งเท่ากับราว 3 ปี สูตรที่ซับซ้อนกว่านี้อื่น ๆ อาจมีให้ใช้งานในอนาคต",
			"example": "old(14d)",
			"type": "string",
			"suggestedvalues": 
				"old(7d)",
				"old(14d)",
				"old(30d)"
			,
			"default": "old(24h)"
		},
		"counter": {
			"label": "ตัวนับ",
			"description": "ตัวนับเลขปัจจุบันของกรุล่าสุด หากไม่ได้ใช้ตัวแปร %(counter)d พารามิเตอร์นี้จะไม่ได้ใช้งาน และ PatsaBot จะอัปเดตพารามิเตอร์ตามความจำเป็น",
			"example": "1",
			"type": "number",
			"default": "1"
		},
		"maxarchivesize": {
			"label": "ขนาดอย่างมากของกรุ",
			"description": "ขนาดใหญ่ที่สุดของกรุเมื่อเป็นข้อความล้วน (เช่น 256M สำหรับเมกะไบต์ 256K สำหรับกิโลไบต์ หรือ 256B สำหรับไบต์) หรือระบุเป็นเธรด (เช่น 10T) เมื่อเต็มจำนวนแล้วบอตจะเพิ่มตัวนับ ไม่ได้ถูกใช้งานถ้าไม่ได้ใช้ counter",
			"example": "250K",
			"type": "string",
			"suggestedvalues": 
				"150K",
				"250K",
				"500K",
				"1M",
				"1500K",
				"2M"
			,
			"default": "1954K"
		},
		"minthreadsleft": {
			"label": "จำนวนส่วนขั้นต่ำที่จะทิ้งไว้บนหน้า",
			"description": "เพื่อไม่ให้เป็นหน้าว่างเปล่าจนเกินไป",
			"type": "number",
			"default": "5"
		},
		"minthreadstoarchive": {
			"label": "จำนวนส่วนขั้นต่ำที่ต้องเก็บในแต่ละครั้ง",
			"description": "เพื่อลดความถี่ในการแก้ไข บอตจะไม่เก็บการอภิปรายลงกรุหากส่วนที่ต้องเก็บมีจำนวนน้อยกว่าตัวเลขนี้",
			"type": "number",
			"default": "2"
		},
		"archiveheader": {
			"label": "ส่วนหัวกรุ",
			"description": "เนื้อหาที่จะใส่ไว้ที่ส่วนบนของหน้าเพื่อเป็นส่วนหัว",
			"example": "",
			"default": ""
		}
	},
	"description": "สำหรับตั้งค่าการเก็บกรุโดยบอตผู้ใช้:PatsaBot",
	"format": "block",
	"paramOrder": 
		"archive",
		"algo",
		"counter",
		"maxarchivesize",
		"minthreadsleft",
		"minthreadstoarchive",
		"archiveheader",
		"key"
	
}