forked from hastagAB/Awesome-Python-Scripts
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
49 lines (43 loc) · 1.74 KB
/
main.py
File metadata and controls
49 lines (43 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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'])