GramCore/services/users/cache.py
2024-01-16 22:38:33 +08:00

52 lines
1.6 KiB
Python

from typing import List
from gram_core.base_service import BaseService
from gram_core.dependence.redisdb import RedisDB
__all__ = (
"UserAdminCache",
"UserBanCache",
)
class UserAdminCache(BaseService.Component):
def __init__(self, redis: RedisDB):
self.client = redis.client
self.qname = "users:admin"
async def ismember(self, user_id: int) -> bool:
return await self.client.sismember(self.qname, user_id)
async def get_all(self) -> List[int]:
return [int(str_data) for str_data in await self.client.smembers(self.qname)]
async def set(self, user_id: int) -> bool:
return await self.client.sadd(self.qname, user_id)
async def remove(self, user_id: int) -> bool:
return await self.client.srem(self.qname, user_id)
async def remove_all(self) -> bool:
return await self.client.delete(self.qname)
class UserBanCache(BaseService.Component):
def __init__(self, redis: RedisDB):
self.client = redis.client
self.qname = "users:ban"
async def ismember(self, chat_id: int) -> bool:
return await self.client.sismember(self.qname, chat_id)
async def get_all(self) -> List[int]:
return [int(str_data) for str_data in await self.client.smembers(self.qname)]
async def set(self, chat_id: int) -> bool:
return await self.client.sadd(self.qname, chat_id)
async def remove(self, chat_id: int) -> bool:
return await self.client.srem(self.qname, chat_id)
async def remove_all(self) -> bool:
return await self.client.delete(self.qname)