Статьи » Обучающие статьи » Общая


Делаем чат-бота для сайта ModGames.net


FyFen


Автор статьи: FyFen

Добавлено: 05 Июня 2016 в 21:51 | Обновлено:
Просмотров: 2420 | Комментарии: 14




Недавно я наткнулся на программу, позволяющую автоматизировать процесс работы компьютера, задавая ей определенные действия – макросы. С ее помощью вы можете задавать простейшие команды: каждый час отправлять сообщение определенному кругу лиц или проверять наличие новых модификаций на сайте и сообщать о новинках по почте или во всплывающем окне. Можно делать и более сложные вещи, позволяющие облегчить рутинную работу: сбор вложений из определенных писем в указанное место на компьютере или автоматическое заполнение готовых форм на основании информации из интернета.

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

Я постараюсь поделиться своим опытом в виде уроков по созданию разных макросов. По большей степени, учился я моим любимым методом – тыка.  Главное, чтобы создать свой макрос нужно продумать логику и составить максимально простой маршрут от начала и до конца, чтобы облегчить работу себе и ускорить работу программы.

Не стоит разбегаться раньше времени, программа действительно интересная, способов ее применения очень много!

Урок: «Чат-бот для сайта ModGames.net»

1. Вступление

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

Что касается сложности обучения. Скажем так, если вы заполучите и впоследствии установите программу, то, я считаю, ваших знаний будет достаточно. Надеюсь, все меня поняли и можно приступать непосредственно к открытию программы.

2. Первые шаги

Как видно из скриншота ниже, ничего заумно сложного нет. Лента для работы с макросом, стандартная для всех программ кнопка «меню» и рабочее пространство в нижней части окна.
 

Повернем голову чуть левее и увидим «инструментарий», где предоставлены всевозможные действия, которые понимает как программа, так и вы. Чтобы начать работу и задать первое действие необходимо просто зажать желаемое и перетащить в центральное окно, в котором будет строиться ваша программа.
 
 
Для примера я взял самое первое действие, которое отвечает за запуск порграммы, открытие файла или переход по ссылке. Чтобы активировать конкретное действие нажимаем на него. Смотрим внимательно на картинку и поворачиваем голову направо.
 
 
В пункте «овновной» задаются основные параметры вашего действия. Вводим в первую строку ссылку на наш бесконечно любимый сайт модификаций: http://modgames.net/
 
 
Вуаля! Макрос готов. Все просто - при нажатии на кнопку «Выполнить» программа начнет выполнять ряд поставленных действий. Так как на данном этапе у нас только одно действие макрос откроет браузер по умолчанию (у каждого свой) и перейдет по ссылке. Однако, если вы желаете перейти по ссылке и следующим действием нажать на какую-то определенную часть интерфейса сайта вы можете потерпеть фиаско. Мы столкнемся с первой проблемой – время выполнения действия. По стандарту, на каждое действие дается ноль секунд. Ввиду того, что страницы браузера открываются не мгновенно, следующий шаг может прийтись по пустому, еще не загруженному, окну. Чтобы задать время выполнения шага переходим во вкладку «Общие» (правая часть рабочего окна).
 
 
Выставляем значения по своему усмотрению. Ставим таймаут выполнения на 3-5 секунд и обязательно говорим макросу подождать 5-7 секунд после выполнения шага. Исходя из логики, если вы не поставили параметры времени на первом шаге, то на втором действии необходимо будет подождать не после выполнения, а до него.

3. Делаем макрос

Закрепим результат и добьемся следующего: переход по ссылке на сайт и открытие чата мг в новом окне с последующим вводом предложения «Всем привет» в зависимости от того, когда было оставлено последнее сообщение. Данный макрос можно выполнить в два-три действия, но нас не интересует упрощение. Речь идет о понимании принципа работы.

Шаг первый: Пробегаемся самостоятельно по тому пути, который должен пройти ваш макрос.

Вы должны видеть через что придется пройти программе прежде чем она дойдет до конечной точки. В противном случае это уже будет создание макроса пальцем в небо.

Шаг второй:  Пошагали.

