mirror of
https://github.com/Lyxminxx/weatherCLI.git
synced 2026-10-11 20:57:46 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
59fc72d0c1 |
No files matched your search
Binary file not shown.
Binary file not shown.
@@ -8,15 +8,15 @@ def selectCity():
|
|||||||
cities = list(cities.keys())
|
cities = list(cities.keys())
|
||||||
cities.append('Exit')
|
cities.append('Exit')
|
||||||
selected = 0
|
selected = 0
|
||||||
|
search_mode = False
|
||||||
while True:
|
while True:
|
||||||
clear() # Assuming you have a 'clear' function that clears the screen
|
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):
|
for i, city in enumerate(cities):
|
||||||
prefix = "> " if i == selected else " "
|
prefix = "> " if i == selected else " "
|
||||||
print(prefix + city)
|
print(prefix + city)
|
||||||
|
|
||||||
key = readchar.readkey()
|
key = readchar.readkey()
|
||||||
|
|
||||||
if key == readchar.key.UP or key == 'k' and selected > 0:
|
if key == readchar.key.UP or key == 'k' and selected > 0:
|
||||||
selected -= 1
|
selected -= 1
|
||||||
elif key == readchar.key.DOWN or key == 'j' and selected < len(cities) - 1:
|
elif key == readchar.key.DOWN or key == 'j' and selected < len(cities) - 1:
|
||||||
@@ -27,6 +27,40 @@ def selectCity():
|
|||||||
return cities[selected]
|
return cities[selected]
|
||||||
else:
|
else:
|
||||||
sys.exit()
|
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
|
# Call the function to display and select a city
|
||||||
|
|||||||
Reference in new issue
Block a user