mirror of
https://github.com/hastagAB/Awesome-Python-Scripts.git
synced 2024-11-30 15:31:07 +00:00
49 lines
1.7 KiB
Python
49 lines
1.7 KiB
Python
|
import requests
|
||
|
import json
|
||
|
import argparse
|
||
|
|
||
|
ap = argparse.ArgumentParser()
|
||
|
ap.add_argument("-f", "--function", required=True, help="user details or repo details")
|
||
|
ap.add_argument("-l", "--list", required=True, metavar="", nargs='+', default=[], help="handle and repo")
|
||
|
args = vars(ap.parse_args())
|
||
|
|
||
|
class GithubBot():
|
||
|
def __init__(self):
|
||
|
print('******************* GITHUB CLI TOOL *********************')
|
||
|
self.base_url = "https://api.github.com/"
|
||
|
|
||
|
def get_user_details(self, args):
|
||
|
url = self.base_url + "users/" + args[0]
|
||
|
res = requests.get(url)
|
||
|
print('*********** USER:', args[0], '***************')
|
||
|
if res.status_code == 200:
|
||
|
data = json.loads(res.text)
|
||
|
print("NAME: ", data["name"])
|
||
|
print("BIO: ", data["bio"])
|
||
|
print("LOCATION: ", data["location"])
|
||
|
print("FOLLOWERS COUNT: ", data["followers"])
|
||
|
print("FOLLOWING COUNT: ", data["following"])
|
||
|
else:
|
||
|
print("Error getting details")
|
||
|
|
||
|
def get_repo_details(self, args):
|
||
|
url = self.base_url + "repos/" + args[0] + "/" + args[1]
|
||
|
res = requests.get(url)
|
||
|
print('********* USER:', args[0], '| REPO:', args[1], '*********')
|
||
|
if res.status_code == 200:
|
||
|
data = json.loads(res.text)
|
||
|
print("URL: ", data["svn_url"])
|
||
|
print("STARS: ", data["stargazers_count"])
|
||
|
print("FORKS: ", data["forks"])
|
||
|
print("LANGUAGE: ", data["language"])
|
||
|
else:
|
||
|
print("Error getting details")
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
obj = GithubBot()
|
||
|
function_map = {
|
||
|
'user': obj.get_user_details,
|
||
|
'repo': obj.get_repo_details,
|
||
|
}
|
||
|
function_map[args['function']](args['list'])
|
||
|
|