Переход по ссылке на сайт у нас уже есть. Далее, в чат можно попасть через вкладку «Чат MG» (находится в шапке сайта).
 
 
Администрация позаботилась о нас, чтобы мы себя не напрягали и сделала вкладку, открывающуюся при наведении на нее курсором. Значит второе наше действие будет «Поиск объекта на экране» - устанавливает курсор в выбранные координаты на экране. Перетаскиваем действие под первое или кликаем по нему два раза. В этом случае действие автоматом упадет в самый низ.
 
 
Сразу после происходит активация действия и нам предлагают выбрать точку или элемент на экране нажав клавишу «ctrl». Отменить выбор можно нажатием на клавишу «esc». В любой момент вы сможете изменить или задать элемент на экране просто кликнув два раза по уже добавленному шагу. Выбираем точку на экране так, чтобы мышка была на вкладке «Чат MG».
 
 
Со вторым шагом мы разобрались. Параметры времени можно не ставить.
 
 
Шаг третий: Нажатие на кнопку в открытой вкладке.

Окей, мы уже перешли по ссылке и открыли вкладку с необходимой для нас кнопкой. Теперь нужно нажать на нее. Чисто по совпадению так получилось, что далеко идти не нужно и для третьего шага нам понадобится действие под номером три: «Мышь и клавиатура». Перетаскиваем в рабочее поле.
 
 
Настраиваем действие. Вкладка «Клавиатура» позволяет нам набрать любой текст в выбранное поле. Вернемся к этой настройке чуть позже. Переходим во вкладку «Мышь». В открывшемся окне выбираем необходимое.
 
 
В нашем случае необходимо просто нажать левой клавишей мыши, что мы и выбираем. Впоследствии, можно повторно выбрать настройки мыши и добавить еще одно нажатие по вашему выбору.
 
 
Шаг четвертый: Указываем место, куда необходимо нажать.

Изучив инструментарий вы найдете готовые действия, позволяющие сразу выбрать место на экране и нажать на него. Говоря начистоту, основой такого действия является «Поиск объекта…». Если вы вернетесь на шаг назад и зайдете в основную вкладку действия «Поиск объекта…», вы обнаружите поле «Послать объекту». Там вы увидите уже знакомые вкладочки: «Клавиатура» и «Мышка». То есть данное действие поможет найти объект и нажать на него.
 
 
Так как мы идем через одно место, следующим шагом будет еще одно действие «Поиск объекта…». Не забываем, нам нужно указать куда нажимать. Перетаскиваем новое действие между вторым и третьим шагом и указываем мышкой на кнопку «В новом окне».
 
 
Теперь наш макрос научился переходить по ссылке на сайт, находить кнопку «В новом окне» во вкладке «Чат MG» и активировать ее, открывая окно чата. Все работает.

Шаг пятый: Что если?

Смею предположить, вы уже догадались как сделать так, чтобы макрос нажал в поле ввода сообщение и сказал «Привет». Но, давайте сделаем его чуть-чуть интересней и интерактивней. Нам необходимо сделать так, чтобы макрос понимал - либо последнее сообщение написано сегодня, либо оно написано вчера, либо в любой другой день. Следовательно, по тому когда именно было написано сообщение наша программа должна ответить в чат определенным образом.
 
 
Найдем в окне чата опорные пункты, которые позволят сказать программе, когда было оставлено сообщение, то бишь текст: сегодня или вчера. Важно понимать, что нам нужно найти такое место, где оба эти слова стоят в одном и том же месте, независимо от того кто писал сообщение. С нашим вариантом, опять же, все просто - нам в любом случае нужна информация из первого сообщения, когда оно было написано. Слово «сегодня/вчера» в первом сообщении ни при каких условиях не будет менять свое положение, нежели слово «сегодня/вчера» из второго сообщения. Кто-то может написать слишком большой текст, из-за чего окно сообщения увеличится и нужные для нас опорные слова сместятся – макрос впадет в ступор. Не будем о плохом и вновь кинем свой взор на инструментарий. Мы продолжаем идти плавно по каждому действию и хватаем в рабочее поле «Условие (Если..Иначе)» - данное действие позволяет задать уловие при котором будет выполняться одно действие или другое.
 
 
Текст в желтой рамке, разделяющий три части нашего действия, просто подсказывает что и куда ставить, его можно удалить. Дальше задаем переменную которая будет влиять на наше действие-условие. Тут действуем по аналогии с тем, что мы делали выше. Перед действием «Условие…» выполняем следующие шаги:

