Bước tới nội dung

Thành viên:NgocAnMaster/ArchiverBot

Bách khoa toàn thư mở Wikipedia

Nếu bạn không biết sử dụng mã nguồn nào, tôi khuyên bạn nên đi tới đề mục #Ví dụ 2: Lưu trữ tăng dần và xem phần chép dán của nó.

Thiết lập lưu trữ

[sửa | sửa mã nguồn]

Đặt bản mẫu sau ở đầu trang bạn muốn lưu trữ tự động:

{{User:NgocAnMaster/ArchiverBot/config
| algo    = old(...)
| archive = Tên của (các) trang lưu trữ thảo luận: Để tạo nhiều trang thảo luận theo thời gian, sử dụng các biến, như được miêu tả dưới đây.
[các tham số khác - ***đọc bên dưới***]
}}

Nó có thể không chính xác như thế (đọc thêm các tùy chọn bắt buộc bên dưới), nhưng đó là cách nó hoạt động. Thực ra bản mẫu tôi có đề cập không có nội dung gì cả, nên đừng quan tâm đến phần nhìn làm gì.

Bot chỉ quan tâm đến việc thiết đặt chỉ một tham số cho một dòng. Hai dấu ngoặc nhọn }} phải nằm trên một dòng riêng. Bạn không được cho dấu cách ngay trước dấu gạch dọc (|), và không để dòng nào trống. Nếu bạn bỏ dòng mới mà được sử dụng trong bản mẫu trên, v.d. bằng cách cắt bản mẫu gọi về cùng một dòng, bot có thể không hoạt động như bạn mong đợi.

Bên cạnh đó, bản mẫu phải được đặt:

  1. ngay trước ==đề mục cấp 2== đầu tiên trên trang
  2. trên trang thực tế và không được nhúng từ trang con, chẳng hạn như bản mẫu đầu, v.v.

Ví dụ nhanh

[sửa | sửa mã nguồn]

Để hiểu rõ về nó – thiết lập ở đây có thể không trực quan, nhưng nó linh hoạt và mang lại lợi ích lớn.

Vui lòng thay "Thảo luận Thành viên:Ví dụ" thành tên chính xác của trang của bạn!
Nếu nó vẫn chưa hoạt động, hãy đọc các tham số "minthreadsleft" và "minthreadstoarchive" bên dưới.

Ví dụ 1: Lưu trữ cố định

[sửa | sửa mã nguồn]
{{User:NgocAnMaster/ArchiverBot/config
| algo    = old(7d)
| archive = Thảo luận Thành viên:Ví dụ/Lưu
}}

(Hãy nhớ, đây chỉ là ví dụ và đoạn mã chính xác này sẽ không hoạt động trên trang của bạn)

Thiết đặt này sẽ lưu trữ các thảo luận từ Thảo luận Thành viên:Ví dụ đến Thảo luận Thành viên:Ví dụ/Lưu sau khi chúng đã được 7 ngày tuổi (tính từ dấu thời gian mới nhất). Trang lưu trữ sẽ bị ngưng lại khi kích cỡ đạt mốc 2000 KB. Đây dường như là cấu hình không thực sự hữu ích cho lắm (trừ khi thiết lập để gửi các thảo luận vào thùng rác mà ở đó sẽ được dọn dẹp thường xuyên hay tự quyết định khi nào sẽ đến trang lưu trữ sau), nhưng đây là thiết lập đơn giản nhất, cho nên nó được đề cập trước.

Ví dụ 2: Lưu trữ tăng dần

[sửa | sửa mã nguồn]
{{User:NgocAnMaster/ArchiverBot/config
| algo                = old(30d)
| archive             = Thảo luận Thành viên:Ví dụ/Lưu %(counter)d
| counter             = 1
| maxarchivesize      = 150K
| archiveheader       = {{Ltln}}
| minthreadstoarchive = 1
| minthreadsleft      = 4
}}

(Hãy nhớ, đây là ví dụ và đoạn mã chính xác này sẽ không hoạt động trên trang của bạn. Hãy sử dụng đề mục chép dán được bên dưới!)

