This commit is contained in:
HuangHai
2026-01-14 07:28:06 +08:00
parent 4cc6bc06d1
commit af60249fce
19 changed files with 166 additions and 28 deletions

View File

@@ -4,7 +4,7 @@ import logging
import os
import sys
import time
from Apps.TelaiDian.Kit import take_screenshot, get_image_content_md5, clean_station_name
from Apps.TelaiDian.Kit import take_screenshot, get_image_content_md5, clean_station_name, setup_logger
from Apps.TelaiDian.ReadImageKit import ReadImageKit
from Apps.TelaiDian.Service import TelaiDianService
from Apps.TelaiDian.Config.Setting import (
@@ -20,8 +20,8 @@ project_root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(_
if project_root not in sys.path:
sys.path.append(project_root)
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger("TelaiDianCrawler")
# 初始化日志
logger = setup_logger("TelaiDianCrawler")
class TelaiDianCrawler(BaseCrawler):
def __init__(self, service=None):
@@ -119,6 +119,20 @@ class TelaiDianCrawler(BaseCrawler):
if os.path.exists(screenshot_path): os.remove(screenshot_path)
async def crawl_list(self):
"""
实现 BaseCrawler 的抽象方法
"""
d = u2.connect()
await self.crawl_list_logic(d)
async def crawl_detail(self, station_info):
"""
实现 BaseCrawler 的抽象方法
"""
# 逻辑已在 crawl_list_logic 中通过 crawl_detail_logic 调用
pass
async def main(service=None):
crawler = TelaiDianCrawler(service=service)
await crawler.start()

View File

@@ -192,3 +192,34 @@ def clear_temp_dir(save_dir=None):
os.remove(file_path)
except Exception as e:
logger.error(f"Error deleting file {file_path}: {e}")
def setup_logger(name, log_file=None):
"""
配置日志,支持同时输出到控制台和文件
"""
if log_file is None:
log_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "Logs")
if not os.path.exists(log_dir):
os.makedirs(log_dir)
log_file = os.path.join(log_dir, f"{name}_{time.strftime('%Y%m%d')}.log")
logger = logging.getLogger(name)
logger.setLevel(logging.INFO)
# 如果已经有 handler,不再添加
if logger.handlers:
return logger
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# 控制台 Handler
ch = logging.StreamHandler()
ch.setFormatter(formatter)
logger.addHandler(ch)
# 文件 Handler
fh = logging.FileHandler(log_file, encoding='utf-8')
fh.setFormatter(formatter)
logger.addHandler(fh)
return logger

View File

@@ -4,13 +4,10 @@ import logging
import os
import time
import uiautomator2 as u2
from Apps.TelaiDian.Kit import take_screenshot
from Apps.TelaiDian.Kit import take_screenshot, setup_logger
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger("OpenTelaiDian")
# 初始化日志
logger = setup_logger("OpenTelaiDian")
async def open_mini_program():
"""

View File

@@ -10,10 +10,11 @@ if project_root not in sys.path:
sys.path.append(project_root)
from Util.VLMKit import VLMKit
from Apps.TelaiDian.Kit import draw_rectangles, detect_cards_cv
from Apps.TelaiDian.Kit import draw_rectangles, detect_cards_cv, setup_logger
from Apps.TelaiDian.Config.Setting import SAFE_EXCLUDE_RATIO, BOTTOM_SAFE_EXCLUDE_RATIO
logger = logging.getLogger(__name__)
# 初始化日志
logger = setup_logger("ReadImageKit")
class ReadImageKit:
def __init__(self):

View File

@@ -16,10 +16,10 @@ from Config.Config import DB_URL
from Model.StationProfile import StationProfile
from Model.StationStatus import StationStatus
from Model.StationPriceSchedule import StationPriceSchedule
from Apps.TelaiDian.Kit import setup_logger
# 配置日志
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)
# 初始化日志
logger = setup_logger("TelaiDianService")
class TelaiDianService:
def __init__(self):

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.