ผู้ใช้:ZilentFyld/bettercreate.js
หมายเหตุ: หลังเผยแพร่ คุณอาจต้องล้างแคชเว็บเบราว์เซอร์ของคุณเพื่อดูการเปลี่ยนแปลง
- ไฟร์ฟอกซ์ / ซาฟารี: กด Shift ค้างขณะคลิก Reload หรือกด Ctrl-F5 หรือ Ctrl-R (⌘-R บนแมค)
- กูเกิล โครม: กด Ctrl-Shift-R (⌘-Shift-R บนแมค)
- อินเทอร์เน็ตเอกซ์พลอเรอร์ และ Edge: กด Ctrl ค้างขณะคลิก Refresh หรือกด Ctrl-F5
- โอเปร่า: กด Ctrl-F5
var pn = mw.config.get('wgPageName');
var apiUrl = mw.util.wikiScript('api');
var version = 'ทดลอง 1.2';
var rplc = {
'́':'','ā':'a','ī':'i','ō':'o','ō':'o','ū':'u','ȳ':'y'
};
mw.loader.load( '/w/index.php?title=User:ZilentFyld/autocreatrule.js&action=raw&ctype=text/javascript' );
$(document).ready(function() {
var savelist = {};
var saveform = {};
var skipheader = ['การออกเสียง','รากศัพท์','การผันรูป','อ่านเพิ่ม','ลูกคำ','คำที่เกี่ยวข้อง','การผันคำนาม'];
//add pos to every form-of
$('.mw-headline').each(function(){
var hc = $(this).attr('id');
if (hc.includes('_')) hc = hc.substr(0, hc.lastIndexOf('_'));
if (skipheader.includes(hc) === false) {
$(this).parent().addClass('header-of-'+hc);
$(this).parent().addClass('focused-header');
}
});
$('.focused-header').each(function(){
var area = $(this).nextUntil('.focused-header');
var pos = $(this).attr('class').split(' ')[0].substring(10);
area.find('.form-of').addClass('pos-'+pos);
$(this).attr("class",'');
});
//get every form-of in page
$('.form-of').each(function(){
var allword = $(this).find('.new');
var thisel = $(this)
allword.each(function(){
var word = $(this).text();
for (var char in rplc) {
word = word.replace(char,rplc[char]);
}
if (word in savelist === false) {
savelist[word] = {};
saveform[word] = {};
}
var clas = thisel.attr('class').split(" ");
var lang,form,pos;
if (thisel.attr('lang')) lang = thisel.attr('lang');
clas.forEach(function(e) {
if (e.includes("lang-")) lang = e.substring(5);
if (e.includes("-form-of")) form = e.slice(0,-8);
if (e.includes("pos-")) pos = e.substring(4);
});
if (lang!==''&&form!==''&&pos!=='') {
if (lang in savelist[word] === false) {
savelist[word][lang] = [];
saveform[word][lang] = [];
}
if (!saveform[word][lang].includes(form)) {
savelist[word][lang].push([form,pos]);
saveform[word][lang].push(form);
}
}
});
});
console.log(savelist);
console.log(saveform);
$('.form-of').find('.new').each(function(){
var ele = $(this).parent();
var word = ele.text();
for (var char in rplc) {
word = word.replace(char,rplc[char]);
}
$(this).addClass('word-'+word);
var button = $(' <span style="size:80%;color:green" class="button-'+word+'">[สร้าง]</button>').click(function() {
var err = 0;
var exp = '';
try {
var savelistlang = savelist[word];
Object.keys(savelistlang).forEach(function(lang){
var formlist = savelistlang[lang];
var text = preset(lang,formlist,ele);
if (text == 'error') err++;
else exp += text;
});
}
catch (error) {
console.log(error);
err++;
}
if (err === 0) {
$.post(apiUrl, {
'action': 'edit',
'title': word,
'summary': 'สร้างคำผันจาก [[' + pageName + ']] โดย [[User:ZilentFyld/bettercreate.js|bettercreate.js]] รุ่น'+version,
'createonly': '1',
'appendtext': exp,
'token': mw.user.tokens.get('csrfToken'),
'format': 'xml'
}, function () {
mw.notify('สร้างหน้า ' + word + ' เรียบร้อยแล้ว');
$('.word-'+word).removeClass('new');
});
}
else mw.notify('ยังไม่รองรับรูปแบบนี้');
$('.button-'+word).fadeOut();
});
$(ele).after(button);
});
});