Skip to content

Commit d4f250e

Browse files
Merge pull request #4 from Anonymous6598/release2
Add files via upload
2 parents 75d48b5 + bdf29cd commit d4f250e

14 files changed

+341
-0
lines changed

My_Maps/Linux/My_Maps.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import customtkinter, tkintermapview, typing, geocoder, CTkMenuBar, My_Maps_AI_window, pickle, My_Maps_settings, ctypes
2+
3+
with open(f"my_maps_theme_settings.pickle", f"rb+") as theme_data: theme: str = pickle.load(theme_data)
4+
5+
class Program(customtkinter.CTk):
6+
7+
TITLE: typing.Final[str] = f"My Maps "
8+
WIDGET_SCALING: typing.Final[int] = 1.251
9+
10+
def __init__(self: typing.Self, *args: typing.Any, **kwargs: typing.Any) -> None:
11+
customtkinter.CTk.__init__(self, *args, **kwargs)
12+
13+
customtkinter.deactivate_automatic_dpi_awareness()
14+
customtkinter.set_widget_scaling(self.WIDGET_SCALING)
15+
customtkinter.set_appearance_mode(theme)
16+
17+
self.title(self.TITLE)
18+
self.bind(f"<F11>", lambda event: self.__fullscreen__())
19+
20+
self.main_screen_current_cordinates: tuple[float, float] = geocoder.ip(f"me")
21+
22+
self.main_screen_menu: CTkMenuBar.CTkMenuBar = CTkMenuBar.CTkMenuBar(self)
23+
24+
self.main_screen_menu_ai_button: customtkinter.CTkButton = self.main_screen_menu.add_cascade(text=f"AI", command=lambda: My_Maps_AI_window.AI_Window())
25+
26+
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())
27+
28+
self.main_screen_map: tkintermapview.TkinterMapView = tkintermapview.TkinterMapView(master=self, corner_radius=0)
29+
self.main_screen_map.pack(fill=f"both", expand=True)
30+
31+
self.main_screen_map.set_position(self.main_screen_current_cordinates.latlng[0], self.main_screen_current_cordinates.latlng[1])
32+
33+
def __fullscreen__(self: typing.Self) -> None:
34+
if self.attributes(f"-fullscreen"): self.attributes(f"-fullscreen", False)
35+
36+
else: self.attributes(f"-fullscreen", True)
37+
38+
if customtkinter.get_appearance_mode()=="Dark": value=1
39+
40+
else: value=0
41+
42+
try:
43+
hwnd = ctypes.windll.user32.GetParent(self.winfo_id())
44+
DWMWA_USE_IMMERSIVE_DARK_MODE = 20
45+
DWMWA_USE_IMMERSIVE_DARK_MODE_BEFORE_20H1 = 19
46+
47+
if ctypes.windll.dwmapi.DwmSetWindowAttribute(hwnd, DWMWA_USE_IMMERSIVE_DARK_MODE, ctypes.byref(ctypes.c_int(value)), ctypes.sizeof(ctypes.c_int(value))) != 0: ctypes.windll.dwmapi.DwmSetWindowAttribute(hwnd, DWMWA_USE_IMMERSIVE_DARK_MODE_BEFORE_20H1, ctypes.byref(ctypes.c_int(value)), ctypes.sizeof(ctypes.c_int(value)))
48+
49+
except Exception as err: pass
50+
51+
if __name__ == f"__main__":
52+
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

