100000 друзів Петрика П’яточкіна або перше знайомство з iMacros.

Механізми створення макросів, як засобів автоматизації роботи користувача реалізовані в багатьох програмних продуктах. Microsoft чи Open Office в цьому напрямку далеко не винятки. Добралися макроси і до користувачів Інтернет.
На перший погляд важко уявити які рутинні однотипні дії може виконувати з браузером пересічний користувач. Проте для людей, професійна діяльність яких протікає безпосередньо в тенетах Інтернету, макроси могли б стати в нагоді, скажімо, для автоматичної публікації оголошень про нові види товарів та послуг, збору тематичної інформації і т.п.

Розглянемо створення Інтернет-макроса на прикладі такої ситуації: Відомий мульт-персонаж Петрик П’яточкін щойно зареєструвався в соціальній мережі Вконтактє і вирішив швидко наповнити свій список друзів. Оскільки наш персонаж доволі знаменитий, то знайомих в нього може виявитися дуже багато, хоча особисто Петрик нікого з них не знає. Тому він вирішує шукати друзів серед учасників тематичних об’єднань відповідного спрямування, відсилаючи запрошення усім їх учасникам.

Ось тут і виникає рутинна задача (надіслати запит дружби усім користувачам із деякого списку) утворена із ослідовності ономанітних маніпуляцій. Оскільки наш герой трохи знайомий із поняттям макроса в Open Office, то намагаючись знайти аналогічний інструмент для Інтернет-переглядача випадково натрапляє на згадку про браузерне розширення iMacros, про яке далі йтиме мова.

Вікно iMacros

Крок 1. Приготування інструмента. Інструментом в нашому випадку буде розширення iMacros for Firefox (для Internet Explorer чи Google Chrome є аналогічні доповнення). Його необхідно встановити командою Інструменти=> Додатки з меню браузера. Далі достатньо скористатися пошуком додатку з назвою iMacros та кнопкою “Встановити”. Після встановлення додатку сдід перезавантажити браузер. Після перезавантаження на панелі інструментів Firefox з’явиться кнопка iMacroButton (iOpus iMacros), за допомогою якої відкривають вбудоване в браузер вікно розширення для макросів.

Це вікно містить список доступних для виконання макросів у верхній частині, а нижня його частина має три вкладки з командами відповідного призначення: “Play” (Відтворити), “Record” (Записати), “Manage” (Керувати).

Крок 2. Використання макрорекордера. Для запису макроса за допомогою iMacros активуємо вкладку “Record” (Записати). Як домовлено напочатку, відправка запитів дружби повинна проводитися серед користувачів з деякого списку, тому перед записом заходимо в мережу “Вконтакте” і відкриваємо список користувачів якої-небудь спільноти (наприклад, “Мультики”). Після початку запису перйдемо на сторінку якого-небудь користувача спільноти, натиснемо там кнопку “Долучити до друзiв” і повернемося назад до списку користувачів. Далі зупинимо запис кнопкою “Стоп”, в списку повинен з’явитися файл #Current.iim з кодом щойно записаного макроса (при бажанні його можна зберегти на диск з іншою назвою), відкривши який побачимо приблизно такий код.

Код 1

Відкрити код макроса можна кнопкою “Редагувати” на вкладці “Manage” (Керувати), або відповідною командою з контекстного меню у списку макросів.

Крок 3. Аналіз коду. Навіть мінімальний досвід зпрограмування та поверхове знання html дозволяють розгледіти в отриманому коді наступні команди:

  • Стрічка 1 є описовою і не братиме участі в виконанні.
  • Стрічка 2 вказує що макрос виконуватиметься на першій вкладці браузера. Якщо ми розраховуємо на запуск макроса з поточної вкладки, цю команду можна видалити.
  • Стрічка 3 задає перехід на сторінку за вказаною адресою (url). Навіть якщо при записі макроса не було переходу на іншу сторінку, iMacros зафіксує поточної сторінки. Для нашого експерименту цю команду слід обов’язково видалити, адже ми розраховуємо використовувати свій макрос на різних списках користувачів.
  • В стрічках 4 і 5 зафіксовано які елементи на сторінці було обрано (посилання на сторінку Маші Ткаченко в списку користувачів та кнопка “Долучити до друзiв” уже на її сторінці).
  • Команда BACK повертає браузер до попередньої сторінки зі списком користувачів.

Отриманий код, очевидно, не дасть нам змоги вирішити проблему нашого мульт-героя, оскільки “зав’язаний” на сторінку конкретного користувача. Це змушує нас звертатися до довідкових матеріалів про <а href="http://wiki.imacros.net/Command_Reference">команди iMacros. Добре, що розробники завчасно про це попіклувалися.

Крок 5. Ще одна спроба. Допитливий і непосидючий Петрик спостеріг, що кнопки “Долучити до друзiв” є не тільки на персональній сторінці, але і на сторінці загального списку користувачів групи. І відразу записав ще одного макроса.

Код 2

Як бачимо цього разу макрорекордер підійшов по-іншому до опису натискання кнопки, оскільки одноіменних кнопок на сторінці цього разу виявилося надто багато. Підглянувши нарешті в довідку, наш мульт-персонаж з’ясував що параметр POS команди TAG вказує порядковий номер елемента в списку тих елементів сторінки, що відповідають заданому типу та атрибутам. При нагоді він також дізнався, що iMacros розуміє команду WAIT яка дозволяє призупинити виконання макроса на вказану кількість секунд. Поєднавши елементи обидвох раніше записаних макросів, Петрик отримав код макроса, що запрошує в друзі перших трьох знайдених користувачів групи:

Код 3

Крок 6. Застосовуємо Javascript.
Зауваживши, що у вікні iMacros крім кнопки “Відтворити” є ще і “Відтворити(Цикл)”, Петрик знову звернувся до довідки де встановив, що змінна !LOOP зберігає номер поточного повтору макроса при циклічному відтворенні. Тому остаточний код макроса в нього вийшов доволі короткий:

Код 4

На завершення хотілося б застерегти майбутніх послідовників Петрика від надто активних макро-експериментів з соціальними мережами, адже автоматичні дії тут доволі добре віслідковуються і надмірна їх інтенсивність може призвести до різних неприємних наслідків, аж до блокування облікового запису.

Перевірити роботу макроса