Skip to content

Instantly share code, notes, and snippets.

@kaiix
Created November 14, 2012 04:56
Show Gist options
  • Select an option

  • Save kaiix/4070333 to your computer and use it in GitHub Desktop.

Select an option

Save kaiix/4070333 to your computer and use it in GitHub Desktop.
interesting_repos_plist
#!/bin/env python
fixtures = [{'forks': u'159', 'lang': u'Objective-C', 'name': u'nu', 'stars': u'1,671'},
{'forks': u'299',
'lang': u'JavaScript',
'name': u'prototype',
'stars': u'2,504'},
{'forks': u'197', 'lang': u'C++', 'name': u'passenger', 'stars': u'1,413'},
{'forks': u'464',
'lang': u'JavaScript',
'name': u'scriptaculous',
'stars': u'2,316'},
{'forks': u'4,209', 'lang': u'Ruby', 'name': u'rails', 'stars': u'16,453'},
{'forks': u'299',
'lang': u'JavaScript',
'name': u'mootools-core',
'stars': u'1,817'},
{'forks': u'59',
'lang': u'ActionScript',
'name': u'restfulx_framework',
'stars': u'338'},
{'forks': u'338', 'lang': u'Objective-C', 'name': u'gitx', 'stars': u'1,662'},
{'forks': u'762',
'lang': u'Objective-C',
'name': u'asi-http-request',
'stars': u'4,203'},
{'forks': u'934', 'lang': u'C', 'name': u'git', 'stars': u'3,145'},
{'forks': u'476',
'lang': u'JavaScript',
'name': u'raphael',
'stars': u'4,472'},
{'forks': u'261',
'lang': u'Objective-J',
'name': u'cappuccino',
'stars': u'1,723'},
{'forks': u'59', 'lang': u'Ruby', 'name': u'turn', 'stars': u'334'},
{'forks': u'164', 'lang': u'C', 'name': u'rhodes', 'stars': u'790'},
{'forks': u'281', 'lang': u'Python', 'name': u'webpy', 'stars': u'1,932'},
{'forks': u'169', 'lang': u'JavaScript', 'name': u'cufon', 'stars': u'1,969'},
{'forks': u'97', 'lang': u'Perl', 'name': u'perl', 'stars': u'409'},
{'forks': u'874',
'lang': u'Emacs Lisp',
'name': u'emacs-starter-kit',
'stars': u'2,161'},
{'forks': u'448', 'lang': u'JavaScript', 'name': u'yui3', 'stars': u'1,975'},
{'forks': u'127', 'lang': u'C', 'name': u'yajl', 'stars': u'851'},
{'forks': u'583', 'lang': u'C++', 'name': u'mongo', 'stars': u'3,534'},
{'forks': u'116', 'lang': u'Perl', 'name': u'rakudo', 'stars': u'465'},
{'forks': u'1,239',
'lang': u'Objective-C',
'name': u'three20',
'stars': u'7,057'},
{'forks': u'89', 'lang': u'Erlang', 'name': u'yaws', 'stars': u'441'},
{'forks': u'92', 'lang': u'Perl', 'name': u'ack', 'stars': u'753'},
{'forks': u'930', 'lang': u'C', 'name': u'redis', 'stars': u'5,347'},
{'forks': u'25', 'lang': u'Java', 'name': u'solr', 'stars': u'328'},
{'forks': u'301', 'lang': u'Python', 'name': u'pinax', 'stars': u'1,799'},
{'forks': u'13',
'lang': u'Emacs Lisp',
'name': u'aquamacs-emacs',
'stars': u'187'},
{'forks': u'2,538',
'lang': u'JavaScript',
'name': u'jquery',
'stars': u'17,470'},
{'forks': u'345', 'lang': u'C', 'name': u'memcached', 'stars': u'1,998'},
{'forks': u'34',
'lang': u'Objective-C',
'name': u'ElementParser',
'stars': u'426'},
{'forks': u'106',
'lang': u'Objective-C',
'name': u'SimFinger',
'stars': u'975'},
{'forks': u'91', 'lang': u'C', 'name': u'httpd', 'stars': u'651'},
{'forks': u'4,901', 'lang': u'Ruby', 'name': u'homebrew', 'stars': u'10,538'},
{'forks': u'237', 'lang': u'Erlang', 'name': u'couchdb', 'stars': u'1,233'},
{'forks': u'229', 'lang': u'Java', 'name': u'cassandra', 'stars': u'1,118'},
{'forks': u'2,728',
'lang': u'JavaScript',
'name': u'node',
'stars': u'18,560'},
{'forks': u'243', 'lang': u'Java', 'name': u'voldemort', 'stars': u'980'},
{'forks': u'98', 'lang': u'Scala', 'name': u'scalatra', 'stars': u'910'},
{'forks': u'96', 'lang': u'C#', 'name': u'GitSharp', 'stars': u'542'},
{'forks': u'88', 'lang': u'Shell', 'name': u'z', 'stars': u'1,157'},
{'forks': u'75', 'lang': u'C', 'name': u'wax', 'stars': u'1,011'},
{'forks': u'239',
'lang': u'Objective-C',
'name': u'AppSales-Mobile',
'stars': u'1,470'},
{'forks': u'95',
'lang': u'JavaScript',
'name': u'greasemonkey',
'stars': u'699'},
{'forks': u'119',
'lang': u'ActionScript',
'name': u'web-socket-js',
'stars': u'1,453'},
{'forks': u'67',
'lang': u'C',
'name': u'nginx_http_push_module',
'stars': u'808'},
{'forks': u'179',
'lang': u'Objective-C',
'name': u'Sparkle',
'stars': u'968'},
{'forks': u'181', 'lang': u'C++', 'name': u'v8', 'stars': u'1,017'},
{'forks': u'447', 'lang': u'Shell', 'name': u'rvm', 'stars': u'2,052'},
{'forks': u'48', 'lang': u'Ruby', 'name': u'cloud-crowd', 'stars': u'822'},
{'forks': u'854', 'lang': u'Python', 'name': u'tornado', 'stars': u'4,621'},
{'forks': u'86', 'lang': u'Python', 'name': u'bup', 'stars': u'1,610'},
{'forks': u'830',
'lang': u'JavaScript',
'name': u'underscore',
'stars': u'6,533'},
{'forks': u'462', 'lang': u'Erlang', 'name': u'otp', 'stars': u'1,652'},
{'forks': u'25', 'lang': u'C', 'name': u'memprof', 'stars': u'493'},
{'forks': u'629',
'lang': u'CoffeeScript',
'name': u'coffee-script',
'stars': u'6,498'},
{'forks': u'82', 'lang': u'JavaScript', 'name': u'gordon', 'stars': u'1,712'},
{'forks': u'476', 'lang': u'C++', 'name': u'hiphop-php', 'stars': u'4,281'},
{'forks': u'1,718', 'lang': u'PHP', 'name': u'symfony', 'stars': u'5,728'},
{'forks': u'61', 'lang': u'PHP', 'name': u'phpbb', 'stars': u'609'},
{'forks': u'279',
'lang': u'JavaScript',
'name': u'tinymce',
'stars': u'1,383'},
{'forks': u'139', 'lang': u'Erlang', 'name': u'ejabberd', 'stars': u'523'},
{'forks': u'657', 'lang': u'Ruby', 'name': u'ruby', 'stars': u'3,334'},
{'forks': u'942', 'lang': u'PHP', 'name': u'cakephp', 'stars': u'3,339'},
{'forks': u'333', 'lang': u'Java', 'name': u'clojure', 'stars': u'1,892'},
{'forks': u'286', 'lang': u'Python', 'name': u'buildbot', 'stars': u'405'},
{'forks': u'134', 'lang': u'C', 'name': u'postgres', 'stars': u'646'},
{'forks': u'114', 'lang': u'Scala', 'name': u'framework', 'stars': u'601'},
{'forks': u'1,444', 'lang': u'C', 'name': u'linux', 'stars': u'6,648'},
{'forks': u'1,136', 'lang': u'Python', 'name': u'django', 'stars': u'4,611'}]
def fetch_interesting_repos(force=True):
if not force:
return fixtures
import urllib2
from BeautifulSoup import BeautifulSoup
html = urllib2.urlopen('http://github.com/repositories').read()
soup = BeautifulSoup(html)
rl = soup.find('ul', attrs={'class': 'repolist js-repo-list'})
results = []
for x in rl.findAll('li', attrs={'class':
lambda kls: kls and kls.find('source') != -1}):
if not x: continue
try:
name = x.h3.find('a').text
lang = x.find('ul').li.text
stars = x.find('ul').find('li', attrs={'class': 'stargazers'}).text
forks = x.find('ul').find('li', attrs={'class': 'forks'}).text
except:
raise
results.append({
'name': name,
'lang': lang,
'stars': stars,
'forks': forks,
})
return results
def make_plist(result, filename="fixtures.plist"):
import plistlib
plistlib.writePlist(result, filename)
if __name__ == '__main__':
result = fetch_interesting_repos(False)
make_plist(result)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment