From 3f59e80ea1a8363fb88da912165cb98a05bf700e Mon Sep 17 00:00:00 2001 From: misyaguziya Date: Thu, 15 Jun 2023 15:26:59 +0900 Subject: [PATCH] update log text color --- VRCT.py | 54 ++++++++++++++++++++++++++++++++++++------------ utils.py | 13 ++++++++++-- window_config.py | 11 +++++++--- 3 files changed, 60 insertions(+), 18 deletions(-) diff --git a/VRCT.py b/VRCT.py index f90199fc..b6918330 100644 --- a/VRCT.py +++ b/VRCT.py @@ -237,11 +237,14 @@ class App(customtkinter.CTk): # add tabview textbox self.tabview_logs = customtkinter.CTkTabview(master=self) + self.tabview_logs.add("log") self.tabview_logs.add("send") self.tabview_logs.add("receive") self.tabview_logs.add("system") self.tabview_logs.grid(row=0, column=1, padx=0, pady=0, sticky="nsew") self.tabview_logs._segmented_button.grid(sticky="W") + self.tabview_logs.tab("log").grid_rowconfigure(0, weight=1) + self.tabview_logs.tab("log").grid_columnconfigure(0, weight=1) self.tabview_logs.tab("send").grid_rowconfigure(0, weight=1) self.tabview_logs.tab("send").grid_columnconfigure(0, weight=1) self.tabview_logs.tab("receive").grid_rowconfigure(0, weight=1) @@ -250,6 +253,14 @@ class App(customtkinter.CTk): self.tabview_logs.tab("system").grid_columnconfigure(0, weight=1) self.tabview_logs.configure(fg_color="transparent") + # add textbox message log + self.textbox_message_log = customtkinter.CTkTextbox( + self.tabview_logs.tab("log"), + font=customtkinter.CTkFont(family=self.FONT_FAMILY) + ) + self.textbox_message_log.grid(row=0, column=0, padx=0, pady=0, sticky="nsew") + self.textbox_message_log.configure(state='disabled') + # add textbox message send log self.textbox_message_send_log = customtkinter.CTkTextbox( self.tabview_logs.tab("send"), @@ -287,7 +298,8 @@ class App(customtkinter.CTk): self.translator = translation.Translator() if self.translator.authentication(self.CHOICE_TRANSLATOR, self.AUTH_KEYS[self.CHOICE_TRANSLATOR]) is False: # error update Auth key - utils.print_textbox(self.textbox_message_system_log, "[error] Auth Key or language setting is incorrect") + utils.print_textbox(self.textbox_message_log, "Auth Key or language setting is incorrect", "ERROR") + utils.print_textbox(self.textbox_message_system_log, "Auth Key or language setting is incorrect", "ERROR") ## set transcription instance self.vr = transcription.VoiceRecognizer() @@ -354,15 +366,18 @@ class App(customtkinter.CTk): def checkbox_translation_callback(self): self.ENABLE_TRANSLATION = self.checkbox_translation.get() if self.ENABLE_TRANSLATION: - utils.print_textbox(self.textbox_message_system_log, "[info] Start translation") + utils.print_textbox(self.textbox_message_log, "Start translation", "INFO") + utils.print_textbox(self.textbox_message_system_log, "Start translation", "INFO") else: - utils.print_textbox(self.textbox_message_system_log, "[info] Stop translation") + utils.print_textbox(self.textbox_message_log, "Stop translation", "INFO") + utils.print_textbox(self.textbox_message_system_log, "Stop translation", "INFO") utils.save_json(self.PATH_CONFIG, "ENABLE_TRANSLATION", self.ENABLE_TRANSLATION) def checkbox_transcription_send_callback(self): self.ENABLE_TRANSCRIPTION_SEND = self.checkbox_transcription_send.get() if self.ENABLE_TRANSCRIPTION_SEND is True: - utils.print_textbox(self.textbox_message_system_log, "[info] Start sending transcription from your voice") + utils.print_textbox(self.textbox_message_log, "Start voice2chatbox", "INFO") + utils.print_textbox(self.textbox_message_system_log, "Start voice2chatbox", "INFO") # start threading self.vr.set_mic( device_name=self.CHOICE_MIC_DEVICE, @@ -380,13 +395,15 @@ class App(customtkinter.CTk): if isinstance(self.th_vr_recognize_mic, utils.thread_fnc): self.th_vr_recognize_mic.stop() - utils.print_textbox(self.textbox_message_system_log, "[info] Stop sending transcription from your voice") + utils.print_textbox(self.textbox_message_log, "Stop voice2chatbox", "INFO") + utils.print_textbox(self.textbox_message_system_log, "Stop voice2chatbox", "INFO") utils.save_json(self.PATH_CONFIG, "ENABLE_TRANSCRIPTION_SEND", self.ENABLE_TRANSCRIPTION_SEND) def checkbox_transcription_receive_callback(self): self.ENABLE_TRANSCRIPTION_RECEIVE = self.checkbox_transcription_receive.get() if self.ENABLE_TRANSCRIPTION_RECEIVE is True: - utils.print_textbox(self.textbox_message_system_log, "[info] Start transcription of speaker's voice") + utils.print_textbox(self.textbox_message_log, "Start speaker2log", "INFO") + utils.print_textbox(self.textbox_message_system_log, "Start speaker2log", "INFO") # start threading self.vr.set_spk( device_name=self.CHOICE_SPEAKER_DEVICE, @@ -405,7 +422,8 @@ class App(customtkinter.CTk): if isinstance(self.th_vr_recognize_spk, utils.thread_fnc): self.th_vr_recognize_spk.stop() - utils.print_textbox(self.textbox_message_system_log, "[info] Stop transcription of speaker's voice") + utils.print_textbox(self.textbox_message_log, "Stop speaker2log", "INFO") + utils.print_textbox(self.textbox_message_system_log, "Stop speaker2log", "INFO") utils.save_json(self.PATH_CONFIG, "ENABLE_TRANSCRIPTION_RECEIVE", self.ENABLE_TRANSCRIPTION_RECEIVE) def vr_listen_mic(self): @@ -418,7 +436,8 @@ class App(customtkinter.CTk): if self.checkbox_translation.get() is False: voice_message = f"{message}" elif self.translator.translator_status[self.CHOICE_TRANSLATOR] is False: - utils.print_textbox(self.textbox_message_system_log, "[error] Auth Key or language setting is incorrect") + utils.print_textbox(self.textbox_message_log, "Auth Key or language setting is incorrect", "ERROR") + utils.print_textbox(self.textbox_message_system_log, "Auth Key or language setting is incorrect", "ERROR") voice_message = f"{message}" else: result = self.translator.translate( @@ -431,7 +450,8 @@ class App(customtkinter.CTk): # send OSC message osc_tools.send_message(voice_message, self.OSC_IP_ADDRESS, self.OSC_PORT) # update textbox message log - utils.print_textbox(self.textbox_message_send_log, f"[voice] {voice_message}") + utils.print_textbox(self.textbox_message_log, f"{voice_message}", "SEND") + utils.print_textbox(self.textbox_message_send_log, f"{voice_message}", "SEND") def vr_listen_spk(self): self.vr.listen_spk() @@ -443,7 +463,8 @@ class App(customtkinter.CTk): if self.checkbox_translation.get() is False: voice_message = f"{message}" elif self.translator.translator_status[self.CHOICE_TRANSLATOR] is False: - utils.print_textbox(self.textbox_message_system_log, "[error] Auth Key or language setting is incorrect") + utils.print_textbox(self.textbox_message_log, "Auth Key or language setting is incorrect", "ERROR") + utils.print_textbox(self.textbox_message_system_log, "Auth Key or language setting is incorrect", "ERROR") voice_message = f"{message}" else: result = self.translator.translate( @@ -456,14 +477,19 @@ class App(customtkinter.CTk): # send OSC message # osc_tools.send_message(voice_message, self.OSC_IP_ADDRESS, self.OSC_PORT) # update textbox message receive log - utils.print_textbox(self.textbox_message_receive_log, f"[voice] {voice_message}") + utils.print_textbox(self.textbox_message_log, f"{voice_message}", "RECEIVE") + utils.print_textbox(self.textbox_message_receive_log, f"{voice_message}", "RECEIVE") def checkbox_foreground_callback(self): self.ENABLE_FOREGROUND = self.checkbox_foreground.get() if self.ENABLE_FOREGROUND: self.attributes("-topmost", True) + utils.print_textbox(self.textbox_message_log, "Start foreground", "INFO") + utils.print_textbox(self.textbox_message_system_log, "Start foreground", "INFO") else: self.attributes("-topmost", False) + utils.print_textbox(self.textbox_message_log, "Stop foreground", "INFO") + utils.print_textbox(self.textbox_message_system_log, "Stop foreground", "INFO") utils.save_json(self.PATH_CONFIG, "ENABLE_FOREGROUND", self.ENABLE_FOREGROUND) def entry_message_box_press_key_enter(self, event): @@ -479,7 +505,8 @@ class App(customtkinter.CTk): if self.checkbox_translation.get() is False: chat_message = f"{message}" elif self.translator.translator_status[self.CHOICE_TRANSLATOR] is False: - utils.print_textbox(self.textbox_message_system_log, "[error] Auth Key or language setting is incorrect") + utils.print_textbox(self.textbox_message_log, "Auth Key or language setting is incorrect", "ERROR") + utils.print_textbox(self.textbox_message_system_log, "Auth Key or language setting is incorrect", "ERROR") chat_message = f"{message}" else: result = self.translator.translate( @@ -494,7 +521,8 @@ class App(customtkinter.CTk): osc_tools.send_message(chat_message, self.OSC_IP_ADDRESS, self.OSC_PORT) # update textbox message log - utils.print_textbox(self.textbox_message_send_log, f"[chat] {chat_message}") + utils.print_textbox(self.textbox_message_log, f"{chat_message}", "SEND") + utils.print_textbox(self.textbox_message_send_log, f"{chat_message}", "SEND") # delete message in entry message box # self.entry_message_box.delete(0, customtkinter.END) diff --git a/utils.py b/utils.py index 132dd03a..2b93ac12 100644 --- a/utils.py +++ b/utils.py @@ -1,6 +1,7 @@ import json import datetime import threading +import tkinter as tk def save_json(path, key, value): with open(path, "r") as fp: @@ -9,11 +10,19 @@ def save_json(path, key, value): with open(path, "w") as fp: json.dump(json_data, fp, indent=4) -def print_textbox(textbox, message): +def print_textbox(textbox, message, tags=None): now = datetime.datetime.now() now = now.strftime('%H:%M:%S') + + textbox.tag_config("ERROR", foreground="#FF0000") + textbox.tag_config("INFO", foreground="#1BFF00") + textbox.tag_config("SEND", foreground="#0378e2") + textbox.tag_config("RECEIVE", foreground="#ffa500") + textbox.configure(state='normal') - textbox.insert("end", f"[{now}]{message}\n") + textbox.insert("end", f"[{now}][") + textbox.insert("end", f"{tags}", tags) + textbox.insert("end", f"]{message}\n") textbox.configure(state='disabled') textbox.see("end") diff --git a/window_config.py b/window_config.py index 03d222eb..31011d12 100644 --- a/window_config.py +++ b/window_config.py @@ -514,6 +514,7 @@ class ToplevelWindowConfig(customtkinter.CTkToplevel): self.parent.checkbox_transcription_send.configure(font=customtkinter.CTkFont(family=choice)) self.parent.checkbox_transcription_receive.configure(font=customtkinter.CTkFont(family=choice)) self.parent.checkbox_foreground.configure(font=customtkinter.CTkFont(family=choice)) + self.parent.textbox_message_log.configure(font=customtkinter.CTkFont(family=choice)) self.parent.textbox_message_send_log.configure(font=customtkinter.CTkFont(family=choice)) self.parent.textbox_message_receive_log.configure(font=customtkinter.CTkFont(family=choice)) self.parent.textbox_message_system_log.configure(font=customtkinter.CTkFont(family=choice)) @@ -531,7 +532,8 @@ class ToplevelWindowConfig(customtkinter.CTkToplevel): def optionmenu_translation_translator_callback(self, choice): if self.parent.translator.authentication(choice, self.parent.AUTH_KEYS[choice]) is False: - utils.print_textbox(self.parent.textbox_message_system_log, f"[error] Auth Key or language setting is incorrect") + utils.print_textbox(self.parent.textbox_message_log, "Auth Key or language setting is incorrect", "ERROR") + utils.print_textbox(self.parent.textbox_message_system_log, "Auth Key or language setting is incorrect", "ERROR") else: self.optionmenu_translation_input_source_language.configure( values=self.parent.translator.languages[choice], @@ -625,11 +627,14 @@ class ToplevelWindowConfig(customtkinter.CTkToplevel): def update_authkey(self): value = self.entry_authkey.get() if len(value) > 0: - if self.parent.translator.authentication(self.parent.CHOICE_TRANSLATOR, self.parent.AUTH_KEYS[self.parent.CHOICE_TRANSLATOR]) is True: + if self.parent.translator.authentication("DeepL(auth)", self.parent.AUTH_KEYS["DeepL(auth)"]) is True: self.parent.AUTH_KEYS["DeepL(auth)"] = value utils.save_json(self.parent.PATH_CONFIG, "AUTH_KEYS", self.parent.AUTH_KEYS) + utils.print_textbox(self.parent.textbox_message_log, "Auth key update completed", "INFO") + utils.print_textbox(self.parent.textbox_message_system_log, "Auth key update completed", "INFO") else: - utils.print_textbox(self.parent.textbox_message_system_log, f"[error] Auth Key or language setting is incorrect") + utils.print_textbox(self.parent.textbox_message_log, "Auth Key or language setting is incorrect", "ERROR") + utils.print_textbox(self.parent.textbox_message_system_log, "Auth Key or language setting is incorrect", "ERROR") def update_message_format(self): value = self.entry_message_format.get()