diff --git a/__pycache__/functions.cpython-312.pyc b/__pycache__/functions.cpython-312.pyc new file mode 100644 index 0000000..6c76686 Binary files /dev/null and b/__pycache__/functions.cpython-312.pyc differ diff --git a/__pycache__/possistions.cpython-312.pyc b/__pycache__/possistions.cpython-312.pyc new file mode 100644 index 0000000..c6d9701 Binary files /dev/null and b/__pycache__/possistions.cpython-312.pyc differ diff --git a/main.py b/main.py index cfe727c..e391c5d 100644 --- a/main.py +++ b/main.py @@ -8,15 +8,15 @@ def selectCity(): cities = list(cities.keys()) cities.append('Exit') selected = 0 + search_mode = False while True: clear() # Assuming you have a 'clear' function that clears the screen - print("Select a city:") + print('Select a city or hit "/" to search:') for i, city in enumerate(cities): prefix = "> " if i == selected else " " print(prefix + city) key = readchar.readkey() - if key == readchar.key.UP or key == 'k' and selected > 0: selected -= 1 elif key == readchar.key.DOWN or key == 'j' and selected < len(cities) - 1: @@ -27,8 +27,42 @@ def selectCity(): return cities[selected] else: sys.exit() + elif key == "/": + search_mode = True + search_query = "" + all_cities = cities # Keep original city list + filtered_cities = all_cities # Start with all cities + while search_mode: + clear() + print(f"Search mode ON | Query: {search_query}") + + # Show filtered results + for city in filtered_cities: + print(" " + city) + key = readchar.readkey() + + if key == readchar.key.ESC: # Exit search mode + search_mode = False + filtered_cities = all_cities # Reset filter + search_query = "" + + elif key == readchar.key.BACKSPACE and len(search_query) > 0: # Delete last character + search_query = search_query[:-1] + + elif key == readchar.key.ENTER: # Exit search mode + cities = filtered_cities + search_mode = False + else: + search_query += key # Append new character + + # Update filtered cities based on search query + filtered_cities = [city for city in all_cities if search_query.lower() in city.lower()] + filtered_cities.append("Exit") + + + # Call the function to display and select a city selected_city = selectCity()