Довольно часто в течение дня мы вынуждены выполнять в браузере простые повторяющиеся действия. Они занимают секунды, но те складываются в минуты и часы, которые можно потратить на что‑то более полезное. Плагин Automa для Chrome помогает решить эту проблему.
Расширение предлагает гибкие инструменты для автоматизации в браузере с массой настроек. При этом для их использования не требуются навыки программирования и работы с кодом. Все манипуляции осуществляются в визуальном редакторе, а алгоритмы составляются из простых и понятных блоков действий, которые можно перетаскивать. Благодаря этому между ними формируются нужные связи.
После установки по клику на значок плагина открывается выпадающее меню со сценариями, кнопкой анализа элементов на странице, которая пригодится нам позже, и иконкой домика. Последняя, собственно, и открывает редактор.
Здесь на экране Dashboard отображаются последние сценарии и журнал их выполнения. На вкладке со значком папки можно объединить несколько из них в набор и выполнять одновременно. Крайняя вкладка открывает более подробные логи.
Automa — автоматизация браузера и визуальное программирование 🤖
Но самое интересное происходит в разделе Workflow. Именно здесь создаются сценарии, или макросы. Для добавления нового нужно кликнуть New workflow и присвоить ему название.
«Программирование» осуществляется перетаскиванием блоков из панели слева в область редактора. Действий здесь довольно много: от различных триггеров и повторений до управления браузером, кликам по элементам и выполнению Java‑скриптов. Для примера создадим макрос, который будет вместо меня автоматически переходить в профиль на Лайфхакере и открывать последний комментарий в статьях. Для этого добавим блок Trigger, выберем вариант Interval и укажем промежуток в 60 минут, чтобы сценарий выполнялся каждый час.
Далее добавим блок New Tab и в поле URL вставим ссылку на аккаунт на Лайфхакере. Соединим оба элемента, проведя курсором от пустого кружка к чёрному. Теперь каждые 60 минут Automa будет открывать новую вкладку и переходить в раздел уведомлений в профиле.
Остаётся заставить алгоритм просматривать последний комментарий. Для этого поставим следующим в цепочке блок Click Element.
Чтобы расширение знало, куда кликать, нужно определить элемент. Сделать это легко: переходим на страницу с уведомлениями, открываем выпадающее меню Automa и сначала жмём на кнопку с прицелом, а затем — на нужный элемент на странице. После чего копируем его значение из поля в левом нижнем углу.
Возвращаемся в редактор и вставляем полученное значение в настройки блока Click Element.
Жмём Save в редакторе и кнопку запуска. С этого момента каждый час расширение будет открывать новую вкладку, заходить в профиль и направляться к последнему комментарию в статье.
Это пример очень простого сценария, но в Automa есть всё необходимое для реализации более сложных автоматизаций. Немного поэкспериментировав, можно настроить выполнение своих рутинных задач и оптимизировать рабочий процесс. Всё это полностью бесплатно.
Программа для автоматизации действий Tinytask?
Источник: lifehacker.ru
Автоматизируем работу с сайтом за 5 минут на примере Yandex.Почты с помощью NetExport
Иногда, бывает нужно автоматизировать некоторые процессы на чужом сайте. Залогиниться на сайт, скачать какой нибудь файл, открыть страничку. Часто приходится разбираться в коде сайта, чтобы найти, как правильно написать запрос curl.
Предлагаю Вашему вниманию способ, которым я сам пользуюсь, чтобы значительно облегчить себе жизнь и автоматизировать все и вся, от проверки почты, до загрузки данных в телебанке. Я постараюсь, на примере Yandex.почты показать, как можно очень быстро и почти без программирования сгенерить curl php скрипт для захода на любой сайт и загрузки контента в автоматическом режиме.
Для начала, нам необходимо установить Firebug расширение для браузера Firefox. После чего, установить расширение для FireBug NetExport
Последние версии netExport позволяют автоматически собирать сетевые логи ваших действий в формате HTTP Archive
Теперь переходим на интересующий нас сайт, в данном случае это будет mail.yandex.ru. После чего, лучше очистить все кукисы и кеш браузера. Теперь включаем FireBug нажатием на значок жучка на статусной строке браузера. После чего включаем Сеть, отключаем на всякий случай кеш.
Если плагин NetExport установился, вы увидите кнопку «Export» в панели Firebug и желтый кружок рядом с ней. Для того, чтобы плагин записывал все ваши действия в автоматическом режиме необходимо установить директорию по умолчанию для записи логов и нажать на желтый кружок (он станет зеленым, как на картинке).
Теперь просто заходите под своим аккаунтом и делаете нужное вам действие. В моем случае мне нужно просто сделать логин и перейти на страницу с письмами. Сделали, останавливаем NetExport нажатием на зеленый кружок. В папке, которую мы выбрали по-умолчанию появилось несколько файлов. Их можно проанализировать с помощью онлайн вьюера и написать код для автоматизации.
Однако, я написал маленький сервис, который позволяет это сделать автоматически. Зайдя по ссылке har2php.sharecoder.com вы можете просто загрузить Ваш лог файл в сервис и он напишет для Вас код на PHP. В моем случае, мне нужно загрузить туда файл «passport-ckicheck.yandex.ru+2010-02-18+10-15-21.har» и вуаля 🙂 Сервис сделал для себя, поэтому не очень хорошо переваривает большие лог файлы, но дело свое знает хорошо. Сервис не хранит отправленных данных и держит их только в текущей сессии. Однако, для пущей безопасности, рекомендуется предварительно, перед отправкой HAR файла на сервис, заменить настоящие логины и пароли какими-нибудь символами.
- $cookie_file = ‘cookie.txt’ ;
- $ch = curl_init();
- curl_setopt( $ch , CURLOPT_URL, ‘https://passport.yandex.ru/passport?mode=auth’ );
- curl_setopt( $ch , CURLOPT_USERAGENT, ‘Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2) Gecko/20100115 Firefox/3.6’ );
- curl_setopt( $ch , CURLOPT_REFERER, ‘http://mail.yandex.ru/’ );
- curl_setopt( $ch , CURLOPT_ENCODING, ‘gzip,deflate’ );
- curl_setopt( $ch , CURLOPT_COOKIEJAR, $cookie_file );
- curl_setopt( $ch , CURLOPT_COOKIEFILE, $cookie_file );
- $header = array ();
- $header [] = ‘Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8’ ;
- $header [] = ‘Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7’ ;
- $header [] = ‘Accept-Language: ru,en-us;q=0.7,en;q=0.3’ ;
- $header [] = ‘Pragma: ‘ ;
- curl_setopt( $ch , CURLOPT_HTTPHEADER, $header );
- curl_setopt( $ch , CURLOPT_POST, true );
- $fields = array ();
- $fields [] = ‘login=xxxxx’ ;
- $fields [] = ‘passwd=xxxxx’ ;
- $fields [] = ‘retpath=xxxxx’ ;
- $fields [] = ‘twoweeks=yes’ ;
- curl_setopt( $ch , CURLOPT_POSTFIELDS, implode( ‘
- curl_setopt( $ch , CURLOPT_FOLLOWLOCATION, true );
- curl_setopt( $ch , CURLOPT_AUTOREFERER, true );
- curl_exec( $ch );
- curl_close( $ch );
Код, после нескольких косметических изменений можно использовать по назначению 🙂
P.S. для тех, кто все-таки опасается отправлять логи на сайт, открываю исходный код текущей версии сервиса:
- $data = implode( » ,file( $uploadfile ));
- $data = json_decode( $data );
- unlink( $uploadfile );
- $lines = parseData( $data );
- function parseData( $data )
- $lines = array ();
- foreach ( $data ->< ‘log’ >->< ‘pages’ >as $page )
- $exclude_url = array ();
- foreach ( $data ->< ‘log’ >->< ‘entries’ >as $entrie )
- if ( $entrie ->< ‘pageref’ >!= $page ->< ‘id’ >) continue ;
- if (! empty ( $exclude_url [ $entrie ->< ‘request’ >->< ‘url’ >])) continue ;
- if ( false and preg_match( ‘/d+-d+-d+Td+:d+:d+.(d+)/’ , $entrie ->< ‘startedDateTime’ >, $m ))
- $id = strftime( ‘%Y%m%d%H%M%S’ , strtotime( $entrie ->< ‘startedDateTime’ >)) . $m [ 1 ];
- > else
- $id = $entrie ->< ‘startedDateTime’ >;
- >
- $lines [ $id ][] = ‘$cookie_file = ‘cookie.txt’;’ ;
- $lines [ $id ][] = » ;
- $headers = array ();
- foreach ( $entrie ->< ‘request’ >->< ‘headers’ >as $header )
- $headers [ $header ->< ‘name’ >] = $header ->< ‘value’ >;
- >
- $lines [ $id ][] = ‘$ch = curl_init();’ ;
- $lines [ $id ][] = ‘curl_setopt($ch, CURLOPT_URL, » . $entrie ->< ‘request’ >->< ‘url’ >. »);’ ;
- $lines [ $id ][] = ‘curl_setopt($ch, CURLOPT_USERAGENT, » . $headers [ ‘User-Agent’ ] . »);’ ;
- $lines [ $id ][] = ‘curl_setopt($ch, CURLOPT_REFERER, » . $headers [ ‘Referer’ ] . »);’ ;
- $lines [ $id ][] = ‘curl_setopt($ch, CURLOPT_ENCODING, » . $headers [ ‘Accept-Encoding’ ] . »);’ ;
- $lines [ $id ][] = ‘curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);’ ;
- $lines [ $id ][] = ‘curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);’ ;
- $lines [ $id ][] = » ;
- $lines [ $id ][] = ‘$header = array();’ ;
- $lines [ $id ][] = ‘$header[] = ‘Accept: ‘ . $headers [ ‘Accept’ ] . »;’ ;
- $lines [ $id ][] = ‘$header[] = ‘Accept-Charset: ‘ . $headers [ ‘Accept-Charset’ ] . »;’ ;
- $lines [ $id ][] = ‘$header[] = ‘Accept-Language: ‘ . $headers [ ‘Accept-Language’ ] . »;’ ;
- $lines [ $id ][] = ‘$header[] = ‘Pragma: ‘;’ ;
- $lines [ $id ][] = ‘curl_setopt($ch, CURLOPT_HTTPHEADER, $header);’ ;
- switch ( $entrie ->< ‘request’ >->< ‘method’ >)
- case ‘GET’ :
- $lines [ $id ][] = ‘curl_setopt($ch, CURLOPT_POST, false);’ ;
- break ;
- case ‘POST’ :
- if ( $entrie ->< ‘request’ >->< ‘postData’ >->< ‘mimeType’ >== ‘application/x-www-form-urlencoded’ )
- $lines [ $id ][] = ‘curl_setopt($ch, CURLOPT_POST, true);’ ;
- > else
- $lines [ $id ][] = ‘curl_setopt($ch, CURLOPT_POST, false);’ ;
- >
- $lines [ $id ][] = » ;
- $lines [ $id ][] = ‘$fields = array();’ ;
- foreach ( $entrie ->< ‘request’ >->< ‘postData’ >->< ‘params’ >as $param )
- $lines [ $id ][] = ‘$fields[] = » . $param ->< ‘name’ >. ‘=’ . $param ->< ‘value’ >. »;’ ;
- >
- $lines [ $id ][] = » ;
- $lines [ $id ][] = ‘curl_setopt($ch, CURLOPT_POSTFIELDS, implode(» ;
- break ;
- default :
- die (print_r( $entrie ));
- >
- if ( $entrie ->< ‘response’ >->< ‘status’ >== ‘302’ )
- $lines [ $id ][] = ‘curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);’ ;
- $lines [ $id ][] = ‘curl_setopt($ch, CURLOPT_AUTOREFERER, true);’ ;
- $exclude_url [ $entrie ->< ‘response’ >->< ‘redirectURL’ >] = true ;
- > else
- $lines [ $id ][] = ‘curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);’ ;
- $lines [ $id ][] = ‘curl_setopt($ch, CURLOPT_AUTOREFERER, false);’ ;
- >
- $lines [ $id ][] = ‘curl_exec($ch);’ ;
- $lines [ $id ][] = ‘curl_close($ch);’ ;
- $lines [ $id ][] = » ;
- >
- >
- return $lines ;
- >
- ?>
Источник: habr.com
программа для автоматизации всего в автомобиле на Андроиде
Продолжаю тему про программы для Android CarPC.
На этот раз хотел бы поделится информацией о замечательной и универсальной программе по автоматизации действий на Андроиде.
Это программка очень пригодится всем, тем у кого есть в машине, например головное устройство на Андроид, или же кто пользуется планшетом в авто.
Программа эта называется MacroDroid. Это универсальная программа для автоматизации каких либо действий на андроид устрйоствах.
Она позволяет назначить любые действия при наступлении каких то опредленных событий. Т.е. другими словами, позволяет автоматизировать какие то необходимые вам действия, при наступлении нужных Вам условий. Применять ее можно для чего угодно в пределах функциональности самого устройства и операционной системы андроид. И ограничена она всего лишь полетом вашей фантазии
Она очень многофункциональна и универсальна. Вы сможете легко настроить ее под свои нужды конкретно в ваших условиях. Такие программы не являются новинками на Андроиде. Самая известная из них это Tasker.
Бесспорно это очень мощная и крутая программа, ну уж очень она мудренная и замороченная в плане интерфейса, очень уже много в ней непонятных мест, и не очевидных моментов., да и первоначальный порог вхождения (освоения) достаточно высок. А вот MacroDroid как раз и выгодно отличается в лучшую сторону от Tasker. Очень интуитивно понятный и грамотной оформленный интерфейс, легкое написание своих скриптов (команд), и при этом богатейший функционал. Программа MacroDroid к тому же в отличие от Tasker бесплатна и не требует рутования (получения root прав) устройства.
В двух словах о том, как же она работает. Для начала вы выбираете условие (триггер) при наступлении которого будет выполняться какое то действие. Причем условия могут быть какие угодно, например запуск определенной программы, включениевыключение Wi-fi, Блютуз, изменение громкости, нажатие какой либо клавиши, изменение уровня посдветки, блокировка экрана и еще тысячи вариантов.
Причем условие может быть как на включение чего либо, так и на отключение. Затем после выбора триггера, вы выбирате то, что хотите чтобы программа сделала после наступления заданного в предыдущем пункте условия.
Действие может быть опять же любое на ваш выбор, например, запуск программы, включение беззвучного режима, подсоединение к определенной сети wi-fi, вывод сообщения на экран, и прочее, прочее, вариантом масса. Причем как и при выборе триггера (условия). само действие может быть задано как на включение так и на выключение. Но и это еще не все. Здесь же вы можете задать программе как поступать. Исполнять выбранное вами действия сразу же немедленно, или же можете задать задержку исполнения, указав время задержки, если вы хотите чтобы действие исполнилось не сразу а, например, через некоторый промежуток времени.
Причем действие может быть не одно, их можно назначать хоть целый список. И все они будут выполняться одно за другим автоматически, без вашего участия. Очень удобно. Приведу простой и хаотичный пример. Например, вам вдруг понадобилось чтобы при нажатии, допустим клавиши увеличения громкости, у вас бы включался Wi-fi, открывался калькулятор, выводилось на экран слово «Пока неудачники !», измерялись координаты вашего местоположения по GPS, при этом отсылалось смс сообщение с текстом «Долбоящеры и диплодоки» на номер городской администрации, и спустя 1 минуту телефон перезагружался.
Если вам вдруг понадобится такое безумство, вы его легко можете организовать, написав в этой программе простой скрипт (последовательность). Все, это вы легко можете организовать за пару минут. Я конечно слегка утрировал, но смысл понятен.
Самое главное в этой программе- это ее гибкость в плане настройки под конкретные нужды. Каждый может написать свой скрипт под себя.
Самый простой и очевидный вариант использования данной проги. Это например при подачи питания на вход для зарядки (т.е. при запуске двигателя), ваше устройство может включить экран, разблокироваться, включить блютуз, вайфай, или мобильную точку доступа, открыть музыкальный плеер, начать воспроизведения композиции, запустить навигатор.
А при отключении двигателя (при отсутствии питания на устройстве), можно сделать все наоборот. Поставить плеер на паузу, закрыть все приложения, войти в режим полета (отключение всех беспроводных интерфейсов, чтобы не расходовать аккум), заблокироваться, и потушить экран, войдя в режим ожидания. Очень удобно. Повторяю, это просто один самый простой и очевидный вариант использования, но вы, используя эту прогу можете сделать так, как вам нравится и в том варианте, в котором именно Вам нужно.
P.s. ссылка на прогу: play.google.com/store/app…d=com.arlosoft.macrodroid
и еще одна — 4pda.ru/forum/index.php?showtopic=374521https://www.drive2.ru/l/501975437665108558/» target=»_blank»]www.drive2.ru[/mask_link]