forked from shindgewongxj/WHATSINStash
-
Notifications
You must be signed in to change notification settings - Fork 0
/
generate_json.py
45 lines (36 loc) · 1.5 KB
/
generate_json.py
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
import os
import json
from github import Github
def generate_json(folder_path, repo_name, branch_name):
icons = []
folder_name = os.path.basename(folder_path)
for filename in os.listdir(folder_path):
if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.gif')):
icon_url = f"https://github.com/{repo_name}/raw/{branch_name}/{folder_path}/{filename}"
icons.append({
"name": os.path.splitext(filename)[0],
"url": icon_url
})
# Sort the icons list by the 'name' key
icons.sort(key=lambda x: x['name'].lower())
return {
"name": f"WHATSINStach {folder_name.capitalize()}",
"description": f"{folder_name.capitalize()} iconset",
"icons": icons
}
# Get repository information
g = Github(os.environ['GITHUB_TOKEN'])
repo = g.get_repo(os.environ['GITHUB_REPOSITORY'])
branch = repo.get_branch(os.environ['GITHUB_REF'].split('/')[-1])
# Specify the main folder to scan
main_folder = 'iconset'
# Generate JSON for each subfolder
for subfolder in os.listdir(main_folder):
subfolder_path = os.path.join(main_folder, subfolder)
if os.path.isdir(subfolder_path):
json_data = generate_json(subfolder_path, repo.full_name, branch.name)
# Write JSON file with subfolder name
json_filename = f"{subfolder}.json"
with open(os.path.join(main_folder, json_filename), 'w') as f:
json.dump(json_data, f, indent=4)
print("JSON files generated successfully.")