ব্যবহারকারী:Tanvir 360/wordReplace.js
লক্ষ্য করুন: প্রকাশ করার পর, পরিবর্তনগুলো দেখতে আপনাকে আপনার ব্রাউজারের ক্যাশে পরিষ্কার করার প্রয়োজন হতে পারে।
- ফায়ারফক্স / সাফারি: পুনরায় লোড-এ ক্লিক করার সময় শিফট টিপে ধরে রাখুন, অথবা হয় Ctrl-F5 বা Ctrl-R টিপুন (ম্যাকে ⌘-R টিপুন)
- গুগল ক্রোম: Ctrl-Shift-R (ম্যাকে ⌘-Shift-R) টিপুন
- ইন্টারনেট এক্সপ্লোরার / এজ: Ctrl ধরে রাখা অবস্থায় Refresh-এ ক্লিক করুন, অথবা Ctrl-F5 টিপুন
- অপেরা: Ctrl-F5 টিপুন।
// Check if the namespace is appropriate for the script to run
if ([0, 2, 4, 118].includes(mw.config.get("wgNamespaceNumber"))) {
(function() {
'use strict';
// Function to toggle word replacement panel visibility
function toggleReplacePanel() {
var panel = document.getElementById('word-replace-panel');
if (panel.style.display === 'none') {
panel.style.display = 'block';
} else {
panel.style.display = 'none';
}
}
// Button to display word replacement panel
jQuery(function () {
mw.loader.using(['mediawiki.util'], function () {
if ($.inArray(mw.config.get('wgAction'), ['edit', 'view', 'submit', 'historysubmit', 'purge']) !== -1) {
$(mw.util.addPortletLink('p-tb', '#', '🔄 শব্দ পরিবর্তন', 't-word-count', 'শব্দ পরিবর্তন করুন'))
.click(toggleReplacePanel);
}
});
});
// 'div' for word replacement panel
var panel = document.createElement('div');
panel.id = 'word-replace-panel';
panel.style.display = 'none';
panel.style.position = 'fixed';
panel.style.bottom = '50px';
panel.style.right = '20px';
panel.style.zIndex = '9999';
panel.style.background = 'white';
panel.style.padding = '10px';
panel.style.border = '1px solid #ccc';
panel.style.borderRadius = '5px';
// Input fields and buttons for word replacement
var oldWordInput = document.createElement('input');
oldWordInput.placeholder = 'পুরানো শব্দ';
panel.appendChild(oldWordInput);
var newWordInput = document.createElement('input');
newWordInput.placeholder = 'নতুন শব্দ';
panel.appendChild(newWordInput);
var summaryInput = document.createElement('input');
summaryInput.placeholder = 'সম্পাদনার সারাংশ';
summaryInput.value = 'সংশোধন'; // Default value
panel.appendChild(summaryInput);
var replaceButton = document.createElement('button');
replaceButton.innerHTML = 'পরিবর্তন করুন';
replaceButton.style.marginRight = '5px';
replaceButton.addEventListener('click', replaceWords);
panel.appendChild(replaceButton);
var closeButton = document.createElement('button');
closeButton.innerHTML = 'বন্ধ করুন';
closeButton.addEventListener('click', function() {
panel.style.display = 'none';
});
panel.appendChild(closeButton);
document.body.appendChild(panel);
// Function to replace words or remove words
function replaceWords() {
var api = new mw.Api(); // Create the API object here
var oldWord = oldWordInput.value.trim();
var newWord = newWordInput.value.trim();
var pagename = mw.config.get("wgPageName");
// Check if replacement has already been applied
if (localStorage.getItem('replacementApplied') === 'true') {
alert('পুরানো শব্দ পরিবর্তন ইতিমধ্যে প্রয়োগ করা হয়েছে।');
return;
}
// Function to get revision content
api.get({
action: "query",
prop: "revisions",
titles: pagename,
rvprop: "content",
format: "json",
})
.then(function (data) {
var revision = data.query.pages[Object.keys(data.query.pages)[0]];
var text = revision.revisions[0]["*"];
if (oldWord === '') {
alert('পুরানো শব্দ অবশ্যই পূরণ করতে হবে');
return;
}
if (newWord === '---') {
// Remove the old word from the text
var replacedText = removeWord(text, oldWord);
} else {
// Replace the old word with the new word
if (newWord === '') {
alert('নতুন শব্দ অবশ্যই পূরণ করতে হবে');
return;
}
var replacedText = replaceText(text, oldWord, newWord);
}
// Function to apply the replaced text to the page
if (replacedText !== text) {
// Store replaced text and summary in local storage
localStorage.setItem('replacedText', replacedText);
localStorage.setItem('summary', summaryInput.value.trim());
localStorage.setItem('pageTitle', pagename); // Store the current page title
localStorage.setItem('replacementApplied', 'true'); // Set flag indicating replacement has been applied
// Redirect to the edit page
var editPageURL = 'https://bn.m.wikipedia.org/w/index.php?title=' + encodeURIComponent(pagename) + '&action=submit#editform';
window.location.href = editPageURL;
} else {
alert("পুরানো শব্দ পাওয়া যায়নি");
}
})
.fail(function (error) {
console.error('Error fetching page content: ', error);
});
}
// Function to replace text
function replaceText(text, oldWord, newWord) {
// Perform the replacement
var replacedText = text.split(oldWord).join(newWord);
return replacedText;
}
// Function to remove a word or symbol
function removeWord(text, wordToRemove) {
// Escape special characters in the word to be removed
var escapedWord = wordToRemove.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
// Function to Remove all occurrences of the word or symbol including surrounding spaces
var regex = new RegExp(escapedWord + '\\s*', 'g');
var replacedText = text.replace(regex, '');
return replacedText;
}
})();
}
// Check if the edit page script should run
if (mw.config.get('wgAction') === 'submit' && localStorage.getItem('replacedText') && localStorage.getItem('pageTitle') === mw.config.get("wgPageName")) {
(function() {
'use strict';
// Function to insert replaced text and summary into the edit textarea
function insertReplacedTextAndSummary() {
var replacedText = localStorage.getItem('replacedText');
var summary = localStorage.getItem('summary');
var editTextarea = document.getElementById('wpTextbox1');
var editSummaryInput = document.getElementById('wpSummary');
if (editTextarea) {
editTextarea.value = replacedText;
}
if (editSummaryInput) {
editSummaryInput.value = summary;
}
// Clear local storage after changes have been applied
localStorage.removeItem('replacedText');
localStorage.removeItem('summary');
localStorage.removeItem('pageTitle');
localStorage.removeItem('replacementApplied');
}
// Insert replaced text and summary when the document is ready
$(document).ready(function() {
insertReplacedTextAndSummary();
});
})();
}