User:Lectrician1/metaclass-check.js
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
// This adds a bit of warning text next to instance of statements on classes if their values are not metaclasses
$( function () {
mw.hook("wikibase.entityPage.entityLoaded").add(async function (e) {
if ('P279' in e.claims && 'P31' in e.claims) {
for (claim of Object.values(e.claims.P31)) {
if (claim.mainsnak.snaktype == "value") {
let itemID = claim.mainsnak.datavalue.value.id
let query = `
ASK {
wd:${itemID} wdt:P31/wdt:P279* wd:Q16889133.
}`
let boolResult = await $.post("https://query.wikidata.org/sparql?format=json", {
query: query })
if (!boolResult.boolean) {
$('#' + $.escapeSelector(claim.id)).find('.wikibase-snakview-indicators').append('<span style="color: red;">This class is not a metaclass!</span>')
}
}
}
}
})
})