async def append(key: str or bytes, option: str, value: str or int) -> int: """Create/Append values to keys in Redis DB""" if redis.exists(key): data = dill.loads(redis.get(key)) if option in data and value in data[option]: return 1 # The value is already stored in the DB data.setdefault(option, []).append(value) data = dill.dumps(data) else: data = dill.dumps({option: [value]}) redis.set(key, data) key = key[11:] blkey = key if key.isalpha() else int(key) if blkey == 'global': gval = getattr(GlobalBlacklist, option, None) if gval: gval.append(value) else: gval = [value] setattr(GlobalBlacklist, option, gval) else: if blkey in localBlacklists: lval = getattr(localBlacklists[blkey], option, None) if lval: lval.append(value) else: lval = [value] setattr(localBlacklists[blkey], option, lval) else: localBlacklists[blkey] = Blacklist(**{option: [value]}) return 0 # The value was stored in the DB
async def append( key: str or bytes, option: str, values: List[Union[str, int]] ) -> Tuple[list, list]: """Create/Append values to keys in Redis DB""" added = [] skipped = [] if redis.exists(key): data = dill.loads(redis.get(key)) if option in data: for value in values: if value in data[option]: skipped.append(value) continue # The value is already stored in the DB else: data[option].append(value) added.append(value) else: data.setdefault(option, []).extend(values) added.extend(values) data = dill.dumps(data) else: data = dill.dumps({option: values}) redis.set(key, data) key = key[11:] blkey = key if key.isalpha() else int(key) if added: if blkey == "global": gval = getattr(GlobalBlacklist, option, None) if gval: gval.extend(added) else: gval = added setattr(GlobalBlacklist, option, gval) else: if blkey in localBlacklists: lval = getattr(localBlacklists[blkey], option, None) if lval: lval.extend(added) else: lval = added setattr(localBlacklists[blkey], option, lval) else: localBlacklists[blkey] = Blacklist(**{option: added}) return added, skipped
'url': 'url' } localBlacklists: Dict[int, Blacklist] = {} whitelistedUsers: List[int] = [] whitelistedChats: List[int] = [] if redis: local_keys = redis.keys('blacklists:-*') if redis.exists('blacklists:global'): globalData = dill.loads(redis.get('blacklists:global')) else: globalData = {} for key in local_keys: data = dill.loads(redis.get(key)) localBlacklists[int(key[11:])] = Blacklist(bio=data.get('bio', None), url=data.get('url', None), tgid=data.get('tgid', None), txt=data.get('txt', None)) for option, value in globalData.items(): setattr(GlobalBlacklist, option, value) if redis.exists('whitelist:users'): whitelistedUsers = dill.loads(redis.get('whitelist:users')) if redis.exists('whitelist:chats'): whitelistedChats = dill.loads(redis.get('whitelist:chats')) async def append(key: str or bytes, option: str, value: str or int) -> int: """Create/Append values to keys in Redis DB""" if redis.exists(key): data = dill.loads(redis.get(key)) if option in data and value in data[option]: return 1 # The value is already stored in the DB
localBlacklists: Dict[int, Blacklist] = {} blacklistedUsers: Dict[int, Tuple[str, Union[str, int]]] = {} whitelistedUsers: List[int] = [] whitelistedChats: List[int] = [] if redis: local_keys = redis.keys("blacklists:-*") if redis.exists("blacklists:global"): globalData = dill.loads(redis.get("blacklists:global")) else: globalData = {} for key in local_keys: data = dill.loads(redis.get(key)) localBlacklists[int(key[11:])] = Blacklist( bio=data.get("bio", None), url=data.get("url", None), tgid=data.get("tgid", None), txt=data.get("txt", None), ) for option, value in globalData.items(): setattr(GlobalBlacklist, option, value) if redis.exists("blacklist:users"): blacklistedUsers = dill.loads(redis.get("blacklist:users")) if redis.exists("whitelist:users"): whitelistedUsers = dill.loads(redis.get("whitelist:users")) if redis.exists("whitelist:chats"): whitelistedChats = dill.loads(redis.get("whitelist:chats")) async def append(key: str or bytes, option: str, values: List[Union[str, int]]) -> Tuple[list, list]: """Create/Append values to keys in Redis DB"""