Skip to content

Commit 3c170bf

Browse files
Merge pull request #2 from Anonymous6598/prerelease
Add files via upload
2 parents 0fa3509 + d3a0a6d commit 3c170bf

16 files changed

+405
-0
lines changed

My_Maps/Linux/My_Maps.py

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
import customtkinter, tkintermapview, typing, geocoder, CTkMenuBar, locale, My_Maps_Interface, My_Maps_AI_window, pickle, My_Maps_settings
2+
3+
with open(f"my_maps_language_settings.pickle", f"rb+") as data: language_data: str = pickle.load(data)
4+
5+
with open(f"my_maps_theme_settings.pickle", f"rb+") as theme_data: theme: str = pickle.load(theme_data)
6+
7+
class Program(customtkinter.CTk, My_Maps_Interface.My_Maps_Interface):
8+
9+
TITLE: typing.Final[str] = f"My Maps "
10+
WIDGET_SCALING: typing.Final[int] = 1.251
11+
12+
def __init__(self: typing.Self, *args: typing.Any, **kwargs: typing.Any) -> None:
13+
customtkinter.CTk.__init__(self, *args, **kwargs)
14+
15+
customtkinter.deactivate_automatic_dpi_awareness()
16+
customtkinter.set_widget_scaling(self.WIDGET_SCALING)
17+
customtkinter.set_appearance_mode(theme)
18+
19+
self.title(self.TITLE)
20+
21+
self.main_screen_current_cordinates: tuple[float, float] = geocoder.ip(f"me")
22+
23+
self.main_screen_map: tkintermapview.TkinterMapView = tkintermapview.TkinterMapView(master=self, corner_radius=0)
24+
self.main_screen_map.pack(fill=f"both", expand=True)
25+
26+
self.main_screen_map.set_position(self.main_screen_current_cordinates.latlng[0], self.main_screen_current_cordinates.latlng[1])
27+
28+
self.main_screen_menu: CTkMenuBar.CTkTitleMenu = CTkMenuBar.CTkTitleMenu(self)
29+
30+
self.main_screen_menu_menu_button: customtkinter.CTkButton = self.main_screen_menu.add_cascade(text=f"☰")
31+
32+
self.main_screen_menu_dropdownmenu: CTkMenuBar.CustomDropdownMenu = CTkMenuBar.CustomDropdownMenu(widget=self.main_screen_menu_menu_button)
33+
34+
if language_data == f"Српски":
35+
self.main_screen_menu_dropdownmenu.add_option(option=f"🔎 (претрага)", command=self.__search__)
36+
self.main_screen_menu_dropdownmenu.add_option(option=f"AI", command=lambda: My_Maps_AI_window.AI_Window())
37+
38+
elif language_data == f"Русский":
39+
self.main_screen_menu_dropdownmenu.add_option(option=f"🔎 (поиск)", command=self.__search__)
40+
self.main_screen_menu_dropdownmenu.add_option(option=f"ИИ (Нейро сеть)", command=lambda: My_Maps_AI_window.AI_Window())
41+
42+
else:
43+
self.main_screen_menu_dropdownmenu.add_option(option=f"🔎 (search)", command=self.__search__)
44+
self.main_screen_menu_dropdownmenu.add_option(option=f"AI", command=lambda: My_Maps_AI_window.AI_Window())
45+
46+
self.main_screen_menu_settings_button: customtkinter.CTkButton = self.main_screen_menu.add_cascade(text=f"⚙️", command=lambda: My_Maps_settings.My_Maps_setting_window())
47+
48+
@typing.override
49+
def __search__(self: typing.Self) -> None:
50+
if language_data == f"Српски":
51+
self.main_screen_search_dialog: customtkinter.CTkInputDialog = customtkinter.CTkInputDialog(text=f"претрага", title=f"претрага", button_fg_color=f"green")
52+
53+
self.main_screen_map.set_address(self.main_screen_search_dialog.get_input())
54+
55+
elif language_data == f"Русский":
56+
self.main_screen_search_dialog: customtkinter.CTkInputDialog = customtkinter.CTkInputDialog(text=f"поиск", title=f"поиск", button_fg_color=f"green")
57+
58+
self.main_screen_map.set_address(self.main_screen_search_dialog.get_input())
59+
60+
else:
61+
self.main_screen_search_dialog: customtkinter.CTkInputDialog = customtkinter.CTkInputDialog(text=f"search", title=f"search", button_fg_color=f"green")
62+
63+
self.main_screen_map.set_address(self.main_screen_search_dialog.get_input())
64+
65+
if __name__ == f"__main__":
66+
program: Program = Program().mainloop()

