# Автоматизация без кода. Обзор технологий
## 1) Планировщик задач на ПК
Предположим, нам нужно запускать *вкладку сообщений ВК при входе в Windows*
* Запускаем **"Планировщик задач"** (можно просто найти его в поиске; или *Win+R*, затем ввести команду *taskschd.msc*)
* справа нажимаем *"создать простую задачу"*
* даем нашей задаче *название*, устанавливаем *триггер* (частоту выполнения - ежедневно, еженедельно, при входе в Windows, при запуске компьютера)
* *действие* - из всего предложенного (запустить программу, отправить сообщение эл.почты/вывести сообщение) нам подходит только "запустить программу"
* запуск программы
Т.к. нам нужно открыть сайт, то в строку мы должны добавить *путь к браузеру*, а точнее на его *файл*. Для этого нужно его найти вручную, но легче написать команду, с помощью которой можно запускать наш браузер

* запускаем **"Командную строку"**
* Т.к. наш браузер (Хром) хранится в файле *chrome.exe*, то сперва поищем его. На что нам система ответила отказом - такого файла нет.

* Поэтому, чтобы его найти, мы ищем *расположение файла*

* дописываем в расположение нашего файла его *название с разрешением chrome.exe* или выбираем из подсказок. Копируем весь адрес

* Правой кн.мыши вставляем его в командную строку
Все равно не открывается, тк в "Program Files" есть **пробел**. Если есть пробел, то мы должны указывать строку **в кавычках**
```
C:\Users\Екатерина>"C:\Program Files <x86>\Google\Chrome\Application\chrome.exe"
```
Теперь по этой команде открывается начальная страница браузера. Но нам нужно, чтобы открывался именно сайт ВК (а именно страница сообщений)
* Дописываем в командную строку **ссылку на сайт через пробел после кавычек**. Теперь у нас по этой команде открывается сайт ВК
```
C:\Users\Екатерина>"C:\Program Files <x86>\Google\Chrome\Application\chrome.exe" http://vk.com
```
* Для открытия какой-то определенной станицы (например, страница с сообщениями) нужно просто *скопировать ссылку именно на эту страницу*
```
C:\Users\Екатерина>"C:\Program Files <x86>\Google\Chrome\Application\chrome.exe" http://vk.com/im
```
* Теперь для того, чтобы наша задача запускалась тогда, когда нам нужно, копируем все, что идет **после первых кавычек** и вставляем в строку планировщике задач
Можно сделать все то же самое, но сокращенной командой:
1) копируем путь файла из папки

2) переходим в ту папку с файлом командой ***cd*** (change directory - перейти)
Сначала набираем
```
C:\Users\Екатерина>cd
```
После
```
C:\Users\Екатерина>cd C:\Program Files (x86)\Google\Chrome\Application
```
Т.к. мы пишем с пробелом, нужно поставить кавычки (если с пробелом не работает). Но все сработало :)
В итоге мы перешли в папку Хрома
3) Пишем chrome.exe и запускается браузер
```
C:\Program Files (x86)\Google\Chrome\Application>chrome.exe
```
В 1 случае мы запускали Хром из рабочей папки *C:\Users\Екатерина*, а во 2 - из папки, где непосредственно лежит программа.
Во 2 случае мы используем **относительный путь** к нему, в 1 - **абсолютный** (полный путь).
У относительных путей, помимо того, что они короче, есть еще 1 плюс:
мы можем создать какой-то файл с расширение ***but***, который будет запускать наше приложение:
* создаем папку (напр. *demo*)
* создаем файл *demo*. Он изменяется через блокнот (пр.кн.м - изменить)
* Вновь копируем путь к файлу со слэшэм и кавычками
```
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
```
* вставляем его в файл и сохраняем
Теперь, когда мы будем просто открывать этот файл, он будет делать все, что мы делали сами выше - запускать командную строку сам, вставлять команду и выполнять.
> Чтобы он запускал программу медленнее, мы можем добавить в него PUASE на след.строку - теперь он немного притормозит перед тем, как закрыться, и мы увидим окно командной строки после того, как уже запустился Хром. Как только процесс отлажен, нужно PAUSE стереть (+ для нормальной работы xStarter)
Перенесем файл Хрома в нашу папку demo с but-файлом. Теперь мы можем запустить Хром, изменив содержимое в файле на *chrome.exe*, т.к. файл Хром будет запускаться из нужной нам папки. В этом случае мы используем относительный, более короткий путь.
```
chrome.exe
PAUSE
```
Пробуем запустить - не выходит.
На самом же деле исходный файл Хрома находится на **уровень выше** (в папку demo мы его просто скопировали). Получается, что нам нужно запустить файл на уровень выше.
Для этого мы меняем содержимое *but-файла* на
```
..\chrome.exe
PAUSE
```
Тогда при запуске файла мы будем заходить на папку вверх и там искать файл *chrome.exe*.
**Если этот файл будет лежать в папке не на уровень выше, а ниже?** Тогда вместо точек *..* указываем название папки, в которой находится файл, а потом также остается название файла
```
Application\chrome.exe
PAUSE
```
---
## 2) xStarter
* Скачиваем программу и запускаем
* Создаем *новую задачу, даем название и настраиваем периодичность* ее выполнения, при каких условиях она должна выполняться (Run task)

