nguoidungkhongdinhdanh/Script-Imageres.js

Trang này không có sẵn trong ngôn ngữ khác.

/**   * Ghi công: [[:en:User:Alex 21/script-imageres.js]]  * Cách cài đặt: Thêm dòng dưới đây vào trang common.js của bạn:  mw.loader.load('/w/index.php?title=User:NguoiDungKhongDinhDanh/script-imageres.js&action=raw&ctype=text/javascript');   * Lưu ý: Khi script đang chạy, đừng đóng thẻ hay tải lại trang.  **/  /* jshint esversion: 6, maxerr: 9999, undef: true, unused: true, quotmark: single */ /* globals $, mw */  $(function() { var namespace = mw.config.get('wgNamespaceNumber'); var database = mw.config.get('wgDBname');  if (namespace !== 6 || database !== 'viwiki') { return; }  var pageName = mw.config.get('wgPageName'); var title = mw.config.get('wgTitle'); var groups = mw.config.get('wgUserGroups');  var api = new mw.Api(); var ad = ' ([[User:NguoiDungKhongDinhDanh/script-imageres.js|Imageres]])'; var isAdmin = groups.includes('eliminator') || groups.includes('sysop'); var maxPixels = 200000;  var templates = [ 'Tập tin không tự do cần giảm độ phân giải', 'Giảm tập tin không tự do', 'Giảm không tự do', 'Non-free reduce' // 'Tập tin không tự do có phiên bản cũ', // 'Tập tin có phiên bản cũ không tự do', // 'Orphaned non-free revisions', // 'Orfurrev' ]; var tempRegExp = function(t = templates) { var aliases = t.map( e => `[${e[0]}${e[0].toLowerCase()}]${e.slice(1).replace(/ /g, '[_ ]+')}` ).concat((function() { var a = ['thành viên', 'user'].map( e => [...e].map(f => f.trim() ? `[${f.toUpperCase()}${f}]` : '[_ ]+').join('') ).join('|'); return `(?:${a})\s*:\s*[Ll]RBot/resize`; })()).join('|'); return new RegExp(`\\{\\{\s*(?:${aliases})\s*(?:\\|[^}]*)?\\}\\}`, 'g'); };  function format(x) { return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.'); } function notify(content, tag, autoHide = true, type = null) { mw.notify(content, { type: type, autoHide: autoHide, autoHideSeconds: 10, tag: `imageres-${tag}` }); } function fail(response, tag) { notify(`Tác vụ thất bại. Lỗi API: ${response.error.info}`, tag, true, 'warn'); }  function reupload(newImageLink) { notify('Đang tải lên...', 'uploading', false);  api.postWithToken('csrf', { action: 'upload', filename: title, comment: 'Giảm kích thước xuống mức nhỏ hơn 0.2 MP theo [[WP:IMAGERES|quy định]].' + ad, ignorewarnings: true, url: newImageLink, format: 'json', formatversion: 2 }).done(function() { notify('Tải lên thành công.', 'uploading', true, 'success');  if (isAdmin) { revdel(); } else { tempmodify(); } }).fail(function(error, response) { fail(response, 'uploading'); }); } function revdel() { notify('Đang tiến hành xoá phiên bản cũ của tập tin...', 'revdeling', false);  api.get({ action: 'query', titles: pageName, prop: ['imageinfo'], iiprop: ['timestamp', 'archivename'], iilimit: 500, iilocalonly: true, format: 'json', formatversion: 2 }).done(function(response) { var ids = response.query.pages[0].imageinfo.reduce( (p, c) => (!c.archivename || p.push(c.archivename.split('!')[0])) && p, [] );  if (!ids.length) { notify('Không có phiên bản cũ.', 'revdeling', true, 'warn'); return; }  api.postWithToken('csrf', { action: 'revisiondelete', type: 'oldimage', target: pageName, ids: ids, hide: ['content'], reason: 'Nội dung không tự do không được sử dụng.' + ad, format: 'json', formatversion: 2 }).done(function() { notify('Xoá thành công.', 'revdeling', true, 'success'); tempmodify(); }).fail(function(error, response) { fail(response, 'revdeling'); }); }).fail(function(error, response) { notify(`Truy vấn thông tin thất bại. Lỗi API: ${response.error.info}`, 'gen', true, 'warn'); }); } function tempmodify() { notify('Đang thêm/gỡ bản mẫu...', 'tempremoving', false);  api.get({ action: 'query', titles: [pageName], prop: ['revisions'], rvprop: ['content'], rvslots: ['main'], rvlimit: 1, format: 'json', formatversion: 2 }).done(function(response) { var text = response.query.pages[0].revisions[0].slots.main.content; var newText = text.replace(tempRegExp(), '');  var regexp = tempRegExp([ 'Tập tin không tự do có phiên bản cũ', 'Tập tin có phiên bản cũ không tự do', 'Orphaned non-free revisions', 'Orfurrev' ]);  if (!isAdmin && !regexp.test(newText)) { newText = '{{Tập tin không tự do có phiên bản cũ}}\n\n' + newText; } else if (isAdmin) { newText = newText.replace(regexp, ''); }  if (text === newText) { notify('Không tìm thấy bản mẫu.', 'tempremoving', true); return; }  api.postWithToken('csrf', { action: 'edit', title: pageName, text: newText.replace(/(?:\n\s*){3,}/g, '').trim(), summary: 'Đã giảm độ phân giải/đã xoá bản mẫu.' + ad, minor: true, nocreate: true, format: 'json', formatversion: 2 }).done(function() { notify('Đã thêm/gỡ bản mẫu.', 'tempremoving', true, 'success'); }).fail(function(error, response) { fail(response, 'tempremoving'); }); }).fail(function(error, response) { fail(response, 'tempremoving'); }); }  $('.fileInfo').ready(function() { var $fileInfo = $('.fileInfo');  if (!$fileInfo) { return; }  var hw = $fileInfo.html().match(/([\d\.]+)×([\d\.]+)/);  var width = parseInt(hw[1].replace(/\./g, '')); var height = parseInt(hw[2].replace(/\./g, '')); var pixels = height * width;  var newWidth = Math.floor(Math.sqrt(maxPixels * width / height)); var newHeight = Math.round(height * newWidth / width); var newPixels;  while ((newPixels = newWidth * newHeight) > maxPixels) { --newWidth; newHeight = Math.round(height * newWidth / width); }  var tagStart = `${pixels > maxPixels ? 'red' : 'green'};">`; var tagEnd = '';  $fileInfo.html( $fileInfo.html().replace( /([\d\.]+)×([\d\.]+)/, `${width} × ${height} = ${tagStart}${format(pixels)}${tagEnd}` ) );  $('.internal').text($('.internal').text().replace(/_/g, ' '));  var imageLink = $('.internal').first().attr('href'); var newImageLink = `https:${ imageLink.replace('/vi/', '/vi/thumb/') }/${newWidth}px-${imageLink.match(/(?<=\/)[^\/]+$/)[0]}`;  var placeholder = ( $('#mw-imagepage-reupload-link > a').attr('href') + '&wpUploadDescription=Giảm độ phân giải xuống mức nhỏ hơn 0.2 MP theo [[User:LRBot|quy định]].' );  $fileInfo.html( $fileInfo.html() + '
'
+ '
' + 'Độ phân giải tối đa: ' + `${tagStart}${newWidth} × ${newHeight}${tagEnd} = ${format(newPixels)} điểm ảnh ${ pixels <= maxPixels ? '' : ( `(${newImageLink}">hình đã giảm) ` + `(${placeholder}">tải lên lại) ` ) }${ isAdmin ? '(xoá bản cũ) ' : '' }` + '(gỡ bản mẫu)' + '
'
); $('.imageres-links').click(function(e) { e.preventDefault(); $(this).parent().remove(); }); $('#imageres-upload').click(function() { reupload(newImageLink); }); $('#imageres-revdel').click(revdel); $('#imageres-temprm').click(tempmodify); }); }); //

