Useful to see what files are uploaded by you
// ==UserScript==
// @name Wikimedia Commons category page: highlight my files (of the current user)
// @namespace http://greasyfork.org/
// @homepageURL https://gitlab.com/vitaly-zdanevich-userscripts/commonsHighlightMyFiles
// @supportURL https://gitlab.com/vitaly-zdanevich-userscripts/commonsHighlightMyFiles
// @version 1.3.4
// @author Vitaly Zdanevich
// @match https://commons.wikimedia.org/wiki/Category:*
// @description Useful to see what files are uploaded by you
// @license MIT
// @run-at document-idle
// ==/UserScript==
// TODO publish to Commons userscript (userscript of another type)
const files = document.querySelectorAll('.galleryfilename')
let fileNames = ''
const pack = []
const m = {};
files.forEach((f, i) => {
fileNames += 'File:' + f.innerText.replaceAll('&', '%26')
if (i > 0 && (i+1) % 14 === 0 || i+1 === files.length) { // Not a big number against HTTP 414
pack.push(fileNames)
fileNames = ''
} else {
fileNames += '|'
}
m['File:' + f.innerText] = f
})
pack.forEach(p => {
fetch(`https://commons.wikimedia.org/w/api.php?action=query&titles=${p}&prop=imageinfo&format=json`)
.then(resp => resp.json())
.then(j => {
Object.entries(j['query']['pages']).forEach(([_, p]) => {
if (p['imageinfo'][0]['user'] == document.querySelector('#pt-userpage span').innerText) {
const li = m[p['title']].parentNode.parentNode
li.style.outline = '4px solid darkgreen'
}
})
})
})