Fix & improve send_file handling of offline account

- Show a transfer stuck at 0kb uploaded in the GUI instead of waiting to
  be online to show anything

- Fix getting online not making the upload start
This commit is contained in:
miruka 2020-07-10 12:27:06 -04:00
parent e5a196dcf8
commit 79fdc710c3
2 changed files with 7 additions and 4 deletions

View File

@ -1,5 +1,6 @@
# TODO # TODO
- retry if media not found
- fix members not synced bug - fix members not synced bug
- fix local unread counters order - fix local unread counters order
- warn about no E2E room shared if no devices - warn about no E2E room shared if no devices

View File

@ -551,10 +551,6 @@ class MatrixClient(nio.AsyncClient):
async def send_file(self, room_id: str, path: Union[Path, str]) -> None: async def send_file(self, room_id: str, path: Union[Path, str]) -> None:
"""Send a `m.file`, `m.image`, `m.audio` or `m.video` message.""" """Send a `m.file`, `m.image`, `m.audio` or `m.video` message."""
presence = self.models["accounts"][self.user_id].presence
while presence == Presence.State.offline:
await asyncio.sleep(0.2)
item_uuid = uuid4() item_uuid = uuid4()
try: try:
@ -604,6 +600,12 @@ class MatrixClient(nio.AsyncClient):
monitor.on_transferred = on_transferred monitor.on_transferred = on_transferred
monitor.on_speed_changed = on_speed_changed monitor.on_speed_changed = on_speed_changed
while (
self.models["accounts"][self.user_id].presence ==
Presence.State.offline
):
await asyncio.sleep(0.2)
try: try:
url, mime, crypt_dict = await self.upload( url, mime, crypt_dict = await self.upload(
lambda *_: path, lambda *_: path,