Создание простых скринштотв с загрузкой на свой сервер (Mac OS)

Всем привет!

Хочу рассказать Вам, как сделать простое приложение для создания скриншотов и последующей загрузке их на свой сервер.

Для этого нам понадобится:

  • MacOS
  • Свой сервер
  • Automator
  • Немного знаний  bash

Для начала регистрируемся по ссылке и получаем 10$ на своё счёт. Этого Вам хватит на 2 месяца использования сервера.

Итак, приступим.

Запускаем Automator, по умолчанию он расположен в Launchpad в папке «Другие».

Automator

Там выбираем «Новый документ» в левом нижнем углу и из предложенного выбираем «Программа».

Нам понадобятся следующие инструменты:

  • «Сделать снимок экрана»
  • «Запустить shell-скрипт»
  • «Показать уведомление»
  • И ещё раз «Запустить shell-скрипт»

Приступаем к настройке инструментов.

1. «Сделать снимок экрана»

screen

Тут на Ваше усмотрение, я сделал»Интерактивно», «Выбрать выделенное», а место сохранения указал «Другое» и выбрал заранее подготовленный файлик скриншота «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. «Показать уведомление»

notifi

 

Тут всё совсем просто. Произвольный текст.

4. «Запустить shell-скрипт»

shel2

file_name=$1
server_name=$2
scp "$file_name" ServerName:$server_name

Тут мы передаём на сервер через SCP.

 

Сохраняем, запускаем пробуем и наслаждаемся!

Комментариев: 3 на “Создание простых скринштотв с загрузкой на свой сервер (Mac OS)

  1. Вот мой скрипт для таких целей:


    #!/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

    — обрабатывает сразу несколько файлов
    — встрона проверка на запуск без файлов
    — создает уникальные ссылки, чтоб невозможно было подобрать
    — сокращает ссылки через бит.ли
    — отправляет нотификацию и копирует в буфер готовые ссылки

Добавить комментарий

Ваш адрес email не будет опубликован.