User:Fbstj/gadget/revision-contrib-pie.js

From The Coppermind
< User:Fbstj
Revision as of 21:01, 19 August 2019 by Fbstj (talk | contribs) (+)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Note: After saving, 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: Go to Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
const pageid = mw.config.get('wgPageName')
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',
}
const api = new mw.Api({ parameters: query, })

const revs = []

function each_rev(rev) {
  revs.push(rev)
}

function paginate(resp) {
  const page = let resp.query[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)
})