Exemplo n.º 1
0
 def get_time_by_str(str):
     try:
         ret = datetime.strptime(str, "%Y-%m-%d %H:%M:%S")
         LogTool.info(f'格式化后的时间为:{ret}')
         return ret
     except:
         return None
Exemplo n.º 2
0
 def wrapper(*args, **kwargs):
     LogTool.info('开始函数:【{0}】'.format(func.__name__))
     # LogTool.info(f'参数:【{args}】【{kwargs}】')
     _stime = dt.datetime.now()
     _ret = func(*args, **kwargs)
     _etime = dt.datetime.now()
     LogTool.info('结束函数:【{0}】, 执行时间:【{1}】'.format(func.__name__,
                                                  _etime - _stime))
     return _ret
Exemplo n.º 3
0
 def wrapper(*args, **kwargs):
     try:
         _ret = func(*args, **kwargs)
         return _ret
     except Exception as err:
         LogTool.error(traceback.format_exc())
         LogTool.info(
             f'函数异常:【{str(func)}】, args:【{args}】, kwargs:【{kwargs}】')
         return None
Exemplo n.º 4
0
 def _next_btn_back(self):
     """
     切换下一个
     :return:
     """
     LogTool.info("开始下个报告")
     assessmentUI = AssessmentUI()
     assessmentUI.choose_next()
     self._handle()
Exemplo n.º 5
0
 def zip_file_path(cls, input_path, output_name):
     # output_name = input_path + '.zip'  # 压缩后文件夹的名字
     z = zipfile.ZipFile(output_name, 'w', zipfile.ZIP_DEFLATED)  # 参数一:文件夹名
     for dirpath, dirnames, filenames in os.walk(input_path):
         fpath = dirpath.replace(input_path,
                                 '')  # 这一句很重要,不replace的话,就从根目录开始复制
         fpath = fpath and fpath + os.sep or ''  # 这句话理解我也点郁闷,实现当前文件夹以及包含的所有文件的压缩
         for filename in filenames:
             z.write(os.path.join(dirpath, filename), fpath + filename)
             LogTool.info("压缩成功")
     z.close()
Exemplo n.º 6
0
 def _pos(self, x, y):
     """
     点击
     :param x:
     :param y:
     :return:
     """
     LogTool.info(f"点击鼠标【{x}】【{y}】")
     win32api.SetCursorPos([int(x), int(y)])
     win32api.mouse_event(
         win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0,
         0, 0)
Exemplo n.º 7
0
 def _show_run(self, content):
     """
     显示
     :param content:
     :return:
     """
     if not self.ov():
         LogTool.error("程序奔溃啦! 快点联系开发者!")
         self.run_text.insert(INSERT, "程序奔溃啦! 快点联系开发者!")
         return
     LogTool.info(content)
     self.run_text.insert(INSERT, content)
Exemplo n.º 8
0
 def is_file(file_path):
     """
     判断文件和文件夹是否存在,不存在自动创建文件夹
     :param file_path:
     :return:
     """
     if os.path.exists(file_path):
         LogTool.info("文件路径【%s】存在" % file_path)
     else:
         dir_name = os.path.dirname(file_path)
         if not os.path.exists(dir_name):
             LogTool.info("文件路径【%s】不存在,将自动创建" % file_path)
             os.makedirs(dir_name)
             LogTool.info("路径创建【%s】完成" % dir_name)
Exemplo n.º 9
0
 def _handle(self):
     """
     处理当前报告
     :return:
     """
     LogTool.info("开始生成报告")
     assessmentUI = AssessmentUI()
     assessmentUI.set_fore()
     assessmentUI.open_report()
     sleep(2)
     LogTool.info("获取地址")
     url = assessmentUI.get_url()
     self._show_run("---------\n")
     self._show_run(f"URL:{url}\n")
     LogTool.info("解析参数")
     # 聚焦
     self._set_focus()
     handleFile = HandleFile(url)
     content = handleFile.run()
     self.result_list.append(content)
     content = "\t".join(content)
     self._show_run(f"解析结果:\n")
     self._show_ret(f"{content}\n")
