Usuario:Fbstj/gadget/revision-contrib-pie.js
Ir a la navegación
Ir a la búsqueda
Nota: tras guardar, quizás necesites actualizar la caché de tu navegador para ver los cambios.
- Firefox/Safari: Mantén presionada la tecla Mayús mientras pulsas el botón Actualizar, o presiona Ctrl+F5 o Ctrl+R (⌘+R en Mac)
- Google Chrome: presiona Ctrl+Shift+R (⌘+Mayús+R en Mac)
- Internet Explorer: mantén presionada Ctrl mientras pulsas Actualizar, o presiona Ctrl+F5
- Opera: dirígete a Menú → Configuración (Opera → Preferencias en Mac) y luego a Privacidad y seguridad → Borrar datos de navegación → Imágenes y archivos en caché.
const pageid = mw.config.get('wgArticleID') const query = { // request the history of this page pageids: [pageid], prop: 'revisions', // request the oldest edits first rvdir: 'newer', // request as many as you can at once rvlimit: 'max', // properties to fetch: rvprop: [ 'ids', 'user', 'timestamp', 'size', 'tags', ], } const api = new mw.Api({ parameters: query, }) const revs = [] function each_rev(rev) { revs.push(rev) } /// fetch consecutive results from the API until all "continue" have been fetched /// function paginate_one(resp) { const page = resp.query.pages[pageid] if (!page) { console.warn('gadget:', 'revision-contrib-pie', 'no results?', resp, revs) return } page.revisions.forEach(each_rev) if (!resp.continue) { console.debug('gadget:', 'revision-contrib-pie', 'done! found', revs.length) return } console.debug('continuing:', resp.continue) return api.get(resp.continue).then(paginate) } function paginate_all(resp) { const pageids = Object.keys(resp.query.pages) const page = let resp.query.pages[pageid] if (!page) { console.warn('gadget:', 'revision-contrib-pie', 'no results?', resp, revs) return revs } page.revisions.forEach(each)rev) if (!resp.continue) { return revs } console.debug('continuing:', resp.continue) return api.get(resp.continue).then(paginate) } api.get().then(paginate).then(function all_results(all) { // TODO: create pie chart of contributors (accurate to how much they contributed? mw.hook('page-history').fire(all) })