chép dán được để sử dụng dễ dàng
{{User:NgocAnMaster/ArchiverBot/config
| algo                = old(30d)
| archive             = {{SUBST:#titleparts:{{SUBST:FULLPAGENAME}}}}/Lưu %(counter)d
| counter             = 1
| maxarchivesize      = 150K
| archiveheader       = {{Ltln}}
| minthreadstoarchive = 1
| minthreadsleft      = 4
}}

Điều này yêu cầu bot lưu trữ các thảo luận quá 30 ngày tuổi (để lại 4 thảo luận gần đây nhất) từ Thảo luận Thành viên:Ví dụ đến Thảo luận Thành viên:Ví dụ/Lưu 1 (thông tin thêm về các biến xem bên dưới) cho đến khi nó lưu được đến 150 kilobytes, khi đó bot sẽ chuyển sang 2 (cập nhật bộ đếm khi lưu trang). Hãy nhớ thiết lập kích cỡ tối đa của lưu trữ, nếu không nó sẽ xử lý khá giống như ở ví dụ đầu tiên. Ngoài ra, mỗi trang lưu trữ được gắn thẻ {{Ltln}}, điều này sẽ tạo sự đơn giản hơn trong việc di chuyển qua lại giữa các trang lưu trữ thảo luận khác nhau.

Ví dụ 3: Lưu trữ theo ngày

[sửa | sửa mã nguồn]
{{User:NgocAnMaster/ArchiverBot/config
| algo          = old(5d)
| archive       = Thảo luận Thành viên:Ví dụ/Lưu/%(year)d/%(monthname)s
| archiveheader = {{Ltln}}
}}

(Hãy nhớ, đây là ví dụ và đoạn mã chính xác này sẽ không hoạt động trên trang của bạn. Hãy sử dụng đề mục chép dán được bên dưới!)

chép dán được để sử dụng dễ dàng
{{User:NgocAnMaster/ArchiverBot/config
| algo          = old(5d)
| archive       = {{SUBST:#titleparts:{{SUBST:FULLPAGENAME}}}}/%(year)d/%(monthname)s
| archiveheader = {{Ltln}}
}}

Với cấu hình này, các thảo luận cũ hơn 5 ngày sẽ được lưu vào các trang được lưu trữ dựa trên các ngày (đó là theo dấu thời gian mới nhất). Bạn có thể đọc thêm thông tin về các biến khác ở bên dưới.

Giải thích về các tham số

[sửa | sửa mã nguồn]
{{User:NgocAnMaster/ArchiverBot/config
| archive             = 
| algo                = 
| counter             = 
| maxarchivesize      = 
| minthreadsleft      = 
| minthreadstoarchive = 
| archiveheader       = 
| key                 = 
}}
Tham số Mặc định Miêu tả
archive N/A; bắt buộc Tên của trang mà các thảo luận được lưu trữ sẽ được đặt vào. Tham số này hỗ trợ việc sử dụng các biến, chúng có thể được sử dụng để tạo các trang lưu trữ có tên động (chẳng hạn như việc sử dụng tên ngày). Lưu ý rằng các từ ma thuật và bản mẫu sẽ không hoạt động với tham số này, và trừ khi cung cấp được một key (xem bên dưới), trang mục tiêu phải là trang con của trang hiện tại. Nếu không, Thể loại:Trang có tham số archive không phải là trang con sẽ được thêm vào.
algo old(24h) Khoảng thời gian tối thiểu phải trải qua kể từ tin nhắn cuối cùng trước khi bot có thể lưu trữ thảo luận. Nó phải có cú pháp như sau: old(nT) trong đó n là một con số và T chỉ định số giờ hoặc ngày. Bạn có thể bỏ T để chỉ định số giây (kể cả khi thông thường không có trường hợp nào sử dụng đến nó). Ví dụ: 600, 72h, 5d sẽ chỉ định lần lượt là 600 giây, 72 giờ hoặc 5 ngày. Để chỉ định một khoảng thời gian lưu trữ rất dài, hãy sử dụng ngày. Ví dụ; algo=old(1100d) để thiết lập gần tới ba năm. Các cú pháp phức tạp (bao gồm việc trùng với cú pháp regex) có thể sẽ có sẵn trong tương lai.
counter 1 Con số hiện tại của trang lưu trữ thảo luận cuối cùng. Nếu biến %(counter)d không được sử dụng, nó được bỏ qua. ArchiverBot sẽ cập nhật tham số này khi cần thiết.
maxarchivesize 1954K Kích cỡ tối đa của trang lưu trữ có thể dưới dạng kích cỡ văn bản thô (vd 256M cho megabytes, 256K cho kilobytes, hoặc 256B cho bytes) hoặc số thảo luận (vd 10T) trước khi tăng bộ đếm. Một số nguyên trần sẽ được hiểu là bytes. Nếu bộ đếm không được sử dụng, tham số được bỏ qua.
minthreadsleft 5 Số thảo luận tối thiểu cần được để lại trên trang (để tránh việc trang thảo luận bị lưu trữ hết hoàn toàn).
minthreadstoarchive 2 Số thảo luận tối thiểu sẽ được lưu trữ cùng một lúc, được sử dụng để giảm tần suất sửa đổi. ArchiverBot sẽ không lưu trữ các thảo luận khi mà số thảo luận sẽ được lưu trữ ít hơn giá trị của tham số này.
archiveheader {{Archive}} Nội dung sẽ được đặt vào trang lưu trữ mới dưới dạng phần mở đầu. Tham số này hỗ trợ việc sử dụng các biến.
key Một chìa khóa bí mật mà (nếu hợp lệ) cho phép lưu trữ thảo luận vào trang lưu trữ không phải trang con của trang đó. Để nhận được chìa khóa này, hãy gửi yêu cầu đó đến biên tập viên này, và tốt hơn hết là bạn nên có lý do rất thiện ý để yêu cầu nó.

Các biến

[sửa | sửa mã nguồn]
Biến tham số Mở rộng cho...
%(counter)d giá trị hiện tại của counter
%(year)d năm của thảo luận cần lưu trữ
%(quarter)d quý trong năm (1-4) của thảo luận cần lưu trữ
%(month)d tháng dạng số (1-12) của thảo luận cần lưu trữ
%(month)02d tháng dạng hai chữ số (01-12) của thảo luận cần lưu trữ
%(monthname)s tên bằng tiếng Anh của tháng nói ở trên
%(monthnameshort)s ba ký tự đầu tiên của tên tháng nói ở trên

Những người hiểu biết ngôn ngữ python sẽ ngay lập tức nhận ra rằng các biến này sẽ được điền vào tại thời điểm chay với toán tử % và sẽ hiểu được rằng họ sẽ cần sửa định dạng như thế nào. Một vài điểm cần lưu ý đối với những người khác:

  • hãy đảm bảo bạn không nhầm lẫn với ký tự cuối cùng sau dấu ngoặc đơn (nó là "d" đối với số nguyên (integers) và "s" đối với chuỗi ký tự (strings))
  • các biến số nguyên có thể được đệm trái bằng các số không:
    %(counter)03d đặt thành 013 nếu giá trị tham số counter bằng 13,
    %(month)02d trở thành 05 dành cho tháng năm v.v.

Sau khi bạn đã thiết lập lưu trữ

[sửa | sửa mã nguồn]

Bot chạy một lần mỗi ngày tại một thời điểm cố định. Đơn giản là chỉ cần chờ đợi đến chu kỳ tiếp theo và bạn sẽ nhìn thấy các mục trong danh sách lịch sử bài viết cung cấp rằng có những gì để lưu trữ hay không, và các mục trong danh sách lịch sử trang nên cung cấp liên kết đến trang lưu trữ mà bạn chỉ định.

Nhiều bản mẫu sẽ sản xuất ra danh sách tự động các trang lưu trữ trang con. Thông thường, những bản mẫu này sẽ được thêm vào trang thảo luận chính để dễ dàng tìm kiếm các trang lưu trữ hơn. Chỉ cần đặt tên bản mẫu vào trong {{cặp dấu ngoặc nhọn}} nơi bạn muốn xuất hiện. Những bản mẫu phổ biến sử dụng dành cho mục đích này bao gồm:

Một chức năng liên quan nhưng được xét riêng là các bản mẫu xuất hiện trong chính các trang lưu trữ thảo luận. Ví dụ:

Tạm hoãn hoặc ngăn lưu trữ một thảo luận cụ thể

[sửa | sửa mã nguồn]

Việc lưu trữ có thể được tạm hoãn dành cho một thảo luận cụ thể bằng cách thay thế bản mẫu {{DNAU}} vào trong thảo luận đó. Sử dụng {{thế:DNAU}} để giữ thảo luận trong một thời gian dài, hoặc {{thế:DNAU|<số nguyên>}} để giữ thảo luận trong <số nguyên> ngày. Vui lòng xem tài liệu bản mẫu để biết thêm thông tin về cách sử dụng và chức năng của nó.

Thiếu chữ ký

[sửa | sửa mã nguồn]

Một vấn đề tiềm ẩn là việc ArchiverBot sẽ không lưu trữ các đề mục không có chữ ký. Mặc dù vậy các biên tập viên đôi khi cũng quên ký chữ ký nên nó có thể bỏ qua các đề mục cũ mà đi lưu trữ những đề mục gần hơn.

Một lựa chọn là lưu trữ thủ công các đề mục vô tình không được ký tên. Một lựa chọn khác, cho phép ArchiverBot lưu trữ đề mục chưa được ký là việc thêm chữ ký biên tập viên vào bình luận cuối cùng trong đề mục.

Bạn có thể thêm chữ ký bị thiếu vào trang thảo luận bằng cách sử dụng các bản mẫu {{thế:unsigned}}, {{thế:unsigned2}}, {{thế:unsigned IP}}, hoặc {{thế:xsign}}. Chỉ bình luận cuối cùng được thêm vào đề mục mới cần thêm chữ ký để ArchiverBot lưu trữ đề mục.

Nếu lịch sử trang thảo luận quá lớn, nó có thể (được chứng minh là) mất nhiều thời gian để tìm kiếm một bình luận cụ thể được thêm khi nào. WikiBlame sẽ giảm thiểu thời gian tìm kiếm ai đã thêm bình luận chưa được ký tên.

Đầu ra bản mẫu

[sửa | sửa mã nguồn]

Khi tham số |key= được cung cấp, đầu ra duy nhất của bản mẫu là việc xếp thể loại vào Thể loại:Trang được lưu trữ sử dụng chìa khóa. Nếu không, bản mẫu sẽ trả đầu ra là một thẻ tự đóng duy nhất <nowiki />. Đây là một kỹ thuật, nhằm tạo sự thuận tiện hơn trong việc chống lại sự cố khoảng trắng dọc có thể xảy ra.

Nguyên nhân không thể lưu trữ được

[sửa | sửa mã nguồn]

Một số nguyên nhân có thể khiến cho một trang không lưu trữ được:

  • |archive= không chỉ định trang con của trang cần được lưu trữ. Điều này có thể xảy ra chẳng hạn do trang đã được di chuyển sang trang khác mà tham số cần được cập nhật.
  • Bot lưu trữ không chạy. Việc lưu trữ thường chạy một lần mỗi ngày. Xem hoạt động mới nhất tại Đặc biệt:Đóng góp/ArchiverBot.
  • Một trong những đề mục cần được lưu trữ có liên kết ngoài trùng với danh sách trong MediaWiki:Spam-blacklist hoặc meta:Spam blacklist. Không có nội dung nào sẽ được lưu trữ. Lưu trữ thủ công cũng sẽ thất bại vì các liên kết thuộc danh sách đen không thể lưu được. Chúng có thể được tắt đi bằng <nowiki>...</nowiki>.
  • |minthreadstoarchive= lớn hơn số lượng đề mục chuẩn bị được lưu trữ.
  • |minthreadsleft= hiện quá lớn để cho phép lưu trữ trang.
  • |algo=old(...) hiện quá dài để cho phép lưu trữ trang.
  • Bản mẫu chỉ dẫn lưu trữ không được đặt ở đâu đó trước tiêu đề của đề mục đầu tiên.
  • Bản mẫu chỉ dẫn lưu trữ được đặt trong mã nguồn của một bản mẫu khác.
  • Các tham số không được sắp xếp đúng một tham số một dòng.
  • Nếu một số đề mục được lưu trữ mà các đề mục khác thì không thì chúng có thể không có chữ ký với dấu thời gian hợp lệ. Vui lòng xem đề mục #Thiếu chữ ký bên trên.
  • Nếu tiêu đề trang thảo luận của bạn chứa các ký tự chấm câu nhất định ("&'). Vui lòng xem en:Help:Archiving a talk page#FULLPAGENAME để biết được lời giải thích và giải pháp.