# Image uploading services ideas

**URL:** <https://discourse.imfreedom.org/t/image-uploading-services-ideas/319>\
**Category:** Pidgin\
**Tags:** brainstorm\
**Created:** [October 20, 2025, 8:07pm UTC](https://discourse.imfreedom.org/t/image-uploading-services-ideas/319 "2025-10-20T20:07:59Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![grim](https://yyz1.discourse-cdn.com/flex007/user_avatar/discourse.imfreedom.org/grim/32/4_2.png) [@grim](https://discourse.imfreedom.org/u/grim)\
**Post date:** [October 20, 2025, 8:07pm UTC](https://discourse.imfreedom.org/t/image-uploading-services-ideas/319/1 "2025-10-20T20:07:59Z")

</div>

Many modern networks have direct support for uploading image attachments. We’re of course going to support this, but there are networks that don’t support this and it would be nice to be able to add some level of support there too.

Also, some public chat rooms, notably on matrix, have disabled image uploading and are requiring users to use imgur or another service due to matrix’s inability to handle explicit images.

So it’d be nice if we had a way to let the user control how Pidgin handles the images. This could go in pidgin or purple.

Essentially would be an a “sending-message” signal or something and it would just read the `Purple.Message.Attachments` upload them to the service, append the links to the message, remove the attachments from the message and then continue on with the normal send.

However, we’d have to be careful here because a signal can’t block. So maybe we need someway to prepare a message or mutate it that can be done asynchronously. This is because the message needs to be modified before we call `Purple.ProtocolConversation.send_message_async`.

---

<div class="post-metadata">

**Author:** ![gbowne1](https://yyz1.discourse-cdn.com/flex007/user_avatar/discourse.imfreedom.org/gbowne1/32/179_2.png) [@gbowne1](https://discourse.imfreedom.org/u/gbowne1)\
**Post date:** [October 21, 2025, 6:36am UTC](https://discourse.imfreedom.org/t/image-uploading-services-ideas/319/2 "2025-10-21T06:36:02Z")

</div>

Not sure how I would handle this particular thing, however, i think that is not a bad idea either.

So you’re sending images, etc. elsewhere?

---

<div class="post-metadata">

**Author:** ![grim](https://yyz1.discourse-cdn.com/flex007/user_avatar/discourse.imfreedom.org/grim/32/4_2.png) [@grim](https://discourse.imfreedom.org/u/grim)\
**Post date:** [October 21, 2025, 6:38am UTC](https://discourse.imfreedom.org/t/image-uploading-services-ideas/319/3 "2025-10-21T06:38:40Z")

</div>

yes. but the links to them have to be known before the message is sent which is where the problem comes from as right now the ui would have to be blocked.

---

<div class="post-metadata">

**Author:** ![gbowne1](https://yyz1.discourse-cdn.com/flex007/user_avatar/discourse.imfreedom.org/gbowne1/32/179_2.png) [@gbowne1](https://discourse.imfreedom.org/u/gbowne1)\
**Post date:** [October 21, 2025, 6:45am UTC](https://discourse.imfreedom.org/t/image-uploading-services-ideas/319/4 "2025-10-21T06:45:10Z")

</div>

Yeah and timing would be important too for context reasons.

Is the image handling a configuration option, say send the related image(s) to x URI/URL?

That wouldn’t be bad imho, provided it could be done in a manner that’s useable

---

<div class="post-metadata">

**Author:** ![grim](https://yyz1.discourse-cdn.com/flex007/user_avatar/discourse.imfreedom.org/grim/32/4_2.png) [@grim](https://discourse.imfreedom.org/u/grim)\
**Post date:** [October 21, 2025, 6:46am UTC](https://discourse.imfreedom.org/t/image-uploading-services-ideas/319/5 "2025-10-21T06:46:30Z")

</div>

The idea is that a plugin could implement it, so it’s whatever the plugin wants to do.

---

<div class="post-metadata">

**Author:** ![gbowne1](https://yyz1.discourse-cdn.com/flex007/user_avatar/discourse.imfreedom.org/gbowne1/32/179_2.png) [@gbowne1](https://discourse.imfreedom.org/u/gbowne1)\
**Post date:** [October 21, 2025, 6:47am UTC](https://discourse.imfreedom.org/t/image-uploading-services-ideas/319/6 "2025-10-21T06:47:52Z")

</div>

That’s fair and seems reasonable that a plugin can do it.

---

<div class="post-metadata">

**Author:** ![grim](https://yyz1.discourse-cdn.com/flex007/user_avatar/discourse.imfreedom.org/grim/32/4_2.png) [@grim](https://discourse.imfreedom.org/u/grim)\
**Post date:** [October 21, 2025, 6:55am UTC](https://discourse.imfreedom.org/t/image-uploading-services-ideas/319/7 "2025-10-21T06:55:13Z")

</div>

Yeah sorry it wasn’t clearer earlier to me this is just intrinsically something a plugin would do because we’d never add support for something as specific for imgur, as instead we’d create the tools for anyone to make it work for their scenario.

---

<div class="post-metadata">

**Author:** ![gbowne1](https://yyz1.discourse-cdn.com/flex007/user_avatar/discourse.imfreedom.org/gbowne1/32/179_2.png) [@gbowne1](https://discourse.imfreedom.org/u/gbowne1)\
**Post date:** [October 21, 2025, 7:10am UTC](https://discourse.imfreedom.org/t/image-uploading-services-ideas/319/8 "2025-10-21T07:10:43Z")

</div>

Yeah I can understand that too. Either way, good idea. This also removes the need to support the image bins out there

---

<div class="post-metadata">

**Author:** ![grim](https://yyz1.discourse-cdn.com/flex007/user_avatar/discourse.imfreedom.org/grim/32/4_2.png) [@grim](https://discourse.imfreedom.org/u/grim)\
**Post date:** [October 21, 2025, 5:13pm UTC](https://discourse.imfreedom.org/t/image-uploading-services-ideas/319/9 "2025-10-21T17:13:09Z")

</div>

precisely and lets us not take a side/endorse any of them 🙂
