Selaa lähdekoodia

async media: add ability to upload media asynchronously

Sumner Evans 3 vuotta sitten
vanhempi
sitoutus
483862d72b

+ 3 - 0
mautrix_instagram/example-config.yaml

@@ -16,6 +16,9 @@ homeserver:
     status_endpoint: null
     # Endpoint for reporting per-message status.
     message_send_checkpoint_endpoint: null
+    # Whether asynchronous uploads via MSC2246 should be enabled for media.
+    # Requires a media repo that supports MSC2246.
+    async_media: false
 
 # Application service host/registration related details
 # Changing these values requires regeneration of the registration.

+ 4 - 1
mautrix_instagram/portal.py

@@ -796,7 +796,10 @@ class Portal(DBPortal, BasePortal):
             upload_file_name = None
 
         mxc = await intent.upload_media(
-            data, mime_type=upload_mime_type, filename=upload_file_name
+            data,
+            mime_type=upload_mime_type,
+            filename=upload_file_name,
+            async_upload=self.config["homeserver.async_media"],
         )
 
         if decryption_info:

+ 4 - 1
mautrix_instagram/puppet.py

@@ -164,7 +164,10 @@ class Puppet(DBPuppet, BasePuppet):
                     content_type = resp.headers["Content-Type"]
                     resp_data = await resp.read()
                 mxc = await self.default_mxid_intent.upload_media(
-                    data=resp_data, mime_type=content_type, filename=pic_id
+                    data=resp_data,
+                    mime_type=content_type,
+                    filename=pic_id,
+                    async_upload=self.config["homeserver.async_media"],
                 )
             try:
                 await self.default_mxid_intent.set_avatar_url(mxc)