ব্যবহারকারী:Md.Farhan Mahmud/notice1.js
লক্ষ্য করুন: প্রকাশ করার পর, পরিবর্তনগুলো দেখতে আপনাকে আপনার ব্রাউজারের ক্যাশে পরিষ্কার করার প্রয়োজন হতে পারে।
- ফায়ারফক্স / সাফারি: পুনরায় লোড-এ ক্লিক করার সময় শিফট টিপে ধরে রাখুন, অথবা হয় Ctrl-F5 বা Ctrl-R টিপুন (ম্যাকে ⌘-R টিপুন)
- গুগল ক্রোম: Ctrl-Shift-R (ম্যাকে ⌘-Shift-R) টিপুন
- ইন্টারনেট এক্সপ্লোরার / এজ: Ctrl ধরে রাখা অবস্থায় Refresh-এ ক্লিক করুন, অথবা Ctrl-F5 টিপুন
- অপেরা: Ctrl-F5 টিপুন।
//লেখক:মোহাম্মদ মারুফ
//
(function () {
var alertValue = "আপনি এই পাতায় দ্রুত অপসারণ ট্যাগ যোগ করেছেন এবং যিনি এই পাতাটি তৈরি করেছেন তাকে এই বিজ্ঞপ্তি পাঠানো হয়েছে। এই স্ক্রিপ্টটে কোন সমস্যা পরিলক্ষিত হলে Md.Farhan_Mahmud-এর আলাপ পাতায় বার্তা দিন, ধন্যবাদ!";
if (typeof window.mr === "undefined") {
window.mr = new Object();
}
var This = this.prototype;
This = {
//looking for the page creator
creatorLookOut: function (callbacks) {
var params = {};
var ts = new Morebits.wiki.page(mw.config.get("wgPageName"));
ts.setFollowRedirect(true); // for NPP, and also because redirects are ineligible for PROD
ts.setLookupNonRedirectCreator(true); // Look for author of first non-redirect revision
//console.log("creatorLookOut");
ts.lookupCreation(
function (pageobj) {
params.initialContrib = pageobj.getCreator();
params.creation = pageobj.getCreationTimestamp();
/* pageobj
.getStatusElement()
.info(params.initialContrib + " এই পাতাটি তৈরি করেছেন");*/
callbacks(params);
},
function (pageobj) {
pageobj.getStatusElement().info("কোন প্রণেতা পাওয়া যায়নি");
}
);
},
//choise message
choiseMsg: function (
reason,
creator,
creation,
pagename,
sender,
template,
prefarence
) {
var strObj = {
string: "",
template: template,
reason: reason,
color: "black",
days: 0,
creator: creator,
};
var prefarence = typeof prefarence === "object" && !{} ? prefarence : {};
//console.log("choiseMsg");
if (reason && pagename && creator && creation && sender && template) {
//counting on date
var creationDate = This.countDay(creation);
//if the page is created more than 7 days ago
if (creationDate.days > 7) {
strObj.color = "red";
} else if (creationDate.days > 3) {
strObj.color = "orange";
} else {
strObj.color = "black";
}
//creation day count translation
creationDate.days =
creationDate.days > 0
? '<span style="color:' +
strObj.color +
'">' +
This.translateNumbers(creationDate.days) +
" দিন পূর্বে </span>"
: "দিন"; //if the page is created today
//string operation
var finalStr = `<nowiki>{{subst:টেমপ্লেট:${strObj.template}|reason=${strObj.reason}|page=${pagename}|creator=${strObj.creator}|color=${strObj.color}|days=${creationDate.days}|date=${creationDate.date}|${strObj.string}|sign=~~~~}}</nowiki>`;
return finalStr;
} else {
if (!pagename) {
alertValue = "পাতার নাম পাওয়া যায়নি";
} else if (!creator) {
alertValue = "কোনো প্রণেতা পাওয়া যায়নি";
} else if (!creation) {
alertValue = "পাতা প্রকাশের সময় পাওয়া যায়নি";
} else if (!sender) {
alertValue = "আপনার নাম পাওয়া যায়নি, সম্ভবত আপনি লগ আউট করেছেন";
} else if (!reason) {
alertValue = "ট্যাগ সঠিকভাবে আসেনি";
} else if (!template) {
throw new Error("নোটিশ পাঠানো লেটের নাম উল্লেখ করেননি");
} else {
alertValue = "নোটিশ পাঠানো যায়নি";
}
}
},
//main function to exicute
main: function (
creator,
creation,
sender,
reason,
pagename,
template,
prefarence
) {
//suggestion for the creator
var rawtext = "";
rawtext = This.choiseMsg(
reason,
creator,
creation,
pagename,
sender,
template,
prefarence
)
? This.choiseMsg(
reason,
creator,
creation,
pagename,
sender,
template,
prefarence
)
: "";
//console.log("main");
if (rawtext.trim() !== "") {
//notify user
var notifytext =
"\n\n" + rawtext.replace("<nowiki>", "").replace("</nowiki>", ""),
//edit summary
editsummary =
"[[ব্যবহারকারী:" +
sender +
"|" +
sender +
"]] [[ব্যবহারকারী:Md.Farhan Mahmud/notice.js|নোটিশ]] সরঞ্জামটি ব্যবহার করে [[ব্যবহারকারী:" +
creator +
"|" +
creator +
"]] এর আলাপ পাতায় " +
prefarence.summary;
//sidebar button
//putting user talkpage info here
if (creator) {
var usertalkpage = new Morebits.wiki.page(
"ব্যবহারকারী আলাপ:" + creator,
"মূল অবদানকারীকে জানানো হচ্ছে (" + creator + ")"
);
usertalkpage.setAppendText(notifytext);
usertalkpage.setEditSummary(editsummary);
//usertalkpage.setChangeTags("twinkle"); //বার্তাপ্রদান
usertalkpage.setCreateOption("recreate");
usertalkpage.setWatchlist("1 month");
usertalkpage.setFollowRedirect(true, false);
usertalkpage.append(
function onNotifySuccess() {
// add this nomination to the user's userspace log, if the user has enabled it
/* if (params.lognomination) {
Twinkle.speedy.callbacks.user.addToLog(params, initialContrib);
} */ // যদি কোনোদিন টুইংকেল আসে তাহলে এটা আবার চালু করতে হবে
alertValue = "সফলভাবে নোটিশ পাঠানো হয়েছে";
},
function onNotifyError() {
/* // if user could not be notified, log nomination without mentioning that notification was sent
if (params.lognomination) {
var usl = new Morebits.userspaceLogger(
Twinkle.getPref("speedyLogPageName")
);
} */ // যদি কোনোদিন টুইংকেল আসে তাহলে এটা আবার চালু করতে হবে
alertValue = "নোটিশ পাঠানো যায়নি";
}
);
}
} else {
alertValue = "নোটিশ পাঠানো যায়নি";
}
},
//counting on date
countDay: function (date) {
var today = new Date();
var diff = today - new Date(date);
var diffArray = new Date(date);
var monthArray = [
"জানুয়ারি",
"ফেব্রুয়ারি",
"মার্চ",
"এপ্রিল",
"মে",
"জুন",
"জুলাই",
"আগস্ট",
"সেপ্টেম্বর",
"অক্টোবর",
"নভেম্বর",
"ডিসেম্বর",
];
var diffObj = {
date:
This.translateNumbers(diffArray.getDate()) +
" " +
monthArray[diffArray.getMonth()] +
", " +
This.translateNumbers(diffArray.getFullYear()),
days: Math.floor(diff / (1000 * 60 * 60 * 24)),
};
//console.log("countDay");
return {
days: diffObj.days,
date: diffObj.date,
};
},
//translate english numbers into bengali numbers
translateNumbers: function (number) {
var num = number.toString();
var result = "";
//console.log("translateNumbers");
result = num
.replace(/0/gi, "০")
.replace(/1/gi, "১")
.replace(/2/gi, "২")
.replace(/3/gi, "৩")
.replace(/4/gi, "৪")
.replace(/5/gi, "৫")
.replace(/6/gi, "৬")
.replace(/7/gi, "৭")
.replace(/8/gi, "৮")
.replace(/9/gi, "৯");
return result;
},
};
mr.notice = function (reason, template, prefarence) {
//console.log(reason);
var reason = typeof reason === "string" && reason.trim() ? reason : false;
var template =
typeof template === "string" && template.trim() ? template : false;
var prefarence =
typeof prefarence === "object" && prefarence ? prefarence : {};
prefarence.summary =
typeof prefarence.summary === "string" && prefarence.summary.trim()
? prefarence.summary
: "নোটিশ পাঠিয়েছেন";
if (reason && template) {
This.creatorLookOut(function (params) {
var creator = params.initialContrib;
var creation = params.creation;
var sender = mw.config.get("wgUserName");
//page name
var pagename = mw.config.get("wgPageName").replace(/_/g, " ");
This.main(
creator,
creation,
sender,
reason,
pagename,
template,
prefarence
);
});
} else {
if (!reason) {
throw new Error("বার্তা প্রদানের কারণ উল্লেখ করেননি");
} else if (!template) {
throw new Error("টেমপ্লেটের নাম উল্লেখ করেননি");
}
}
return alertValue;
};
})();