My_Maps/Linux/My_Maps_AI.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import g4f, typing, My_Maps_AI_Interface
2+
3+
class My_Maps_LM(My_Maps_AI_Interface.My_Maps_AI_interface):
4+
5+
LANGUAGE_MODEL: typing.Final[str] = f"gpt-4o"
6+
7+
def __init__(self: typing.Self) -> None:
8+
self.language_model: str = self.LANGUAGE_MODEL
9+
10+
@typing.override
11+
def __response__(self: typing.Self, prompt: str) -> str:
12+
self.user_query: list[dict[str, str]] = [{f"role": f"user", f"content": prompt}]
13+
14+
self.response: str = g4f.ChatCompletion.create(model=self.language_model, messages=self.user_query)
15+
16+
return self.response
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import abc, typing
2+
3+
class My_Maps_AI_interface(abc.ABC):
4+
def __response__(self: typing.Self, prompt: str) -> str:
5+
pass

My_Maps/Linux/My_Maps_AI_window.py

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import customtkinter, tkinter, typing, My_Maps_AI, speech_recognition, My_Maps_AI_window_interface
2+
3+
class AI_Window(customtkinter.CTkToplevel, My_Maps_AI_window_interface.My_Maps_AI_window_interface):
4+
5+
TITLE: typing.Final[str] = f"My Maps AI assistant"
6+
HEIGHT: typing.Final[int] = 375
7+
WIDTH: typing.Final[int] = 655
8+
COLOR_THEME: typing.Final[str] = f"dark-blue"
9+
WIDGET_SCALING: typing.Final[float] = 1.251
10+
THEME: typing.Final[str] = f"system"
11+
12+
def __init__(self: typing.Self, *args, **kwargs) -> None:
13+
customtkinter.CTkToplevel.__init__(self, *args, **kwargs)
14+
15+
customtkinter.set_widget_scaling(self.WIDGET_SCALING)
16+
customtkinter.set_default_color_theme(self.COLOR_THEME)
17+
customtkinter.set_appearance_mode(self.THEME)
18+
customtkinter.deactivate_automatic_dpi_awareness()
19+
20+
self.title(self.TITLE)
21+
self.geometry(f"{self.WIDTH}x{self.HEIGHT}")
22+
self.resizable(False, False)
23+
24+
self.ai_window_textbox: customtkinter.CTkTextbox = customtkinter.CTkTextbox(master=self, height=265, width=524, corner_radius=0, fg_color=f"transparent", text_color=(f"black", f"white"))
25+
self.ai_window_textbox.place(x=0, y=0)
26+
27+
self.ai_window_textbox.configure(state=f"disabled")
28+
29+
self.ai_window_entry: customtkinter.CTkEntry = customtkinter.CTkEntry(master=self, height=30, width=465, border_width=0, fg_color=f"transparent", placeholder_text=f"...")
30+
self.ai_window_entry.place(x=0, y=269)
31+
32+
self.ai_window_microphone_button: customtkinter.CTkButton = customtkinter.CTkButton(master=self, height=30, width=30, border_width=0, fg_color=f"transparent", text=f"🎤", command=self.__audio_input__)
33+
self.ai_window_microphone_button.place(x=465, y=269)
34+
35+
self.ai_window_send_request_button: customtkinter.CTkButton = customtkinter.CTkButton(master=self, height=30, width=30, border_width=0, fg_color=f"transparent", text=f"->", command=self.__response__)
36+
self.ai_window_send_request_button.place(x=495, y=269)
37+
38+
self.ai_window_entry.bind(f"<Return>", self.__response__)
39+
40+
def __response__(self: typing.Self, configure: str | None = None) -> None:
41+
self.ai_window_entry_data: str = self.ai_window_entry.get()
42+
43+
self.ai_window_textbox.configure(state=f"normal")
44+
self.query: str = My_Maps_AI.My_Maps_LM().__response__(self.ai_window_entry_data)
45+
46+
self.ai_window_textbox.insert(tkinter.END, f"USER:\n{self.ai_window_entry_data}\nGPT-4o:\n{self.query}\n", f"-1.0")
47+
self.ai_window_textbox.configure(state=f"disabled")
48+
self.ai_window_entry.delete(f"-1", tkinter.END)
49+
50+
def __audio_input__(self: typing.Self) -> None:
51+
self.recognizer: speech_recognition.Recognizer = speech_recognition.Recognizer()
52+
with speech_recognition.Microphone() as self.source:
53+
self.audio_data: speech_recognition.AudioData = self.recognizer.record(self.source, duration=5)
54+
self.text: str = self.recognizer.recognize_google(self.audio_data)
55+
56+
self.ai_window_entry.insert(f"0", self.text)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import abc, typing
2+
3+
class My_Maps_AI_window_interface(abc.ABC):
4+
5+
def __response__(self: typing.Self, configure: str | None = None) -> None:
6+
pass
7+
8+
def __audio_input__(self: typing.Self) -> None:
9+
pass

