Exemple #1
0
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
Exemple #2
0
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
Exemple #3
0
    '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
Exemple #4
0
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"""