- Нажимаем двойным кликом на время последнего сообщения, конкретно на слово «Сегодня/Вчера».
- На выделенном слове нажимаем правой кнопкой мыши.
- В открывшемся поле нажимаем на кноку «Копировать» (можно попробовать скопировать слово в буфер другими способами, но данный вариант самый надежный, если речь идет о макросе).
 
 
Ничего нового и координально сложного в текущих трех действиях нет. Сейчас мы нашли слово определяющее время написания сообщения, и осталось только занести его в переменную, которая уже будет влиять на дальнейшие действия макроса. То есть, если маркос скопирует слово «сегодня», он напишет «Привет всем!», если макрос скопирует слово «вчера», он напишет «Есть кто живой?!». Перетаскиваем из инструментария действие «Установка переменной или вызов функций» - позволяет записать любое значение под переменной типа {*название переменной*}. С помощью данного действия мы присваиваем переменной наш скопированный текст.
 
 
Обзываем переменную как вашей душе угодно, для удобства я назвал просто {a} (обращаю ваше внимание на скобки - должны стоять именно фигурные). Дальше нажимаем следующее: «Вставить значение» -> «Буфер обмена» -> «Текст из буфера обмена».
 

Настраиваем условие для последнего добавленного действия. Активируем условие и поочередно настраиваем каждое поле:

-> Первая переменная (или значение) – первое значение, которое будет сравниваться со следующим (см. далее). В нашем случае выбираем созданную переменную, нажав на стрелочку справа от поля ввода.
-> Условие – как именно оба значения будут сравниваться. Выбираем «равно» или «содержит». Лучше ставить «сожержит», так как если программа увидит лишний пробел или любой другой символ, она посчитает, что значения не равны.
-> Вторая переменная (или значение) – второе значение для сравнения с первым. Это значение должно оставаться фиксированным, т.к. именно с ним будет сравниваться первое – постоянно меняющееся («Сегодня» или «Вчера»). Пишем слово «Сегодня».
-> Сравнить как – уточняет принцип сравнения. Ставим «текст».
 
 
Итого: действие будет брать скопированное значение, переведенное в переменную, и сравнивать его с фиксированным. Если оба значения равны, выполняется первая часть действия, если значения не равны, выполняется вторая часть действия. «Если» – равны, «Иначе» – не равны. Добавим, соответственно, те действия, которые мы хотим совершить при положительном или отрицательном результате. В первую очередь добавляем в каждый вариант событий по одинаковому действию – нажать на поле ввода текста. Далее, с помощью действия «Мышь и клавиатура», вводим желаемый текст, который макрос должен написать в поле ввода сообщения.
 
 
Шаг шестой: Отправить.

Добавляем последнее действие, которое будет нажимать на кнопку «Ок» (отправить сообщение в чат).
 
 
4. Заключение

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

Надеюсь, что урок был всем понятен. С радостью отвечу на ваши вопросы. Не серчайте, если кого-то возмутила тема урока. Дальше я бы хотел поговорить о создании спам-бота – вот это другое дело!
Всех вам благ и богатырского здоровья! 




Теги: урок по MouseRobot


Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Всего комментариев: 14


0
№:14 от Alex--Zek
563
| Гражданин | в 22:25 (17 Июня 2016)
Это конечно интересно, но может лучше использовать программу xStarter, она бесплатна для всех стран СНГ. Что касается функционала, ничего сказать не могу, я не юзал MouseRobot, а xStarter мне понравился.

P.S. Ну что, поюзал я MouseRobot и могу сказать, что xStarter куда более функциональней, хотя работать с макросами удобней именно MouseRobot. Но это и понятно, ведь MouseRobot специализируется именно на них, а в xStarter, макросы играют далеко не самую главную роль. Так что, если говорить о том, кто лучше подходит для автоматизации повседневных задач, то я отдаю своё предпочтение именно xStarter.
Посмотреть профиль Alex--Zek

0
№:10 от JohnnyGet
484041
| Проверенный | в 18:03 (10 Июня 2016)
Э-эм... Зачем это?
Посмотреть профиль JohnnyGet

