Skip to content

Instantly share code, notes, and snippets.

@xiangzhuyuan
Created December 1, 2016 00:57
Show Gist options
  • Save xiangzhuyuan/8009d51c1ec81aa993eeaf93e1821f78 to your computer and use it in GitHub Desktop.
Save xiangzhuyuan/8009d51c1ec81aa993eeaf93e1821f78 to your computer and use it in GitHub Desktop.
just to fetch your github timeline stats
require 'atom'
require 'json'
require 'uri'
require 'net/http'
API_URL_PREFIX = "https://api.github.com/repos/"
URL_PREFIX = "https://github.com/"
language_stack = {}
language_count = {}
feed = Atom::Feed.load_feed(URI.parse(ENV['atom_link']))
feed.each_entry do |entry|
# replace host and call api
repo_url = entry.links.first.href
# target_url = API_URL_PREFIX + repo_url.gsub(url_prefix, '') + "/languages"
target_url1 = API_URL_PREFIX + repo_url.gsub(url_prefix, '')
begin
uri1 = URI.parse(target_url1)
http1 = Net::HTTP.new(uri1.host, uri1.port)
http1.use_ssl = true
request1 = Net::HTTP::Get.new(uri1.request_uri)
request1["Authorization"] = ENV['token']
response1 = http1.request(request1)
result1 = (JSON.parse response1.body)['language']
puts result1
language_count[result1] = language_count[result1].nil? ? 0 : language_count[result1]+=1
rescue => e
puts e.message
end
# language_stack.merge! result do |key, val1, val2|
# val1 + val2
# end
end
# puts language_stack.sort_by(&:last).reverse!.to_h
puts language_count
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment