משתמש:מוטי בוט/st.js
מראה
לתשומת ליבך: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
const isMobileWiew =
document.getElementsByClassName("minerva-header").length > 0;
const isCategoryMatched =
mw.config.get("wgCategories") &&
mw.config.get("wgCategories").indexOf("המכלול: ערכים שנוצרו במכלול") === -1 &&
mw.config.get("wgCategories").indexOf("המכלול: ערכים שתורגמו במכלול") === -1;
if (
(isMobileWiew || isCategoryMatched) &&
mw.config.get("wgNamespaceNumber") % 2 === 0 &&
mw.config.get("wgPageName") !== "עמוד_ראשי" &&
mw.config.get("wgAction") === "view" &&
location.href.indexOf("&diff") === -1
) {
mw.loader.using(["mediawiki.api"]).then(function () {
var steps = 0;
var PageName = mw.config
.get("wgPageName")
.replace(/^רבי\_/, "")
.replace(/^הרב\_/, "")
.replace(/_/g, " ")
.replace(/ה\"קדוש(ה|ים)?\"/g, "הקדוש$1")
.replace(/אישיות_מהתנ\"ך/g, "דמות מקראית")
.replace(/א\-ל/g, "אל");
var to;
$against = $("<a>")
.text("נסה שוב ")
.click(function () {
$("#meseg").remove();
$(this).remove();
getTheSize();
});
function getTheSize(steps) {
if (window.PageName != undefined) PageName = window.PageName;
if (steps > 10) return;
var wikisize;
var michsize;
var girsa;
var idPage;
var message;
var wparams = {
action: "query",
format: "json",
list: "logevents",
leprop: "ids|title|type|user|timestamp|comment|details",
letype: "move",
letitle: decodeURIComponent(PageName),
lelimit: 1,
prop: "info|revisions|langlinks|pageprops",
titles: decodeURIComponent(PageName),
indexpageids: true,
redirects: 1,
rvlimit: 1,
rvprop: "size|ids",
llprop: "langname|url",
utf8: 1,
lllang: "en",
ppprop: "disambiguation",
};
var apiEndpoint = "https://import.hamichlol.org.il";
var request = $.ajax({
url: apiEndpoint,
data: wparams,
dataType: "json",
})
.done(function (result) {
if (result && result.query) {
console.table(result);
if (result.query.pageids[0] == "-1") {
var move = result.query.logevents;
if (move[0]) {
to = move[0].params.target_title;
if (to.indexOf(":") != -1) {
var spaceName = to.split(":")[0];
spaceName = "הערך הועבר בוויקיפדיה למרחב " + spaceName;
}
var evs = to;
var pageTo = "[[" + to + "]]";
var linkToSend =
"/w/api.php?action=parse&format=json&title=עמוד ראשי&text=" +
encodeURIComponent(pageTo) +
"&utf8=1";
fetch(linkToSend)
.then((response) => response.json())
.then(function (result) {
pageTo = result.parse.text["*"];
pageTo = pageTo.split("<p>")[1].split("</p>")[0];
var span = $(
'<span dir="rtl"> הועבר אל: ' +
pageTo +
"</span>"
);
$("#bodyContent").prepend(span);
if (spaceName) {
requestDelete(spaceName);
} else {
$("#bodyContent")
.prepend(
$("<button>")
.text("העברה")
.click(function () {
movePage(evs);
})
)
.prepend(
$("<button>")
.text("הפניה")
.click(function () {
updateRed(evs);
})
);
}
});
wparams.letype = "delete";
$.ajax({
url: apiEndpoint,
data: wparams,
dataType: "json",
}).done(function (result) {
if (result && result.query) {
var deleted = result.query.logevents;
if (deleted[0]) {
var commentF = result.query.logevents[0].comment;
if (commentF.indexOf("התוכן היה") != -1) {
var comment = commentF.split("התוכן היה")[0];
} else {
comment = commentF;
}
message =
'<span id= "meseg">הדף נמחק בוויקיפדיה. סיבת המחיקה היא: </span>';
$("#bodyContent").prepend(message, comment);
var reason = "הערך נמחק בוויקיפדיה העברית";
if (!spaceName) requestDelete(reason);
} else {
message = '<span id= "meseg">לא נמצא דף בשם זה.</span>';
$("#bodyContent").prepend(message, $against);
}
}
});
} else {
wparams.letype = "delete";
$.ajax({
url: apiEndpoint,
data: wparams,
dataType: "json",
}).done(function (result) {
if (result && result.query) {
var deleted = result.query.logevents;
if (deleted[0]) {
var linkToSend =
"/w/api.php?action=parse&format=json&title=עמוד ראשי&text=" +
encodeURIComponent(result.query.logevents[0].comment) +
"&utf8=1";
fetch(linkToSend)
.then((response) => response.json())
.then(function (result) {
var commentF = result.parse.text["*"];
if (commentF.indexOf("התוכן היה") != -1) {
var comment = commentF.split("התוכן היה")[0];
} else {
comment = commentF;
}
message =
'<span id= "meseg">הדף נמחק בוויקיפדיה. סיבת המחיקה היא: </span>';
$("#bodyContent").prepend(message, comment);
var reason = "הערך נמחק בוויקיפדיה העברית";
requestDelete(reason);
});
} else {
message = '<span id= "meseg">לא נמצא דף בשם זה.</span>';
$("#bodyContent").prepend(message, $against);
}
}
});
}
} else {
if (result.query.redirects) {
to = result.query.redirects[0].to;
var evs = to;
var pageTo = "[[" + to + "]]";
var linkToSend =
"/w/api.php?action=parse&format=json&title=עמוד ראשי&text=" +
encodeURIComponent(pageTo) +
"&utf8=1";
fetch(linkToSend)
.then((response) => response.json())
.then(function (result) {
pageTo = result.parse.text["*"];
pageTo = pageTo.split("<p>")[1].split("</p>")[0];
var span = $("#bodyContent").prepend(
$(
'<span dir="rtl"> הפניה אל: ' +
pageTo +
"</span>"
)
);
$("#bodyContent")
.prepend(span)
.prepend(
$("<button>")
.text("העברה")
.click(function () {
movePage(evs);
})
)
.prepend(
$("<button>")
.text("הפניה")
.click(function () {
updateRed(evs);
})
);
});
} else if (
result.query.pages[result.query.pageids[0]].pageprops
) {
message = '<span id= "meseg">ויקיפדיה: דף פירושונים.</span>';
$("#bodyContent").prepend(message);
} else {
wikisize =
result.query.pages[result.query.pageids[0]].revisions[0].size;
var langLinks =
result.query.pages[result.query.pageids[0]].langlinks;
if (langLinks) {
var langname = langLinks[0].langname;
var url = langLinks[0].url;
var nav = $(
'<div class="vector-menu-content">' +
'<ul class="vector-menu-content-list"><li class="interlanguage-link interwiki-en"><a href=' +
url +
' title="אנגלית" lang="en" hreflang="en" class="interlanguage-link-target" target= "blank" >אנגלית</a></li></ul>'
);
$("#p-lang").append(nav);
}
var Localpagename = mw.config.get("wgPageName");
mparams = {
action: "query",
format: "json",
prop: "info|revisions",
titles: decodeURIComponent(Localpagename),
indexpageids: true,
rvlimit: 1,
rvprop: "size|ids",
};
$.ajax({
url: "/w/api.php",
data: mparams,
dataType: "json",
}).done(function (result) {
if (result && result.query) {
michsize =
result.query.pages[result.query.pageids[0]].revisions[0]
.size;
var a = wikisize;
var b = michsize;
var diffsize = a - b;
var el;
var item = "<div>";
if (diffsize > 0) {
el = diffsize > 399 ? "strong" : "span";
item +=
'<div class="mw-rtrc-meta">ויקיפדיה:<' +
el +
' class="mw-plusminus mw-plusminus-neg">(+' +
diffsize.toLocaleString() +
")</" +
el +
"></div>";
} else if (diffsize === 0) {
item +=
'<div class="mw-rtrc-meta"><span class="mw-plusminus mw-plusminus-null">ויקיפדיה:(0)</span></div>';
} else {
el = diffsize < -399 ? "strong" : "span";
item +=
'<div class="mw-rtrc-meta">ויקיפדיה:<' +
el +
' class="mw-plusminus mw-plusminus-pos"> (' +
diffsize.toLocaleString() +
")</" +
el +
"></div>";
}
var corname = mw.config
.get("wgPageName")
.trim()
.replace(/_/g, " ");
PageName = PageName.trim().replace(/_/g, " ");
if (corname != PageName) {
item += " (" + PageName + ")";
}
item += "</div>";
var message;
isMobileWiew
? $(".tagline").append(item)
: $(".mw-indicators").append(
$("<div>", {
class: "mw-indicator",
html: item,
})
);
}
});
}
}
}
})
.fail(function (e) {
steps++;
getTheSize(steps);
console.log(e);
});
}
setTimeout(function () {
getTheSize();
}, 1000);
function updateRed(to) {
var page = mw.config.get("wgPageName");
var textpage = "#הפניה[[" + to + "]]";
if (confirm("התוכן החדש יהיה: " + textpage)) {
$.post(
mw.util.wikiScript("api"),
{
action: "edit",
format: "json",
bot: true,
title: page,
text: textpage,
token: mw.user.tokens.get("csrfToken"),
},
function (data, status) {
if (data && data.edit) {
mw.notify("\nStatus: " + status);
location.reload();
}
if (data && data.error && data.error.code === "badtoken") {
mw.notify("אירעה שגיאה");
location.reload();
}
}
);
}
}
function letGetText(to) {
fetch(
"/w/api.php?action=parse&format=json&page=" +
encodeURIComponent(to) +
"&prop=wikitext&utf8=1"
)
.then((response) => response.json())
.then(function (response) {
//console.log(response)
let data = response.parse.wikitext["*"];
var Template = /(\{\{מיון ויקיפדיה\|דף=)(.*)(\|גרסה=)(\d*)/;
let selectName = Template.exec(data);
console.log(selectName);
if (selectName != null) {
if (selectName[2] != null) {
var m = selectName;
var n = m[0].replace(m[2], to);
var letNewText = data.replace(m[0], n);
letChangeText(to, letNewText);
} else {
console.log("nothing happend");
location.reload();
}
} else {
console.log("nothing happend");
location.reload();
}
});
}
function letChangeText(to, letNewText) {
$.post(
mw.util.wikiScript("api"),
{
action: "edit",
format: "json",
title: to,
text: letNewText,
summary: "מיון ויקיפדיה",
minor: 1,
bot: 1,
nocreate: 1,
token: mw.user.tokens.get("csrfToken"),
utf8: 1,
},
function (data) {
if (data && data.edit && data.edit["result"] == "Success") {
mw.notify(
"עריכת הדף: " +
decodeURIComponent(data.edit["title"]) +
" הסתיימה"
);
location.reload();
} else {
console.log(data);
}
}
);
}
function requestDelete(reason, spaceName) {
var txt = reason ? reason : spaceName;
var page = mw.config.get("wgPageName").replace(/_/g, " ");
if (
mw.config.get("wgUserGroups").indexOf("sysop") === -1 &&
mw.config.get("wgUserGroups").indexOf("bot") === -1
) {
$("#bodyContent").prepend(
$("<button>")
.text("בקש מחיקה")
.click(function () {
var api = new mw.Api();
api
.postWithToken("edit", {
action: "edit",
format: "json",
pageid: "18228",
section: "1",
appendtext:
"\n\n*{{בקשת מחיקה|" +
page +
"|" +
txt +
"}} " +
" ~~" +
"~~",
summary: "/* בקשות מחיקה */ [[" + page + "]]",
})
.done(function (data) {
if (data && data.edit) {
mw.notify("בקשתך נשמרה בדף הבקשות ממפעילים");
}
})
.catch(function (error) {
alert(error);
});
})
);
} else {
var href =
"/w/index.php?title=" +
decodeURIComponent(page) +
"&action=delete&wpReason=" +
txt;
var $a = $("<a>");
$a.attr("href", href).text("מחיקת הדף");
$("#bodyContent").prepend($a);
}
}
function movePage(to) {
to = to.replace(/_/g, " ");
var oldname = mw.config.get("wgPageName");
var reason = "השוואה לוויקיפדיה העברית";
var api = new mw.Api();
api
.postWithToken("move", {
action: "move",
format: "json",
from: oldname,
to: decodeURIComponent(to),
reason: reason,
movetalk: 1,
})
.done(function (data) {
if (data && data.move) {
mw.notify(
"הדף: " +
data.move["from"] +
"\nהועבר בהצלחה לשם: " +
data.move["to"]
);
letGetText(data.move["to"]);
}
})
.catch(function (error) {
if (error === "missingtitle") {
alert("הדף לא קיים");
}
if (error === "articleexists" || error === "rediredctexists") {
oldname = oldname.replace(/_/g, " ");
var api = new mw.Api();
if (
mw.config.get("wgUserGroups").indexOf("sysop") !== -1 ||
mw.config.get("wgUserGroups").indexOf("bot") !== -1
) {
if (confirm("למחוק את " + to + " ?")) {
api
.postWithToken("delete", {
action: "delete",
format: "json",
title: to,
reason: "מחיקה כדי לאפשר העברה מהשם [[" + oldname + "]]",
})
.done(function (data) {
if (data) {
mw.notify("הדף נמחק כעת. המתן להעברת הדף");
movePage(to);
}
});
}
} else {
if (confirm("האם לבקש ממפעילים להעביר את הדף?")) {
api
.postWithToken("edit", {
action: "edit",
format: "json",
pageid: "18228",
section: "6",
appendtext:
"\n*{{העברה|" +
oldname +
"|" +
to +
"}} " +
reason +
" ~~" +
"~~",
summary:
"/* העברת דף */ [[" + oldname + "]] >> [[" + to + "]]",
})
.done(function (data) {
if (data && data.edit) {
mw.notify("בקשתך נשמרה בדף הבקשות ממפעילים");
}
});
}
}
}
if (error === "selfmove") {
letGetText(to);
} else {
alert(error);
}
});
}
});
}