Вкладка "Расписание и информация". Здесь мы можем дать имя нашей только что созданной задаче, а также выбрать, каким образом запускать эту самую задачу на выполнение. И здесь есть несколько вариантов:
* По времени
* По событию
* Комплексный формат
***По времени*** - просто выбираем время и дату, либо указываем интервал времени, через который будет запущена задача. Также можно сделать так, чтобы задача запускалась каждые X часов.
Второй вариант - ***запуск по событию***. Тут сосредоточен весь самый "убойный" функционал программы. Нам доступно огромное количество вариантов ((запуске xStarter, нажатии горячих клавиш, наличии изменений файлов в заданных директориях, открытии/активировании/закрытии окна Windows, запуске/остановке определенного процесса и пр.)
**Комплексный формат** предлагает нам все тоже самое, что было в первом пункте, с той лишь разницей, что можно выбрать не только время, но и определенный день недели и месяц (только в этот день недели, месяц и время - будет выполняться задача).
* Нажимаем *Action* и устанавливаем необходимое **действие**

Типы задач:
* запуск/закрытие приложений
* запуск и остановка сервисов,
* выключение компьютера
* выполнение файловых операций (копирование, удаление, и т.д.),
* синхронизация каталогов,
* архивация данных,
* запись и воспроизведение макросов,
* скачивание/отправка файлов по протоколам FTP и HTTP,
* отображение сообщений на экране компьютера,
* установка соединения с Интернетом
Полезная ссылка как выполнять разного рода задачи https://automate-my-tasks.com/ru/viewforum.php?f=6&sid=74ec2fc8ba706356592153130155e3c2
---
## 3) Веб-сервис [IFTTT](https://ifttt.com/)
Здесь больше идет акцент *не на наш компьютер*, а на используемые нами ***сервисы***
* Вход (Sign in)
* Далее мы видим список готовых возможных задач. Возьмем для примера такую задачу

* Нажимаем "Подключить"
---
* Если мы хотим создать **свою задачу**, заходим в создание нового апплета


* Настариваем ***условия*** апплета (на примере)
1. ***IF*** - если пришли новые письма на мою почту
2. ***WITH*** - ограничения, например, письма с определенной темой
3. ***WHEN*** - настройка времени и периодичности
4. ***THEN*** - ставим действие, например, чтобы файл из почты загружался на гугл диск


* Настраиваем наши *уведомления* - от кого и т.д. (Add Ingredient)

* Можем **добавить еще действия**, *назвать* апплет, добавить его *описание* и сохраняем. Созданный нами апплет можем увидеть в той же вкладке Апплеты

* Нажав на наш апплет можно увидеть *принцип его работы* - если пришло письмо, оно сохраняется на гугл диск

Можно сделать множество настроек: отправку почты, уведомления, анализ конкурентов, напоминания,отслеживание новостей
---
## 4) Веб-сервис [Microsoft Flow](https://flow.microsoft.com/ru-ru/) (или Power Automate)
ПЛАТНЫЙ
Здесь намного больше настроек, чем в xStarter.
Состоит из **триггеров** (события, при наступлении которых начнется выполнение процесса) и **блоков действий** (цепочек последовательных действий)
Примеры. Можно
* обрабатывать почту
* поставить таймер
* записывать данные в базу данных
* перетаскивать файлы с одного сервера на другой
* отправить письмо на этот сайт с вложенным файлом и этот файл сам выложится на сервер
и еще множество действий:

* Нажимаем слева "Создать". Здесь мы можем создавать потоки последовательных действи.
Есть **облачные** потоки, которые выполняются В расписании в облаке, а есть **относительные (классические)** потоки, которые выполняются на нашем компьютере.
* Выбираем шаблон потока (либо создаем свой)
* Авторизуемся в необходимых учетных записях и создаем поток
* Далее в окне со всеми созданными потоками нажимаем на поток - заходим в его редактирование
* Устанавливаем необходимые параметры, шаги, услоавия выполнения действий
* Сохраняем
---
# [Zapier](https://zapier.com/app/dashboard)
Онлайн-сервис для автоматизации
После входа нужно выбрать роль, указать кол-во человек в команде и выбрать приложения, которые мы хотим использовать.
Например, мы хотим, чтобы по приходу нового письма на почту автоматически создавалась карточка задачи в Trello и заполнялась гугл-таблица.
Сервис сразу нам сам предложил этот вариант

Настраиваем параметры
С мая 2019г список связанных программ очень ограничен:
https://zapier.com/help/doc/common-problems-with-gmail#common-problems-gmail
## Другие альтернативы Zapier
**1) Automate.io** - одна из лучших альтернатив Zapier, можно создавать условные рабочие процессы, что означает, что можно интегрировать несколько веб-приложений и связать их с подходящей потоковой диаграммой.
**2) n8n.io** - бесплатный и открытый инструмент автоматизации рабочего процесса, который хорошо работает с популярными веб-приложениями и службами. Говоря о рабочем процессе, в отличие от других альтернатив Zapier с открытым исходным кодом, n8n предлагает цельный и визуальный редактор для создания рабочего процесса, который в основном называется узлом в этом инструменте.
**3) тTray.io** - это не обычный сервис интеграции, а полноценный веб-крючок и платформа автоматизации для крупных предприятий и растущих стартапов. В каждом аспекте он стоит на голову выше Zapier и предлагает множество удобных функций, которыми Zapier пользуется популярностью. Он использует редактор перетаскивания для визуального создания бесшовного рабочего процесса.
**4) Zoho Flow** – позволяет интегрировать ваши приложения и создавать сценарии рабочих процессов в визуальном редакторе. Вы можете создать блок-схему действий, легко редактировать их с помощью условных триггеров и запустить рабочий процесс всего несколькими щелчками мыши. Вы можете получать электронные письма, файлы, отчеты от одного сервиса к другому всего за несколько секунд. Предлагает огромный выбор готовых рабочих процессов, которые вы можете начать в кратчайшие сроки. Просто выберите шаблон и авторизуйте интеграцию
**5) Апиант**. Поддерживает более 15000 различных приложений, что может быть перегружено для некоторых пользователей, но также можно начать с собственных небольших автоматизированных систем, а затем взять их оттуда. Можно создавать триггеры и действия и пр.
**6) Workato** – имеет высокую стоимость подписки и в первую очередь предназначен для корпораций и крупных предприятий. Как и в Zapier, Workato поддерживает рабочие процессы с несколькими экземплярами, которые называются Recipe. Вы можете создать свой собственный рецепт или выбрать из более чем 225 000 готовых рецептов из своей библиотеки. Основная цель Workato – сделать автоматизацию более простой и удобной для всех отделов, независимо от того, являетесь ли вы специалистами по учетным записям или ИТ.
**7) PieSync** фокусируется на синхронизации данных между приложениями в обоих направлениях. PieSync позволяет не только сосредоточиться на том, чем это, но и на том, что ваши приложения могут общаться друг с другом, синхронизируя данные между ними в режиме реального времени. Это лучше всего подходит для бизнеса, в котором команда работает удаленно. Вся их работа будет синхронизироваться между приложениями, предоставляя всем доступ к данным мгновенно. Он также достаточно умен, чтобы находить и управлять дублирующимися точками данных и удалять их.
---
## FTP
В адресной строке почти всегда пишется *http* или *https*
> **http** - HyperText Transfer Protocol - протокол передачи гипертекста
**https** - HyperText Transfer Protocol Secure - расширение протокола HTTP для поддержки шифрования в целях повышения безопасности
**FTP** - протокол для передачи файлов по сети
Самое частое его использование - передача **файлов** для сайтов.
Для примера возьмем сайт http://pravoslavienavolge.ru/. Он сделан на WP и состоит из набора файлов.
Чтобы перенести сайт с одного сервера на другой, нам нужно взять все его *файлы*, передать их:
* либо сразу со старого сервера на новый
* либо сначала со старого сервера на компьютер, и уже с компьютера на новый сервер, т.к. чаще всего сервера не связаны между собой
Если нам нужно передавать *ФАЙЛЫ*,то делать мы это будем через протокол *FTP*. Чтобы подключиться по FTP нужен *FTP-клиент (программа)*.
Через *HTTP* работают *браузеры*, а для FTP нужна, например **FileZilla**
Через эту программу мы можем переносить файлы с компьютера на сервер (в интерфейсе слева - наш компьютер, справа - сервер) и также в обратном порядке (перетягиваем справа налево).

