Добрый день %habr%
Работая в JIRA/Redmine/basecamp/Wiki есть, ставший привычным, способ вставки изображения: !http://blah.com/img.png! Но бесплатные сервисы, в той или иной степени, не дают возможности работать эффективно.
Clip2net, например, не дает прямой ссылки на файл, а на выкорчевывание ее из страницы уходит время, если в таске 20 скринов и для каждого нужен URL…
Gyazo на бесплатном аккаунте ограничен по времени использования, URL приходится модифицировать дописывая ".png" в конце, картинки имеют ограниченный срок хранения, а реклама gyazo за которой уже сложно найти сам скрин — это нЕчто.
На мысль использовать Dropbox натолкнул этот комментарий. Идея мне показалось интересной и я засел за свой велосипед. DIY реализация «сервиса» и клиентской части, со своими плюсами и минусами, под катом.
Настройка осуществляется через правку config.ini в каталоге с программой:
config.ini
Собственно, скрипт AutoIT:
BoxShoot.au3
После запуска, программа висит в трее, ждет нажатия PrintScreen.

Занимает в памяти 1.5мб

Авто запуск — в ручном режиме, то-есть через создания ярлычка в «Пуск — Автозагрузка»


Файлов: ~400
Объем: ~17mb
Пользуюсь с 31 октября
Меня устраивает почти полностью, ссылки выглядят не очень красиво, подумываю прикрутить URL shortener.
Используя scrot, xclip и немного Bash скриптинга — можно легко получить аналог для любимого *nix:
Осталось XBindKeys прикрутить.
Исходный код и готовые exe доступны на GitHub
DropBox ID изменен в целях безопасности, приношу свои извинения бедолаге, чей ID фигурирует в скриптах.
Работая в JIRA/Redmine/basecamp/Wiki есть, ставший привычным, способ вставки изображения: !http://blah.com/img.png! Но бесплатные сервисы, в той или иной степени, не дают возможности работать эффективно.
Clip2net, например, не дает прямой ссылки на файл, а на выкорчевывание ее из страницы уходит время, если в таске 20 скринов и для каждого нужен URL…
Gyazo на бесплатном аккаунте ограничен по времени использования, URL приходится модифицировать дописывая ".png" в конце, картинки имеют ограниченный срок хранения, а реклама gyazo за которой уже сложно найти сам скрин — это нЕчто.
На мысль использовать Dropbox натолкнул этот комментарий. Идея мне показалось интересной и я засел за свой велосипед. DIY реализация «сервиса» и клиентской части, со своими плюсами и минусами, под катом.
Требования
- Запуск по горячей клавише
- Выбор произвольной области
- Имя файла (подобно gyazo) в виде MD5 хеша
- Прямая ссылка на файл в буфере обмена
- Формат изображения PNG
- Возможность изменять настройки
Логика
- Системный hook для горячей клавиши
- Запустить приложение для снятия скриншота
- Отметить область
- Получить MD5 hash текущего timestamp
- Сохранить файл в публичную папку Dropbox
- Положить ссылку на файл в буфер обмена
Инструменты
- Dropbox — известный сервис хранения и синхронизации файлов
- autoit — инструмент автоматизации выполнения задач в Windows
- MiniCap — приложение для создания скриншотов (понимает командную строку)
Настройка осуществляется через правку config.ini в каталоге с программой:
config.ini
[MAIN] ; куда сохранять файлы скринов DBOX_DIR = "C:\Dropbox\Public\pic\" ; путь до приложения создающего скриншоты CAP = "C:\Program Files\MiniCap\MiniCap.exe" ; часть внешнй ссылки (можно получить на странице Dropbox) ; пример http://dl.dropbox.com/u/2058666/pic/1c40b047e22875c8396b029b00ea9a14.png DBOX_URL = "http://dl.dropbox.com/u/2058666/pic/" ; hotkey по которому делаем скриншот shoot_key = "{PRINTSCREEN}"
Собственно, скрипт AutoIT:
BoxShoot.au3
#include <Crypt.au3> $hotkey = IniRead("config.ini", "MAIN", "shoot_key", "NotFound") $DBOX_DIR = IniRead("config.ini", "MAIN", "DBOX_DIR", "NotFound") $DBOX_URL = IniRead("config.ini", "MAIN", "DBOX_URL", "NotFound") $CAP = IniRead("config.ini", "MAIN", "CAP", "NotFound") HotKeySet ( $hotkey, "SHOOT" ) TraySetToolTip("BoxShoot") Opt("TrayMenuMode", 1) $exititem = TrayCreateItem("Exit") TraySetState() While 1 $msg = TrayGetMsg() Select Case $msg = 0 ContinueLoop Case $msg = $exititem CLOSE() EndSelect WEnd Func SHOOT() $CurTime = @YEAR & "_" & @MON & "_" & @MDAY & "_" & @HOUR & "_" & @MIN & "_" & @SEC $hash = _Crypt_HashData($CurTime, $CALG_MD5) $result = StringTrimLeft($hash, 2) $fname = $result & ".png" $fname = StringLower($fname) Run($CAP & " -captureregselect -exit -compress 7 -bordershadow -noaero -save " & $DBOX_DIR & $fname , "", @SW_MINIMIZE) ClipPut($DBOX_URL & $fname) EndFunc Func CLOSE() Exit 0 EndFunc
После запуска, программа висит в трее, ждет нажатия PrintScreen.

Занимает в памяти 1.5мб

Авто запуск — в ручном режиме, то-есть через создания ярлычка в «Пуск — Автозагрузка»

Статистика

Файлов: ~400
Объем: ~17mb
Пользуюсь с 31 октября
Меня устраивает почти полностью, ссылки выглядят не очень красиво, подумываю прикрутить URL shortener.
Bonus
Используя scrot, xclip и немного Bash скриптинга — можно легко получить аналог для любимого *nix:
#!/bin/bash F_NAME=`date +%s | md5sum | awk '{ print $1}'`'.png' DBOX_DIR='/home/username/Dropbox/Public/pic/' DBOX_URL='http://dl.dropbox.com/u/2058666/pic/' S_NAME=$DBOX_DIR$F_NAME scrot -s -q 0 $S_NAME echo -n $DBOX_URL$F_NAME | xclip
Осталось XBindKeys прикрутить.
Исходный код и готовые exe доступны на GitHub
PS
DropBox ID изменен в целях безопасности, приношу свои извинения бедолаге, чей ID фигурирует в скриптах.
