משתמש:מוטי בוט/ניסוי2.js
מראה
לתשומת ליבך: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
$("#wpSave").click(function () {
var summary = document.querySelector("#wpSummary").value;
var summaryIdkon = /עדכון מוויקיפדיה/;
var summaryExisting = summaryIdkon.test(summary);
if (summaryExisting) {
listEdits();
}
});
function listEdits() {
const pageName = mw.config.get("wgPageName");
const rcstart = new Date(Date.now() - 7890000000).toISOString();
new mw.Api()
.get({
list: "recentchanges",
rclimit: 100,
rcshow: "!patrolled",
rctype: "edit|new",
rcstart: rcstart,
rcdir: "newer",
rcprop: "ids",
rctitle: pageName,
})
.done((data) => {
const unpatrolledRevs = data.query.recentchanges.length;
if (unpatrolledRevs < 1) {
return;
} else {
var approval = confirm(
"קיימות בדף זה גרסאות שלא נבדקו\nתרצה לסמנן כבדוקות?"
);
}
if (approval) {
const rcids = data.query.recentchanges.map((item) => item.rcid);
const cokIds = rcids.join();
setCookie("cookiePatrol", `${pageName}.${cokIds}`, 1);
}
});
}
var cookies = document.cookie;
var cookie = /cookiePatrol/;
var existingCookie = cookie.test(cookies);
if (existingCookie) {
console.table(cookies);
var pageNameCookie = cookies.replace(
/(?:(?:^|.*;\s*)cookiePatrol\s*\=\s*([^;]*).*$)|^.*$/,
"$1"
);
pageNameCookie = pageNameCookie.replace(/_/g, " ");
//patrolEdits(pageNameCookie);
}
function patrolEdits(pageName) {
let numEdits = 0;
new mw.Api()
.get({
action: "query",
format: "json",
list: "recentchanges",
rcprop: "ids|patrolled",
rclimit: 100,
rctype: "edit|new",
rctitle: pageName,
})
.done(function (data) {
const edits = data.query.recentchanges;
for (const edit of edits) {
if (!edit.patrolled) {
patrol(edit.rcid);
numEdits++;
}
}
if (numEdits === 0) {
// No edits were patrolled
} else if (numEdits === 1) {
mw.notify(`One edit on ${pageName} has been patrolled.`);
} else {
mw.notify(`${numEdits} edits on ${pageName} have been patrolled.`);
}
});
}
function patrol(rcid) {
console.time(rcid);
const params = {
action: "patrol",
rcid,
format: "json",
};
const api = new mw.Api();
api.postWithToken("patrol", params)
.done(function (data) {
console.table(data);
console.timeEnd(rcid);
});
}
function setCookie(cname, cvalue, exdays) {
const d = new Date();
d.setTime(d.getTime() + exdays * 60 * 1000);
let expires = "expires=" + d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}