"""
|
黑名单板块管理
|
"""
|
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())
|