My_Maps/Linux/My_Maps_AI_Interface.py

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: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
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+
11+
def __init__(self: typing.Self, *args, **kwargs) -> None:
12+
customtkinter.CTkToplevel.__init__(self, *args, **kwargs)
13+
14+
customtkinter.set_widget_scaling(self.WIDGET_SCALING)
15+
customtkinter.set_default_color_theme(self.COLOR_THEME)
16+
customtkinter.deactivate_automatic_dpi_awareness()
17+
18+
self.title(self.TITLE)
19+
self.geometry(f"{self.WIDTH}x{self.HEIGHT}")
20+
self.resizable(False, False)
21+
22+
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"))
23+
self.ai_window_textbox.place(x=0, y=0)
24+
25+
self.ai_window_textbox.configure(state=f"disabled")
26+
27+
self.ai_window_entry: customtkinter.CTkEntry = customtkinter.CTkEntry(master=self, height=30, width=465, border_width=0, fg_color=f"transparent", placeholder_text=f"...")
28+
self.ai_window_entry.place(x=0, y=269)
29+
30+
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__)
31+
self.ai_window_microphone_button.place(x=465, y=269)
32+
33+
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__)
34+
self.ai_window_send_request_button.place(x=495, y=269)
35+
36+
self.ai_window_entry.bind(f"<Return>", self.__response__)
37+
38+
def __response__(self: typing.Self, configure: str | None = None) -> None:
39+
self.ai_window_entry_data: str = self.ai_window_entry.get()
40+
41+
self.ai_window_textbox.configure(state=f"normal")
42+
self.query: str = My_Maps_AI.My_Maps_LM().__response__(self.ai_window_entry_data)
43+
44+
self.ai_window_textbox.insert(tkinter.END, f"USER:\n{self.ai_window_entry_data}\nGPT-4o:\n{self.query}\n", f"-1.0")
45+
self.ai_window_textbox.configure(state=f"disabled")
46+
self.ai_window_entry.delete(f"-1", tkinter.END)
47+
48+
def __audio_input__(self: typing.Self) -> None:
49+
self.recognizer: speech_recognition.Recognizer = speech_recognition.Recognizer()
50+
with speech_recognition.Microphone() as self.source:
51+
self.audio_data: speech_recognition.AudioData = self.recognizer.record(self.source, duration=5)
52+
self.text: str = self.recognizer.recognize_google(self.audio_data)
53+
54+
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_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 Maps 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: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import customtkinter, tkintermapview, typing, geocoder, CTkMenuBar, My_Maps_AI_window, warnings
2+
3+
warnings.filterwarnings(f"ignore")
4+
5+
class Program(customtkinter.CTk):
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_ai_button: customtkinter.CTkButton = self.main_screen_menu.add_cascade(text=f"AI", command=lambda: My_Maps_AI_window.AI_Window())
30+
31+
if __name__ == f"__main__":
32+
program: Program = Program().mainloop()

My_Maps/Windows/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/Windows/My_Maps_AI_window.py

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
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+
ICON: typing.Final[str] = f"my maps icon.ico"
9+
COLOR_THEME: typing.Final[str] = f"dark-blue"
10+
WIDGET_SCALING: typing.Final[float] = 1.251
11+
THEME: typing.Final[str] = f"system"
12+
13+
def __init__(self: typing.Self, *args, **kwargs) -> None:
14+
customtkinter.CTkToplevel.__init__(self, *args, **kwargs)
15+
16+
customtkinter.set_widget_scaling(self.WIDGET_SCALING)
17+
customtkinter.set_default_color_theme(self.COLOR_THEME)
18+
customtkinter.set_appearance_mode(self.THEME)
19+
customtkinter.deactivate_automatic_dpi_awareness()
20+
21+
self.title(self.TITLE)
22+
self.geometry(f"{self.WIDTH}x{self.HEIGHT}")
23+
self.resizable(False, False)
24+
self.after(250, lambda: self.iconbitmap(self.ICON))
25+
26+
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"))
27+
self.ai_window_textbox.place(x=0, y=0)
28+
29+
self.ai_window_textbox.configure(state=f"disabled")
30+
31+
self.ai_window_entry: customtkinter.CTkEntry = customtkinter.CTkEntry(master=self, height=30, width=465, border_width=0, fg_color=f"transparent", placeholder_text=f"...")
32+
self.ai_window_entry.place(x=0, y=269)
33+
34+
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__)
35+
self.ai_window_microphone_button.place(x=465, y=269)
36+
37+
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__)
38+
self.ai_window_send_request_button.place(x=495, y=269)
39+
40+
self.ai_window_entry.bind(f"<Return>", self.__response__)
41+
42+
def __response__(self: typing.Self, configure: str | None = None) -> None:
43+
self.ai_window_entry_data: str = self.ai_window_entry.get()
44+
45+
self.ai_window_textbox.configure(state=f"normal")
46+
self.query: str = My_Maps_AI.My_Maps_LM().__response__(self.ai_window_entry_data)
47+
48+
self.ai_window_textbox.insert(tkinter.END, f"USER:\n{self.ai_window_entry_data}\nGPT-4o:\n{self.query}\n", f"-1.0")
49+
self.ai_window_textbox.configure(state=f"disabled")
50+
self.ai_window_entry.delete(f"-1", tkinter.END)
51+
52+
def __audio_input__(self: typing.Self) -> None:
53+
self.recognizer: speech_recognition.Recognizer = speech_recognition.Recognizer()
54+
with speech_recognition.Microphone() as self.source:
55+
self.audio_data: speech_recognition.AudioData = self.recognizer.record(self.source, duration=5)
56+
self.text: str = self.recognizer.recognize_google(self.audio_data)
57+
58+
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/Windows/my maps icon.ico

162 KB
Binary file not shown.

0 commit comments

Comments
 (0)