def add_users_who_starred_repo(repo): db = DB() stargazers = repo.get_stargazers_with_dates() for i, s in enumerate(stargazers): print "\tAdding user {0}: {1}".format(i, s.user.login) insert_user_repo_relationship(db, repo, s.user, s.starred_at) insert_user(db, s.user) add_users_other_stars(db, s.user) if i > git_details.MAX_USERS: print "**WARNING: More than %d users" % git_details.MAX_REPOS break print "\t\tAdded {0} starred repos".format(i) db.close()
def get_details_for_repos(repo_names, from_hacker_news=False): g = git_details.g db = DB() for r in repo_names: repo = g.get_repo(r) try: name = repo.name except Exception as err: print "ERROR: ", err else: if repo.id: print "\tAdding details for", repo.name print "\t\t", repo.description print add_repo_to_db(db, repo, from_hacker_news) db.close()
def repos_to_update(): db = DB() last_job_time = db.query(""" SELECT max(added_at) from github_user_starred_repos """ ).fetchone()[0] last_job_time = '2016-02-21' repos_raw = db.query(""" SELECT id from github_repos where added_at > '%s' """ % last_job_time ).fetchall() repos = list(zip(*repos_raw)[0]) if repos_raw else [] db.close() return repos
def get_hn_repos(): db = DB() last_job_time = db.query(""" SELECT max(added_at) from github_repos where from_hacker_news=1 """ ).fetchone()[0] if not last_job_time: last_job_time = '1970-01-01' hn_repos_raw = db.query(""" SELECT github_repo_name from hacker_news where added_at > '%s' """ % last_job_time ).fetchall() if hn_repos_raw: hn_repos = list(zip(*hn_repos_raw)[0]) else: hn_repos = [] db.close() return hn_repos