update log text color

This commit is contained in:
misyaguziya
2023-06-15 15:26:59 +09:00
parent edb20b4da7
commit 3f59e80ea1
3 changed files with 60 additions and 18 deletions

54
VRCT.py
View File

@@ -237,11 +237,14 @@ class App(customtkinter.CTk):
# add tabview textbox # add tabview textbox
self.tabview_logs = customtkinter.CTkTabview(master=self) self.tabview_logs = customtkinter.CTkTabview(master=self)
self.tabview_logs.add("log")
self.tabview_logs.add("send") self.tabview_logs.add("send")
self.tabview_logs.add("receive") self.tabview_logs.add("receive")
self.tabview_logs.add("system") self.tabview_logs.add("system")
self.tabview_logs.grid(row=0, column=1, padx=0, pady=0, sticky="nsew") 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._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_rowconfigure(0, weight=1)
self.tabview_logs.tab("send").grid_columnconfigure(0, weight=1) self.tabview_logs.tab("send").grid_columnconfigure(0, weight=1)
self.tabview_logs.tab("receive").grid_rowconfigure(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.tab("system").grid_columnconfigure(0, weight=1)
self.tabview_logs.configure(fg_color="transparent") 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 # add textbox message send log
self.textbox_message_send_log = customtkinter.CTkTextbox( self.textbox_message_send_log = customtkinter.CTkTextbox(
self.tabview_logs.tab("send"), self.tabview_logs.tab("send"),
@@ -287,7 +298,8 @@ class App(customtkinter.CTk):
self.translator = translation.Translator() self.translator = translation.Translator()
if self.translator.authentication(self.CHOICE_TRANSLATOR, self.AUTH_KEYS[self.CHOICE_TRANSLATOR]) is False: if self.translator.authentication(self.CHOICE_TRANSLATOR, self.AUTH_KEYS[self.CHOICE_TRANSLATOR]) is False:
# error update Auth key # 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 ## set transcription instance
self.vr = transcription.VoiceRecognizer() self.vr = transcription.VoiceRecognizer()
@@ -354,15 +366,18 @@ class App(customtkinter.CTk):
def checkbox_translation_callback(self): def checkbox_translation_callback(self):
self.ENABLE_TRANSLATION = self.checkbox_translation.get() self.ENABLE_TRANSLATION = self.checkbox_translation.get()
if self.ENABLE_TRANSLATION: 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: 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) utils.save_json(self.PATH_CONFIG, "ENABLE_TRANSLATION", self.ENABLE_TRANSLATION)
def checkbox_transcription_send_callback(self): def checkbox_transcription_send_callback(self):
self.ENABLE_TRANSCRIPTION_SEND = self.checkbox_transcription_send.get() self.ENABLE_TRANSCRIPTION_SEND = self.checkbox_transcription_send.get()
if self.ENABLE_TRANSCRIPTION_SEND is True: 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 # start threading
self.vr.set_mic( self.vr.set_mic(
device_name=self.CHOICE_MIC_DEVICE, device_name=self.CHOICE_MIC_DEVICE,
@@ -380,13 +395,15 @@ class App(customtkinter.CTk):
if isinstance(self.th_vr_recognize_mic, utils.thread_fnc): if isinstance(self.th_vr_recognize_mic, utils.thread_fnc):
self.th_vr_recognize_mic.stop() 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) utils.save_json(self.PATH_CONFIG, "ENABLE_TRANSCRIPTION_SEND", self.ENABLE_TRANSCRIPTION_SEND)
def checkbox_transcription_receive_callback(self): def checkbox_transcription_receive_callback(self):
self.ENABLE_TRANSCRIPTION_RECEIVE = self.checkbox_transcription_receive.get() self.ENABLE_TRANSCRIPTION_RECEIVE = self.checkbox_transcription_receive.get()
if self.ENABLE_TRANSCRIPTION_RECEIVE is True: 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 # start threading
self.vr.set_spk( self.vr.set_spk(
device_name=self.CHOICE_SPEAKER_DEVICE, device_name=self.CHOICE_SPEAKER_DEVICE,
@@ -405,7 +422,8 @@ class App(customtkinter.CTk):
if isinstance(self.th_vr_recognize_spk, utils.thread_fnc): if isinstance(self.th_vr_recognize_spk, utils.thread_fnc):
self.th_vr_recognize_spk.stop() 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) utils.save_json(self.PATH_CONFIG, "ENABLE_TRANSCRIPTION_RECEIVE", self.ENABLE_TRANSCRIPTION_RECEIVE)
def vr_listen_mic(self): def vr_listen_mic(self):
@@ -418,7 +436,8 @@ class App(customtkinter.CTk):
if self.checkbox_translation.get() is False: if self.checkbox_translation.get() is False:
voice_message = f"{message}" voice_message = f"{message}"
elif self.translator.translator_status[self.CHOICE_TRANSLATOR] is False: 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}" voice_message = f"{message}"
else: else:
result = self.translator.translate( result = self.translator.translate(
@@ -431,7 +450,8 @@ class App(customtkinter.CTk):
# send OSC message # send OSC message
osc_tools.send_message(voice_message, self.OSC_IP_ADDRESS, self.OSC_PORT) osc_tools.send_message(voice_message, self.OSC_IP_ADDRESS, self.OSC_PORT)
# update textbox message log # 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): def vr_listen_spk(self):
self.vr.listen_spk() self.vr.listen_spk()
@@ -443,7 +463,8 @@ class App(customtkinter.CTk):
if self.checkbox_translation.get() is False: if self.checkbox_translation.get() is False:
voice_message = f"{message}" voice_message = f"{message}"
elif self.translator.translator_status[self.CHOICE_TRANSLATOR] is False: 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}" voice_message = f"{message}"
else: else:
result = self.translator.translate( result = self.translator.translate(
@@ -456,14 +477,19 @@ class App(customtkinter.CTk):
# send OSC message # send OSC message
# osc_tools.send_message(voice_message, self.OSC_IP_ADDRESS, self.OSC_PORT) # osc_tools.send_message(voice_message, self.OSC_IP_ADDRESS, self.OSC_PORT)
# update textbox message receive log # 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): def checkbox_foreground_callback(self):
self.ENABLE_FOREGROUND = self.checkbox_foreground.get() self.ENABLE_FOREGROUND = self.checkbox_foreground.get()
if self.ENABLE_FOREGROUND: if self.ENABLE_FOREGROUND:
self.attributes("-topmost", True) 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: else:
self.attributes("-topmost", False) 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) utils.save_json(self.PATH_CONFIG, "ENABLE_FOREGROUND", self.ENABLE_FOREGROUND)
def entry_message_box_press_key_enter(self, event): def entry_message_box_press_key_enter(self, event):
@@ -479,7 +505,8 @@ class App(customtkinter.CTk):
if self.checkbox_translation.get() is False: if self.checkbox_translation.get() is False:
chat_message = f"{message}" chat_message = f"{message}"
elif self.translator.translator_status[self.CHOICE_TRANSLATOR] is False: 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}" chat_message = f"{message}"
else: else:
result = self.translator.translate( 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) osc_tools.send_message(chat_message, self.OSC_IP_ADDRESS, self.OSC_PORT)
# update textbox message log # 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 # delete message in entry message box
# self.entry_message_box.delete(0, customtkinter.END) # self.entry_message_box.delete(0, customtkinter.END)

View File

@@ -1,6 +1,7 @@
import json import json
import datetime import datetime
import threading import threading
import tkinter as tk
def save_json(path, key, value): def save_json(path, key, value):
with open(path, "r") as fp: with open(path, "r") as fp:
@@ -9,11 +10,19 @@ def save_json(path, key, value):
with open(path, "w") as fp: with open(path, "w") as fp:
json.dump(json_data, fp, indent=4) json.dump(json_data, fp, indent=4)
def print_textbox(textbox, message): def print_textbox(textbox, message, tags=None):
now = datetime.datetime.now() now = datetime.datetime.now()
now = now.strftime('%H:%M:%S') 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.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.configure(state='disabled')
textbox.see("end") textbox.see("end")

View File

@@ -514,6 +514,7 @@ class ToplevelWindowConfig(customtkinter.CTkToplevel):
self.parent.checkbox_transcription_send.configure(font=customtkinter.CTkFont(family=choice)) 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_transcription_receive.configure(font=customtkinter.CTkFont(family=choice))
self.parent.checkbox_foreground.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_send_log.configure(font=customtkinter.CTkFont(family=choice))
self.parent.textbox_message_receive_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)) 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): def optionmenu_translation_translator_callback(self, choice):
if self.parent.translator.authentication(choice, self.parent.AUTH_KEYS[choice]) is False: 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: else:
self.optionmenu_translation_input_source_language.configure( self.optionmenu_translation_input_source_language.configure(
values=self.parent.translator.languages[choice], values=self.parent.translator.languages[choice],
@@ -625,11 +627,14 @@ class ToplevelWindowConfig(customtkinter.CTkToplevel):
def update_authkey(self): def update_authkey(self):
value = self.entry_authkey.get() value = self.entry_authkey.get()
if len(value) > 0: 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 self.parent.AUTH_KEYS["DeepL(auth)"] = value
utils.save_json(self.parent.PATH_CONFIG, "AUTH_KEYS", self.parent.AUTH_KEYS) 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: 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): def update_message_format(self):
value = self.entry_message_format.get() value = self.entry_message_format.get()