Чтобы увидеть все файлы сервера, нужно добавить путь к папке ftp в поле "Хост"

И нажать Enter, после чего мы увидим как вставленная нами ссылка сама разобьется на части в соответствующие поля

Часто задачи по автоматизации связаны с FTP.
Например, сайт взломали и некоторые данные удалились. Каким образом мы можем его восстановить?
Мы можем периодически **скачивать все файлы сайта** и сохранять на компьютере, на яндекс.диске и т.п.
Если сайт взламывают или что-то с ним происходит, мы запускаем эту программу, **удаляем** все файлы с сервера, после этого **закачиваем когда-то сохраненную правильную копию сайта** и сайт вновь будет работать.
**НО!**
здесь есть один нюанс
Например, мы выгрузили последнюю копию сайта, например, 1 числа, и после вносили какие-либо изменения. Сайт ломается, к примеру, 7 числа, мы удаляем все файлы с сервера, загружаем нашу последнюю сохраненную копию. И получается, что все внесенные изменения после 1 числа удалились.
Поэтому на сайтах обычно настраивают **бэкапы (backup) - резервные копии**. Их все настраивают по-разному. ***Один из вариантов:*** раз в день/полдня выкачивать все файлы с сервера себе в компьютер в отдельную папку.
Например, адрес сервера: ftp://dev.buketsaritse.ru:kz58ALtux@5.188.28.241/
Это можно сделать через *xStarter*:
*1) скачиваем файлы с сервера*

