Widget:Autorenbox: Unterschied zwischen den Versionen
Aus ZUM-Unterrichten
KKeine Bearbeitungszusammenfassung Markierung: 2017-Quelltext-Bearbeitung |
KKeine Bearbeitungszusammenfassung Markierung: 2017-Quelltext-Bearbeitung |
||
Zeile 19: | Zeile 19: | ||
action:'query', | action:'query', | ||
prop:['revisions', 'contributors', 'info'], | prop:['revisions', 'contributors', 'info'], | ||
titles:'{$artikel}'||mw.config.get('wgTitle'), | |||
rvlimit:1000 | rvlimit:1000 | ||
}); | }); | ||
response.then((data) => { | response.then((data) => { | ||
const pageid = data.query.pageids[0]; | |||
const pageData = data | |||
.query | |||
.pages[pageid]; | |||
lastModifiedEl.append(new Date(pageData.touched).toLocaleDateString()); | |||
let userChanges = pageData | |||
.contributors | |||
.reduce((acc, c)=>acc[c] = {count:0, last:0}, {}); | |||
userChanges = pageData.revisions.reduce((acc, r) => { | |||
acc[r.user] = acc[r.user] || {count:0, last:0}; | |||
acc[r.user].count += r.minor === '' ? 0.1 : 1; | |||
acc[r.user].last = Math.max(acc[r.user].last, r.revid); | |||
return acc; | |||
}, userChanges); | |||
const users = Object.keys(userChanges).sort((a,b) => { | |||
let diff = userChanges[b].count - userChanges[a].count; | |||
if(diff !== 0){ | |||
return diff; | |||
} | |||
return userChanges[b].last - userChanges[a].last; | |||
}); | |||
const textsP = Array.from(users) | const textsP = Array.from(users) | ||
.map((user) => api.parse(`{{Nutzerkarte|${user}}}`) | .map((user) => api.parse(`{{Nutzerkarte|${user}}}`) |