My_Maps/Linux/My_Maps_Interface.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import abc, typing
2+
3+
class My_Maps_Interface(abc.ABC):
4+
5+
@abc.abstractmethod
6+
def __search__(self: typing.Self) -> None:
7+
pass

My_Maps/Linux/My_Maps_settings.py

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
import customtkinter, tkinter.messagebox, pickle, typing
2+
3+
with open(f"my_maps_language_settings.pickle", f"rb+") as data: language_data: str = pickle.load(data)
4+
5+
with open(f"my_maps_theme_settings.pickle", f"rb+") as theme_data: theme: str = pickle.load(theme_data)
6+
7+
class My_Maps_setting_window(customtkinter.CTkToplevel):
8+
WIDTH: typing.Final[int] = 655
9+
HEIGHT: typing.Final[int] = 330
10+
TITLE: typing.Final[str] = "My Diary settings window"
11+
12+
def __init__(self, *args, **kwargs) -> None:
13+
customtkinter.CTkToplevel.__init__(self, *args, **kwargs)
14+
15+
self.geometry(f"{self.WIDTH}x{self.HEIGHT}")
16+
self.resizable(False, False)
17+
self.title(self.TITLE)
18+
19+
if language_data == f"Српски":
20+
self.main_screen_settings_text: customtkinter.CTkLabel = customtkinter.CTkLabel(master=self, text=f"Подешавања", font=(f"Roboto Bold", 75))
21+
self.main_screen_settings_text.place(x=0, y=0)
22+
23+
self.main_screen_language_text: customtkinter.CTkLabel = customtkinter.CTkLabel(master=self, text=f"Језици", font=(f"Roboto Bold", 50))
24+
self.main_screen_language_text.place(x=0, y=87)
25+
26+
self.main_screen_settings_theme_mode_text: customtkinter.CTkLabel = customtkinter.CTkLabel(master=self, text=f"Тема", font=(f"Roboto Bold", 36))
27+
self.main_screen_settings_theme_mode_text.place(x=0, y=187)
28+
29+
elif language_data == f"English":
30+
self.main_screen_settings_text: customtkinter.CTkLabel = customtkinter.CTkLabel(master=self, text=f"Settings", font=(f"Roboto Bold", 75))
31+
self.main_screen_settings_text.place(x=0, y=0)
32+
33+
self.main_screen_language_text: customtkinter.CTkLabel = customtkinter.CTkLabel(master=self, text=f"Languages", font=(f"Roboto Bold", 50))
34+
self.main_screen_language_text.place(x=0, y=87)
35+
36+
self.main_screen_settings_theme_mode_text: customtkinter.CTkLabel = customtkinter.CTkLabel(master=self, text=f"Theme", font=(f"Roboto Bold", 36))
37+
self.main_screen_settings_theme_mode_text.place(x=0, y=187)
38+
39+
else:
40+
self.main_screen_settings_text: customtkinter.CTkLabel = customtkinter.CTkLabel(master=self, text=f"Настройки", font=(f"Roboto Bold", 75))
41+
self.main_screen_settings_text.place(x=0, y=0)
42+
43+
self.main_screen_language_text: customtkinter.CTkLabel = customtkinter.CTkLabel(master=self, text=f"Языки", font=(f"Roboto Bold", 50))
44+
self.main_screen_language_text.place(x=0, y=87)
45+
46+
self.main_screen_settings_theme_mode_text: customtkinter.CTkLabel = customtkinter.CTkLabel(master=self, text=f"Тема", font=(f"Roboto Bold", 36))
47+
self.main_screen_settings_theme_mode_text.place(x=0, y=187)
48+
49+
self.main_screen_settings_language_option: customtkinter.CTkSegmentedButton = customtkinter.CTkSegmentedButton(master=self, values=[f"Српски", f"English", f"Русский"], command=self.__language_settings__)
50+
self.main_screen_settings_language_option.place(x=15, y=147)
51+
52+
self.main_screen_settings_language_option.set(language_data)
53+
54+
self.main_screen_settings_theme_mode_option: customtkinter.CTkSegmentedButton = customtkinter.CTkSegmentedButton(master=self, values=[f"dark", f"light"], command=self.__theme_settings__)
55+
self.main_screen_settings_theme_mode_option.place(x=15, y=227)
56+
57+
self.main_screen_settings_theme_mode_option.set(theme)
58+
59+
def __language_settings__(self: typing.Self, pickle_serializer: pickle) -> None:
60+
self.main_screen_settings_language_option_data: str = self.main_screen_settings_language_option.get()
61+
with open(f"my_maps_language_settings.pickle", f"wb+") as self.data:
62+
pickle.dump(self.main_screen_settings_language_option_data, self.data)
63+
64+
if self.main_screen_settings_language_option_data == f"Српски":
65+
tkinter.messagebox.showwarning(title=f"Пажња", message=f"Рестартуј програм")
66+
67+
elif self.main_screen_settings_language_option_data == f"English":
68+
tkinter.messagebox.showwarning(title=f"Warning", message=f"Restart program")
69+
70+
else:
71+
tkinter.messagebox.showwarning(title=f"Внимание", message=f"Перезагрузите программу")
72+
73+
def __theme_settings__(self: typing.Self, pickle_serializer: pickle) -> None:
74+
self.main_screen_settings_theme_option_data: str = self.main_screen_settings_theme_mode_option.get()
75+
with open(f"my_maps_theme_settings.pickle", f"wb+") as self.data:
76+
pickle.dump(self.main_screen_settings_theme_option_data, self.data)
77+
78+
if language_data == "Српски":
79+
tkinter.messagebox.showwarning(title=f"Пажња", message=f"Рестартуј програм")
80+
81+
elif language_data == "English":
82+
tkinter.messagebox.showwarning(title=f"Warning", message=f"Restart program")
83+
84+
else:
85+
tkinter.messagebox.showwarning(title=f"Внимание", message=f"Перезагрузите программу")
27 Bytes
Binary file not shown.
19 Bytes
Binary file not shown.