0
№:11 от FyFen
131142
| Редактор | в 20:23 (10 Июня 2016)
Э-эм... В тексте написаны примеры и области, в которых можно использовать программу.
Посмотреть профиль FyFen

0
№:12 от JohnnyGet
484041
| Проверенный | в 19:45 (11 Июня 2016)
Нет-нет, суть вопроса в том, где это пригодится? Кому нужен чат-бот на страницах Модгеймса?
P.S.: К тому же, передразнивать человека его же протяжным мычание не красиво. То же самое, что отобрать чужой травмат и выстрелить хозяину в глаз.
P.S.S.: И кто-то же должен был спросить...
Посмотреть профиль JohnnyGet

0
№:13 от FyFen
131142
| Редактор | в 00:14 (12 Июня 2016)
Это просто пример того, что может программа. smile2
Посмотреть профиль FyFen

+1
№:8 от kordal
762266
| Модератор | в 17:57 (06 Июня 2016)
И вот еще что, о самом главном... Почему файл проекта не приложил?
Посмотреть профиль kordal

0
№:9 от FyFen
131142
| Редактор | в 22:48 (06 Июня 2016)
Потому-что:
1) Это не готовое решение. У меня другое разрешение монитора - как минимум.
2) Первый простейший урок нет смысла выкладывать. Он просто побаловаться если только. Так, у человека не будет желания пойти по простому пути и если его действительно заинтересует прога, он может и научится. Вот, если получится сделать вменяемого спам-бота, то, в этом случае поделюсь файлом. Так же, есть мысль общения с компьютером через почту путем простейших команд: скинуть скриншот содержания папки, на случай, если тебе нужен какой-то определенный файл, ты примерно знаешь где он лежит, но не помнишь точного названия, чтобы сказать компьютеру полную команду, чтобы он прислал тебе этот файл. Всякие такие штуки "полноценные" программы, да, буду скидывать.
Посмотреть профиль FyFen

+1
№:4 от kordal
762266
| Модератор | в 13:59 (06 Июня 2016)
Программа для побаловаться, не боле того. Если ее использовать как "самостоятельный инструмент", о чем рассказывает статья, то Вы наткнетесь на ряд недостатков:
  • Всегда открытый браузер или любая другая программа, где требуется подтверждение клика мышью. Всякие таймеры сна и пр. не в счет, когда настанет время, грабли стукнут прямо в лоб снова.
  • Невозможность параллельно работать за компьютером!
  • Программа, за которой следит кликер, должна быть развернута на весь экран, либо занимать определенную область. Следствие первой и второй проблемы.
  • Проблемы с таймингом, где требуется задержка по времени на обработку каких-либо действий. Это актуально особенно в тех случаях, когда неизвестна временная константа, либо время постоянно меняется.
  • Невозможность адекватно анализировать сообщения других участников беседы. Вернее полное отсутствие такового.
  • Много других факторов.

Если же писать сложные макросы, то без программирования или глубокого понимания сути происходящего, увы не обойтись. Программа поддерживает VB и собственный псевдокод.
Единственное, что мне пришло на ум в качестве ее применения, так это серфинг сайтов за копейки. Но и там есть свои нюансы, всевозможная защита от автокликеров.
Посмотреть профиль kordal

0
№:5 от FyFen
131142
| Редактор | в 14:31 (06 Июня 2016)
- Программа сама открывает/разворачивает браузер или другую программу, где ей нужно работать.
- Смотря какие действия. Если нужно просто перетащить какой-то файл или отправить/сохранить, открыть прогу в фоне и т.д. - для такого макросу не нужна мышка и сам экран.
- Только в случае кликера. Макрос может работать в фоне.
- Есть возможность ждать завершения действия, со временем тоже все достаточно продуманно. Только, если говорить начистоту, я пока конкретно в этом моменте не разобрался.
- Возможно. Смотря что тебе нужно. Можно попробовать просто анализировать какие-то словосочетания или отдельные слова. Идеального общения увы, не будет. Это к программистам гугл, которые и так, вроде не особо продвинулись.