Exemplo n.º 10
0
    def get_url(self):
        """
        获取生成报告地址
        :return:
        """
        processId = None
        content = None
        cur_client = None
        # 获取浏览器
        for i in range(3):
            cur_client = win32gui.GetForegroundWindow()
            name = win32gui.GetClassName(cur_client)
            thread, processId = win32process.GetWindowThreadProcessId(
                cur_client)
            LogTool.info(f"当前应用名【{name}】")
            if "WidgetWin" in name:
                LogTool.info("找到了浏览器!")
                break
            sleep(1)
            win32api.keybd_event(13, 0, 0, 0)  # 回车
            win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0)  # 释放按键

        # 杀死进程
        # os.kill(processId, signal.CTRL_C_EVENT)

        # 点击一下
        left, top, right, bottom = win32gui.GetWindowRect(cur_client)
        x = right - left
        y = bottom - top
        self._pos(left + x / 2, top + y / 2)
        sleep(0.1)

        # 通过tab方式获取url
        for i in range(5):
            win32gui.SetActiveWindow(cur_client)
            win32gui.SetForegroundWindow(cur_client)
            win32api.keybd_event(9, 0, 0, 0)  # tab
            win32api.keybd_event(9, 0, win32con.KEYEVENTF_KEYUP, 0)  # 释放按键
            sleep(0.5)

            # 清空 剪切板
            self.clipboard_set("")
            sleep(0.1)

            # 全选
            win32api.keybd_event(17, 0, 0, 0)  # Ctrl
            win32api.keybd_event(65, 0, 0, 0)  # A
            win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)  # 释放按键
            win32api.keybd_event(65, 0, win32con.KEYEVENTF_KEYUP, 0)  # 释放按键
            sleep(0.1)
            # 复制
            win32api.keybd_event(17, 0, 0, 0)  # Ctrl
            win32api.keybd_event(67, 0, 0, 0)  # C
            win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)  # 释放按键
            win32api.keybd_event(67, 0, win32con.KEYEVENTF_KEYUP, 0)  # 释放按键
            sleep(0.1)
            temp = self.clipboard_get()
            LogTool.info(f"剪切板内容【{temp}】")
            if "htm" in temp:
                content = temp
                LogTool.info(f"找到了网址{content}")
                break

        return content
Exemplo n.º 11
0
 def __init__(self, file_path):
     self.file_path = file_path.replace("file:///", "")  # 文件路径
     LogTool.info(f"路径为:{self.file_path}")
     self.content = None  # 文本内容
     pass
Exemplo n.º 12
0
 def wrapper(*args, **kwargs):
     LogTool.info(f"开启多线程")
     thr = Thread(target=f, args=args, kwargs=kwargs)
     thr.start()
Exemplo n.º 13
0
 def show(cls, content):
     LogTool.info(content)
     cls.ui.insert(INSERT, f"{content}\n")
Exemplo n.º 14
0
from project.plugs.type_tool import TypeTool
from project.toprice.assessment_UI import AssessmentUI
from project.toprice.handle_file import HandleFile
from project.toprice.project_UI import ProjectUI

try:
    mainroot = os.path.dirname(os.path.abspath(__file__))
except NameError:
    mainroot = os.path.dirname(os.path.abspath(sys.argv[0]))
ConfigTool.set_path(mainroot)
log_path = os.path.abspath(
    os.path.join(ConfigTool.get_path(), ConfigTool.get_str("logging", "path")))
from project.plugs.log_tool import LogTool

LogTool.init(log_path)
LogTool.info("------------------启动项目-----------------------------")
LogTool.info(f"平台信息:   【{platform.platform()}】")
LogTool.info(f"当前路径:   【{os.getcwd()}】")
LogTool.info(f"系统变量:   【{sys.path}】")
LogTool.info(f"日志路径:   【{log_path}】")
LogTool.info(f"main路径:   【{ConfigTool.get_path()}】")
LogTool.info(f"python路径: 【{sys.executable}】")


class MainUI(object):
    def __init__(self):
        self.windowUI = None
        self.ret_text = None
        self.run_text = None
        self.num_entry = None
        self.class_name = "TkTopLevel"