RITlug / teleirc

Go implementation of a Telegram <=> IRC bridge for use with any IRC channel and Telegram group
https://docs.teleirc.com/
GNU General Public License v3.0
140 stars 45 forks source link

Implement Photo Sharing (a.k.a. Imgur library) #177

Closed Tjzabel closed 3 years ago

Tjzabel commented 5 years ago

In order to satisfy the photo-sharing requirement for Telegram => IRC photo sharing, we need to find a suitable hosting platform and Go library.

jwflory commented 5 years ago

I completed another research doc on Imgur options for Go, you can find it here. Unfortunately, our options are less exciting here, and we may want to implement this ourselves still, if Imgur is the platform we wish to continue using:


Top choices

koffeinsource/go-imgur

Honorable mentions

tbruyelle/imgur

mattn/imgur

liamstask/go-imgur

Tjzabel commented 5 years ago

Hmmm... @jwflory thanks for looking into this :+1:

Given the state of the Go imgur libraries, it may be worthwhile to fork the koffeinsource/go-imgur library under RITlug and maybe add the things we need there. Otherwise, we could implement a go-imgur library ourselves. Regardless of which option we choose, I think implementing imgur photo uploading will be pushed to the end of our task queue.

As a side note, are there any other popular image hosting platforms? Imgur is the only one I know of.

jwflory commented 5 years ago

Regardless of which option we choose, I think implementing imgur photo uploading will be pushed to the end of our task queue.

+1. We can revisit this piece in a future sprint.

As a side note, are there any other popular image hosting platforms? Imgur is the only one I know of.

There are surely others. We could look into what Matterbridge uses for images across bridges for ideas.

Tjzabel commented 5 years ago

So with that being said, and the initial Imgur research has been completed, do we want to move this issue to the backlog for now?

Tjzabel commented 5 years ago

Moving to backlog now that we have research complete.

jwflory commented 4 years ago

Discussed in 2020-04-11 meeting.


We estimate this task will take at minimum a full sprint, and at most two sprints. It is the most ambitious task left on our backlog. While we agreed to extend the v2.0.0 release deadline to 23 May, we agreed in the meeting that this issue is not release-blocking.

What does that mean? We aim to include this in the v2.0.0 release on 23 May. However, if 23 May comes and this is not complete, we will bump this to a v2.1.0 release milestone instead of blocking the v2.0.0 release.

jwflory commented 4 years ago

Discussed in 2020-05-23 meeting.


Release-blocking: No

@Tjzabel has been looking into this and has a few ideas of how to explore further. The way we retrieve images from Telegram's API is not as simple as we did it in the Node library. We need to spend more time on how to access the image upload URL for this feature.

To be revisited post-v2.0.0 release.

jwflory commented 4 years ago
jwflory commented 4 years ago

I put this issue back onto the meta release milestone. The current v2.1.0 milestone has a collection of various NickServ-related improvements and features. I think we could make v2.1.0 a thematic release around NickServ, since there is a lot of core functionality needed there to make TeleIRC useful at a basic level.

Of course, Imgur is still on the table, but let's revisit in our developer meeting tomorrow.

jwflory commented 4 years ago

Discussed in 2020-11-15 meeting.


Since we are holding off on #307 for now, I am going to try my hand at adding support for Imgur uploads. Since we have a reliable external library to help us with this, it should be easier to implement. I am also spread thin this month, but I'll see what progress I can make.

jwflory commented 3 years ago

I made some progress on this. I think the work is 80% done over in PR #361, but there are some bugs with how the variables are referenced in memory to work out. I am still struggling a bit with some Golang concepts, but I'll get there in time.

Feedback welcome, if you have a chance to clone down the add/imgur branch and poke around with what I have so far. I am almost sure that it is a silly mistake I am making. The implementation seems conceptually correct.