Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
- uses: actions/checkout@v2
- uses: actions/setup-python@v1
with:
python-version: 3.8
python-version: 3.9
- name: Install dependencies
run: |
python -m pip install --upgrade pip
Expand All @@ -36,7 +36,7 @@ jobs:
- uses: actions/checkout@v2
- uses: actions/setup-python@v1
with:
python-version: 3.8
python-version: 3.9
- name: Install dependencies
run: |
python -m pip install --upgrade pip
Expand All @@ -57,7 +57,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: 3.8
python-version: 3.9
- name: Install dependencies
run: |
python -m pip install --upgrade pip
Expand All @@ -75,7 +75,7 @@ jobs:
- uses: actions/setup-node@v3
with:
node-version: 16
- name: Building Wechaty-ui
- name: Building Wechaty-ui
id: build-ui
run: |
make ui
Expand Down
24 changes: 20 additions & 4 deletions src/wechaty/user/room.py
Original file line number Diff line number Diff line change
Expand Up @@ -167,9 +167,10 @@ def filter_func(room: Room) -> bool:
payload = room.payload
if not payload:
return False
if query == payload.id or (query.lower() in payload.topic.lower()): # type: ignore
if query == payload.id or (query.lower() in payload.topic.lower()): # type: ignore
return True
return False

func = filter_func
elif isinstance(query, RoomQueryFilter):
def filter_func(room: Room) -> bool:
Expand All @@ -179,9 +180,10 @@ def filter_func(room: Room) -> bool:
if not payload:
return False

if query.id == payload.id or (query.topic.lower() in payload.topic.lower()): # noqa
if query.id == payload.id or (query.topic.lower() in payload.topic.lower()): # noqa
return True
return False

func = filter_func
elif isinstance(query, types.FunctionType):
func = query
Expand Down Expand Up @@ -230,7 +232,7 @@ async def find_all(cls,
rooms: List[Room] = [cls.load(room_id) for room_id in room_ids]
tasks: List[Task] = [asyncio.create_task(room.ready()) for room in rooms]
await gather_with_concurrency(PARALLEL_TASK_NUM, tasks)

# 2. filter the rooms
if not query:
return rooms
Expand Down Expand Up @@ -290,6 +292,20 @@ def load(cls, room_id: str) -> Room:
cls._pool[room_id] = room
return room

@classmethod
def upload_cache(cls, room_id: str) -> Room:
"""
dynamic upload
clear the room_id from _pool and re-upload it using load
Args:
room_id: The Roo ID to refresh
Return:
Room:The refreshed room instance
"""
if room_id in cls._pool:
del cls._pool[room_id]
return cls.load(room_id)

def __str__(self) -> str:
"""
string format for room instance
Expand Down Expand Up @@ -349,7 +365,7 @@ async def ready(self, force_sync: bool = False, load_members: bool = False) -> N

async def say(self,
some_thing: Union[str, Contact,
FileBox, MiniProgram, UrlLink],
FileBox, MiniProgram, UrlLink],
mention_ids: Optional[List[str]] = None
) -> Union[None, Message]:
"""
Expand Down
4 changes: 2 additions & 2 deletions src/wechaty/wechaty.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,6 @@

from wechaty.utils import timestamp_to_date, qr_terminal


log: logging.Logger = get_logger('Wechaty')

DEFAULT_TIMEOUT = 300
Expand Down Expand Up @@ -472,7 +471,7 @@ async def start(self) -> None:
loop = asyncio.get_event_loop()
loop.stop()

except Exception as e: # pylint: disable=broad-except
except Exception as e: # pylint: disable=broad-except
print(e)

async def restart(self) -> None:
Expand Down Expand Up @@ -713,6 +712,7 @@ async def room_leave_listener(payload: EventRoomLeavePayload) -> None:
async def room_topic_listener(payload: EventRoomTopicPayload) -> None:
log.info('receive <room-topic> event <%s>', payload)

self.Room.upload_cache(payload.room_id)
room: Room = self.Room.load(payload.room_id)
await room.ready()

Expand Down
Loading