Bug 394181

Summary: Exporting to Imgur: i) catch and ii) store the ephemeral one-time Imgur deletion Url in a local logfile
Product: Spectacle Reporter: Tom <mail>
Component: GeneralAssignee: Boudhayan Gupta <me>
Status: RESOLVED FIXED    
Severity: normal CC: herzenschein, kishore96, lostdharma, maciej.stanczew+b, nate, null
Priority: NOR Keywords: usability
Version: 18.04.0   
Target Milestone: ---   
Platform: Debian testing   
OS: Linux   
Latest Commit: Version Fixed In: 5.90
Attachments: Imgur Delete post button

Description Tom 2018-05-13 00:31:38 UTC
Problem:

When a user uploads a screenshot to Imgur, Spectacle only retrieves and displays the resulting *.png image, but the ephemeral deletion url is not even shown and therefor lost forever.

Rationale, why I chose "grave":

I set the Severity to "grave" as the lack of the deletion url can lead to privacy/security issues when a controversial or somehow critical (e.g. copyrighted) image is uploaded accidentally. Perhaps you want to set to "wishlist".

Therefore I suggest a plaintext logfile which keeps for each uploaded image the deletion url.

Info: the Windows "Greenshot" tool ( http://getgreenshot.org/ )is a very nice tool from which I know this feature, and to which development I contributed when I was still using Windows (now, I do not any more).
Comment 1 null 2018-05-13 08:00:20 UTC
Thanks for the idea, it's definitely important to be able to undo accidental uploads.

However, only having the logfile comes with some problems:

1. Discoverability: Ideally there will be a link to the deletion URL right in the UI when the upload completed. That's the time you typically regret the submission, and it's not hidden in a logfile you don't know about.

2. Privacy: Secretly keeping a log of all uploads might not be what users expect. At least this needs a checkbox in the settings to turn it off (perhaps with a link next to it which would open the logfile in a text editor).

> to which development I contributed
Your best bet to get features added to Spectacle is to send a patch. While our time for feature development is limited, we are always happy to spend time on getting new contributors started. Feel free to ask for any tips on how to setup a development environment, navigate the code and submit a patch to Phabricator ;)
Comment 2 Tom 2018-05-13 08:40:15 UTC
(In reply to Henrik Fehlauer from comment #1)

> However, only having the logfile comes with some problems:
> 
> 2. Privacy: Secretly keeping a log of all uploads might not be what users
> expect. At least this needs a checkbox in the settings to turn it off
> (perhaps with a link next to it which would open the logfile in a text
> editor).
> 

Perhaps can can have a look how Greenshot has solved this AFAIR, there was simply the logfile, 

Easy ad-hoc privacy solution:

Store each image url and deletion url pair -> GnuPG-encrypted with the public key(s) of the user, and a timestamp in plain:

timestamp + gpg-encrypted(image-url, deletion-url)

- if there is only one valid secret key, use the public key of it (must be the one of the user); or 
- if there is more than one valid secret key, simply encrypt to all available pub keys (of the user).

So in case, that the user wants to delete an image s/he needs to decrypt the logfile entries.
Comment 3 null 2018-05-13 09:17:52 UTC
Encryption is totally different from keeping logs (which my argument was about), and nothing for Spectacle to solve. My suggestion in Comment 1 should be enough to address the concern.

Regarding how Greenshot solved this: Adding a dedicated dialog to manage the upload history (e.g. list entries, delete button, clear history) could be done in a later iteration.
Comment 4 Tom 2018-05-13 20:14:16 UTC
Created attachment 112626 [details]
Imgur Delete post button
Comment 5 Tom 2018-05-13 20:18:15 UTC
As an ad-hoc solution (w/o a log file):

instead of showing the resulting *.png image, you could 

- show in the browser the landing page after image upload with the "Delete post" button ; or 

- extract the ephemeral deletion url from the uploaded landing page and immediately show the deletion url close to the image.

This gives the Spectacle user at least _one_ chance to delete the image immediately after uploading, just as if she has used imgur manually.
Comment 6 Nate Graham 2018-05-30 19:28:05 UTC
The approach I'm leaning towards is putting a "Delete image" button in the inline notification that appears after the image has been uploaded. Clicking it would activate the deletion link and delete the image. We might need to increase the timeout for the notification if we do that.
Comment 7 null 2018-05-31 18:56:48 UTC
> putting a "Delete image" button in the inline notification
That could work, however please be careful with the limited amount of horizontal space available for different languages (especially after D13221), and remember that not everybody takes ultrawide screenshots like in the typical demo shot you use to convince me that "it's fine" ;)

> increase the timeout for the notification
I'd vote for disabling the timeout entirely in that case, because nothing is more annoying than clicking a split second too late (which can happen regardless of the timeout you choose).
Comment 8 Nate Graham 2018-05-31 19:08:36 UTC
(In reply to Henrik Fehlauer from comment #7)
> > putting a "Delete image" button in the inline notification
> That could work, however please be careful with the limited amount of
> horizontal space available for different languages (especially after
> D13221), and remember that not everybody takes ultrawide screenshots like in
> the typical demo shot you use to convince me that "it's fine" ;)

This wasn't purposeful, but I do see your point. If it helps, maybe I could change the string to just "Copy link", ommitting the "to clipboard" part. But I'll take further discussion to the Phabricator page for that patch.


> 
> > increase the timeout for the notification
> I'd vote for disabling the timeout entirely in that case, because nothing is
> more annoying than clicking a split second too late (which can happen
> regardless of the timeout you choose).

+10. Heck, I'd support doing that now, because it's really annoying to miss copying the URL because you were a tiny bit too late.
Comment 9 lostdharma 2021-02-09 19:34:20 UTC
IMO the optimal solution would be taking the imgur functionality from the kipi plugin, screenshot of it here: https://i.imgur.com/W2By96L.png
Comment 10 Nicolas Fella 2021-12-13 22:51:58 UTC
Git commit 77f636fd4bdb338f6d621bfca651db5dfa2fa952 by Nicolas Fella.
Committed on 13/12/2021 at 20:39.
Pushed by ngraham into branch 'master'.

[imgur] Show deletion url in notification

This allows users to undo the upload
Related: bug 441566

M  +4    -1    src/plugins/imgur/imgurplugin.cpp

https://invent.kde.org/frameworks/purpose/commit/77f636fd4bdb338f6d621bfca651db5dfa2fa952