Всем привет!
Хочу рассказать Вам, как сделать простое приложение для создания скриншотов и последующей загрузке их на свой сервер.
Для этого нам понадобится:
- MacOS
- Свой сервер
- Automator
- Немного знаний bash
Для начала регистрируемся по ссылке и получаем 10$ на своё счёт. Этого Вам хватит на 2 месяца использования сервера.
Итак, приступим.
Запускаем Automator, по умолчанию он расположен в Launchpad в папке «Другие».
Там выбираем «Новый документ» в левом нижнем углу и из предложенного выбираем «Программа».
Нам понадобятся следующие инструменты:
- «Сделать снимок экрана»
- «Запустить shell-скрипт»
- «Показать уведомление»
- И ещё раз «Запустить shell-скрипт»
Приступаем к настройке инструментов.
1. «Сделать снимок экрана»
Тут на Ваше усмотрение, я сделал»Интерактивно», «Выбрать выделенное», а место сохранения указал «Другое» и выбрал заранее подготовленный файлик скриншота «ScreenShots.png».
2. «Запустить shell-скрипт»
Тут всё просто. Выбираем «Передать ввод» «как аргументы», Shell — /bin/bash, и следующий текст.
file_name=$@ # Получаем имя скриншота. Date=$(date) mv $file_name "/Users/UserName/ScreenShots/$Date.png" # Перемещаем скриншот в папку со скриншотами file_name="/Users/UserName/ScreenShots/$Date.png" new_name=$(echo "$file_name" | md5) serv_name="/path/to/your/screenshots/on/server/$new_name.png" new_name2="$new_name.png" url="http://kai-zer.ru/$new_name.png" echo $url | pbcopy # Копируем в буфер ссылку echo $file_name echo $serv_name
Строки
echo $file_name echo $serv_name
передадут далее эти параметры.
3. «Показать уведомление»
Тут всё совсем просто. Произвольный текст.
4. «Запустить shell-скрипт»
file_name=$1 server_name=$2 scp "$file_name" ServerName:$server_name
Тут мы передаём на сервер через SCP.
Сохраняем, запускаем пробуем и наслаждаемся!
Вот мой скрипт для таких целей:
#!/bin/bash
array=( "$@" )
if [ ${#array} -le 0 ]; then
echo -n "ZERO INPUT :("
exit
else
for i in "${array[@]}"; do
fname=$(basename "$i")
file_ext=$(echo $fname |awk -F . '{if (NF>1) {print $NF}}')
ofname=$(date +%s | md5 | base64 | head -c 32).$file_ext
scp "$i" ТВОЙ_СЕРВЕР:путь/куда/надо/${ofname} &
shorturl=$(curl -s -d "apiKey=ТВОЙ_АПИ_КЛЮЧ&format=txt&login=ТВОЙ_ЛОГИН&longUrl=http://ТВОЙ_УРЛ_САЙТ/$ofname" https://api-ssl.bitly.com/v3/shorten | tr -d '\n')
echo $(date) $shorturl >> $HOME/log/drops.log # ПРОСТО ЛОГИ
echo $shorturl >> /tmp/drops.tmp
done
cat /tmp/drops.tmp | pbcopy
echo -n "file(s) dropped, link(s) in clipboard" # НОТИФИКАЦИЯ
> /tmp/drops.tmp
fi
— обрабатывает сразу несколько файлов
— встрона проверка на запуск без файлов
— создает уникальные ссылки, чтоб невозможно было подобрать
— сокращает ссылки через бит.ли
— отправляет нотификацию и копирует в буфер готовые ссылки