Thành viên:NgocAnMaster/LinkReport.js
/** <nowiki> * Công cụ hỗ trợ báo cáo liên kết spam. * Cài đặt: Thêm dòng dưới đây vào trang common.js của bạn: * mw.loader.load('/wiki/User:NgocAnMaster/LinkReport.js?action=raw&ctype=text/javascript'); * * Danh sách người sử dụng: //w.wiki/4rX3 * Giấy phép: CC BY-SA 3.0**//* jshint esversion: 6, maxerr: 9999 *//* globals $, mw */mw.loader.using('jquery.ui').then(function() {if (mw.config.get('wgDBname') !== 'viwiki') {return; // Đề phòng có người cài vào global.js}mw.util.addPortletLink('p-cactions', '', 'LR','ca-linkreport', 'Hỗ trợ xử lý liên kết rác');var ad = ' ([[User:NgocAnMaster/LinkReport.js|LinkReport]])'; // Quảng bávar notify = function(content, title, type) {mw.notify(content, {type, title,tag: 'linkreport',autoHide: true,autoHideSeconds: 5});};$('#ca-linkreport').click(function(e) {e.preventDefault();var css = `#linkreport input {flex-grow: 2;padding: 0.5em;-webkit-transition: border-color 100ms, box-shadow 100ms;transition: border-color 100ms, box-shadow 100ms;}#linkreport input:focus, #linkreport input:active {outline: 0;border-color: #3366CC;box-shadow: inset 0 0 0 1px #3366CC;}#linkreport {display: flex;flex-direction: column;}.linkreport-fieldset {display: flex;flex-direction: column;}.linkreport-fieldset > * {margin: 0.75em 0.3em 0;}.linkreport-labels {display: block;align-self: flex-start;font-size: 1.25em;}#linkreport-links {display: flex;flex-direction: column;gap: 0.3em;}.linkreport-link-lines {display: flex;gap: 0.3em;}.linkreport-link {flex-grow: 10 !important;}.linkreport-remove {margin: 0 !important;}#linkreport-button {display: flex;flex-direction: row-reverse;}`; // :focus/:active copied from OO.UI core.try {mw.util.addCSS(css);} catch (ignore) {mw.loader.addStyleTag(css);}var $line = $('<div>').attr('class', 'linkreport-link-lines').append($('<input>').attr({'type': 'text','class': 'linkreport-link','placeholder': 'Liên kết'}),$('<input>').attr({'type': 'text','class': 'linkreport-user','placeholder': 'Người dùng'}),$('<button>').attr('class', 'linkreport-remove').text('Xoá').button());$('<div>').attr('id', 'linkreport').append($('<div>').attr('class', 'linkreport-fieldset').append($('<label>').attr({'for': 'linkreport-links','class': 'linkreport-labels'}).text('Liên kết cần báo cáo:'),$('<div>').attr('id', 'linkreport-links').append($line.clone()),$('<div>').attr('id', 'linkreport-button').append($('<button>').attr('id', 'linkreport-add').text('Dòng mới').button())),$('<div>').attr('class', 'linkreport-fieldset').append($('<label>').attr({'for': 'linkreport-note','class': 'linkreport-labels'}).text('Ghi chú (tuỳ chọn):'),$('<input>').attr({'type': 'text','id': 'linkreport-note'}))).appendTo(document.body);$('#linkreport').dialog({autoOpen: true,width: 500,minWidth: 500,height: 400,minHeight: 400,title: 'LinkReport.js',buttons: [{text: 'Báo cáo',click: function() {var note = $('#linkreport-note').val().trim();var links = new Map();$('.linkreport-link-lines').each(function() {var link = $(this).find('.linkreport-link').val();var user = $(this).find('.linkreport-user').val();if (link.length > 5 && !links.has(link)) {links.set(link, user);}});if (links.size) {$('#linkreport').dialog('destroy').remove();notify('Đang gửi báo cáo...');(new mw.Api()).postWithToken('csrf', {action: 'edit',title: 'Wikipedia:Tin nhắn cho bảo quản viên',nocreate: true,appendtext: ['', '','== Báo cáo liên kết rác ==',[...links].map(([link, user]) => `* {{BlockedExternalDomainsReport|${user ? `${link}|user=${user}` : link}}}`).join('\n'),'',`${note}${note.endsWith('.') ? ' ~~~~' : note ? '. ~~~~' : '~~~~'}`].join('\n'),summary: 'Báo cáo liên kết rác.' + ad,format: 'json',formatversion: 2}).done(function() {notify('Đã báo cáo lên Tin nhắn cho bảo quan viên. Vui lòng kiểm tra lại nếu cần thiết, và cân nhắc xem thêm các yêu cầu tại trang Wikipedia:Yêu cầu thay đổi danh sách đen về spam.','Báo cáo thành công', 'success');}).fail(function(error, response) {notify(`${error}: ${response.error.info}`,`Có lỗi xảy ra`, 'error');});} else {notify('Bạn không nhập liên kết hoặc không có liên kết nào dài hơn 5 ký tự.','Báo cáo thất bại', 'warn');}}}]});$('#linkreport').on('click', '.linkreport-remove', function() {$(this).parent().remove();});$('#linkreport-add').click(function() {$('#linkreport-links').append($line.clone());});});});// </nowiki>
🔥 Top keywords: Đài Truyền hình Kỹ thuật số VTCTrang ChínhGiỗ Tổ Hùng VươngTrương Mỹ LanĐặc biệt:Tìm kiếmHùng VươngVương Đình HuệUEFA Champions LeagueKuwaitChiến dịch Điện Biên PhủFacebookĐài Truyền hình Việt NamTrần Cẩm TúĐội tuyển bóng đá quốc gia KuwaitGoogle DịchViệt NamCúp bóng đá U-23 châu ÁCúp bóng đá U-23 châu Á 2024Real Madrid CFBảng xếp hạng bóng đá nam FIFACleopatra VIITô LâmTim CookNguyễn Phú TrọngHồ Chí MinhHai Bà TrưngManchester City F.C.VnExpressChủ tịch nước Cộng hòa xã hội chủ nghĩa Việt NamNguyễn Ngọc ThắngĐền HùngCúp bóng đá trong nhà châu Á 2024Võ Văn ThưởngOne PieceLịch sử Việt NamCuộc đua xe đạp toàn quốc tranh Cúp truyền hình Thành phố Hồ Chí Minh 2024Phạm Minh ChínhTikTokĐinh Tiên Hoàng