MediaWiki:Common.js: Perbedaan antara revisi
Tidak ada ringkasan suntingan Tanda: Suntingan perangkat seluler Suntingan peramban seluler |
Tidak ada ringkasan suntingan Tanda: Suntingan perangkat seluler Suntingan peramban seluler |
||
| Baris 333: | Baris 333: | ||
}); | }); | ||
observer.observe(document.body, { childList: true, subtree: true }); | observer.observe(document.body, { childList: true, subtree: true }); | ||
})(); | })(); | ||
| Baris 430: | Baris 380: | ||
}, true); | }, true); | ||
})(); | })(); | ||
/* ========================================================== | |||
🚀 MIPPEDIA DATA - SILENT AUTO-RELATED (POST-SAVE) | |||
========================================================== */ | |||
mw.hook('postEdit').add(function() { | |||
var ns = mw.config.get('wgNamespaceNumber'); | |||
var isMainPage = mw.config.get('wgIsMainPage'); | |||
var pageTitle = mw.config.get('wgPageName'); | |||
// Hanya jalan di Namespace Utama dan bukan Halaman Utama | |||
if (ns === 0 && !isMainPage) { | |||
// 1. Cari artikel terkait via Search API | |||
$.getJSON(mw.util.wikiScript('api'), { | |||
action: 'query', | |||
list: 'search', | |||
srsearch: mw.config.get('wgTitle'), | |||
srlimit: 4, | |||
format: 'json' | |||
}).done(function(searchData) { | |||
var results = searchData.query.search; | |||
var relatedTags = ""; | |||
var count = 0; | |||
results.forEach(function(item) { | |||
if (item.title.replace(/ /g, '_') !== pageTitle && count < 3) { | |||
relatedTags += '\n{{#related: ' + item.title + '}}'; | |||
count++; | |||
} | |||
}); | |||
if (count > 0) { | |||
// 2. Ambil token edit untuk keamanan | |||
$.get(mw.util.wikiScript('api'), { | |||
action: 'query', | |||
titles: pageTitle, | |||
prop: 'revisions', | |||
rvprop: 'content', | |||
meta: 'tokens', | |||
format: 'json' | |||
}).done(function(tokenData) { | |||
var token = tokenData.query.tokens.csrftoken; | |||
var currentContent = ""; | |||
var pages = tokenData.query.pages; | |||
for (var id in pages) { | |||
currentContent = pages[id].revisions[0].content; | |||
} | |||
// Cek biar nggak double posting related yang sama | |||
if (!currentContent.includes('#related')) { | |||
// 3. Suntik kode ke server (Silent Edit) | |||
$.post(mw.util.wikiScript('api'), { | |||
action: 'edit', | |||
title: pageTitle, | |||
appendtext: relatedTags, | |||
summary: 'Sistem Otomatis: Menambahkan artikel terkait [[Mippedia:Related|#related]]', | |||
token: token, | |||
format: 'json' | |||
}).done(function(editRes) { | |||
if (editRes.edit && editRes.edit.result === "Success") { | |||
console.log("Mippedia: Related articles added silently."); | |||
// Opsional: Refresh halaman biar user langsung liat hasilnya | |||
location.reload(); | |||
} | |||
}); | |||
} | |||
}); | |||
} | |||
}); | |||
} | |||
}); | |||