From 0bca60accd9c3bb4d2fe6123d41db6be6ab2273d Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期六, 12 十月 2024 18:22:56 +0800 Subject: [PATCH] bug修复 --- third_data/third_blocks_manager.py | 64 +++++++++++++++++++++++++++++--- 1 files changed, 58 insertions(+), 6 deletions(-) diff --git a/third_data/third_blocks_manager.py b/third_data/third_blocks_manager.py index 19cc4da..f8c906c 100644 --- a/third_data/third_blocks_manager.py +++ b/third_data/third_blocks_manager.py @@ -208,17 +208,62 @@ if blocks is None or len(blocks) == 0: return set() fbs = set() + invalid_blocks = InvalidBlockManager().get_invalid_blocks() for block in blocks: if block.endswith("姒傚康"): block = block[:-2] # b = self.get_map_blocks_cache(block) # if b: # fbs |= b + if block in invalid_blocks: + continue fbs.add(block) return fbs def get_all_blocks(self): return self.__block_map.keys() + + +class InvalidBlockManager: + """ + 鏃犳晥鏉垮潡绠$悊 + """ + __mysql = Mysqldb() + __instance = None + __block = set() + + def __new__(cls, *args, **kwargs): + if not cls.__instance: + cls.__instance = super(InvalidBlockManager, cls).__new__(cls, *args, **kwargs) + cls.__load_data() + return cls.__instance + + @classmethod + def __load_data(cls): + results = cls.__mysql.select_all("select _block from invalid_block") + cls.__block.clear() + for result in results: + if result[0]: + cls.__block.add(result[0]) + + def get_invalid_blocks(self): + """ + 鑾峰彇鏃犳晥鐨勬澘鍧� + @return: + """ + return self.__block + + def set_incalid_blocks(self, blocks): + """ + 璁剧疆鏃犳晥鐨勬澘鍧� + @param blocks: + @return: + """ + # 鍏堝垹闄ゆ墍鏈夛紝鐒跺悗鍐嶆坊鍔� + self.__mysql.execute("delete from invalid_block") + for b in blocks: + self.__mysql.execute(f"insert into invalid_block(_block) values('{b}')") + self.__block = set(blocks) def load_if_less(codes): @@ -243,9 +288,16 @@ if __name__ == '__main__': - code = "000761" - try: - blocks = middle_api_protocol.request(middle_api_protocol.get_third_blocks(code, 4)) - print(blocks) - except Exception as e: - print(e) + blocks_str = """ +鏄ㄦ棩杩炴澘 +鏄ㄦ棩杩炴澘_鍚竴瀛� +鏄ㄦ棩娑ㄥ仠 +鏄ㄦ棩娑ㄥ仠_鍚竴瀛� + """ + blocks = set() + for x in blocks_str.split("\n"): + if x.strip(): + blocks.add(x.strip()) + + print(len(blocks)) + print(len(InvalidBlockManager().get_invalid_blocks())) -- Gitblit v1.8.0