Сохраняем скриншоты в Imgur
Итак, эта короткая заметка посвящена довольно частому для веб-разработчика действию отправки скриншота коллегам и его автоматизации. Все мы знаем что популярные облачные хранилища предоставляют свои клиенты которые в том числе умеют захватывать изображение с экрана и сохранять его в облако и существуют отдельные сервисы наподобие Joxi.
Все, можно закрывать страницу - проблема решена!
Хотя нет, погодите-ка
У вышеперечисленных способов есть собственные минусы:
- отсутствие клиента с скриншотилкой под Linux
- захламление своего облака огромной кучей временных скриншотов
- реклама, много рекламы! (привет Joxi)
Если у вас оконная среда XFCE 4.12, то встроенная утилита xfce4-screenshooter умеет заливать скриншот в imgur и отдавать прямую ссылку на файл с изображением. Думаю что подобным функционалом обладают и другие утилиты, но в этом удобном решении тоже есть минус. Я вот например не знаю в чей аккаунт заливаются эти изображения и можно ли их в случае чего удалить?
Поэтому сейчас мы возьмем xfce4-screenshooter (или например scrot), bash, xsel и запилим собственную реализацию этой фичи.
Для начала идем на imgur.com и регистрируем там аккаунт, в настройках выставляем приватность заливаемых изображений.
Затем в разделе Applications создаем новое приложение. Нам отсюда нужен только Client-ID.
Далее пилим 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. А параноики могут дополнительно сохранять данные оттуда в свой небольшой лог файл.
Вот как то так)