diff --git a/main.py b/main.py index a881f9c..b086224 100644 --- a/main.py +++ b/main.py @@ -65,8 +65,9 @@ async def main(): flush_files() - redis.on_room_changed = on_room_changed redis.init(conf.get("redis", None)) + redis.on_room_changed = on_room_changed + redis.subscribe_redis() TEST_ROOM_IDS = list(set(TEST_ROOM_IDS + redis.get_room_list())) init_session() diff --git a/redis_util.py b/redis_util.py index c57ffd1..82fe2e4 100644 --- a/redis_util.py +++ b/redis_util.py @@ -3,7 +3,7 @@ from typing import Callable import redis -room_list_key = "bilibili.live.danmu.room_list" +room_set_key = "bilibili:live:danmu:room_set" r: redis.Redis | None = None on_room_changed: Callable[[list[int]], None] = lambda ignore: None @@ -28,12 +28,12 @@ def get_room_list() -> list[int]: if r is None: return [] - return [int(room_id) for room_id in set(r.lrange(room_list_key, 0, -1))] + return [int(room_id) for room_id in r.smembers(room_set_key)] def subscribe_redis(): p = r.pubsub() - p.psubscribe(**{f"__keyspace@0__:{room_list_key}": room_changed_handler}) + p.psubscribe(**{f"__keyspace@0__:{room_set_key}": room_changed_handler}) for message in p.listen(): pass