Thành viên:Plantaest/SimpleUpdate
Hệ thống Lập lịch cập nhật
[sửa | sửa mã nguồn]Wikipedia:Lập lịch
[sửa | sửa mã nguồn]- /Wikipedia:Lập lịch
- /Lập lịch Bài viết chọn lọc/2020: Ánh xạ số ngày với tiêu đề tương ứng
- /Lập lịch Bài viết chọn lọc/2021
- Mô đun:Hiển thị Lập lịch theo tuần, Bản mẫu:Hiển thị Lập lịch theo tuần
- Mô đun:Mẫu Lập lịch theo tuần, Bản mẫu:Mẫu Lập lịch theo tuần
- Chuyển nội dung của Bản mẫu:Mẫu Lập lịch theo tuần vào Mô đun:Mẫu Lập lịch theo tuần
{{subst:Mẫu Lập lịch theo tuần}}
- /Wikipedia:Lập lịch Bài viết chọn lọc
- Hỗ trợ dấu
"
và''
trong tên bài ở trang Lập lịch
Wikipedia:Đầu bài
[sửa | sửa mã nguồn]- /Wikipedia:Đầu bài
- /Đầu bài Bài viết chọn lọc
- Mô đun:Danh sách Đầu bài
- /Đầu bài Bài viết chọn lọc/Mật mã Caesar: Lưu trữ đầu bài của bài viết tương ứng
- Viết bot bổ sung dữ liệu cho trang Đầu bài
Hiển thị ở Trang Chính
[sửa | sửa mã nguồn]- /Trang Chính/Bài viết chọn lọc: Nhúng đầu bài
- Bản mẫu:Hình Trang Chính
Hiển thị ở trang lưu trữ theo năm
[sửa | sửa mã nguồn]- /Wikipedia:Bài viết chọn lọc/2020: Hiển thị danh sách BVCL trong một năm (ngày 28/12 luôn là ngày nằm trong tuần cuối cùng của năm)
Hiển thị ở trang lưu trữ theo tháng
[sửa | sửa mã nguồn]Hiển thị ở trang lưu trữ theo tuần
[sửa | sửa mã nguồn]- /Wikipedia:Bài viết chọn lọc/2020/Tuần 51: Tính đúng giá trị ngày tháng theo số thứ tự ngày đã cho.
Khác
[sửa | sửa mã nguồn]- /Đọc tiếp
- Mô đun:Đọc tiếp
- /Bài của tuần: Trả về đầu bài phù hợp với số thứ tự của tuần. Nếu thứ của ngày 1/1 là thứ 2, 3, 4, 5 thì ngày đó cũng nằm trong tuần đầu tiên của năm; còn nếu là thứ 6, 7, CN thì không nằm trong tuần đầu tiên của năm, ngày đầu tiên của tuần đầu tiên của năm trong trường hợp này tương ứng là 4/1, 3/1, 2/1.
- /Bài theo tuần: Nhận giá trị năm và số thứ tự tuần, trả về số thứ tự theo năm của ngày đầu tiên (thứ 2) thuộc tuần đã cho. Trừ tuần 1 luôn trả về số thứ tự 4 (4/1 luôn nằm trong tuần 1 của năm)
- Các trang sẽ sửa đổi trong tương lai:
- Các trang tương tự các trang trên
- Wikipedia:Bài viết chọn lọc
- Wikipedia:Ứng cử viên bài viết chọn lọc/Quy trình
Hệ thống hiển thị HACL theo tháng
[sửa | sửa mã nguồn]Hệ thống Danh mục động
[sửa | sửa mã nguồn]- Mô đun:Danh mục động: Nên bổ sung thêm khả năng định dạng
- /Danh mục động
- Thành viên:P.T.Đ/Nháp 5
- Thành viên:Plantaest/Danh mục động/styles.css
Bản mẫu thông báo trạng thái biểu quyết, đề cử
[sửa | sửa mã nguồn]- /Đặc tả của Bản mẫu:Status
- Bản mẫu:Status
- Chuyển sang dạng module để xử lý trường hợp Biểu quyết xóa bài, Gia hạn biểu quyết
- Logic chung cho 2 trường hợp (chỉ có mốc tối đa và vừa có mốc tối đa và tối thiểu):
- IF: Nếu mốc hiện tại > mốc tối đa thì hiển thị
[Hạn là (mốc tối đa). Đã hết hạn.]
- ELSE: Nếu mốc hiện tại <= mốc tối đa thì xét:
- IF: Nếu có tham số thời hạn tối thiểu:
- IF: Nếu mốc hiện tại > mốc tối thiểu thì hiển thị
[Đã hết hạn tối thiểu. Hạn tối đa là (mốc tối đa). Còn (đếm ngược) ngày nữa đến hạn tối đa.]
- ELSE: Nếu mốc hiện tại <= mốc tối thiểu thì hiển thị
[Hạn tối thiểu là (mốc tối thiểu). Còn (đếm ngược) ngày nữa đến hạn tối thiểu. Hạn tối đa là (mốc tối đa). Còn (đếm ngược) ngày nữa đến hạn tối đa.]
- IF: Nếu mốc hiện tại > mốc tối thiểu thì hiển thị
- ELSE: Nếu không có tham số thời hạn tối thiểu thì hiển thị:
[Hạn là (mốc tối đa). Còn (đếm ngược) ngày nữa đến hạn.]
- IF: Nếu có tham số thời hạn tối thiểu:
- IF: Nếu mốc hiện tại > mốc tối đa thì hiển thị
- Thành viên:Plantaest/Status/styles.css
- /Status
- /FirstRevision
- Thành viên:P.T.Đ/Nháp 6
Khác
[sửa | sửa mã nguồn]Cú pháp
[sửa | sửa mã nguồn]https://vi.wikipedia.org/w/index.php?title=Wikipedia:%E1%BB%A8ng_c%E1%BB%AD_vi%C3%AAn_b%C3%A0i_vi%E1%BA%BFt_t%E1%BB%91t/P.T.%C4%90/Nh%C3%A1p_6&action=edit&editintro=B%E1%BA%A3n+m%E1%BA%ABu%3AH%C6%B0%E1%BB%9Bng+d%E1%BA%ABn+%C4%91%E1%BB%81+c%E1%BB%AD+b%C3%A0i+vi%E1%BA%BFt+t%E1%BB%91t&preload=B%E1%BA%A3n+m%E1%BA%ABu%3AM%E1%BA%ABu+%C4%91%E1%BB%81+c%E1%BB%AD+b%C3%A0i+vi%E1%BA%BFt+t%E1%BB%91t+2
[{{fullurl:Wikipedia:Ứng cử viên bài viết tốt/{{{1|{{PAGENAME}}}}}|action=edit&editintro={{urlencode:Bản mẫu:Hướng dẫn đề cử bài viết tốt}}&preload={{urlencode:Bản mẫu:Mẫu đề cử bài viết tốt 2}}}} <span title="Nhấn chuột vào đây để tiếp tục việc đề cử. Bạn sẽ nhận được các hướng dẫn tiếp theo.">'''''một lời nhận xét từ bạn.'''''</span>]
- Bản mẫu:Hướng dẫn đề cử bài viết tốt: gắn vào intro
- Bản mẫu:Mẫu đề cử bài viết tốt 2: dán vào textarea
- Bản mẫu:Hướng dẫn đề cử bài viết chọn lọc
- Bản mẫu:Mẫu đề cử bài viết chọn lọc
- Bản mẫu:Afd2
Mã autoclick nút Save của JWB
[sửa | sửa mã nguồn]- Nội dung mã: Thành viên:P.T.Đ/autoclickJWB.js
- JWB
- PetScan
- Compress HTML
- Thành viên:TheFriendlyRobot
- Sửa lỗi Chuyển đổi số không hợp lệ: Xong → Sửa tay các bài còn lại nữa là OK.
Category: Bài có giá trị chuyển đổi không chính xác Sumary: Sửa lỗi [[Thể loại:Bài có giá trị chuyển đổi không chính xác|Chuyển đổi số không hợp lệ]]. Replace: ({{\s*(convert|cvt)\s*\|[^\.\|]*)(\.)([^\.\|]*\|) With: $1,$4 Replace: ({{\s*convert\s*\|[^\.\|]*)(\.)([^\.\|]*)(\.)([^\.\|]*\|) With: $1,$3,$5 Replace: ({{\s*convert\s*\|[^\.\|]*)(\.)([^\.\|]*)(\.)([^\.\|]*)(\.)([^\.\|]*\|) With: $1,$3,$5,$7 // Chembox, Infobox Australian Place... Replace: (\|\s*\b(molarmass|elevation[a-z_]*|urban_pop_[a-z0-9]+|rural_pop_[a-z0-9]+|length\sm|span\sm|wing\sarea\ssqm|g_dist|dist_err|area[a-z_]+imperial|population_density[a-z_]*|height[_m]*|chiều\scao|area|density|meltingptc|melting_point|boilingptc|logp|deltahf|deltahc|entropy|viscosity|heatcapacity|refractindex|magsus)\b[^\.\|]*)(\.)([^\.\|\n\<]*) With: $1,$4 Replace: ({{\s*(height|chiều\scao)\s*\|[^\.]*)(\.)([^\.\|\}]*(\}|\|)) With: $1,$4 Replace: ({{\s*convert\s*\|[^\.\|]*\|(\-|\–|to)\|[^\.\|]*)(\.)([^\.\|]*\|) With: $1,$4 Replace: ({{\s*convert\s*\|[^\.]*\|by\|[^\.\|]*)(\.)([^\.]*)(\.)([^\.\|]*\|) With: $1,$3,$5 Flag: ig
Infobox military conflict
[sửa | sửa mã nguồn]- Mô đun:Infobox military conflict/sandbox > {wrappers = 'Bản mẫu:Thông tin chiến tranh/main'}
- Bản mẫu:Thông tin chiến tranh/main > {{#invoke:Infobox military conflict/sandbox|main}}
- Bản mẫu:Thông tin chiến tranh/sandbox >
{{#invoke: ParameterAliasNormalizer | main | __template = Thông tin chiến tranh/main
Các công việc
[sửa | sửa mã nguồn]- Wikipedia:Chế độ tối → Themer
- Bản mẫu:Status
- Wikipedia:Danh mục động
- Cải tiến hệ thống lập lịch và lưu trữ các thành phần Trang Chính
- Trang Chính mới (Wiki2021)
- Công cụ kiểm tra tính hợp quy của lá phiếu biểu quyết, đề cử → Voter
- Nghiên cứu JWB, xây dựng trang giới thiệu Wikipedia:JavaScript Wiki Browser
- Nghiên cứu Tagger, Twinkle và RedWarn → Faster (/Đặc tả của Faster)
- Công cụ sửa nhanh nội dung bài ở trang diff → Differ
- Công cụ hoàn thành nhanh thủ tục đóng đề cử → Closer
- Bản mẫu Định dạng phân cấp thảo luận (frwiki)
Ưu tiên
[sửa | sửa mã nguồn]- Cải tiến hệ thống lập lịch và lưu trữ các thành phần Trang Chính
- Trang Chính mới (Wiki2021)
- Xây dựng dần: 25/12 → 24/1
- Dứt điểm: 27/1 → 31/1
Khác
[sửa | sửa mã nguồn]- Wikipedia:Thời báo Wikipedia
- Wikipedia:Best Leader of DYK 2020: Nghiên cứu quy trình, tiện ích để thống kê dễ dàng và chính xác hơn.
- Một gadget có 3 chức năng chính. → DYKHelper
- Một là quét từng bản tin BCB để gửi thông báo và tặng đồng tiền tự động cho các thành viên.
- Hai là quét toàn bộ bản tin của một tuần để lưu trữ dữ liệu BCB trong tuần, sinh trang dữ liệu BCB theo tuần.
- Ba là quét toàn bộ các trang dữ liệu BCB theo tuần để lưu trữ dữ liệu BCB của năm.
- Trang chủ Best Leader of DYK sẽ dùng module Lua để trích dữ liệu từ trang dữ liệu BCB của năm để hiển thị thông tin.
- Các bản mẫu đồng tiền sẽ dùng module Lua để trích dữ liệu từ trang dữ liệu BCB của năm để có được thứ tự bài BCB của tác giả trong năm.
- wikitext → JSON (qua JS) → wikitext (qua Lua module)
Linh tinh
[sửa | sửa mã nguồn]Từ dò sửa đổi có thể có hại: hẹo, đông lào, iiiii (5 chữ i)...
Sort
[sửa | sửa mã nguồn]Cần đệ quy để sort chính xác hơn.
Ý tưởng Đoạn tuần (Week Fragment) cho Hệ thống Lập lịch – Đầu bài
[sửa | sửa mã nguồn]- Ý tưởng cũ: Ánh xạ số thứ tự ngày của năm với tên bài. Nhược điểm là không tốt về mặt giao diện và không linh hoạt trong quá trình tăng tần suất.
- Ý tưởng mới: Ánh xạ số thứ tự tuần của năm với mảng tên bài có chỉ thị (directive) quy hoạch tần suất.
Chỉ thị quy hoạch tần suất là một chỉ thị nhằm ánh xạ số ngày xuất hiện trong tuần với phần tử tên bài trong mảng.
Số lượng con số thể hiện số ngày xuất hiện trong tuần == Số lượng phần tử tên bài trong mảng
Ví dụ:
Tần suất | Chỉ thị ví dụ | Cách viết thay thế | Mảng tên bài | Số ngày xuất hiện trong tuần |
---|---|---|---|---|
1 bài/tuần | @7 | – | A | 7 |
2 bài/tuần | @3-4 | – | A
B |
3
4 |
@4-3 | – | A
B |
4
3 | |
3 bài/tuần | @2-2-3 | @2{2}-3 | A
B C |
2
2 3 |
@3-3-1 | @3{2}-1 | A
B C |
3
3 1 | |
4 bài/tuần | @2-2-2-1 | @2{3}-1 | A
B C D |
2
2 2 1 |
5 bài/tuần | @2-2-1-1-1 | @2{2}-1{3} | A
B C D E |
2
2 1 1 1 |
6 bài/tuần | @2-1-1-1-1-1 | @2-1{5} | A
B C D E F |
2
1 1 1 1 1 |
7 bài/tuần | @1-1-1-1-1-1-1 | @1{7} | A
B C D E F G |
1
1 1 1 1 1 1 |
Dạng tổng quát của chỉ thị: @a[-b[-...n]]
với tổng a + b + ... + n = 7
và 1 <= n <= 7
Implementations:
Dự đoán quy trình hoạt động
[sửa | sửa mã nguồn]- Bản mẫu:Wiki2021/Bài viết chọn lọc gọi bản mẫu
{{Wikipedia:Đầu bài Bài viết chọn lọc/<T>}}
với T là tên bài. - T được lấy bằng cách gọi
{{#invoke:TitleFromArray|main|<A>|<D>}}
, trong đó:- A là mảng gồm các tên bài và chỉ thị quy hoạch tần suất.
- D là số thứ tự của ngày trong tuần (number of the day of the week) ở thời điểm hiện tại, được xác định tự động.
- A được lấy bằng cách gọi
{{Wikipedia:Lập lịch Bài viết chọn lọc/<Y>|<W>}}
với W là số thứ tự tuần của năm ở thời điểm hiện tại và Y là năm hiện tại; W và Y được xác định tự động.
→ Xuất được kết quả là Nội dung đầu bài tương ứng với thời điểm hiện tại.
Giải pháp tốt hơn
[sửa | sửa mã nguồn]Thiết lập chỉ thị chung, không lập chỉ thị riêng. Mục đích là giảm lặp mã, giảm rủi ro.
Mã ví dụ:
{{#switch: {{{1}}} | @ = [1-n]@7 | 1 = * Chiến tranh Kim–Tống | 2 = * Schutzstaffel # ''Schutzstaffel'' | 3 = * Song lang (phim) # ''Song lang'' | 4 = * Thú mỏ vịt | 5 = * Hồi hải mã ... | 52 = * Chiến tranh Kim–Tống }}
@
là khóa chứa chỉ thị chung cho tất cả tuần của năm, một số ví dụ về giá trị của @
:
- Áp dụng cho tuần 1 đến tuần cuối:
[1-n]@7
- Áp dụng cho 2 giai đoạn của năm (chuyển từ 1 bài/tuần thành 2 bài/tuần):
[1-20]@7 + [21-n]@3-4
Danh sách tên bài luôn có dấu *
trước tên bài và đặt ở đầu dòng.
Dark Theme
[sửa | sửa mã nguồn]Triển khai thông qua Stylebot. (stylebot_backup.json)
Regex tiêu đề cấp 2 Thảo luận chung
[sửa | sửa mã nguồn]^==[^=]+==
ThemeConsole
[sửa | sửa mã nguồn]- Tối: Thành viên:P.T.Đ/dark-mode.css
- MediThemes
- Xám: Thành viên:P.T.Đ/gray-theme.css
- Be: Thành viên:P.T.Đ/beige-theme.css
- Hồng: Thành viên:P.T.Đ/pink-theme.css
- Xanh lục
- Xanh lam
- Xanh két
- Tím
Tự động chuyển dark-theme theo khoảng thời gian cho trước.
Độ tương phản sau hiệu chỉnh
[sửa | sửa mã nguồn]- Màu chữ: #D2D3D4
- Màu nền: #222222
- Độ tương phản: 10.61:1 (WCAG AA, WCAG AAA)
Triển khai
[sửa | sửa mã nguồn]- MediaWiki:Gadgets-definition
- MediaWiki:Gadget-dark-mode
- MediaWiki:Gadget-dark-mode.css
- Thành_viên:P.T.Đ/dark-mode.js
Snippet
[sửa | sửa mã nguồn]- en:User:SD0001/dark-mode-toggle.js
- mw.user.options.set('gadget-dark-mode', '1');
- mw.user.options.get('gadget-dark-mode')
new mw.Api().saveOption('gadget-dark-mode', inDarkMode ? '0' : '1').then(function() { location.reload(); });
// Kiểm tra trang có tồn tại hay không
new mw.Api().get({
action: "query",
titles: ["Thành viên:P.T.Đ/vector.css"],
}).then(function (ret) {
$.each(ret.query.pages, function () {
if (this.missing !== "") {
console.log('Exist')
} else {
console.log('Not exist')
}
});
}, function (error) {
console.log('Not exist')
});
// Lấy nội dung trang
var api = new mw.Api();
api.get({
action: 'query',
prop: 'revisions',
titles: 'Thành viên:P.T.Đ/common.css',
rvslots: 'main',
rvprop: 'content',
formatversion: '2',
format: 'json'
}).done(function (data) {
console.log(data.query.pages[0].revisions[0].slots.main.content);
});
// Sửa nội dung trang
var params = {
action: 'edit',
title: 'Thành viên:P.T.Đ/common.css',
prependtext: '@import url("https://vi.wikipedia.org/w/index.php?title=Th%C3%A0nh_vi%C3%AAn:P.T.%C4%90/pink-theme.css&action=raw&ctype=text/css");',
format: 'json'
},
api = new mw.Api();
api.postWithToken('csrf', params).done(function (data) {
console.log(data);
});
Vấn đề quy trình của Bản mẫu:Chất lượng kém
[sửa | sửa mã nguồn]Quy trình hiện tại: Gắn bản clk -> Tạo thể loại clk trong thể loại clk ngày tương ứng -> Đợi hơn 7 ngày sau quay lại -> Xóa bài -> Xóa thể loại clk theo ngày
Xóa các trang chào mừng IP của TuanminhBot
[sửa | sửa mã nguồn]- Nguyên nhân xóa: Xem các thảo luận liên quan đến độ sâu (depth) của Wikipedia
- Công thức tính depth: m:Wikipedia article depth
- m:List of Wikipedias
- Truy vấn lấy mẫu 100 trang chào mừng IPv4 của TuanminhBot (chỉ tính các trang có duy nhất 1 sửa đổi):
- Truy vấn lấy tất cả các trang thỏa điều kiện trên: 59180
- Phương pháp xóa: Duyệt qua các tên trang được cung cấp trong tệp kết quả CSV, xóa từng trang bằng phần mềm bot (cần cấp quyền Điều phối viên cho bot).
Dark Mode và {{AN5}}
[sửa | sửa mã nguồn]- AN5 bổ sung class=unfilter cho các hình
- Thêm vào dark-mode.css:
.unfilter { filter: invert(0) !important }
Xong
AfDRedSign
[sửa | sửa mã nguồn]Đánh dấu đỏ các chữ ký của thành viên không thỏa mãn điều kiện cho phiếu của khu vực BQXB.
Twinkle
[sửa | sửa mã nguồn]Linh tinh
[sửa | sửa mã nguồn]- Mô đun:PopulationFromWikidata
- mw:Wikistories
- Wikipedia:Tin nhắn cho bảo quản viên/Lưu 2017 3#Tính chính danh giữa hình ảnh "Bìa sách nguyên tác gốc và bìa sách cấp phép" trên wiki tiếng Việt.
- Thảo luận Thành viên:Ihsikuyr/Lưu 0#Cuộc thi chống phá hoại
- Đặc biệt:Liên_kết_thường_trực/69397858#Hình sao bay
- Lỗi: Khoune
- CodeMirror: phab:T214989
- Mô đun:Date/example:
{{#time:j "tháng" n"," Y|2022-06-14}}
: 14 tháng 6, 2022 insource:/(Module|Mô đun):Date/ - 2402:9D80:0:0:0:0:0:0/32 → 2402:9d80:214:2735:f4fe:4645:c0ce:f10f
- 2401:D800:0:0:0:0:0:0/32
- 2402:800:0:0:0:0:0:0/32
- Di chuyển tên sinh vật: Anonymousn123123, NHS-2004
- fr:Discussion utilisateur:86.107.253.234
- Wikipedia:Ai viết Wikipedia?
- Wikipedia:Sách hướng dẫn/Viết bài
- CSS Modal
- Việc cấm IP, dải IP rộng tạo ra một số trải nghiệm không tốt. Cần nghiên cứu giải pháp để người bị cấm nhận thức thông tin tốt hơn, có phương thức báo cáo, cách nêu lý do gỡ cấm.
- PR
- http://ds.libol.fpt.edu.vn/bitstream/123456789/3716/1/SP23AI08_Report.pdf
- Index of Vietnam Legal Documents
Archive
[sửa | sửa mã nguồn]- Wikipedia:Ứng cử viên bài viết tốt/Nói dối (bài hát) (lần 2)
- Lỗi của IABot: Đã định rõ hơn một tham số trong |tựa đề= và |title=
- archive.org có thể bị chặn, dùng phương án khác như: archive.today, ghostarrchive.org
Lách CT
[sửa | sửa mã nguồn]Tồn đọng
[sửa | sửa mã nguồn]2024
[sửa | sửa mã nguồn]- Đặc biệt:Liên_kết_thường_trực/71399927#Phá hoại: Bot chống phá hoại
- Đặc biệt:Liên_kết_thường_trực/71399927#Wikipedia:Báo lỗi bài viết#Bản mẫu:Navseasoncats
- Đặc biệt:Liên_kết_thường_trực/71399927#TTS tái xuất bằng proxy: Chặn IP proxy/VPN
- Đặc biệt:Liên_kết_thường_trực/71399927#Nhờ vả: Lỗi CS1
- Đặc biệt:Liên_kết_thường_trực/71399927#Re: Cấu hình lại vụ cấm: Sắp xếp bộ lọc
- Đặc biệt:Liên_kết_thường_trực/71399927#[Mô đun:Random slideshow]
- Đặc biệt:Liên_kết_thường_trực/71399927#MediaWiki:Common.css: Icon PDF
- Đặc biệt:Liên_kết_thường_trực/71399927#Usseewa: Bản mẫu Won
- Đặc biệt:Liên_kết_thường_trực/71399927#Đặc biệt:Thẻ: Edit check
- Đặc biệt:Liên_kết_thường_trực/71399927#Tối giản MediaWiki:Common.js: Tối giản Common.js
- Đặc biệt:Liên_kết_thường_trực/71399927#Thảo luận tăng 2: Bot TVPL
- Đặc biệt:Liên_kết_thường_trực/71399927#VPBQ: Twinkle
Tháng 9
[sửa | sửa mã nguồn]- Việc thêm Bản mẫu:Tham khảo/styles.css dẫn đến một số style thừa trong Common.css?
Khác
[sửa | sửa mã nguồn]- Đặc biệt:Liên_kết_thường_trực/56619077#Trong tương lai
- Đặc biệt:Liên_kết_thường_trực/71412040#Lỗi CS1
- Đặc biệt:Liên_kết_thường_trực/71425613#Hỏi về cite web
- Đặc biệt:Liên_kết_thường_trực/71807309#Khảo sát: Việc hướng dẫn người mới
- Đặc biệt:Liên_kết_thường_trực/71825361#Các khía cạnh về Commons: Vấn đề bảo quản Commons
- Đặc biệt:Liên_kết_thường_trực/71849584#Hỏi (nhảm): Termbase và thay thế tên hóa chất
- Đặc biệt:Liên_kết_thường_trực/71855058#Chạy bot sửa chú thích: Vụ Zotero
- Xóa khỏi các bài viết