From 09f84c4ecae2a71e07f6dd64e6066563599a62b6 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期二, 17 六月 2025 17:59:40 +0800 Subject: [PATCH] ‘功能完善 --- third_data/kpl_block_manager.py | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 55 insertions(+), 0 deletions(-) diff --git a/third_data/kpl_block_manager.py b/third_data/kpl_block_manager.py new file mode 100644 index 0000000..8d48f9a --- /dev/null +++ b/third_data/kpl_block_manager.py @@ -0,0 +1,55 @@ +""" +寮�鐩樺暒鏉垮潡绠$悊 +""" +import json + +import constant + +from db.mysql_data_delegate import Mysqldb +from third_data import kpl_api, kpl_util +from utils import tool + + +class KPLCodeJXBlocksManager: + """ + 寮�鐩樺暒绮鹃�夋澘鍧楃鐞� + """ + + def __init__(self, day, target_codes): + self.day = day + self.mysql_db = Mysqldb() + self.target_codes = target_codes + + def __download_blocks(self, code): + datas = kpl_api.getCodeJingXuanBlocks(code) + blocks = json.dumps([kpl_util.filter_block(x[1]) for x in datas], ensure_ascii=False) + block_ids = json.dumps([x[0] for x in datas], ensure_ascii=False) + block_details = json.dumps(datas, ensure_ascii=False) + id = f"{self.day}_{code}" + self.mysql_db.execute( + f"insert into kpl_code_blocks(id,code, day,jx_blocks, jx_block_ids, jx_blocks_detail, create_time) values('{id}','{code}','{self.day}','{blocks}', '{block_ids}','{block_details}', now())") + + def start_download_blocks(self): + codes = self.mysql_db.select_all(f"select code from kpl_code_blocks where day='{self.day}'") + codes = set([x[0] for x in codes]) + need_update_codes = set(self.target_codes) - codes + for code in need_update_codes: + self.__download_blocks(code) + + def get_all_code_blocks(self): + """ + 鑾峰彇鎵�鏈変唬鐮佺殑鏉垮潡 + @return: + """ + sql = f"select code, jx_blocks from kpl_code_blocks where day = '{self.day}'" + results = self.mysql_db.select_all(sql) + return {x[0]: set(json.loads(x[1])) - constant.KPL_INVALID_BLOCKS for x in results} + + def get_all_code_blocks_count(self): + """ + 鑾峰彇鎵�鏈変唬鐮佺殑鏉垮潡鐨勬暟閲� + @return: + """ + sql = f"select count(*) from kpl_code_blocks where day = '{self.day}'" + results = self.mysql_db.select_one(sql) + return int(results[0]) -- Gitblit v1.8.0