fix discord emojis. fix final message small details.
This commit is contained in:
48
PICable.py
48
PICable.py
@@ -5,7 +5,7 @@ from datetime import datetime, timedelta
|
||||
|
||||
import requests
|
||||
|
||||
LIMIT_COMMITS_30_DAYS = 50 # Has to be <= 100
|
||||
LIMIT_COMMITS_30_DAYS = 50 # Has to be <= 100
|
||||
LIMIT_STARS = 200
|
||||
LIMIT_NLOC = 100000
|
||||
MARGIN = 0.1
|
||||
@@ -29,10 +29,10 @@ def get_commits_last_30_days(owner, repo, token):
|
||||
print(since)
|
||||
commits_url = f"https://api.github.com/repos/{owner}/{repo}/commits?since={since}&per_page={LIMIT_COMMITS_30_DAYS}"
|
||||
commits_response = requests.get(commits_url, headers=headers)
|
||||
|
||||
|
||||
if commits_response.status_code != 200:
|
||||
return -1
|
||||
|
||||
|
||||
commits_30_days = len(commits_response.json())
|
||||
return commits_30_days
|
||||
|
||||
@@ -65,46 +65,52 @@ def PICable(owner, repository, token):
|
||||
stars = get_stars_info(owner, repository, token)
|
||||
|
||||
if stars == -1:
|
||||
return "The repository does not exist or the token is invalid. ❌"
|
||||
return "The repository does not exist or the token is invalid. :x:"
|
||||
|
||||
if stars >= LIMIT_STARS:
|
||||
res += f"The repository has over {LIMIT_STARS} stars. ✅\n"
|
||||
res += f"The repository has at least {LIMIT_STARS} stars. :white_check_mark:\n"
|
||||
elif stars >= LIMIT_STARS * (1 - MARGIN):
|
||||
res += f"The repository has {stars}, which is close to the limit of {LIMIT_STARS} stars, considering a {margin_percentage}% margin. ⭕\n"
|
||||
res += f"The repository has {stars}, which is close to the limit of {LIMIT_STARS} stars, considering a {margin_percentage}% margin. :warning:\n"
|
||||
else:
|
||||
res += f"The repository has {stars} stars, which is way below the limit of {LIMIT_STARS} stars, considering a {margin_percentage}% margin. ❌\n"
|
||||
res += f"The repository has {stars} stars, which is way below the limit of {LIMIT_STARS} stars, considering a {margin_percentage}% margin. :x:\n"
|
||||
|
||||
commits_30_days = get_commits_last_30_days(owner, repository, token)
|
||||
|
||||
if commits_30_days == -1:
|
||||
return "The repository does not exist or the token is invalid. ❌"
|
||||
return "The repository does not exist or the token is invalid. :x:"
|
||||
|
||||
if commits_30_days >= LIMIT_COMMITS_30_DAYS:
|
||||
res += f"The repository has over {LIMIT_COMMITS_30_DAYS} commits in the last 30 days. ✅\n"
|
||||
res += f"The repository has at least {LIMIT_COMMITS_30_DAYS} commits in the last 30 days. :white_check_mark:\n"
|
||||
elif commits_30_days >= LIMIT_COMMITS_30_DAYS * (1 - MARGIN):
|
||||
res += f"The repository has {commits_30_days} commits in the last 30 days, which is close to the limit of {LIMIT_COMMITS_30_DAYS} commits, considering a {margin_percentage}% margin. ⭕\n"
|
||||
res += f"The repository has {commits_30_days} commits in the last 30 days, which is close to the limit of {LIMIT_COMMITS_30_DAYS} commits, considering a {margin_percentage}% margin. :warning:\n"
|
||||
else:
|
||||
res += f"The repository has {commits_30_days} commits in the last 30 days, which is way below the limit of {LIMIT_COMMITS_30_DAYS} commits, considering a {margin_percentage}% margin. ❌\n"
|
||||
res += f"The repository has {commits_30_days} commits in the last 30 days, which is way below the limit of {LIMIT_COMMITS_30_DAYS} commits, considering a {margin_percentage}% margin. :x:\n"
|
||||
|
||||
nloc = get_lines_of_code(owner, repository)
|
||||
|
||||
if nloc == -1:
|
||||
return "The repository does not exist. ❌"
|
||||
return "The repository does not exist. :x:"
|
||||
|
||||
if nloc >= LIMIT_NLOC:
|
||||
res += f"The repository has over {LIMIT_NLOC} lines of code. ✅\n"
|
||||
res += f"The repository has at least {LIMIT_NLOC} lines of code. :white_check_mark:\n"
|
||||
elif nloc >= LIMIT_NLOC * (1 - MARGIN):
|
||||
res += f"The repository has {nloc} lines of code, which is close to the limit of {LIMIT_NLOC} lines of code, considering a {margin_percentage}% margin. ⭕\n"
|
||||
res += f"The repository has {nloc} lines of code, which is close to the limit of {LIMIT_NLOC} lines of code, considering a {margin_percentage}% margin. :warning:\n"
|
||||
else:
|
||||
res += f"The repository has {nloc} lines of code, which is way below the limit of {LIMIT_NLOC} lines of code, considering a {margin_percentage}% margin. ❌\n"
|
||||
|
||||
res += f"The repository has {nloc} lines of code, which is way below the limit of {LIMIT_NLOC} lines of code, considering a {margin_percentage}% margin. :x:\n"
|
||||
|
||||
res += "\n"
|
||||
|
||||
if any([stars < LIMIT_STARS * (1 - MARGIN), commits_30_days < LIMIT_COMMITS_30_DAYS * (1 - MARGIN), nloc < LIMIT_NLOC * (1 - MARGIN)]):
|
||||
res += f"The repository {owner}/{repository} is not PICable. There are some requirements that are way below the requested limits. ❌\n"
|
||||
if any(
|
||||
[
|
||||
stars < LIMIT_STARS * (1 - MARGIN),
|
||||
commits_30_days < LIMIT_COMMITS_30_DAYS * (1 - MARGIN),
|
||||
nloc < LIMIT_NLOC * (1 - MARGIN),
|
||||
]
|
||||
):
|
||||
res += f"The repository {owner}/{repository} is not PICable. There are some requirements that are way below the requested limits. :x:\n"
|
||||
elif all([stars >= LIMIT_STARS, commits_30_days >= LIMIT_COMMITS_30_DAYS, nloc >= LIMIT_NLOC]):
|
||||
res += f"The repository {owner}/{repository} is PICable. ✅\n"
|
||||
res += f"The repository {owner}/{repository} is PICable. :white_check_mark:\n"
|
||||
else:
|
||||
res += f"The repository {owner}/{repository} is almost PICable. There are certain requirements which are almost met by this repository. Consult with a professor before proceeding. ⭕\n"
|
||||
res += f"The repository {owner}/{repository} is almost PICable. There are certain requirements which are almost met by this repository. Consult with a professor before proceeding. :warning:\n"
|
||||
|
||||
return res
|
||||
return res
|
||||
|
||||
Reference in New Issue
Block a user