将房间的监听列表改为set实现
This commit is contained in:
3
main.py
3
main.py
@@ -65,8 +65,9 @@ async def main():
|
|||||||
|
|
||||||
flush_files()
|
flush_files()
|
||||||
|
|
||||||
redis.on_room_changed = on_room_changed
|
|
||||||
redis.init(conf.get("redis", None))
|
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()))
|
TEST_ROOM_IDS = list(set(TEST_ROOM_IDS + redis.get_room_list()))
|
||||||
|
|
||||||
init_session()
|
init_session()
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ from typing import Callable
|
|||||||
|
|
||||||
import redis
|
import redis
|
||||||
|
|
||||||
room_list_key = "bilibili.live.danmu.room_list"
|
room_set_key = "bilibili:live:danmu:room_set"
|
||||||
r: redis.Redis | None = None
|
r: redis.Redis | None = None
|
||||||
on_room_changed: Callable[[list[int]], None] = lambda ignore: 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:
|
if r is None:
|
||||||
return []
|
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():
|
def subscribe_redis():
|
||||||
p = r.pubsub()
|
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():
|
for message in p.listen():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user