Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upload feature for new Screenshot application #281

Open
EbonJaeger opened this issue Jan 29, 2023 · 8 comments · May be fixed by #308
Open

Upload feature for new Screenshot application #281

EbonJaeger opened this issue Jan 29, 2023 · 8 comments · May be fixed by #308
Assignees
Labels
accepted Accepted enhancement. enhancement New feature or request

Comments

@EbonJaeger
Copy link
Member

Budgie version

10.7

Use-cases

Taking a screenshot and having a button to upload it to an image sharing service (say, Imgur) is very handy; it saves the person taking the screenshot from having to do that work manually. With the recent archival of budgie-screenshot-applet, which had this functionality, it would be great if the built-in screenshot solution could do that, too.

Proposal

After taking a screenshot:

  1. Add a button to the dialog header to upload the image
  2. On click, upload the image data to an online service
    2a. It may be desirable to have a way to choose a provider, or for the user to set one themselves
  3. Read the response from the provider, and either show a link to the image or show an error

References

The best reference for this is probably budgie-screenshot-applet.

@EbonJaeger EbonJaeger added the enhancement New feature or request label Jan 29, 2023
@Solarunit
Copy link

Solarunit commented Feb 6, 2023

2a. It may be desirable to have a way to choose a provider, or for the user to set one themselves

Agreed


Also would be nice to have:

  • several image providers in case one of them unavailable
  • a button to copy url of uploaded image
  • setting to automatically copy url after upload
  • history of the last ~5 screenshots
  • option to open other saved images/gifs and upload them

@JoshStrobl
Copy link
Member

several image providers in case one of them unavailable

This is something that was looked into and the problems are:

  1. Imgur: Associated with the account in question.
  2. Imgbb: Associated with the account, account owner can see all images uploaded by users that use the API key, which is a significant privacy issue.

After auditing a bunch of them, 0x0 came out the best bet as we not only don't need an API key, there is negative impact to user privacy on our part (having the ability to see the uploads of others). IIRC @joebonrichie has 0x0 uploading working.

The others are reasonable as well, I believe there is a general understanding amongst the team that it should have as much feature parity as possible without there being a trade-off for privacy.

@joebonrichie
Copy link
Contributor

Current situation:
I have this implemented with imgur, imagebin and 0x0 as upload providers. Imgur is working using my private api key atm, Imagebin and 0x0 don't need an API key. The current work is biased on Cybre's pre-existing applet however, it has been ported to use libsoup3 rather than libsoup2.

Current blockers:

  • I need to make the upload methods async as imagebin was down the other day and hung the entire application until Soup timed out. A progress bar might also be desirable.

Imgur worries:

  • There is an daily limit of ~1250 uploads a day, this could be exceeded if we allow all downstreams to use our API key.
  • Downstreams could use an API key that isn't created with anonymous usage (https://i.imgur.com/Ied42En.png), meaning it may be possible to snoop on images uploaded using a callback (I haven't tested this yet).

I'll happily share my WIP with anyone who is more motivated than me :)

https://i.imgur.com/rz4dVVY.png

@EbonJaeger
Copy link
Member Author

I think it might be best for now to just include providers that don't require API keys. Further down the line, it would be nice to have a way for individuals to put in their own providers with their own keys, but that needs other conversations to happen first.

@DrunkenAlcoholic
Copy link

Can this also be used as an applet?, I found the original budgie screen shot applet super useful with it in a clicks reach on the panel, I am sure you guys have your reasons for making yet another screenshot tool, when gnome screenshot and budgie screenshot applet are available for budgie, even if you do not make it an applet maybe you can have a panel icons and a setting to auto start minimised to panel on startup

@fossfreedom
Copy link
Contributor

You could just drag the budgie screenshot icon in the menu into the icon-task-list if thats what you are using - or plank etc - then its an easy once click accessible.

@DrunkenAlcoholic
Copy link

lol yeap your right, I didn't think about that

@Solarunit
Copy link

Solarunit commented Feb 7, 2023

I found the original budgie screen shot applet super useful with it in a clicks reach on the panel

Yep, you could make screenshot just with 2 clicks. It was my all time favorite applet! The best one!

joebonrichie added a commit to joebonrichie/budgie-desktop that referenced this issue Feb 18, 2023
Resolves BuddiesOfBudgie#281.

Initially support imgur, imagebin and 0x0. Based on cybre's
screen shotshot applet but ported to libsoup3.
joebonrichie added a commit to joebonrichie/budgie-desktop that referenced this issue Feb 18, 2023
Resolves BuddiesOfBudgie#281.

Initially support imgur, imagebin and 0x0. Based on cybre's
screen shotshot applet but ported to libsoup3.

Bundled VAPI files that prevented usage of libsoup3 have been removed.
@joebonrichie joebonrichie linked a pull request Feb 18, 2023 that will close this issue
9 tasks
joebonrichie added a commit to joebonrichie/budgie-desktop that referenced this issue Feb 20, 2023
Resolves BuddiesOfBudgie#281.

Initially support imgur, imagebin and 0x0. Based on cybre's
screen shotshot applet but ported to libsoup3.

Bundled VAPI files that prevented usage of libsoup3 have been removed.
joebonrichie added a commit to joebonrichie/budgie-desktop that referenced this issue Feb 20, 2023
Resolves BuddiesOfBudgie#281.

Initially support imgur, imagebin and 0x0. Based on cybre's
screen shotshot applet but ported to libsoup3.

Bundled VAPI files that prevented usage of libsoup3 have been removed.
@serebit serebit added the accepted Accepted enhancement. label Feb 20, 2023
joebonrichie added a commit to joebonrichie/budgie-desktop that referenced this issue Feb 20, 2023
Resolves BuddiesOfBudgie#281.

Initially support imgur, imagebin and 0x0. Based on cybre's
screen shotshot applet but ported to libsoup3.
joebonrichie added a commit to joebonrichie/budgie-desktop that referenced this issue Jul 10, 2023
Resolves BuddiesOfBudgie#281.

Initially support imgur, imagebin and 0x0. Based on cybre's
screen shotshot applet but ported to libsoup3.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accepted Accepted enhancement. enhancement New feature or request
Projects
Status: In Progress
Development

Successfully merging a pull request may close this issue.

7 participants