ব্যবহারকারী:Syedsadi387681/পুনঃনামকরণ২.js
লক্ষ্য করুন: প্রকাশ করার পর, পরিবর্তনগুলো দেখতে আপনাকে আপনার ব্রাউজারের ক্যাশে পরিষ্কার করার প্রয়োজন হতে পারে।
- ফায়ারফক্স / সাফারি: পুনরায় লোড-এ ক্লিক করার সময় শিফট টিপে ধরে রাখুন, অথবা হয় Ctrl-F5 বা Ctrl-R টিপুন (ম্যাকে ⌘-R টিপুন)
- গুগল ক্রোম: Ctrl-Shift-R (ম্যাকে ⌘-Shift-R) টিপুন
- এজ: Ctrl ধরে রাখা অবস্থায় Refresh-এ ক্লিক করুন, অথবা Ctrl-F5 টিপুন।
- অপেরা: Ctrl-F5 টিপুন।
/*
This is userscirpt is usefull for Mass pages Move.
@Author [[User:Jayprakash12345]]
@Author from [[User:Legoktm/massrename.js]]
@OwnBy [[meta:Indic-TechCom]]
*/
$( document ).ready( function() {
function init() {
$('#mw-content-text > p').remove();
$('#firstHeading').text('গণস্থানান্তরকারী');
var listofPages = new OO.ui.MultilineTextInputWidget( {
placeholder: 'পাতার তালিকা',
autosize: true,
rows: 10
} ),
findInput = new OO.ui.TextInputWidget( {
placeholder: 'অনুসন্ধান'
} );
replaceInput = new OO.ui.TextInputWidget( {
placeholder: 'প্রতিস্থাপন'
} ),
reasonInput = new OO.ui.TextInputWidget( {
placeholder: 'কারণ'
} ),
treatAsRegex = new OO.ui.FieldLayout(
treatAsRegexInside = new OO.ui.CheckboxInputWidget( {
selected: false
} ), {
label: 'অনুসন্ধান বাক্যকে রেগুলার এক্সপ্রেশন হিসেবে গণ্য করুন',
align: 'inline'
} ),
notleaveRedirect = '',
moveStart = new OO.ui.ButtonWidget( {
label: 'স্থানান্তর শুরু করুন',
icon: 'alert',
flags: [ 'primary', 'progressive' ]
} ),
cancelBtn = new OO.ui.ButtonWidget( {
label: 'বাতিল',
flags: [ 'primary', 'destructive' ],
href: 'https:' + mw.config.get( 'wgServer' )
} ),
moveLogHeading = $("<div>").hide();
label1 = $('<p>').text('পাতার তালিকা:').css('font-weight','bold' );
label2 = $('<p>').text('অনুসন্ধান:').css('font-weight','bold' );
label3 = $('<p>').text('প্রতিস্থাপন:').css('font-weight','bold' );
label4 = $('<p>').text('কারণ:').css('font-weight','bold' );
if ( $.inArray( 'sysop', mw.config.get('wgUserGroups') ) !== -1 ) {
notleaveRedirect = new OO.ui.FieldLayout(
notleaveRedirectInside = new OO.ui.CheckboxInputWidget( {
selected: false
} ), {
label: 'পুনর্নির্দেশ রেখে দিবেন না (সতর্ক হোন)',
align: 'inline'
} );
}
$( '#mw-content-text' ).append(
label1, listofPages.$element,
label2, findInput.$element,
label3, replaceInput.$element,
label4, reasonInput.$element,
treatAsRegex.$element,
notleaveRedirect.$element,
'<br/>',
moveStart.$element,
cancelBtn.$element,
'<br/>',
moveLogHeading
);
// Thanks [[User:Legoktm]], Stolen from [[User:Legoktm/massrename.js]]
function rename_file( old, newname, reason, noRedirect, callback ) {
( new mw.Api() ).postWithToken ( 'csrf', {
action: 'move',
from: old,
to: newname,
reason: reason,
movetalk: 1,
noredirect: noRedirect
}, {
async: false // Don't run parallel requests, be nice to sever kittens!
})
.done( callback )
.fail( callback );
}
function escapeRegExp(str) {
// From MDN
return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
}
function missingAlertMsg ( str ) {
return alert( " " + str + " পাওয়া যায়নি :(" );
}
function responeHanddler( data ) {
var orderedList = $("<ul>").appendTo( moveLogHeading );
/*
// If source page is not exist
if ( data === "missingtitle") {
orderedList.append( "<li><b>" + pageToMoveByMassMover + "</b> পাতাটি পাওয়া যায়নি। </li>" );
}
// If old name and new name are same
if ( data === "selfmove") {
orderedList.append( "<li><b>" + pageToMoveByMassMover + "</b> কোন পরিবর্তন করা হয়নি। </li>" );
}
*/
if( data.move ) {
orderedList.append( "<li><b>" + data.move.from + "</b> কে <b>" + data.move.to + "</b> শিরোনামে স্থানান্তর করা হয়েছে।</li>" );
}
}
moveStart.on( 'click', function() {
pagesList = listofPages.getValue().replace(/^\s*[\r\n]/gm, '').split("\n");
var find = findInput.getValue().trim();
var replace = replaceInput.getValue().trim();
var reason = reasonInput.getValue().trim() + "";
var noRedirect = false;
var AsRegex = treatAsRegexInside.isSelected();
if( pagesList[0].trim() !== "" && find !== "" && replace !== "" ) {
moveLogHeading.empty();
$("<h1>").wrapInner( "<span class='mw-headline'>স্থানান্তর লগ</span>").appendTo( moveLogHeading );
moveLogHeading.show();
} else {
missingAlertMsg( "কোন উৎস পাতা" );
return;
}
if ( find === "" ) {
missingAlertMsg( "\'অনুসন্ধান\' স্ট্রিং" );
return;
}
if ( replace === "" ) {
missingAlertMsg( "প্রতিস্থাপন স্ট্রিং" );
return;
}
if ( $.inArray( 'sysop', mw.config.get('wgUserGroups') ) !== -1 ) {
noRedirect = notleaveRedirectInside.isSelected();
}
pagesList.forEach( function(page){
// Lengthy name to aviod override in the global variable
window.pageToMoveByMassMover = page.trim();
// Simple find/replace without Regex
if ( !AsRegex ) {
find = escapeRegExp(find);
newPagename = pageToMoveByMassMover.replace( find, replace );
rename_file( pageToMoveByMassMover, newPagename, reason, noRedirect, responeHanddler );
}
// Find/replace with Regex
else {
// Check whether the Regex is correct or not
try {
find = new RegExp( find, 'gi' );
} catch (e) {
alert( "রিজেক্স ত্রুটি: " + e );
// Hack to break the loop
pagesList.length = 0;
return;
}
newPagename = pageToMoveByMassMover.replace( find, replace );
rename_file( pageToMoveByMassMover, newPagename, reason, noRedirect, responeHanddler);
}
});
});
}
// On every page
$.when(mw.loader.using('mediawiki.util'), $.ready).then(function () {
mw.util.addPortletLink(
'p-tb',
mw.util.getUrl('Special:BlankPage/MassMover'),
'গণস্থানান্তরকারী'
);
});
if ( mw.config.get('wgCanonicalSpecialPageName') === 'Blankpage' && mw.config.get('wgTitle').split('/', 2)[1] === 'MassMover' ) {
$.when(mw.loader.using('oojs-ui-core'), $.ready).then(function () {
init();
});
}
});