* Ftp folder - ставим слэш
* local folder - папку, куда мы хотим, чтобы скачивались файлы
* Ftp host - цифры после @ (5.188.28.241)
* Username - dev.buketsaritse.ru
* Port - его нам покажет FileZilla во всплывающем окне, порт нужно запомнить, для этого случая 21
* Password - kz58ALtux
Другие поля неизменны
*2) делаем бэкап.* Заходим "Архивы" -> "Бэкап". Вставляем папку, куда будет выкачиваться наш сайт и делаем *архив*

* Add folder - вставляем ту же папку, что и в 1 пункте, куда будут выкачиваться файлы
* Backup folder - создаем новую папку и вставляем
3) можно настроить *автоматическое удаление старых ненужных копий*

4) для оповещения о результатах можно настроить *отправку уведомлений о результатах выполнения задачи*.
Для того, чтобы узнать какие именно настройки вписывать в наше действие:
* вбиваем в гугле общий запрос **"настройки почтовой программы яндекс"** (если отправляем через другую почту, то, соответственно, пишем ее).
* Открываем 1 ссылку
* "другие программы"
> **IMAP / POP3** - для входящей почты (чтобы нам приходили уведомления). В xStarter это **CheckMail**
> **smtp** - сервер - для исходящией почты (мы отправляем). В xStarter это **SendMail**
Для нашего случая выбираем настройки smtp протокола на https://yandex.ru/support/mail/mail-clients/others.html

и находим в xStarter команду SendMail

* Adress - почтовый адрес, на который будут приходить уведомления
* Mail host - берем с настроек smtp
* Port - берем с настроек smtp
* User name - читаем как правильно по той же ссылке

В нашем случае мы можем скопировать сюда полный адрес почты, что и для поля Adress
* Password - то же самое, что и для выкачки файлов с сервера (см п1 настройки) - kz58ALtux
## Настройка правил почты
Чтобы отсортировать все приходящие письма, нужно настроить **правила**.
Создадим правило для писем от Яндекс.Календаря.
* Заходим в письмо. **Создать правило**

* Настраиваем условия и пр. Не забываем нажать на **"Применить к существующим письмам"** (если такие есть)

* Затем нам показывается окно, где есть все нами созданные правила. Переходим снова в почту и видим, что писем от календаря больше нет - они собраны в одну папку.
Также можно создать правило *вручную* с 0. Для этого:
* Шестеренка -> Правила обработки писем

* Настраиваем параметры
**Источники:**
1) https://ifttt.com/home
2) https://flow.microsoft.com/ru-ru/
3) https://zapier.com/app/dashboard
4) https://okdk.ru/top-10-alternativ-zapier-dlya-avtomatizacii-vashej-raboty-2020/
5) http://pc-information-guide.ru/programs/planirovshhik-zadach-xstarter-avtomatizaciya-dejstvij-na-kompyutere.html