Fixed maintenance folder typo

This commit is contained in:
Lucas
2025-03-30 15:15:32 -07:00
parent 9ec9323a1a
commit 1b4399a2aa
5 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
import os
import json
import requests
from urllib.parse import urlparse
JSON_FILE = "applications.json"
# Get GitHub token from environment variable.
GITHUB_TOKEN = os.getenv("GITHUB_TOKEN")
if not GITHUB_TOKEN:
raise EnvironmentError("Please set your GITHUB_TOKEN environment variable.")
HEADERS = {
"Authorization": f"token {GITHUB_TOKEN}",
"Accept": "application/vnd.github.v3+json",
}
def format_stars(stars):
# Star count format
if stars < 1000:
return str(stars)
else:
# Check if the number is evenly divisible by 1000.
if stars % 1000 == 0:
return f"{stars // 1000}k"
else:
# Format to one decimal place.
return f"{stars / 1000:.1f}k"
def extract_owner_repo(url):
# Extract URL
parsed = urlparse(url)
path_parts = parsed.path.strip("/").split("/")
if len(path_parts) >= 2:
return path_parts[0], path_parts[1]
else:
raise ValueError(f"URL {url} is not a valid GitHub repository URL.")
def update_star_count(application):
repo_url = application.get("link", "")
try:
owner, repo = extract_owner_repo(repo_url)
except ValueError as e:
print(e)
return
api_url = f"https://api.github.com/repos/{owner}/{repo}"
response = requests.get(api_url, headers=HEADERS)
if response.status_code == 200:
data = response.json()
stars = data.get("stargazers_count", 0)
application["stars"] = format_stars(stars)
print(f"Updated {owner}/{repo} with {application['stars']} stars.")
else:
print(f"Failed to fetch data for {owner}/{repo}: {response.status_code} {response.text}")
def main():
# Load the JSON file
with open(JSON_FILE, "r", encoding="utf-8") as f:
data = json.load(f)
applications = data.get("applications", [])
for app in applications:
update_star_count(app)
# Save updated JSON back to file
with open(JSON_FILE, "w", encoding="utf-8") as f:
json.dump(data, f, indent=4)
print("Updated JSON file.")
if __name__ == "__main__":
main()