2023-07-03 15:12:58 +02:00
|
|
|
import requests
|
2024-03-22 23:45:04 +01:00
|
|
|
import sys
|
2023-07-03 15:12:58 +02:00
|
|
|
|
|
|
|
apiLocation = "https://git.tijl.dev/api/v1"
|
2024-03-22 23:45:04 +01:00
|
|
|
secret = sys.argv[1]
|
2023-07-03 15:12:58 +02:00
|
|
|
|
2024-03-22 23:45:04 +01:00
|
|
|
userrepos = requests.get(
|
|
|
|
apiLocation+'/user/repos',
|
|
|
|
headers={
|
|
|
|
'Authorization': 'token '+secret
|
|
|
|
}
|
|
|
|
)
|
2023-07-03 15:12:58 +02:00
|
|
|
|
|
|
|
if userrepos.status_code == 200:
|
|
|
|
userrepos = userrepos.json()
|
|
|
|
else:
|
|
|
|
print(f'Request failed with status code {userrepos.status_code}')
|
|
|
|
|
|
|
|
result = []
|
|
|
|
|
|
|
|
for item in userrepos:
|
|
|
|
languages_url = item.get('languages_url')
|
|
|
|
if languages_url:
|
2024-03-22 23:45:04 +01:00
|
|
|
language_response = requests.get(
|
|
|
|
languages_url,
|
|
|
|
headers={'Authorization': 'token '+secret}
|
|
|
|
)
|
2023-07-03 15:12:58 +02:00
|
|
|
if language_response.status_code == 200:
|
|
|
|
language_data = language_response.json()
|
2024-03-22 23:45:04 +01:00
|
|
|
newdata = {
|
|
|
|
'full_name': item.get('full_name'),
|
|
|
|
'language_data': language_data
|
|
|
|
}
|
2023-07-03 15:12:58 +02:00
|
|
|
result.append(newdata)
|
|
|
|
else:
|
|
|
|
print(f'Request failed with status code {userrepos.status_code}')
|
|
|
|
|
|
|
|
language_counts = {}
|
|
|
|
|
|
|
|
for item in result:
|
|
|
|
language_data = item.get('language_data')
|
|
|
|
if language_data:
|
|
|
|
for language, count in language_data.items():
|
|
|
|
if language in language_counts:
|
2023-07-03 15:17:55 +02:00
|
|
|
language_counts[language]['score'] += count
|
2023-07-03 15:12:58 +02:00
|
|
|
else:
|
2023-07-03 15:17:55 +02:00
|
|
|
language_counts[language] = {'score': count}
|
2023-07-03 15:12:58 +02:00
|
|
|
|
2024-03-22 23:45:04 +01:00
|
|
|
sorted_data = dict(
|
|
|
|
sorted(
|
|
|
|
language_counts.items(),
|
|
|
|
key=lambda x: x[1]['score'],
|
|
|
|
reverse=True)
|
|
|
|
)
|
2023-07-03 15:17:55 +02:00
|
|
|
|
|
|
|
print(sorted_data)
|