""" 黑名单板块管理 """ import json from db import redis_manager_delegate as redis_manager from db.redis_manager_delegate import RedisUtils from utils import tool @tool.singleton class ForbiddenPlatesManager: def __init__(self): self.forbidden_plates = [] self.__db = 1 self.__redisManager = redis_manager.RedisManager(self.__db) self.__load_forbidden_plates() def __load_forbidden_plates(self): plates = RedisUtils.get(self.__redisManager.getRedis(), "forbidden_plate_list") if plates: self.forbidden_plates = json.loads(plates) def add_plate(self, plate): """ 添加板块 :param plate: :return: """ if plate in self.forbidden_plates: return self.forbidden_plates.append(plate) RedisUtils.setex_async(self.__db, "forbidden_plate_list",tool.get_expire(), json.dumps( self.forbidden_plates)) def remove_plate(self, plate): """ 移除板块 :param plate: :return: """ if plate not in self.forbidden_plates: return self.forbidden_plates.remove(plate) RedisUtils.setex_async(self.__db, "forbidden_plate_list", tool.get_expire(), json.dumps(self.forbidden_plates)) def list_plates(self): """ 列出所有板块 :return: """ return self.forbidden_plates def is_plate_forbidden(self, plate): """ 判断板块是否被禁止 :param plate: :return: """ return plate in self.forbidden_plates if __name__ == '__main__': print(ForbiddenPlatesManager().list_plates())