Tags:

Trợ giúp:Xóa bộ nhớ đệm

🔥 Trending searches on Wiki Tiếng Việt:

Nho giáoChâu Đại DươngAhn Hyo-seopTrần PhúPhạm Xuân ThệTwitterMao Trạch ĐôngChiến tranh biên giới Việt Nam – CampuchiaGia Cát LượngTriệu Lộ TưTruyện KiềuPhú YênLiên XôRessha Sentai ToQgerHọc viện An ninh nhân dânDanh sách nhân vật trong One PieceTuyên ngôn độc lập (Việt Nam Dân chủ Cộng hòa)ĐứcDuy TânLê Trọng TấnKhủng longPháp thuộcCách mạng Tháng TámĐài Á Châu Tự DoTrường Nguyệt Tẫn MinhMùi cỏ cháyParis Saint-Germain F.C.Đinh Văn NơiĐỗ Nhật HàBDSMLê Đức AnhTrang ChínhĐạo Cao ĐàiBảng chữ cái tiếng AnhYouTubeChữ HánSudanTiếng AnhHoa hậu Hòa bình Thái Lan 2022Nguyễn Văn LinhBộ Tổng tham mưu Quân đội nhân dân Việt NamAstro (nhóm nhạc)Ninh ThuậnNam SudanUEFA Champions LeagueLịch sử Sài Gòn – Thành phố Hồ Chí MinhNhà thờ chính tòa Đức Bà Sài GònNhà Tây SơnViệt Nam Quốc dân ĐảngQuang SựTrần Đại NghĩaViệt NamNha TrangGoogleBến TreTrần Kim TuyếnChiến tranh Nguyên Mông – Đại ViệtThang DuyChiến dịch Mùa Xuân 1975Công NguyênKhởi nghĩa Hai Bà TrưngNông Đức MạnhHàn Mặc TửĐường cao tốc Cầu Giẽ – Ninh BìnhQuân đoàn 1, Quân đội nhân dân Việt NamHồng KôngFansipanCác ngày nghỉ lễ ở Hàn QuốcTottenham Hotspur F.C.Nhà giả kim (tiểu thuyết)Nhà ThanhVịnh Hạ LongPhạm Ngọc ThảoHỏa phụng liêu nguyênGKhổng Tử🡆 More