Skip to content

Commit

Permalink
Add languages stats
Browse files Browse the repository at this point in the history
  • Loading branch information
lifesinger committed Jan 11, 2013
1 parent bae7328 commit 834cdc1
Showing 1 changed file with 45 additions and 0 deletions.
45 changes: 45 additions & 0 deletions lab/2013/github-users/update-language-stats.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@

var util = require('./util')

getLanguageStats('./github-users-sorted-stats.json', 'github-languages-stats.json')
getLanguageStats('./github-users-sorted-stats-china.json', 'github-languages-stats-china.json')


function getLanguageStats(inputfile, outputfile) {
var stats = require(inputfile)
var total = stats.length
var languages = { Total: total }

stats.forEach(function(stat) {
var lang = stat.language
languages[lang] = languages[lang] || 0
languages[lang]++
})

languages = (sort(languages, total))

util.saveStats(outputfile, languages)
}


function sort(obj, total) {
var swap = {}

Object.keys(obj).forEach(function(k, v) {
v = obj[k]
swap[v] = swap[v] || []
swap[v].push(k)
})

var ret = {}
for (var i = total; i >= 0; i--) {
var k = swap[i]
if (k) {
k.forEach(function(lang) {
ret[lang] = i
})
}
}

return ret
}

0 comments on commit 834cdc1

Please sign in to comment.