From 91b7ec2b67d74e4d2e41c857232414feb3cb7bfd Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 02 四月 2025 18:32:10 +0800 Subject: [PATCH] 功能完善 --- main.py | 141 +++++++++++++++++++++++++++++++++++++++------- 1 files changed, 118 insertions(+), 23 deletions(-) diff --git a/main.py b/main.py index f6b6f51..be94b24 100644 --- a/main.py +++ b/main.py @@ -1,9 +1,11 @@ +import re import threading import wx import setting from comment import CommentManager + def show_warning(content, click=None): toastone = wx.MessageDialog(None, content, "鎻愮ず", wx.YES_DEFAULT | wx.ICON_WARNING) @@ -18,6 +20,7 @@ if toastone.ShowModal() == wx.ID_YES: # 濡傛灉鐐瑰嚮浜嗘彁绀烘鐨勭‘瀹氭寜閽� click() toastone.Destroy() + class MainFrame(wx.Frame): def __bind_event(self): @@ -46,6 +49,9 @@ open_file_dialog.Destroy() def start_comment(event): + if self.comment_manager: + self.comment_manager.close() + self.comment_manager = CommentManager() threading.Thread(target=lambda: self.comment_manager.start_process_comment(), daemon=True).start() def on_save(event): @@ -66,7 +72,10 @@ setting.set_chromedriver_path(chromedriver_path) setting.set_comment_templates(comment_templates) setting.set_reply_comment(comment) + setting.set_common_emojis(self.text_emojis.GetValue()) + setting.set_like_conditions(self.text_like_conditions.GetValue()) show_info("淇濆瓨鎴愬姛") + self.Bind(wx.EVT_CLOSE, self.OnFrameClose) self.btn_start_comment.Bind(wx.EVT_BUTTON, start_comment) self.btn_chrome_path.Bind(wx.EVT_BUTTON, on_select_chrome_file) @@ -74,76 +83,162 @@ self.btn_save.Bind(wx.EVT_BUTTON, on_save) def __init(self): - self.comment_manager = CommentManager() + self.comment_manager = None self.cb_like.SetValue(setting.is_click_like()) self.cb_comment.SetValue(setting.is_reply_comment()) self.text_comments.SetValue(setting.get_comment_templates()) self.text_chrome_path.SetValue(setting.get_chrome_path()) self.text_chromedriver_path.SetValue(setting.get_chromedriver_path()) + self.text_emojis.SetValue(setting.get_common_emojis()) + self.text_like_conditions.SetValue(setting.get_like_conditions()) - - - def __init__(self): + def __create_setting_view(self, panel): def create_label(text): - return wx.StaticText(self, wx.ID_ANY, text, size=wx.Size(150, -1), style=wx.ALIGN_RIGHT) + return wx.StaticText(panel, wx.ID_ANY, text, size=wx.Size(150, -1), style=wx.ALIGN_RIGHT) - wx.Frame.__init__(self, None, -1, "瑙嗛鍙峰姪鎵�", - size=(600, 500)) - self.SetBackgroundColour(wx.Colour(224, 224, 224)) boxsier = wx.BoxSizer(wx.VERTICAL) # 娴忚鍣ㄥ湴鍧� ss = wx.BoxSizer(wx.HORIZONTAL) ss.Add(create_label("Chrome娴忚鍣ㄨ矾寰勶細"), 0, wx.ALIGN_CENTER_VERTICAL) - self.text_chrome_path = wx.TextCtrl(self, wx.ID_ANY, size=wx.Size(-1, -1)) + self.text_chrome_path = wx.TextCtrl(panel, wx.ID_ANY, size=wx.Size(-1, -1)) ss.Add(self.text_chrome_path, 1, wx.RIGHT, 10) - self.btn_chrome_path = wx.Button(self, wx.ID_ANY, "閫夋嫨鏂囦欢") + self.btn_chrome_path = wx.Button(panel, wx.ID_ANY, "閫夋嫨鏂囦欢") ss.Add(self.btn_chrome_path, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 10) boxsier.Add(ss, 0, wx.EXPAND | wx.TOP, 10) # 娴忚鍣ㄩ┍鍔ㄥ湴鍧� ss = wx.BoxSizer(wx.HORIZONTAL) ss.Add(create_label("Chrome娴忚鍣ㄩ┍鍔ㄨ矾寰勶細"), 0, wx.ALIGN_CENTER_VERTICAL) - self.text_chromedriver_path = wx.TextCtrl(self, wx.ID_ANY, size=wx.Size(-1, -1)) + self.text_chromedriver_path = wx.TextCtrl(panel, wx.ID_ANY, size=wx.Size(-1, -1)) ss.Add(self.text_chromedriver_path, 1, wx.RIGHT, 10) - self.btn_chromedriver_path = wx.Button(self, wx.ID_ANY, "閫夋嫨鏂囦欢") + self.btn_chromedriver_path = wx.Button(panel, wx.ID_ANY, "閫夋嫨鏂囦欢") ss.Add(self.btn_chromedriver_path, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 10) boxsier.Add(ss, 0, wx.EXPAND | wx.TOP, 10) # 鏄惁鐐硅禐 ss = wx.BoxSizer(wx.HORIZONTAL) ss.Add(create_label("鏄惁鐐硅禐锛�"), 0, wx.ALIGN_CENTER_VERTICAL) - self.cb_like = wx.CheckBox(self, wx.ID_ANY, "") + self.cb_like = wx.CheckBox(panel, wx.ID_ANY, "") ss.Add(self.cb_like, 0, wx.ALIGN_CENTER_VERTICAL) boxsier.Add(ss, 0, wx.EXPAND | wx.TOP, 10) # 鏄惁璇勮 ss = wx.BoxSizer(wx.HORIZONTAL) ss.Add(create_label("鏄惁璇勮锛�"), 0, wx.ALIGN_CENTER_VERTICAL) - self.cb_comment = wx.CheckBox(self, wx.ID_ANY, "") + self.cb_comment = wx.CheckBox(panel, wx.ID_ANY, "") ss.Add(self.cb_comment, 0, wx.ALIGN_CENTER_VERTICAL) + boxsier.Add(ss, 0, wx.EXPAND | wx.TOP, 10) + + # 甯哥敤琛ㄦ儏 + ss = wx.BoxSizer(wx.HORIZONTAL) + ss.Add(create_label("甯哥敤琛ㄦ儏锛�"), 0) + self.text_emojis = wx.TextCtrl(panel, wx.ID_ANY, size=wx.Size(-1, 50), style=wx.TE_MULTILINE) + ss.Add(self.text_emojis, 1, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 10) boxsier.Add(ss, 0, wx.EXPAND | wx.TOP, 10) # 璇勮鍐呭 ss = wx.BoxSizer(wx.HORIZONTAL) ss.Add(create_label("璇勮妯$増锛�"), 0) - self.text_comments = wx.TextCtrl(self, wx.ID_ANY, size=wx.Size(-1, 150), style=wx.TE_MULTILINE) + self.text_comments = wx.TextCtrl(panel, wx.ID_ANY, size=wx.Size(-1, 150), style=wx.TE_MULTILINE) ss.Add(self.text_comments, 1, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 10) boxsier.Add(ss, 0, wx.EXPAND | wx.TOP, 10) - boxsier.Add(wx.StaticText(self, wx.ID_ANY, "妯$増涓庡唴瀹逛箣闂撮噰鐢�#鍒嗛殧锛屽: 璋㈣阿$#[鏄电О]涓嶅姘擻n鍙橀噺锛歔鏄电О]\n澶囨敞锛�$-缁撳熬 ^-寮�濮�"), 0, wx.LEFT, + boxsier.Add(wx.StaticText(panel, wx.ID_ANY, "妯$増涓庡唴瀹逛箣闂撮噰鐢�#鍒嗛殧锛屽: 璋㈣阿$#[鏄电О]涓嶅姘擻n鍙橀噺锛氥�愭樀绉般�戯紝銆愬唴瀹广�戯紝銆愭渶鍚庝竴涓〃鎯呫�戯紝銆�1-3銆慭n澶囨敞锛�$-缁撳熬 ^-寮�濮�"), 0, wx.LEFT, 150) - self.btn_save = wx.Button(self, wx.ID_ANY, "淇濆瓨") - boxsier.Add(create_label("")) - boxsier.Add(self.btn_save, 0, wx.LEFT, 150) + # 鐐硅禐鏉′欢 + ss = wx.BoxSizer(wx.HORIZONTAL) + ss.Add(create_label("鐐硅禐鏉′欢锛�"), 0) + self.text_like_conditions = wx.TextCtrl(panel, wx.ID_ANY, size=wx.Size(-1, 80), style=wx.TE_MULTILINE) + ss.Add(self.text_like_conditions, 1, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 10) + boxsier.Add(ss, 0, wx.EXPAND | wx.TOP, 10) - self.btn_start_comment = wx.Button(self, wx.ID_ANY, "寮�濮�") - boxsier.Add(self.btn_start_comment) - self.SetSizer(boxsier) + ss = wx.BoxSizer(wx.HORIZONTAL) + self.btn_save = wx.Button(panel, wx.ID_ANY, "淇濆瓨") + ss.Add(self.btn_save, 0, wx.LEFT, 150) + boxsier.Add(ss, 0, wx.EXPAND | wx.TOP, 10) + + panel.SetSizer(boxsier) + + def __create_test_view(self, panel): + def create_label(text): + return wx.StaticText(panel, wx.ID_ANY, text, size=wx.Size(80, -1), style=wx.ALIGN_RIGHT) + + def on_excute(evt): + # pattern = self.test_regex.GetValue().encode('unicode_escape').decode("utf-8") + pattern = self.test_regex.GetValue() + + + + regex = re.compile(pattern) + content = self.test_text.GetValue() + result = regex.match(content) + result_list=[] + if result: + result_list.append("鏄惁鍖归厤锛氬尮閰�") + else: + result_list.append("鏄惁鍖归厤锛氫笉鍖归厤") + result = regex.findall(content) + result_list.append("鍖归厤鍐呭锛�" + "锛�".join(result)) + self.test_result.SetValue("\n".join(result_list)) + + + boxsier = wx.BoxSizer(wx.VERTICAL) + ss = wx.BoxSizer(wx.HORIZONTAL) + ss.Add(create_label("姝e垯琛ㄨ揪寮忥細"), 0, wx.ALIGN_CENTER_VERTICAL) + self.test_regex = wx.TextCtrl(panel, wx.ID_ANY, size=wx.Size(-1, -1)) + ss.Add(self.test_regex, 1, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 10) + boxsier.Add(ss, 0, wx.EXPAND | wx.TOP, 10) + + ss = wx.BoxSizer(wx.HORIZONTAL) + ss.Add(create_label("鍐呭锛�"), 0) + self.test_text = wx.TextCtrl(panel, wx.ID_ANY, size=wx.Size(-1, 100),style=wx.TE_MULTILINE) + ss.Add(self.test_text, 1, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 10) + boxsier.Add(ss, 0, wx.EXPAND | wx.TOP, 10) + + ss = wx.BoxSizer(wx.HORIZONTAL) + ss.Add(create_label("缁撴灉锛�"), 0) + self.test_result = wx.TextCtrl(panel, wx.ID_ANY, size=wx.Size(-1, 100), style=wx.TE_READONLY|wx.TE_MULTILINE) + ss.Add(self.test_result, 1, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 10) + boxsier.Add(ss, 0, wx.EXPAND | wx.TOP, 10) + + ss = wx.BoxSizer(wx.HORIZONTAL) + ss.Add(create_label(""), 0, wx.ALIGN_CENTER_VERTICAL) + self.test_excute = wx.Button(panel, wx.ID_ANY, "鎵ц娴嬭瘯") + ss.Add(self.test_excute, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 10) + boxsier.Add(ss, 0, wx.EXPAND | wx.TOP, 10) + self.test_excute.Bind(wx.EVT_BUTTON, on_excute) + + panel.SetSizer(boxsier) + + def __init__(self): + + wx.Frame.__init__(self, None, -1, "瑙嗛鍙峰姪鎵�", + size=(900, 600)) + self.SetBackgroundColour(wx.Colour(224, 224, 224)) + + root_sizer = wx.FlexGridSizer(2, 2, 10, 10) + # ------璁剧疆椤甸潰------ + panel_setting = wx.Panel(self, wx.ID_ANY, size=wx.Size(500, -1)) + self.__create_setting_view(panel_setting) + root_sizer.Add(panel_setting) + + # ------娴嬭瘯鐣岄潰------ + panel_test = wx.Panel(self, wx.ID_ANY, size=wx.Size(300, 400)) + self.__create_test_view(panel_test) + root_sizer.Add(panel_test) + + # ------鎵ц椤甸潰------ + panel_action = wx.Panel(self, wx.ID_ANY, size=wx.Size(500, 100)) + self.btn_start_comment = wx.Button(panel_action, wx.ID_ANY, "寮�濮�") + root_sizer.Add(panel_action) + + self.SetSizer(root_sizer) self.__init() self.__bind_event() def OnFrameClose(self, evt): print("椤甸潰鍏抽棴") - self.comment_manager.close() + if self.comment_manager: + self.comment_manager.close() evt.Skip() -- Gitblit v1.8.0