My_Maps/Windows/My_Maps.py

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
import customtkinter, tkintermapview, typing, geocoder, CTkMenuBar, locale, My_Maps_Interface, My_Maps_AI_window, warnings
2+
3+
warnings.filterwarnings(f"ignore")
4+
5+
class Program(customtkinter.CTk, My_Maps_Interface.My_Maps_Interface):
6+
7+
TITLE: typing.Final[str] = f"My Maps "
8+
ICON: typing.Final[str] = f"my maps icon.ico"
9+
WIDGET_SCALING: typing.Final[int] = 1.251
10+
11+
def __init__(self: typing.Self, *args: typing.Any, **kwargs: typing.Any) -> None:
12+
customtkinter.CTk.__init__(self, *args, **kwargs)
13+
14+
customtkinter.deactivate_automatic_dpi_awareness()
15+
customtkinter.set_widget_scaling(self.WIDGET_SCALING)
16+
17+
self.title(self.TITLE)
18+
self.iconbitmap(self.ICON)
19+
20+
self.main_screen_current_cordinates: tuple[float, float] = geocoder.ip(f"me")
21+
22+
self.main_screen_map: tkintermapview.TkinterMapView = tkintermapview.TkinterMapView(master=self, corner_radius=0)
23+
self.main_screen_map.pack(fill=f"both", expand=True)
24+
25+
self.main_screen_map.set_position(self.main_screen_current_cordinates.latlng[0], self.main_screen_current_cordinates.latlng[1])
26+
27+
self.main_screen_menu: CTkMenuBar.CTkTitleMenu = CTkMenuBar.CTkTitleMenu(self)
28+
29+
self.main_screen_menu_menu_button: customtkinter.CTkButton = self.main_screen_menu.add_cascade(text=f"☰")
30+
31+
self.main_screen_menu_dropdownmenu: CTkMenuBar.CustomDropdownMenu = CTkMenuBar.CustomDropdownMenu(widget=self.main_screen_menu_menu_button)
32+
33+
if locale.getdefaultlocale()[0] == f"sr_RS":
34+
self.main_screen_menu_dropdownmenu.add_option(option=f"🔎 (претрага)", command=self.__search__)
35+
self.main_screen_menu_dropdownmenu.add_option(option=f"AI", command=lambda: My_Maps_AI_window.AI_Window())
36+
37+
elif locale.getdefaultlocale()[0] == f"ru_RU":
38+
self.main_screen_menu_dropdownmenu.add_option(option=f"🔎 (поиск)", command=self.__search__)
39+
self.main_screen_menu_dropdownmenu.add_option(option=f"ИИ (Нейро сеть)", command=lambda: My_Maps_AI_window.AI_Window())
40+
41+
else:
42+
self.main_screen_menu_dropdownmenu.add_option(option=f"🔎 (search)", command=self.__search__)
43+
self.main_screen_menu_dropdownmenu.add_option(option=f"AI", command=lambda: My_Maps_AI_window.AI_Window())
44+
45+
@typing.override
46+
def __search__(self: typing.Self) -> None:
47+
if locale.getdefaultlocale()[0] == f"sr_RS":
48+
self.main_screen_search_dialog: customtkinter.CTkInputDialog = customtkinter.CTkInputDialog(text=f"претрага", title=f"претрага", button_fg_color=f"green")
49+
self.after(250, lambda: self.main_screen_search_dialog.iconbitmap(self.ICON))
50+
51+
self.main_screen_map.set_address(self.main_screen_search_dialog.get_input())
52+
53+
elif locale.getdefaultlocale()[0] == f"ru_RU":
54+
self.main_screen_search_dialog: customtkinter.CTkInputDialog = customtkinter.CTkInputDialog(text=f"поиск", title=f"поиск", button_fg_color=f"green")
55+
self.after(250, lambda: self.main_screen_search_dialog.iconbitmap(self.ICON))
56+
57+
self.main_screen_map.set_address(self.main_screen_search_dialog.get_input())
58+
59+
else:
60+
self.main_screen_search_dialog: customtkinter.CTkInputDialog = customtkinter.CTkInputDialog(text=f"search", title=f"search", button_fg_color=f"green")
61+
self.after(250, lambda: self.main_screen_search_dialog.iconbitmap(self.ICON))
62+
63+
self.main_screen_map.set_address(self.main_screen_search_dialog.get_input())
64+
65+
if __name__ == f"__main__":
66+
program: Program = Program().mainloop()

0 commit comments

Comments
 (0)