Philipp Hörist pushed to branch master at gajim / gajim
Commits:
84d86503 by lovetox at 2022-08-12T22:44:06+02:00
refactor: HTTPUpload: Simplify dict access
- - - - -
1 changed file:
- gajim/common/modules/httpupload.py
Changes:
=====================================
gajim/common/modules/httpupload.py
=====================================
@@ -24,6 +24,7 @@
import io
from urllib.parse import urlparse
import mimetypes
+from collections import defaultdict
from nbxmpp.errors import StanzaError
from nbxmpp.errors import MalformedStanzaError
@@ -69,7 +70,7 @@ def __init__(self, con: types.Client) -> None:
self._session.props.user_agent = f'Gajim {app.version}'
self._running_transfers: dict[
- tuple[str, str], set[HTTPFileTransfer]] = {}
+ tuple[str, JID], set[HTTPFileTransfer]] = defaultdict(set)
def _set_proxy_if_available(self) -> None:
proxy = get_account_proxy(self._account)
@@ -102,7 +103,7 @@ def get_running_transfers(self,
contact: types.ChatContactT
) -> Optional[set[HTTPFileTransfer]]:
- return self._running_transfers.get((contact.account, str(contact.jid)))
+ return self._running_transfers.get((contact.account, contact.jid))
def make_transfer(self,
path: str,
@@ -148,22 +149,16 @@ def make_transfer(self,
encryption,
groupchat)
- running_transfers = self._running_transfers.get(
- (contact.account, str(contact.jid)))
- if running_transfers is None:
- self._running_transfers[
- (contact.account, str(contact.jid))] = {transfer}
- else:
- running_transfers.add(transfer)
+ key = (contact.account, contact.jid)
+ self._running_transfers[key].add(transfer)
return transfer
def cancel_transfer(self, transfer: HTTPFileTransfer) -> None:
transfer.set_cancelled()
- transfer_set = self._running_transfers.get(
- (transfer.account, str(transfer.contact.jid)))
- if transfer_set is not None:
- transfer_set.discard(transfer)
+
+ key = (transfer.account, transfer.contact.jid)
+ self._running_transfers[key].discard(transfer)
message = self._queued_messages.get(id(transfer))
if message is None:
@@ -285,12 +280,11 @@ def _on_finish(self,
message: Soup.Message,
transfer: HTTPFileTransfer
) -> None:
+
self._queued_messages.pop(id(transfer), None)
- transfer_set = self._running_transfers.get(
- (transfer.account, str(transfer.contact.jid)))
- if transfer_set is not None:
- transfer_set.discard(transfer)
+ key = (transfer.account, transfer.contact.jid)
+ self._running_transfers[key].discard(transfer)
if message.props.status_code == Soup.Status.CANCELLED:
self._log.info('Upload cancelled')
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/84d865031208e204cf1171b13d9aaddf0521e51d
--
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/84d865031208e204cf1171b13d9aaddf0521e51d
You're receiving this email because of your account on dev.gajim.org.
_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits