from bot.config import REDIS_URL import redis.asyncio as r from utils.logger import logger # Connect to Redis redis = r.Redis.from_url(REDIS_URL) async def get_all_removed(uid): pattern = f"removed:{uid}:*" # Create a dictionary to hold the keys and values texts = [] # Use scan_iter to find all keys matching the pattern async for key in redis.scan_iter(pattern): # Fetch the value for each key value = await redis.get(key) if value: texts.append(value.encode('utf-8')) return texts async def get_average_toxic(msg): uid = msg['from']['id'] cid = msg['chat']['id'] pattern = f"toxic:{cid}:{uid}:*" scores = [] scoring_msg_id = 0 async for key in redis.scan_iter(pattern): scr = await redis.get(key) if isinstance(scr, int): scores.append(scr) logger.debug(f'found {len(scores)} messages') toxic_score = math.floor(sum(scores)/len(scores)) if scores else 0 return toxic_score