Skip to content

Commit d989ba3

Browse files
Merge pull request steam-bell-92#1275 from kumudasrip/fix/unknown-badge-fallback
Fix: search_projects crash on unknown category/difficulty values
2 parents 6dd19a8 + ca312fa commit d989ba3

2 files changed

Lines changed: 18 additions & 16 deletions

File tree

main.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ def print_footer():
4040
print("═" * 60)
4141

4242
def list_projects_by_category(category_name):
43-
filtered = [p for p in PROJECTS if p["category"] == category_name]
44-
filtered_sorted = sorted(filtered, key=lambda p: p["name"])
43+
filtered = [p for p in PROJECTS if p.get("category", "") == category_name]
44+
filtered_sorted = sorted(filtered, key=lambda p: p.get("name", ""))
4545
return filtered_sorted
4646

4747
def launch_project(path):
@@ -100,9 +100,9 @@ def category_menu(category_key, category_title):
100100

101101
items = list_projects_by_category(category_key)
102102
for idx, item in enumerate(items, start=1):
103-
difficulty = DIFFICULTY_BADGES.get(item["difficulty"], item["difficulty"])
104-
print(f" [{idx:2d}] {item['emoji']} {item['name']:30s} [{difficulty}]")
105-
print(f" {item['description']}")
103+
difficulty = DIFFICULTY_BADGES.get(item.get("difficulty", "Unknown"), item.get("difficulty", "Unknown"))
104+
print(f" [{idx:2d}] {item.get('emoji', '')} {item.get('name', ''):30s} [{difficulty}]")
105+
print(f" {item.get('description', '')}")
106106
print()
107107

108108
print(f" [B] 🔙 Back to Main Menu")
@@ -148,10 +148,10 @@ def search_menu():
148148
print("─" * 60)
149149

150150
for idx, item in enumerate(results, start=1):
151-
cat_emoji = CATEGORY_EMOJIS.get(item["category"], "")
152-
difficulty = DIFFICULTY_BADGES.get(item["difficulty"], item["difficulty"])
153-
print(f" [{idx:2d}] {cat_emoji} {item['name']:30s} [{difficulty}]")
154-
print(f" {item['description']}")
151+
cat_emoji = CATEGORY_EMOJIS.get(item.get("category", ""), "")
152+
difficulty = DIFFICULTY_BADGES.get(item.get("difficulty", "Unknown"), item.get("difficulty", "Unknown"))
153+
print(f" [{idx:2d}] {cat_emoji} {item.get('name', ''):30s} [{difficulty}]")
154+
print(f" {item.get('description', '')}")
155155
print()
156156

157157
print(f" [B] 🔙 Back to Main Menu")
@@ -177,12 +177,12 @@ def list_all_menu():
177177
print(" 📋 All Projects")
178178
print("─" * 60)
179179

180-
sorted_all = sorted(PROJECTS, key=lambda p: (p["category"], p["name"]))
180+
sorted_all = sorted(PROJECTS, key=lambda p: (p.get("category", ""), p.get("name", "")))
181181
for idx, item in enumerate(sorted_all, start=1):
182-
cat_emoji = CATEGORY_EMOJIS.get(item["category"], "")
183-
difficulty = DIFFICULTY_BADGES.get(item["difficulty"], item["difficulty"])
184-
print(f" [{idx:2d}] {cat_emoji} {item['name']:30s} [{difficulty}]")
185-
print(f" {item['description']}")
182+
cat_emoji = CATEGORY_EMOJIS.get(item.get("category", ""), "")
183+
difficulty = DIFFICULTY_BADGES.get(item.get("difficulty", "Unknown"), item.get("difficulty", "Unknown"))
184+
print(f" [{idx:2d}] {cat_emoji} {item.get('name', ''):30s} [{difficulty}]")
185+
print(f" {item.get('description', '')}")
186186
print()
187187

188188
print(f" [B] 🔙 Back to Main Menu")

search_projects.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,9 @@ def divider():
4949

5050
def display_project(idx, p, show_path=False):
5151
print(f"\n [{idx}] {p['emoji']} {p['name']}")
52-
print(f" {CATEGORY_BADGE[p['category']]} {DIFFICULTY_BADGE[p['difficulty']]}")
52+
category_badge = CATEGORY_BADGE.get(p.get('category', '').lower(), 'Unknown')
53+
difficulty_badge = DIFFICULTY_BADGE.get(p.get('difficulty', '').lower(), 'Unknown')
54+
print(f" {category_badge} {difficulty_badge}")
5355
print(f" {p['description']}")
5456
if show_path:
5557
print(f" 📂 {p['path']}")
@@ -157,7 +159,7 @@ def main():
157159
elif choice == "4":
158160
all_sorted = sorted(
159161
PROJECTS,
160-
key=lambda p: (p["category"], DIFFICULTY_ORDER[p["difficulty"]])
162+
key=lambda p: (p.get("category", ""), DIFFICULTY_ORDER.get(p.get("difficulty", ""), 99))
161163
)
162164
display_results(all_sorted, show_path=False)
163165
launch_project(all_sorted)

0 commit comments

Comments
 (0)