admin
2025-03-31 4603536999de113969dd7164f3a04dcde9083480
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):
@@ -69,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)
@@ -77,69 +83,155 @@
        self.btn_save.Bind(wx.EVT_BUTTON, on_save)
    def __init(self):
        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("正则表达式:"), 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()