Created
July 11, 2011 07:42
-
-
Save BYK/1075438 to your computer and use it in GitHub Desktop.
Get language stats of your GitHub
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
try: | |
import json | |
except ImportError: | |
import simplejson as json | |
import urllib | |
user = unicode(raw_input('Enter username: ')) | |
repos = json.loads(urllib.urlopen(u'https://api.github.com/users/%s/repos?per_page=100' % user).read()) | |
def reducer(stats, lang): | |
if lang: | |
stats[lang] = stats.setdefault(lang, 0) + 1 | |
return whole | |
lang_stats = reduce(reducer, (repo["language"] for repo in repos), {}) | |
lang_list_sorted = sorted(lang_stats, key=lambda l:lang_stats[l], reverse=True) | |
print(lang_list_sorted) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
window.getLangStats = function getLangStats(repos) { | |
var mapper = function(ent){return ent.language}, | |
reducer = function(stats, lang) {stats[lang] = (stats[lang] || 0) + 1; return stats}, | |
langStats = repos.map(mapper).reduce(reducer, {}); | |
delete langStats['null']; | |
return Object.keys(langStats).sort(function(a,b){return langStats[b] - langStats[a]}); | |
}; | |
window.ghApiCallHandler = function(result) { | |
if (Math.floor(result.meta.status/100) == 2) | |
alert(getLangStats(result.data).join(' >= ')); | |
else | |
alert('Request failed with code ' + result.meta.status); | |
}; | |
window.ghApiCall = function(user) { | |
var scrElm = document.createElement('script'); | |
scrElm.src = 'https://api.github.com/users/' + encodeURI(user) + '/repos?callback=ghApiCallHandler&per_page=100'; | |
(document.head || document.getElementsByTagName('head')[0]).appendChild(scrElm); | |
}; | |
ghApiCall(prompt('Enter username')); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import scala.collection.mutable.HashMap | |
import scala.io.Source.fromInputStream | |
import scala.util.parsing.json.JSON | |
import java.net._ | |
print("Enter username: ") | |
val urlFetcher = new URL("https://api.github.com/users/%s/repos?per_page=100".format(readLine())) | |
val repos = JSON.parseFull(fromInputStream(urlFetcher.openStream).getLines.mkString("\n")).get.asInstanceOf[List[Any]] | |
val langs = repos.map(_.asInstanceOf[Map[String, String]].get("language").get).filter(_ != null) | |
val langStats = new HashMap[String, Int]() {override def default(key:String) = 0} | |
for (lang <- langs) langStats(lang) += 1 | |
print(langStats.keys.toList.sortBy(-langStats(_)).mkString(" >= ")) |
Ahmet, bence bu badge projesi bir tür 'minimal space constrained data visualization' gibi de görülebilir. Yani otomatik resume üretecinden farklı bir perspektifle ele alınabilir. (Tabii projeyi başlatanlar böyle bir perspektifi benimsemek zorunda değil, o ayrı ;-)
Hello,
Today, you can get the statistics via this API https://api.github.com/repos/{owner}/{repo}/languages
Ex.: https://api.github.com/repos/bilelz/bilelz.github.io/languages
curl -o js/languages.json \
--request GET \
--url https://api.github.com/repos/{owner}/{repo}/languages \
--header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \
--fail
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
abi calismani cok takdir ediyorum. cogzel mutis bisey. ama bunlar zaten http://resume.github.com/?ahmetalpbalkan altinda var biliyosun dimi?