ผู้ใช้:Bebiezaza/dev/iScript/iScript.js
หมายเหตุ: หลังเผยแพร่ คุณอาจต้องล้างแคชเว็บเบราว์เซอร์ของคุณเพื่อดูการเปลี่ยนแปลง
- ไฟร์ฟอกซ์ / ซาฟารี: กด Shift ค้างขณะคลิก Reload หรือกด Ctrl-F5 หรือ Ctrl-R (⌘-R บนแมค)
- กูเกิล โครม: กด Ctrl-Shift-R (⌘-Shift-R บนแมค)
- อินเทอร์เน็ตเอกซ์พลอเรอร์ และ Edge: กด Ctrl ค้างขณะคลิก Refresh หรือกด Ctrl-F5
- โอเปร่า: กด Ctrl-F5
// ==============================================================
// สคริปต์จัดให้: initialization & API module
//
// Copyright (C) 2006-2021, Jutiphan Mongkolsuthree
// 2021, Bebiezaza
//
// Created: 08/12/2011
// Rewritten: 20/10/2021
// Replaced: none
// ========================================================
/* <pre><nowiki> */
iScriptConfig.Init = function() {
// also config backend
if (iScriptConfig.Edition == Editions.Wikipedia) {
iScriptConfig.wikiName = "วิกิพีเดียภาษาไทย";
iScriptConfig.Tagline = "ด้วย[[WP:iScript|สจห.]]";
iScriptConfig.pageLink = "WP:iScript";
iScriptConfig.pageName = "วิกิพีเดีย:สคริปต์จัดให้"
} else if (iScriptConfig.Edition == Editions.Wikisource) {
iScriptConfig.wikiName = "วิกิซอร์ซ";
iScriptConfig.Tagline = "ด้วย[[WS:iScript|สจห.]]";
iScriptConfig.pageLink = "WS:iScript";
iScriptConfig.pageName = "วิกิซอร์ซ:สคริปต์จัดให้";
} else if (iScriptConfig.Edition == Editions.Uncyclopedia) {
iScriptConfig.wikiName = "ไร้สาระนุกรม";
iScriptConfig.Tagline = "ด้วย[[UN:iScript|สจห.]]";
iScriptConfig.pageLink = "UN:iScript";
iScriptConfig.pageName = "ไร้สาระนุกรม:สคริปต์จัดให้"
} else if (iScriptConfig.Edition == Editions.Wikibooks) {
iScriptConfig.wikiName = "วิกิตำรา";
iScriptConfig.Tagline = "ด้วย[[WB:iScript|สจห.]]";
iScriptConfig.pageLink = "WB:iScript";
iScriptConfig.pageName = "Wikibooks:สคริปต์จัดให้"
}
};
function checkVersion() {
if ((mw.config.get('wgNamespaceNumber') == 2 || mw.config.get('wgNamespaceNumber') == 3 || mw.config.get('wgPageName').indexOf(iScriptConfig.pageName) != -1)) {
var versionBox, size;
if (versionBox = document.getElementById("iScriptStatus")) {
size = 0;
} else if (versionBox = document.getElementById("iScriptStatus-small")) {
size = 1;
}
if (versionBox) {
var displayVersion = document.getElementById("iScriptVersion").innerHTML;
var boxNew = createElement('span', "", {
'class': "iScript-version"
});
if (size == 1) boxNew.classList.add("iScript-version-small");
versionBox.firstChild.remove();
if (iScriptVersion == displayVersion) {
var imgLink = "<img src='//upload.wikimedia.org/wikipedia/commons/thumb/3/34/Crystal_Clear_app_clean.png/20px-Crystal_Clear_app_clean.png' width='20' height='20'/>";
boxNew.classList.add("iScript-version-latest");
boxNew.innerHTML = imgLink + " คุณกำลังใช้สคริปต์จัดให้รุ่นล่าสุด";
versionBox.appendChild(boxNew);
} else {
var imgLink = "<img src='//upload.wikimedia.org/wikipedia/commons/thumb/d/dc/Nuvola_apps_important_yellow.svg/25px-Nuvola_apps_important_yellow.svg.png' width='25' height='21'/>";
boxNew.classList.add("iScript-version-old");
boxNew.innerHTML = imgLink + " คุณกำลังใช้สคริปต์จัดให้รุ่น<font size=0.1em> " + iScriptVersion + "</font><br><a href='javascript:performUpdate();'>อัปเดตไปรุ่นล่าสุด</a>";
versionBox.appendChild(boxNew);
}
}
}
}
function performUpdate() {
var a = document.getElementById('iScriptStatus');
if (!a) a = document.getElementById('iScriptStatus-small');
a = a.firstChild;
a.innerHTML = "กำลังอัปเดตไปรุ่นล่าสุด...";
location.reload(true); // reload with cache cleared; firefox
location.reload(); // somehow chrome also works if written like this?
}
iScriptAPI = {
getPageContent: function(pageName) {
var content;
$.ajax({
url: mw.util.wikiScript('api'),
dataType: 'json',
async: false,
data: {
format: 'json',
action: 'query',
prop: 'revisions',
indexpageids: true,
titles: pageName,
rvprop: 'content',
rvslots: 'main'
},
success: function(data) {
var id = data.query.pageids[0];
if (id == -1) {
content = "";
} else {
content = data.query.pages[id].revisions[0].slots.main['*'];
}
}
});
return content;
},
getUploaders: function(pageName) {
var uploaders = [];
$.ajax({
url: mw.util.wikiScript('api'),
dataType: 'json',
async: false,
data: {
format: 'json',
action: "query",
prop: "imageinfo",
indexpageids: true,
titles: pageName,
iilimit: "500"
},
success: function(data) {
var id = data.query.pageids[0];
if (id == -1) {
uploaders = "";
} else {
for (var count in data.query.pages[id].imageinfo) {
uploaders.push(data.query.pages[id].imageinfo[count].user);
}
}
}
});
return uploaders;
},
editPage: function(pageName, editedText, summary, isMinor, willReload) {
var api = new mw.Api();
api.postWithEditToken({
action: "edit",
title: pageName,
summary: summary,
text: editedText,
minor: isMinor
}).done(function(a, b) {
mw.log("Saved successfully");
if (willReload) {
mw.notify($("<span style='color: darkgreen'>การแก้ไขเรียบร้อย กำลังรีโหลดหน้าใหม่...</span>"));
location.reload();
} else {
mw.notify($("<span style='color: darkgreen'>การแก้ไขเรียบร้อย</span>"));
}
}).fail(function(a, b) {
if (a === "http") {
mw.log("HTTP error: " + b.textStatus);
mw.notify($("<span style='color: red'>ขออภัย พบเจอปัญหาทำให้ไม่สามารถบันทึกได้: " + b.textStatus + " กรุณาลองใหม่อีกครั้ง</span>"));
} else if (a === "ok-but-empty") {
mw.log("Got an empty response from the server");
mw.notify($("<span style='color: red'>ขออภัย พบเจอปัญหาทำให้ไม่สามารถทำเรื่องได้ กรุณาลองใหม่อีกครั้ง</span>"));
} else {
mw.log("API error: " + a);
mw.notify($("<span style='color: red'>ขออภัย พบเจอปัญหาทำให้ไม่สามารถบันทึกได้: " + a + " กรุณาลองใหม่อีกครั้ง</span>"));
}
});
}
};
$(document).ready(function() {
iScriptConfig.Init();
checkVersion();
});
/* </nowiki></pre> */