frontengine 0.0.55__py3-none-any.whl → 0.0.56__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- frontengine/__init__.py +13 -14
- frontengine/show/gif/paint_gif.py +4 -2
- frontengine/show/image/paint_image.py +4 -2
- frontengine/show/sound_player/sound_effect.py +1 -2
- frontengine/show/sound_player/sound_player.py +1 -2
- frontengine/show/text/draw_text.py +4 -2
- frontengine/show/video/video_player.py +1 -2
- frontengine/show/web/webview.py +1 -3
- frontengine/{ui/main/system_tray → system_tray}/extend_system_tray.py +1 -3
- frontengine/ui/dialog/choose_file_dialog.py +21 -36
- frontengine/ui/{main/main_ui.py → main_ui.py} +37 -44
- frontengine/ui/menu/help_menu.py +25 -0
- frontengine/ui/menu/how_to_menu.py +14 -0
- frontengine/ui/{main → menu}/language_menu.py +10 -10
- frontengine/ui/{setting → page}/control_center/control_center_ui.py +9 -12
- frontengine/ui/{setting → page}/gif/gif_setting_ui.py +6 -6
- frontengine/ui/{setting → page}/image/image_setting_ui.py +6 -6
- frontengine/ui/{setting → page}/scene_setting/scene_setting_ui.py +8 -8
- frontengine/ui/{setting → page}/scene_setting/scene_tabs/Image.py +1 -1
- frontengine/ui/{setting → page}/scene_setting/scene_tabs/gif.py +1 -1
- frontengine/ui/{setting → page}/scene_setting/scene_tabs/scene_control.py +3 -2
- frontengine/ui/{setting → page}/scene_setting/scene_tabs/sound.py +1 -1
- frontengine/ui/{setting → page}/scene_setting/scene_tabs/text.py +1 -1
- frontengine/ui/{setting → page}/scene_setting/scene_tabs/ui.py +1 -1
- frontengine/ui/{setting → page}/scene_setting/scene_tabs/video.py +1 -1
- frontengine/ui/{setting → page}/scene_setting/scene_tabs/web.py +1 -1
- frontengine/ui/{setting → page}/text/text_setting_ui.py +6 -6
- frontengine/ui/{setting → page}/video/video_setting_ui.py +10 -6
- frontengine/ui/{setting → page}/web/web_setting_ui.py +5 -5
- frontengine/user_setting/user_setting_file.py +2 -1
- frontengine/utils/browser/browser.py +5 -0
- frontengine/utils/multi_language/english.py +5 -0
- frontengine/utils/multi_language/traditional_chinese.py +5 -0
- {frontengine-0.0.55.dist-info → frontengine-0.0.56.dist-info}/METADATA +3 -50
- frontengine-0.0.56.dist-info/RECORD +103 -0
- {frontengine-0.0.55.dist-info → frontengine-0.0.56.dist-info}/WHEEL +1 -1
- frontengine/show/chat/chat_toast.py +0 -55
- frontengine/show/image_generation/image_generation_show.py +0 -43
- frontengine/ui/setting/chat/chat_model.py +0 -65
- frontengine/ui/setting/chat/chat_scene_input.py +0 -72
- frontengine/ui/setting/chat/chat_scene_setting.py +0 -187
- frontengine/ui/setting/chat/chatthread.py +0 -78
- frontengine/ui/setting/chat/speech_to_text.py +0 -70
- frontengine/ui/setting/image_generation/generation_image_thread.py +0 -32
- frontengine/ui/setting/image_generation/image_generation_input.py +0 -63
- frontengine/ui/setting/text/__init__.py +0 -0
- frontengine/ui/setting/video/__init__.py +0 -0
- frontengine/ui/setting/web/__init__.py +0 -0
- frontengine-0.0.55.dist-info/RECORD +0 -112
- /frontengine/{show/chat → system_tray}/__init__.py +0 -0
- /frontengine/{show/image_generation → ui/menu}/__init__.py +0 -0
- /frontengine/ui/{main → page}/__init__.py +0 -0
- /frontengine/ui/{main/system_tray → page/control_center}/__init__.py +0 -0
- /frontengine/ui/{setting → page/gif}/__init__.py +0 -0
- /frontengine/ui/{setting/chat → page/image}/__init__.py +0 -0
- /frontengine/ui/{setting/control_center → page/scene_setting}/__init__.py +0 -0
- /frontengine/ui/{setting/gif → page/scene_setting/scene_tabs}/__init__.py +0 -0
- /frontengine/ui/{setting → page}/scene_setting/scene_tabs/tableview_model.py +0 -0
- /frontengine/ui/{setting/image → page/sound_player}/__init__.py +0 -0
- /frontengine/ui/{setting → page}/sound_player/sound_player_setting_ui.py +0 -0
- /frontengine/ui/{setting/image_generation → page/text}/__init__.py +0 -0
- /frontengine/ui/{setting/scene_setting → page/video}/__init__.py +0 -0
- /frontengine/ui/{setting/scene_setting/scene_tabs → page/web}/__init__.py +0 -0
- /frontengine/{ui/setting/sound_player → utils/browser}/__init__.py +0 -0
- {frontengine-0.0.55.dist-info → frontengine-0.0.56.dist-info}/LICENSE +0 -0
- {frontengine-0.0.55.dist-info → frontengine-0.0.56.dist-info}/top_level.txt +0 -0
@@ -1,72 +0,0 @@
|
|
1
|
-
from typing import Union
|
2
|
-
|
3
|
-
import pyttsx3
|
4
|
-
from PySide6.QtCore import QTimer, Qt
|
5
|
-
from PySide6.QtWidgets import QBoxLayout, QWidget, QPushButton, QHBoxLayout, QTextEdit, QMessageBox
|
6
|
-
|
7
|
-
from frontengine.show.chat.chat_toast import ChatToast
|
8
|
-
from frontengine.ui.setting.chat.chatthread import MESSAGE_QUEUE, EXCEPTION_QUEUE
|
9
|
-
from frontengine.utils.multi_language.language_wrapper import language_wrapper
|
10
|
-
|
11
|
-
|
12
|
-
class ChatInputDialog(QWidget):
|
13
|
-
def __init__(self, close_time: int = 10000, font_size: int = 16, show_toast: bool = True):
|
14
|
-
super().__init__()
|
15
|
-
self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
|
16
|
-
self.box_layout = QBoxLayout(QBoxLayout.Direction.TopToBottom)
|
17
|
-
self.chat_input = QTextEdit()
|
18
|
-
self.send_text_button = QPushButton()
|
19
|
-
self.send_text_button.setText(language_wrapper.language_word_dict.get("chat_scene_send_chat"))
|
20
|
-
self.box_h_layout = QHBoxLayout()
|
21
|
-
self.box_h_layout.addWidget(self.send_text_button)
|
22
|
-
self.box_layout.addWidget(self.chat_input)
|
23
|
-
self.box_layout.addLayout(self.box_h_layout)
|
24
|
-
self.setWindowTitle(language_wrapper.language_word_dict.get("chat_scene_input_title"))
|
25
|
-
self.setLayout(self.box_layout)
|
26
|
-
# Show toast?
|
27
|
-
self.show_toast = show_toast
|
28
|
-
# Get message timer
|
29
|
-
self.get_message_timer = QTimer()
|
30
|
-
self.get_message_timer.setInterval(1000)
|
31
|
-
self.get_message_timer.timeout.connect(self.get_message)
|
32
|
-
self.get_message_timer.start()
|
33
|
-
# Check error timer
|
34
|
-
self.check_error_timer = QTimer()
|
35
|
-
self.check_error_timer.setInterval(1000)
|
36
|
-
self.check_error_timer.timeout.connect(self.check_error)
|
37
|
-
self.check_error_timer.start()
|
38
|
-
# Toast
|
39
|
-
self.close_time = close_time
|
40
|
-
self.font_size = font_size
|
41
|
-
self.toast_widget: Union[ChatToast, None] = None
|
42
|
-
# Text to speech
|
43
|
-
self.engine = pyttsx3.init()
|
44
|
-
|
45
|
-
def get_message(self):
|
46
|
-
if not MESSAGE_QUEUE.empty():
|
47
|
-
text = MESSAGE_QUEUE.get_nowait()
|
48
|
-
if self.show_toast:
|
49
|
-
self.toast_widget = ChatToast(
|
50
|
-
text=text, close_time=self.close_time, font_size=self.font_size)
|
51
|
-
self.toast_widget.showFullScreen()
|
52
|
-
# self.engine.say(text)
|
53
|
-
|
54
|
-
def show_text(self):
|
55
|
-
if self.toast_widget is not None and self.toast_widget.isVisible() is False:
|
56
|
-
self.get_message()
|
57
|
-
elif self.toast_widget is None:
|
58
|
-
self.get_message()
|
59
|
-
|
60
|
-
def check_error(self):
|
61
|
-
if not EXCEPTION_QUEUE.empty():
|
62
|
-
gpt_error_messagebox = QMessageBox(self)
|
63
|
-
gpt_error_messagebox.setText(
|
64
|
-
language_wrapper.language_word_dict.get("chat_gpt_exception") + "\n"
|
65
|
-
+ EXCEPTION_QUEUE.get_nowait()
|
66
|
-
)
|
67
|
-
gpt_error_messagebox.show()
|
68
|
-
|
69
|
-
def close(self) -> bool:
|
70
|
-
self.get_message_timer.stop()
|
71
|
-
self.check_error_timer.stop()
|
72
|
-
return super().close()
|
@@ -1,187 +0,0 @@
|
|
1
|
-
from typing import Dict, Callable
|
2
|
-
|
3
|
-
from PySide6.QtCore import QTimer
|
4
|
-
from PySide6.QtGui import QFontDatabase, Qt
|
5
|
-
from PySide6.QtWidgets import QWidget, QGridLayout, QPushButton, QScrollArea, QComboBox, QLabel, \
|
6
|
-
QPlainTextEdit, QLineEdit, QBoxLayout, QCheckBox
|
7
|
-
|
8
|
-
from frontengine.show.scene.scene import SceneManager
|
9
|
-
from frontengine.ui.setting.chat.chat_model import load_scene_json, chat_model
|
10
|
-
from frontengine.ui.setting.chat.chat_scene_input import ChatInputDialog
|
11
|
-
from frontengine.ui.setting.chat.chatthread import ChatThread, DELEGATE_CHAT, PANEL_MESSAGE_QUEUE
|
12
|
-
from frontengine.ui.setting.chat.speech_to_text import ChatSpeechToText
|
13
|
-
from frontengine.utils.logging.loggin_instance import front_engine_logger
|
14
|
-
from frontengine.utils.multi_language.language_wrapper import language_wrapper
|
15
|
-
|
16
|
-
|
17
|
-
class ChatSceneUI(QWidget):
|
18
|
-
|
19
|
-
def __init__(self):
|
20
|
-
super().__init__()
|
21
|
-
self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
|
22
|
-
self.voice_input = None
|
23
|
-
self.grid_layout = QGridLayout()
|
24
|
-
self.grid_layout.setContentsMargins(0, 0, 0, 0)
|
25
|
-
# Init
|
26
|
-
self.chat_input = ChatInputDialog()
|
27
|
-
self.chat_list = list()
|
28
|
-
self.choose_style_combobox = QComboBox()
|
29
|
-
self.choose_style_combobox.addItems([
|
30
|
-
language_wrapper.language_word_dict.get("chat_scene_creative"),
|
31
|
-
language_wrapper.language_word_dict.get("chat_scene_precise"),
|
32
|
-
language_wrapper.language_word_dict.get("chat_scene_balanced")
|
33
|
-
])
|
34
|
-
self.choose_style_combobox.currentTextChanged.connect(self.change_style)
|
35
|
-
self.param_key_name_list = [
|
36
|
-
"widget_type", "file_path", "url", "text", "opacity", "speed", "volume", "font_size", "play_rate",
|
37
|
-
"web_setting_open_local_file", "web_setting_open_enable_input", "position_x", "position_y"
|
38
|
-
]
|
39
|
-
# New topic button
|
40
|
-
self.new_topic_button = QPushButton(language_wrapper.language_word_dict.get("chat_scene_new_topic"))
|
41
|
-
self.new_topic_button.clicked.connect(self.new_topic)
|
42
|
-
# Start button
|
43
|
-
self.start_button = QPushButton(language_wrapper.language_word_dict.get("chat_scene_start_button"))
|
44
|
-
self.start_button.clicked.connect(self.start_chat)
|
45
|
-
# Chat panel
|
46
|
-
self.chat_panel = QPlainTextEdit()
|
47
|
-
self.chat_panel.setLineWrapMode(self.chat_panel.LineWrapMode.NoWrap)
|
48
|
-
self.chat_panel.setReadOnly(True)
|
49
|
-
self.chat_panel_scroll_area = QScrollArea()
|
50
|
-
self.chat_panel_scroll_area.setWidgetResizable(True)
|
51
|
-
self.chat_panel_scroll_area.setViewportMargins(0, 0, 0, 0)
|
52
|
-
self.chat_panel_scroll_area.setWidget(self.chat_panel)
|
53
|
-
self.chat_panel.setFont(QFontDatabase.font(self.font().family(), "", 16))
|
54
|
-
# Scene
|
55
|
-
self.scene = SceneManager()
|
56
|
-
self.scene_component: Dict[str, Callable] = {
|
57
|
-
"IMAGE": self.scene.add_image,
|
58
|
-
"GIF": self.scene.add_gif,
|
59
|
-
"SOUND": self.scene.add_sound,
|
60
|
-
"TEXT": self.scene.add_text,
|
61
|
-
"VIDEO": self.scene.add_video,
|
62
|
-
"WEB": self.scene.add_web,
|
63
|
-
"EXTEND_UI_FILE": self.scene.add_extend_ui_file
|
64
|
-
}
|
65
|
-
# Font size combobox
|
66
|
-
self.font_size_label = QLabel(language_wrapper.language_word_dict.get("Font size"))
|
67
|
-
self.font_size_combobox = QComboBox()
|
68
|
-
for font_size in range(2, 101, 2):
|
69
|
-
self.font_size_combobox.addItem(str(font_size))
|
70
|
-
self.font_size_combobox.setCurrentText("16")
|
71
|
-
self.font_size_combobox.currentTextChanged.connect(self.update_panel_text_size)
|
72
|
-
# Close delay combobox
|
73
|
-
self.close_delay_label = QLabel(language_wrapper.language_word_dict.get("close_delay"))
|
74
|
-
self.close_delay_combobox = QComboBox()
|
75
|
-
for sec in range(1, 101, 1):
|
76
|
-
self.close_delay_combobox.addItem(str(sec))
|
77
|
-
self.close_delay_combobox.setCurrentText("10")
|
78
|
-
# Load scene
|
79
|
-
self.scene_input_button = QPushButton(language_wrapper.language_word_dict.get("scene_input"))
|
80
|
-
self.scene_input_button.clicked.connect(lambda: load_scene_json(self))
|
81
|
-
# Locale box
|
82
|
-
self.locale_label = QLabel(language_wrapper.language_word_dict.get("country_code"))
|
83
|
-
self.locale_input = QLineEdit()
|
84
|
-
self.locale_input.setText("zh-tw")
|
85
|
-
self.local_box = QBoxLayout(QBoxLayout.Direction.LeftToRight)
|
86
|
-
self.local_box.addWidget(self.locale_label)
|
87
|
-
self.local_box.addWidget(self.locale_input)
|
88
|
-
# Start voice input
|
89
|
-
self.start_voice_input_button = QPushButton(
|
90
|
-
language_wrapper.language_word_dict.get("start_chat_voice_input_ui"))
|
91
|
-
self.start_voice_input_button.clicked.connect(self.start_voice_input)
|
92
|
-
# Show toast checkbox
|
93
|
-
self.show_toast_checkbox_label = QLabel(
|
94
|
-
language_wrapper.language_word_dict.get("should_we_show_toast"))
|
95
|
-
self.show_toast_checkbox = QCheckBox()
|
96
|
-
# Add to layout
|
97
|
-
self.grid_layout.addWidget(self.choose_style_combobox, 0, 0)
|
98
|
-
self.grid_layout.addWidget(self.close_delay_label, 0, 1)
|
99
|
-
self.grid_layout.addWidget(self.close_delay_combobox, 0, 2)
|
100
|
-
self.grid_layout.addWidget(self.font_size_label, 0, 3)
|
101
|
-
self.grid_layout.addWidget(self.font_size_combobox, 0, 4)
|
102
|
-
self.grid_layout.addLayout(self.local_box, 0, 5)
|
103
|
-
self.grid_layout.addWidget(self.show_toast_checkbox_label, 0, 6)
|
104
|
-
self.grid_layout.addWidget(self.show_toast_checkbox, 0, 7)
|
105
|
-
self.grid_layout.addWidget(self.new_topic_button, 0, 8)
|
106
|
-
self.grid_layout.addWidget(self.scene_input_button, 0, 9)
|
107
|
-
self.grid_layout.addWidget(self.start_voice_input_button, 0, 10)
|
108
|
-
self.grid_layout.addWidget(self.start_button, 0, 11)
|
109
|
-
self.grid_layout.addWidget(self.chat_panel_scroll_area, 1, 0, -1, -1)
|
110
|
-
# update panel timer
|
111
|
-
self.update_panel_timer = QTimer()
|
112
|
-
self.update_panel_timer.setInterval(10)
|
113
|
-
self.update_panel_timer.timeout.connect(self.update_panel)
|
114
|
-
self.update_panel_timer.start()
|
115
|
-
self.setLayout(self.grid_layout)
|
116
|
-
|
117
|
-
def update_panel(self):
|
118
|
-
if not PANEL_MESSAGE_QUEUE.empty():
|
119
|
-
text = PANEL_MESSAGE_QUEUE.get_nowait()
|
120
|
-
self.chat_panel.appendPlainText(text)
|
121
|
-
self.chat_panel.appendPlainText("\n")
|
122
|
-
|
123
|
-
def update_panel_text_size(self):
|
124
|
-
self.chat_panel.setFont(
|
125
|
-
QFontDatabase.font(self.font().family(), "", int(self.font_size_combobox.currentText())))
|
126
|
-
|
127
|
-
def start_chat(self) -> None:
|
128
|
-
self.chat_input = ChatInputDialog(
|
129
|
-
close_time=int(self.close_delay_combobox.currentText()) * 1000,
|
130
|
-
font_size=int(self.font_size_combobox.currentText()),
|
131
|
-
show_toast=self.show_toast_checkbox.isChecked()
|
132
|
-
)
|
133
|
-
self.chat_input.show()
|
134
|
-
self.chat_input.send_text_button.clicked.connect(self.send_chat)
|
135
|
-
if chat_model.rowCount() > 0:
|
136
|
-
self.start_scene()
|
137
|
-
|
138
|
-
def start_voice_input(self):
|
139
|
-
self.voice_input = ChatSpeechToText()
|
140
|
-
self.voice_input.show()
|
141
|
-
self.voice_input.send_text_button.clicked.connect(self.send_voice_chat)
|
142
|
-
|
143
|
-
def send_voice_chat(self):
|
144
|
-
chat_thread = ChatThread(self.voice_input.voice_text_edit.text(), self.locale_input.text())
|
145
|
-
chat_thread.start()
|
146
|
-
|
147
|
-
def send_chat(self):
|
148
|
-
chat_thread = ChatThread(self.chat_input.chat_input.toPlainText(), self.locale_input.text())
|
149
|
-
chat_thread.start()
|
150
|
-
|
151
|
-
def change_style(self):
|
152
|
-
DELEGATE_CHAT.change_style(self.choose_style_combobox.currentText())
|
153
|
-
|
154
|
-
def new_topic(self):
|
155
|
-
DELEGATE_CHAT.new_topic(self.chat_panel)
|
156
|
-
self.chat_input.close()
|
157
|
-
|
158
|
-
def close_chat_ui(self):
|
159
|
-
if self.chat_input.isVisible():
|
160
|
-
self.chat_input.close()
|
161
|
-
self.chat_input = None
|
162
|
-
self.chat_list.clear()
|
163
|
-
self.close_scene()
|
164
|
-
|
165
|
-
def close_scene(self) -> None:
|
166
|
-
self.scene.widget_list.clear()
|
167
|
-
if self.scene:
|
168
|
-
if self.scene.graphic_view:
|
169
|
-
self.scene.graphic_view.close()
|
170
|
-
|
171
|
-
def start_scene(self) -> None:
|
172
|
-
front_engine_logger.info("start_scene")
|
173
|
-
for row in range(chat_model.rowCount()):
|
174
|
-
widget_type_text = chat_model.item(row, 0).text()
|
175
|
-
add_widget_function = self.scene_component.get(widget_type_text)
|
176
|
-
param_dict: Dict[str, str] = dict()
|
177
|
-
for column in range(1, chat_model.columnCount()):
|
178
|
-
param = chat_model.item(row, column).text()
|
179
|
-
if param != "":
|
180
|
-
param_dict.update({self.param_key_name_list[column]: param})
|
181
|
-
add_widget_function(param_dict)
|
182
|
-
front_engine_logger.info(f"start_scene type: {widget_type_text}, param: {param_dict}")
|
183
|
-
self.scene.show()
|
184
|
-
|
185
|
-
def close(self) -> bool:
|
186
|
-
self.close_chat_ui()
|
187
|
-
return super().close()
|
@@ -1,78 +0,0 @@
|
|
1
|
-
import asyncio
|
2
|
-
import json
|
3
|
-
from pathlib import Path
|
4
|
-
from queue import Queue
|
5
|
-
from threading import Thread
|
6
|
-
|
7
|
-
from re_edge_gpt import Chatbot, ConversationStyle
|
8
|
-
from PySide6.QtWidgets import QPlainTextEdit
|
9
|
-
|
10
|
-
|
11
|
-
class DelegateChat(object):
|
12
|
-
|
13
|
-
def __init__(self):
|
14
|
-
self.chat_bot = None
|
15
|
-
self.style = ConversationStyle.creative
|
16
|
-
|
17
|
-
def new_topic(self, message_panel: QPlainTextEdit):
|
18
|
-
self.chat_bot = None
|
19
|
-
message_panel.clear()
|
20
|
-
|
21
|
-
def change_style(self, style: str):
|
22
|
-
if style == "creative":
|
23
|
-
self.style = ConversationStyle.creative
|
24
|
-
elif style == "precise":
|
25
|
-
self.style = ConversationStyle.precise
|
26
|
-
else:
|
27
|
-
self.style = ConversationStyle.balanced
|
28
|
-
|
29
|
-
|
30
|
-
class ChatThread(Thread):
|
31
|
-
|
32
|
-
def __init__(self, chat_send_message: str, locale: str):
|
33
|
-
super().__init__()
|
34
|
-
self.current_message = None
|
35
|
-
self.chat_send_message = chat_send_message
|
36
|
-
PANEL_MESSAGE_QUEUE.put_nowait("Q: " + chat_send_message)
|
37
|
-
self.locale = locale
|
38
|
-
if DELEGATE_CHAT.chat_bot is not None:
|
39
|
-
self.chat_bot = DELEGATE_CHAT.chat_bot
|
40
|
-
|
41
|
-
def run(self) -> None:
|
42
|
-
try:
|
43
|
-
chat_response = dict()
|
44
|
-
|
45
|
-
async def send_chat_async():
|
46
|
-
nonlocal chat_response
|
47
|
-
if DELEGATE_CHAT.chat_bot is None:
|
48
|
-
cookies = json.loads(open(
|
49
|
-
str(Path(str(Path.cwd()) + "/bing_cookies.json")), encoding="utf-8").read())
|
50
|
-
bot = await Chatbot.create(cookies=cookies)
|
51
|
-
response = await bot.ask(
|
52
|
-
prompt=self.chat_send_message, conversation_style=DELEGATE_CHAT.style, locale=self.locale
|
53
|
-
)
|
54
|
-
chat_response = response
|
55
|
-
DELEGATE_CHAT.chat_bot = bot
|
56
|
-
else:
|
57
|
-
response = await DELEGATE_CHAT.chat_bot.ask(
|
58
|
-
prompt=self.chat_send_message, conversation_style=DELEGATE_CHAT.style)
|
59
|
-
chat_response = response
|
60
|
-
|
61
|
-
asyncio.run(send_chat_async())
|
62
|
-
self.current_message = chat_response
|
63
|
-
if self.current_message is not None:
|
64
|
-
for text_dict in self.current_message.get("item").get("messages"):
|
65
|
-
if text_dict.get("author") == "bot":
|
66
|
-
response_text: str = text_dict.get("text")
|
67
|
-
if response_text is not None and not response_text.isspace():
|
68
|
-
MESSAGE_QUEUE.put_nowait(response_text)
|
69
|
-
PANEL_MESSAGE_QUEUE.put_nowait("A: " + response_text)
|
70
|
-
except Exception as error:
|
71
|
-
EXCEPTION_QUEUE.put_nowait(repr(error))
|
72
|
-
raise error
|
73
|
-
|
74
|
-
|
75
|
-
MESSAGE_QUEUE = Queue()
|
76
|
-
PANEL_MESSAGE_QUEUE = Queue()
|
77
|
-
DELEGATE_CHAT = DelegateChat()
|
78
|
-
EXCEPTION_QUEUE = Queue()
|
@@ -1,70 +0,0 @@
|
|
1
|
-
import queue
|
2
|
-
import sys
|
3
|
-
import time
|
4
|
-
|
5
|
-
from PySide6.QtCore import QTimer, Qt
|
6
|
-
from PySide6.QtWidgets import QWidget, QPushButton, QBoxLayout, QLineEdit
|
7
|
-
from speech_recognition import Microphone
|
8
|
-
from speech_recognition import Recognizer
|
9
|
-
from speech_recognition import RequestError, UnknownValueError
|
10
|
-
from threading import Thread
|
11
|
-
|
12
|
-
from frontengine.utils.multi_language.language_wrapper import language_wrapper
|
13
|
-
|
14
|
-
LISTENER_QUEUE = queue.Queue()
|
15
|
-
|
16
|
-
|
17
|
-
def callback(recognizer: Recognizer, audio):
|
18
|
-
try:
|
19
|
-
text = recognizer.recognize_google(audio)
|
20
|
-
LISTENER_QUEUE.put_nowait(text)
|
21
|
-
except (RequestError, UnknownValueError) as error:
|
22
|
-
print(repr(error), file=sys.stderr)
|
23
|
-
|
24
|
-
|
25
|
-
class ChatSpeechToText(QWidget):
|
26
|
-
|
27
|
-
def __init__(self):
|
28
|
-
super().__init__()
|
29
|
-
# UI
|
30
|
-
self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
|
31
|
-
self.box_layout = QBoxLayout(QBoxLayout.Direction.LeftToRight)
|
32
|
-
self.voice_text_edit = QLineEdit()
|
33
|
-
self.start_listen_button = QPushButton(
|
34
|
-
language_wrapper.language_word_dict.get("chat_recognizer_voice_button"))
|
35
|
-
self.start_listen_button.clicked.connect(self.start_listener_thread)
|
36
|
-
self.send_text_button = QPushButton(
|
37
|
-
language_wrapper.language_word_dict.get("chat_scene_send_chat"))
|
38
|
-
self.box_layout.addWidget(self.voice_text_edit)
|
39
|
-
self.box_layout.addWidget(self.start_listen_button)
|
40
|
-
self.box_layout.addWidget(self.send_text_button)
|
41
|
-
self.setLayout(self.box_layout)
|
42
|
-
# Listener Timer
|
43
|
-
self.listener_timer = QTimer()
|
44
|
-
self.listener_timer.setInterval(100)
|
45
|
-
self.listener_timer.timeout.connect(self.update_voice_edit)
|
46
|
-
self.listener_timer.start()
|
47
|
-
|
48
|
-
def start_listener_thread(self):
|
49
|
-
listener_thread = Thread(target=self.start_listener)
|
50
|
-
listener_thread.daemon = True
|
51
|
-
listener_thread.start()
|
52
|
-
|
53
|
-
@classmethod
|
54
|
-
def start_listener(cls):
|
55
|
-
recognizer = Recognizer()
|
56
|
-
microphone = Microphone()
|
57
|
-
with microphone as source:
|
58
|
-
recognizer.adjust_for_ambient_noise(source, duration=0.1)
|
59
|
-
stop_listening = recognizer.listen_in_background(microphone, callback)
|
60
|
-
for receive_sound_time in range(50):
|
61
|
-
time.sleep(0.1)
|
62
|
-
stop_listening(wait_for_stop=False)
|
63
|
-
|
64
|
-
def update_voice_edit(self):
|
65
|
-
if not LISTENER_QUEUE.empty():
|
66
|
-
self.voice_text_edit.setText(str(LISTENER_QUEUE.get_nowait()))
|
67
|
-
|
68
|
-
def close(self) -> bool:
|
69
|
-
self.listener_timer.stop()
|
70
|
-
return super().close()
|
@@ -1,32 +0,0 @@
|
|
1
|
-
import asyncio
|
2
|
-
from queue import Queue
|
3
|
-
from threading import Thread
|
4
|
-
from re_edge_gpt import ImageGenAsync
|
5
|
-
|
6
|
-
|
7
|
-
class ImageGenThread(Thread):
|
8
|
-
|
9
|
-
def __init__(self, image_keyword: str):
|
10
|
-
super().__init__()
|
11
|
-
auth_cooker = open("bing_cookies.txt", "r+").read()
|
12
|
-
self.async_gen = ImageGenAsync(auth_cookie=auth_cooker)
|
13
|
-
self.image_keyword = image_keyword
|
14
|
-
|
15
|
-
def run(self) -> None:
|
16
|
-
try:
|
17
|
-
image_list = list()
|
18
|
-
|
19
|
-
async def send_chat_async():
|
20
|
-
nonlocal image_list
|
21
|
-
image_list = await self.async_gen.get_images(self.image_keyword)
|
22
|
-
|
23
|
-
asyncio.run(send_chat_async())
|
24
|
-
for image in image_list:
|
25
|
-
IMAGE_QUEUE.put_nowait(image)
|
26
|
-
except Exception as error:
|
27
|
-
EXCEPTION_QUEUE.put_nowait(repr(error))
|
28
|
-
raise error
|
29
|
-
|
30
|
-
|
31
|
-
IMAGE_QUEUE = Queue()
|
32
|
-
EXCEPTION_QUEUE = Queue()
|
@@ -1,63 +0,0 @@
|
|
1
|
-
from typing import List
|
2
|
-
|
3
|
-
import requests
|
4
|
-
from PySide6.QtCore import QTimer
|
5
|
-
from PySide6.QtGui import QPixmap, Qt
|
6
|
-
from PySide6.QtWidgets import QWidget, QPushButton, QLineEdit, QGridLayout, QMessageBox, QPlainTextEdit
|
7
|
-
|
8
|
-
from frontengine.show.image_generation.image_generation_show import ImageGenerateShow
|
9
|
-
from frontengine.ui.setting.image_generation.generation_image_thread import ImageGenThread, IMAGE_QUEUE
|
10
|
-
from frontengine.utils.multi_language.language_wrapper import language_wrapper
|
11
|
-
|
12
|
-
|
13
|
-
class ImageGenerationUI(QWidget):
|
14
|
-
def __init__(self):
|
15
|
-
super().__init__()
|
16
|
-
self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
|
17
|
-
# UI
|
18
|
-
self.image_keyword_input = QLineEdit()
|
19
|
-
self.send_text_button = QPushButton()
|
20
|
-
self.send_text_button.setText(language_wrapper.language_word_dict.get("start_generate_image"))
|
21
|
-
self.image_panel = QPlainTextEdit()
|
22
|
-
self.image_panel.setReadOnly(True)
|
23
|
-
self.send_text_button.clicked.connect(self.generate_image)
|
24
|
-
# Layout
|
25
|
-
self.grid_layout = QGridLayout()
|
26
|
-
self.grid_layout.setContentsMargins(0, 0, 0, 0)
|
27
|
-
self.grid_layout.addWidget(self.image_keyword_input, 0, 0)
|
28
|
-
self.grid_layout.addWidget(self.send_text_button, 0, 1)
|
29
|
-
self.grid_layout.addWidget(self.image_panel, 1, 0, -1, -1)
|
30
|
-
self.setLayout(self.grid_layout)
|
31
|
-
# Pull image timer
|
32
|
-
self.pull_image_timer = QTimer()
|
33
|
-
self.pull_image_timer.setInterval(1000)
|
34
|
-
self.pull_image_timer.timeout.connect(self.get_image)
|
35
|
-
self.pull_image_timer.start()
|
36
|
-
# Manage show
|
37
|
-
self.show_list: List[QWidget] = list()
|
38
|
-
|
39
|
-
def generate_image(self):
|
40
|
-
if self.image_keyword_input.text() == "" or self.image_keyword_input.text().isspace():
|
41
|
-
input_error_message = QMessageBox(self)
|
42
|
-
input_error_message.setText(language_wrapper.language_word_dict.get("input_error"))
|
43
|
-
input_error_message.show()
|
44
|
-
else:
|
45
|
-
image_thread = ImageGenThread(self.image_keyword_input.text())
|
46
|
-
image_thread.daemon = True
|
47
|
-
image_thread.start()
|
48
|
-
|
49
|
-
def get_image(self):
|
50
|
-
if not IMAGE_QUEUE.empty():
|
51
|
-
image_link = IMAGE_QUEUE.get_nowait()
|
52
|
-
image_response = requests.get(image_link)
|
53
|
-
image = QPixmap()
|
54
|
-
image.loadFromData(image_response.content)
|
55
|
-
image_show = ImageGenerateShow(image, image_link)
|
56
|
-
self.show_list.append(image_show)
|
57
|
-
image_show.show()
|
58
|
-
self.image_panel.appendPlainText(image_link)
|
59
|
-
|
60
|
-
def close(self) -> bool:
|
61
|
-
for widget in self.show_list:
|
62
|
-
widget.close()
|
63
|
-
return super().close()
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,112 +0,0 @@
|
|
1
|
-
frontengine/__init__.py,sha256=7LHgYc7iQiZwLtvTDC8E-gmmjlfBzEPyvq7QG6PCtwk,2178
|
2
|
-
frontengine/show/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
-
frontengine/show/chat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
|
-
frontengine/show/chat/chat_toast.py,sha256=dt4aUf0_ESZuRvbjKhJxoAzyzIxp-I05xhh0UdtyhTU,1975
|
5
|
-
frontengine/show/gif/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
|
-
frontengine/show/gif/paint_gif.py,sha256=AiNKw7eXNDBU3qKxexKU45Bh-IDlP2J_OC_WOALBPUE,2852
|
7
|
-
frontengine/show/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
8
|
-
frontengine/show/image/paint_image.py,sha256=66oinaBpFSZrMqWIFO9X3_45Kl61_EsuIbh4b_dhLX0,2295
|
9
|
-
frontengine/show/image_generation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
10
|
-
frontengine/show/image_generation/image_generation_show.py,sha256=mMcPWw9EVIq201HpxpN70G7hgcvrptZlKpm-wWq_BLY,1611
|
11
|
-
frontengine/show/load/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
12
|
-
frontengine/show/load/load_someone_make_ui.py,sha256=yjMrkA76VEYkKXygwKmoKaADymjjDlebI-7PNa6DrEo,1010
|
13
|
-
frontengine/show/scene/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
14
|
-
frontengine/show/scene/extend_graphic_scene.py,sha256=YfxAvMllAOS67XtyEoTiVWultD_NamWdH2plV75QcQ0,150
|
15
|
-
frontengine/show/scene/extend_graphic_view.py,sha256=RHchIGI3UWjmrpAo9aIfyTvCV_ENGIbn_FOrq-nZ46w,1935
|
16
|
-
frontengine/show/scene/scene.py,sha256=BZVNgeXR46p6hfHusUEX7dVCoxk9eUA0vksuWafLr8c,5337
|
17
|
-
frontengine/show/sound_player/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
18
|
-
frontengine/show/sound_player/sound_effect.py,sha256=djeBKMv3FrAWd34e26n3P4exr9gSmBTLGLaLlYb0xtI,2102
|
19
|
-
frontengine/show/sound_player/sound_player.py,sha256=foQyPv1UwQnJ7AW9I1gF8lTCoHh5dSDi0dE6kg-Uq3Q,2205
|
20
|
-
frontengine/show/text/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
21
|
-
frontengine/show/text/draw_text.py,sha256=J2C5RbpsevfnNEzwd1jtYxi4K5vztAl8OcisU3zueZ4,2148
|
22
|
-
frontengine/show/video/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
23
|
-
frontengine/show/video/video_player.py,sha256=45rCubWI_V23cr-luPtm9oEXYqp7MRsUQQhoqykIM28,3391
|
24
|
-
frontengine/show/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
25
|
-
frontengine/show/web/webview.py,sha256=AnzmaK7DprXyQ2FMgmTfNRm0XAR2CqJqSOM9VcwHEPg,2526
|
26
|
-
frontengine/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
27
|
-
frontengine/ui/color/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
28
|
-
frontengine/ui/color/global_color.py,sha256=Rh-R-X2BHVjcK5MTBZ1nEMVHgLj1rP4nk-wTQKbiwFA,125
|
29
|
-
frontengine/ui/dialog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
30
|
-
frontengine/ui/dialog/choose_file_dialog.py,sha256=UvQEc0sjGgJdfx2YbTANtCrIiXTlwh30byZgessa8MM,4398
|
31
|
-
frontengine/ui/dialog/save_file_dialog.py,sha256=e-sgUsmEAU1JSvzzmTmc2pf9rnW61alOgd48ESTYG1I,373
|
32
|
-
frontengine/ui/main/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
33
|
-
frontengine/ui/main/language_menu.py,sha256=oIUW20LPZKIQ0IjTHchgkPeqCpQZidAzFkN29qKQ3OU,2039
|
34
|
-
frontengine/ui/main/main_ui.py,sha256=PyBD17-UYoh1OicV6bhNUflPmOss_nTezMqgMVDS83M,7827
|
35
|
-
frontengine/ui/main/system_tray/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
36
|
-
frontengine/ui/main/system_tray/extend_system_tray.py,sha256=jcT4E2_qR_5cICqNSgDdeVYxzQHpB4jHcn-sLZCg8BA,1633
|
37
|
-
frontengine/ui/setting/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
38
|
-
frontengine/ui/setting/chat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
39
|
-
frontengine/ui/setting/chat/chat_model.py,sha256=qmd1yh3q1Kv9GQHYD9YCVBLO-vI66t7OGVUxJnwSpg4,2775
|
40
|
-
frontengine/ui/setting/chat/chat_scene_input.py,sha256=1AlGt1FGu6q3fKxfC-hCmNJeLPAJNdFb4oXEf3tH2cE,3059
|
41
|
-
frontengine/ui/setting/chat/chat_scene_setting.py,sha256=Ctj9AhRMXZRkSRfA2io4_LLb3gBbDUt3mDkVc6Vx214,9030
|
42
|
-
frontengine/ui/setting/chat/chatthread.py,sha256=T7GNv_WnOw5VH5pjdQ5EBx2xk5_T6YMszsQNAxmqJE4,2932
|
43
|
-
frontengine/ui/setting/chat/speech_to_text.py,sha256=jNwivcGLvt-1ObNKLpfUvrj2rh2hx_TZPmbqh0iQ8cI,2616
|
44
|
-
frontengine/ui/setting/control_center/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
45
|
-
frontengine/ui/setting/control_center/control_center_ui.py,sha256=_PSvuwCrQ6adyZwf5cOu8POcfPkzELaK1rEY1rC-iTo,8337
|
46
|
-
frontengine/ui/setting/gif/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
47
|
-
frontengine/ui/setting/gif/gif_setting_ui.py,sha256=sGGW79bqbSJkUGYGDF93hLApJYxPSZr1XlWeFTL44Xs,6102
|
48
|
-
frontengine/ui/setting/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
49
|
-
frontengine/ui/setting/image/image_setting_ui.py,sha256=KsFNb1eHU1pMEDfGZdX1CKJA09w6q8aseqkb2B-MYYQ,5220
|
50
|
-
frontengine/ui/setting/image_generation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
51
|
-
frontengine/ui/setting/image_generation/generation_image_thread.py,sha256=RNVCKc_Sqgvyq6J622fprAnuqlbR5WLXLmbbpPQG2gk,929
|
52
|
-
frontengine/ui/setting/image_generation/image_generation_input.py,sha256=N6I1BPnUB29TuJGlrnOvNm9b83bYzWE8BQg-Rs9V0wk,2747
|
53
|
-
frontengine/ui/setting/scene_setting/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
54
|
-
frontengine/ui/setting/scene_setting/scene_setting_ui.py,sha256=scewHWx3aPX40Wkh3UEBt9Ti0vRzzs6XZQuTNzomTQQ,2564
|
55
|
-
frontengine/ui/setting/scene_setting/scene_tabs/Image.py,sha256=GI6Z4tWTBPqn9kADbqASalIrYKXLa0PeR_SVnRX13Ac,3134
|
56
|
-
frontengine/ui/setting/scene_setting/scene_tabs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
57
|
-
frontengine/ui/setting/scene_setting/scene_tabs/gif.py,sha256=YEb0r8snMeIvo1P634sflfehrei8J7WdjTccfB4KhkM,3788
|
58
|
-
frontengine/ui/setting/scene_setting/scene_tabs/scene_control.py,sha256=S9KT48_w4jJSJ723KXiKHPaTKIBiJj6ZvPsnl-MVWQs,3929
|
59
|
-
frontengine/ui/setting/scene_setting/scene_tabs/sound.py,sha256=5ITHzfTOzbIC3g13rNHtxZIZlj3No5kweaPeLaMXtrE,2035
|
60
|
-
frontengine/ui/setting/scene_setting/scene_tabs/tableview_model.py,sha256=vt3sNwWs7w05wjDadU0pupmsP7S5qnCYWZQ_ppkU27k,2810
|
61
|
-
frontengine/ui/setting/scene_setting/scene_tabs/text.py,sha256=TgVXGj5EMCwIenV9UyYKqJCJElhi1fIIMmD58lSdI5E,3940
|
62
|
-
frontengine/ui/setting/scene_setting/scene_tabs/ui.py,sha256=3XY8hjiDMJsF7tiac5onuIpkk6lzmAK--EZJPjepn2U,2852
|
63
|
-
frontengine/ui/setting/scene_setting/scene_tabs/video.py,sha256=soWmt8pZh0CbOS6qLDhSgtDA7btwLXS_vUgOJp13M-k,4589
|
64
|
-
frontengine/ui/setting/scene_setting/scene_tabs/web.py,sha256=O6VglN9oKSs5YjPwCye--NaN6dOl1u146LNuJKc7o5M,3878
|
65
|
-
frontengine/ui/setting/sound_player/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
66
|
-
frontengine/ui/setting/sound_player/sound_player_setting_ui.py,sha256=mu7c0DtkKrvGgH2VTDY-W5N1BAK6oJewT-_5qYgeZFM,6038
|
67
|
-
frontengine/ui/setting/text/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
68
|
-
frontengine/ui/setting/text/text_setting_ui.py,sha256=JhUT3ywQ-hbc1iY-NzuioblJ1AZJyVmQ5XF-B_mxEIA,4767
|
69
|
-
frontengine/ui/setting/video/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
70
|
-
frontengine/ui/setting/video/video_setting_ui.py,sha256=gimeIcp_BQoPt1x83pHfv6fMzAfprqP1iqfBWK3Mt-w,7212
|
71
|
-
frontengine/ui/setting/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
72
|
-
frontengine/ui/setting/web/web_setting_ui.py,sha256=aRz9WIx1DbPiFl8lQiqpPa4BxQ_38qPelLp9LZLn7Dw,4816
|
73
|
-
frontengine/user_setting/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
74
|
-
frontengine/user_setting/user_setting_file.py,sha256=0xq0_QmjI3hi9LVfgVoSUhOwtKttms0L4KwkPFHs5t0,602
|
75
|
-
frontengine/user_setting/gif/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
76
|
-
frontengine/user_setting/gif/gif_setting.py,sha256=PcZWWl2ik0cD7fXoJ3KBD-g0GDaubi-JsmyxaCGYQ64,89
|
77
|
-
frontengine/user_setting/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
78
|
-
frontengine/user_setting/image/image_setting.py,sha256=GkEbR2ZJCpwYAqRBfrVQbGJoTQsIhAlgqHm9RNMJkAQ,79
|
79
|
-
frontengine/user_setting/sound/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
80
|
-
frontengine/user_setting/sound/sound_setting.py,sha256=VWFNDTT2uSXjs1bxUGnOAMNWdqHT_0vgV8OAWd2E3Nc,72
|
81
|
-
frontengine/user_setting/text/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
82
|
-
frontengine/user_setting/text/text_setting.py,sha256=AxCajm83JfL-TBpVgAaDvJlpV1FsfNCKBTVUsC8Zk98,98
|
83
|
-
frontengine/user_setting/video/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
84
|
-
frontengine/user_setting/video/video_setting.py,sha256=LIPZpUBNMTPhW_gbH3g8rUqZ1rsqXcUZu5BFmhrCB-o,118
|
85
|
-
frontengine/user_setting/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
86
|
-
frontengine/user_setting/web/web_setting.py,sha256=9Nn0AXvYtOvucWB0DtsM_DTYyxUuFMarmKT0VODMETI,72
|
87
|
-
frontengine/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
88
|
-
frontengine/utils/exception/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
89
|
-
frontengine/utils/exception/exception_tags.py,sha256=V4R_RlNYX_zgAKU9I7NLimYic--oF-2qHDHCwpVYHcc,325
|
90
|
-
frontengine/utils/exception/exceptions.py,sha256=ZGY8HPvx3PGQkH_5VKF3IQMmkkUbBKJILTGn4o2Y4-g,296
|
91
|
-
frontengine/utils/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
92
|
-
frontengine/utils/file/open/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
93
|
-
frontengine/utils/file/open/open_file.py,sha256=YpxoGqhT_yuyMR0fu0UW8jBBvlKH-9G8AGJlN7u3L4Q,976
|
94
|
-
frontengine/utils/file/save/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
95
|
-
frontengine/utils/file/save/save_file.py,sha256=KF6IG3fX8RK2BAakwKdxTRC9HFpz3fEe90lqUBfAchk,733
|
96
|
-
frontengine/utils/json/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
97
|
-
frontengine/utils/json/json_file.py,sha256=vFZDM0SDxlVcwN-2iGCGM24pl5ldO0a0SVNm7EG8Nk8,1421
|
98
|
-
frontengine/utils/json_format/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
99
|
-
frontengine/utils/json_format/json_process.py,sha256=xJt_4Hm_o3sNDoeGtRW9Q7fsRj3DLiTbW-W8IqB8vt8,1021
|
100
|
-
frontengine/utils/logging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
101
|
-
frontengine/utils/logging/loggin_instance.py,sha256=Zjr384o2q8x0QWv_hNoHIM_zCp5-HFgW14t-d30GUcQ,598
|
102
|
-
frontengine/utils/multi_language/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
103
|
-
frontengine/utils/multi_language/english.py,sha256=kleLtlcQWSU8ilseE1E0k_AXHBVL_vQKuTOOxL-xdmg,5085
|
104
|
-
frontengine/utils/multi_language/language_wrapper.py,sha256=KBqsG6ng5LSJkGqmu_YDxI8yAjXwgHM12DOzVgh_HXI,848
|
105
|
-
frontengine/utils/multi_language/traditional_chinese.py,sha256=pQyBBNDsFIZQgRk4EOnI3zxBWFHwrOWrYJ2y_p7zHgY,5243
|
106
|
-
frontengine/utils/redirect_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
107
|
-
frontengine/utils/redirect_manager/redirect_manager_class.py,sha256=zGJeVpjRU12MCnhVAdksAIhK_IhddI4cNKVb7DMgOZA,1888
|
108
|
-
frontengine-0.0.55.dist-info/LICENSE,sha256=b3VlPBXnrDylKGffOEOLWMgOX-yfd65XC7PA1_sox2o,1085
|
109
|
-
frontengine-0.0.55.dist-info/METADATA,sha256=rZyK6KE5f_EDgJefBPkVNz4Ik_CA8B3bR4i_OeEfmaE,3819
|
110
|
-
frontengine-0.0.55.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
|
111
|
-
frontengine-0.0.55.dist-info/top_level.txt,sha256=btCybScN_ubeQ8phsSDBB0T-HyHjqt7b-WPy61uTox0,12
|
112
|
-
frontengine-0.0.55.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|