Сохраняем скриншоты в Imgur

Итак, эта короткая заметка посвящена довольно частому для веб-разработчика действию отправки скриншота коллегам и его автоматизации. Все мы знаем что популярные облачные хранилища предоставляют свои клиенты которые в том числе умеют захватывать изображение с экрана и сохранять его в облако и существуют отдельные сервисы наподобие Joxi.
Все, можно закрывать страницу - проблема решена!

Хотя нет, погодите-ка

У вышеперечисленных способов есть собственные минусы:

  • отсутствие клиента с скриншотилкой под Linux
  • захламление своего облака огромной кучей временных скриншотов
  • реклама, много рекламы! (привет Joxi)

xfce4-screenshooter умеет вот так

Если у вас оконная среда XFCE 4.12, то встроенная утилита xfce4-screenshooter умеет заливать скриншот в imgur и отдавать прямую ссылку на файл с изображением. Думаю что подобным функционалом обладают и другие утилиты, но в этом удобном решении тоже есть минус. Я вот например не знаю в чей аккаунт заливаются эти изображения и можно ли их в случае чего удалить?

Поэтому сейчас мы возьмем xfce4-screenshooter (или например scrot), bash, xsel и запилим собственную реализацию этой фичи.
Для начала идем на imgur.com и регистрируем там аккаунт, в настройках выставляем приватность заливаемых изображений.

сеттингс

Затем в разделе Applications создаем новое приложение. Нам отсюда нужен только Client-ID.

Далее пилим bash-скрипт:

#!/bin/bash

# Ubuntu Keyboard settings shortcut:
#  xfce4-screenshooter -r -o "sh ~/.bin/imgur.sh"

URL="https://api.imgur.com/3/image.json"

RESPONSE=$(curl --header "Authorization: Client-ID your_client_id" -s -F "image=@$1" $URL)
echo "$RESPONSE" | grep -o -E "http:.*\.(jpg|png)" | sed -e 's/\\//g' | xsel -i -b
notify-send -i info "Screenshot uploaded" "URL has been copied to clipboard"

Я такие штуки обычно ложу в /home/rail/.bin/.

Ну что же, теперь можно и попробовать =)

Набираем в консоли:
xfce4-screenshooter -r -o “sh ~/.bin/imgur.sh”

Затем выбираем область для скриншота и видим уведомление о том то изображение успешно залилось и адрес картинки сохранился в буфере обмена.

Ну все, теперь можно предыдущую команду сохранить в keyboards shortcuts. Я у себя это дело навесил на Ctrl+Shift+R.

А как же тот маркетинговый буллшит про возможность удаления картинки спросите вы? Спокойно, все это есть =) Все это дело возвращается в переменной RESPONSE в bash-скрипте в виде json. Мне оттуда нужна была только прямая ссылка на изображение, потому я ее вырезал при помощи grep и sed. А параноики могут дополнительно сохранять данные оттуда в свой небольшой лог файл.

Вот как то так)