Ну смотри, у меня какое-то время на работе макрос выполнял часть работы: Анализ почты -> Поиск пакета документов который присылает бухгалтер(от него присылаются и другие письма, в том числе и с вложениями) -> Скачивание счета/счет-фактуры/товарной накладной на компьютер -> Создание папки с названием *Номер накладной + Наименование организации* -> Печать документов в заданном количестве -> Перемещение документов в созданную папку -> Перемещение папки с документами в одну из двух папок, в зависимости от того, на какую организацию сделаны документы. Программа получилось с небольшими недостатками, но, работала и помогала хорошо. Так-что, все зависит от фантазии и конечно же поставленной задачи.
Посмотреть профиль FyFen

0
№:7 от kordal
762266
| Модератор | в 17:39 (06 Июня 2016)
А вы батенька - ленивый! :D За изобретательность однозначно большой плюс, я всегда за ускорение работы и оптимизацию!
Цитата
Программа сама открывает/разворачивает браузер или другую программу, где ей нужно работать
Да понятно. Это огромный минус в случае, если работать с интернетом и офисом (Браузеры, почтовые клиенты, офис и пр.) Вот если бы она умела трафик разбирать по определенным критериям, то было бы хорошо. С MS Office например, можно общаться по технологии OLE, без всяких симуляций ввода-вывода и пр. нажатий. Я на страничке с хелпом не одного полезного макроса не нашел в качестве примера. Резервное копирование файлов можно батниками сделать, запихнув в планировщик. Доверенность у нас отменили. Ее проще в MS Word было так забить, либо же через онлайн сервис оформить. Вот там примеры-то и закончились.

Цитата
Есть возможность ждать завершения действия
Может это и хорошо, но сколько она будет ждать, если приложение подвисло или работает в фоне? По таймауту? А если результат выполнения каждый раз отличается? Рискну предположить, что обучать прогу на псевдокоде придется целый год. Дай бог потом бы не запутаться. В таком случае проще язык выучить и написать софт под конкретную задачу.

Для простецких вещей наверное сгодится. В любом случае, спасибо за статью. Кто-нибудь найдет ей применение.
Посмотреть профиль kordal

0
№:3 от nestquik
1246036
| Локализатор| в 11:33 (06 Июня 2016)
Ну если это актуальная тема, то можно вообще создать клиент для этого чата со всякими наворотами в виде звуковых уведомлений о сообщении.  :D
Посмотреть профиль nestquik

0
№:6 от FyFen
131142
| Редактор | в 14:34 (06 Июня 2016)
Это уже знания другие нужны))
Посмотреть профиль FyFen

0
№:2 от Gоблин
79166
| Модератор | в 10:20 (06 Июня 2016)
Так вот почему чат еще жив. :D
Посмотреть профиль Gоблин

0
№:1 от alef
173259
| Проверенный | в 23:56 (05 Июня 2016)
Славная вещь. На классике CTF пока ещё никто защиту не успел намутить, можно будет снимать флаги.
Посмотреть профиль alef
Набор в команду сайта
Наши конкурсы
Каталог файлов
Skyrim Special Edition [211]
Fallout 4 [741]
TES V: Skyrim [3999]
TES IV: Oblivion [545]
Fallout: New Vegas [2138]
Fallout 3 [1061]
Моды в разработке [43]
Dragon Age: Inquisition [221]
Dragon Age 2 [244]
Dragon Age: Origins [571]
Ведьмак 3 [66]
GTA 5 [41]
GTA 4 [131]
GTA SA [95]
S.T.A.L.K.E.R. Зов Припяти [62]
S.T.A.L.K.E.R. Чистое Небо [43]
S.T.A.L.K.E.R. Тени Чернобыля [90]
Другие разделы

Подразделы:


Общая [31]
Adobe Photoshop [16]
Для мододелов [42]


Последние рецензии
Anima: Gate of Memories
Tyranny - когда плохим быть не плохо
Фоллаут 4: почему он так хорош...
DOOM. На Марсе классно. Часть 2
DOOM. На Марсе классно. Часть 1
Трудные будни полицейского в This is the Police
This War Of Mine: "In war, not everyone is a soldier".
Fallout 4: Vault-Tec Workshop - обзор
Следите за нами:



Статистика
Онлайн всего: 815
Гостей: 345
Пользователей: 470




Вверх Вниз