Команды Imacros

В этой статье я постараюсь наиболее полно представить основные команды Imacros, снабдив их примерами кода. Многие полагаются на инструмент записи скриптов Imacros.

Я считаю, что он полезен для того, чтобы сформировать основное тело скрипта для Imacros. В конечном итоге такой скрипт все равно придется править руками. Основная работа над скриптами в Imacros – это попытки побороть его “глюкавость” и заставить сделать то, что вам требуется.

Тут вам и пригодится эта страница. Я решил сделать ее в форме ответов на те вопросы, которые мне уже задавали на старом блоге.

Как задать паузу в скрипте Imacros?

Пауза выполнения скрипта в Imacros задается следующим образом:

WAIT SECONDS=60

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

Если вы хотите постоянную паузу, чтобы скрипт ждал ваших действий – используйте следующий код:

Pause

Если вы желаете сделать рандомную паузу – используйте следующий код:

SET !VAR1 EVAL("var randomNumber=Math.floor(Math.random()*10 + 1); randomNumber;")
URL GOTO=http://www.iopus.com
' waits 1 to 10 seconds
WAIT SECONDS={{!VAR1}}

Как сделать так, чтобы скрипт кликнул в определенном месте экрана?

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

Эта команда будет полезна, если сами атрибуты генерируются динамически и каждый раз разные, либо в случаях, когда скрипт Imacros “спотыкается” или останавливается в каком-то месте.

CLICK X=411 Y=133

Как сделать клик по координатам в Imacros

1. Заходим в настройки Imacros

Опции Imacros

2. В настройках находим кнопку “recording preferences” и жмем на нее.

клик по координатам Imacros

В открывшимся окне выбираем “Use X/Y position” и жмем ОК. Это окно закрывается. Остается предыдущее, там не забываем нажать кнопку “Apply”.

3. Запускаем запись макроса и кликаем в нужное место.

В коде конструкция будет такая:

CLICK X=226 Y=6806

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

Скрипт останавливается в определенном месте. Как сделать чтобы он продолжал свою работу?

Из-за ограниченности самого Imacros, возможности по реализацию циклов в нем сильно урезаны. Поэтому можно указать последовательно несколько условий. Если условие не выполняется, скрипт пойдет дальше игнорируя ошибки и дойдет до того условия, которое верно и выполнит его.

SET !ERRORIGNORE YES
SET !ERRORCONTINUE YES

В следующем примере вы увидите, куда вставляются данные строки в скрипте.

Вкладки в браузере именуются по порядку, соответственно, если вы укажете 1 и 3 вкладку, не открыв вторую, скрипт будет работать не корректно.

В данном примере скрипта Imacros последовательно открываются три вкладки в браузере, потом закрывается вторая вкладка. Последняя команда закрывает все вкладки.

VERSION BUILD=8890130 RECORDER=FX
SET !ERRORIGNORE YES
SET !ERRORCONTINUE YES
'После этого символа можно комментировать
TAB T=1
'Команда открытия новой вкладки
TAB OPEN 
'Команда перехода на 2 вкладку
TAB T=2  
'Команда ожидания в 5 секунд
WAIT SECONDS=5 
TAB OPEN
TAB T=3
WAIT SECONDS=5
TAB OPEN
TAB T=4
WAIT SECONDS=5
'Команда перехода на 2 вкладку
TAB T=2 
'Команда закрытия 2 вкладки
TAB CLOSE 
WAIT SECONDS=5
'Команда закрытия всех вкладок
TAB CLOSEALLOTHERS

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

Важная особенность – комментарии должны всегда располагаться с новой строки, т.е. не стоять в одной строке с командами скрипта во избежании ошибок.

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

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

Как обновить окно браузера?

REFRESH

Как очистить кэш и кукисы?

CLEAR

Как заставить скрипт отключиться от сети (выйти в оффлайн)?

DISCONNECT

Как поменять скорость работы скрипта?

SET !REPLAYSPEED 1

1 – быстро, 2 – нормальная скорость, 3 – медленная скорость

Можно еще снизить скорость скрипта следующей командой.

SET !REPLAYSPEED SLOW

Как заставить скрипт ждать окончания загрузки страницы?

WAIT SECONDS=#DOWNLOADCOMPLETE#

Как сделать переход по URL адресу?

В скриптах можно сделать как клик по определенному месту на сайте, так и задав непосредственно адрес перехода. Данная команда Imacros указывает скрипту сделать переход по URL адресу, в не зависимости есть ли ссылка на этой странице или нет.

URL GOTO=http://semmblog.ru/

Данная конструкция дает команду скрипту искать текст “OpenSuse 13.2 обзор” на целевой странице, и если он там присутствует, произвести клик по нему.

TAG POS=1 TYPE=A ATTR=TXT:OpenSuse<SP>13.2<SP>обзор

Как сделать импорт из текстового файла?

Хочу обратить ваше внимание, что в большинстве примеров указывается файл импорта в формате .csv, но после некоторых экспериментов я пришел к выводу, что для этого все таки лучше использовать обычный текстовой файл.

Это связано с “глюкавостью” аймакроса. В частности, в определенные моменты скрипт брал совсем не те строки что требовалось. Единственный минус такого способа – это запятые как разделители строк.

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

Данная строка дает команду скрипту читать данные из файла file.txt, который будет находиться в папке Datasources.
Чтобы узнать местонахождение этой папки, необходимо войти в опции и там выбрать вкладку “Paths”

опции Imacros

путь до папки datasorces
Естественно, у вас там будут совсем другие пути, чем у меня.

Следующая команда дает понять скрипту, сколько полей из документа следует использовать для выборки.

SET !DATASOURCE_COLUMNS 7

В данном случае это будет число семь.

Чтобы указать номер строки, с которой следует начать выборку используется следующая конструкция:

SET !LOOP 1

Следующая команда дает понять скрипту, из какой строки документа в данный момент делается выборка.

CONTENT={{!COL3}}

В данный момент из третьей строки документа.

Важное примечание для пользователей Windows: Если вы используете в качестве строк кириллический текст, советую вам использовать для создания таких файлов программу Notepad++ и сохранять файл в кодировке UTF-8 без BOOM.

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

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

Как включить воспроизведение видео на сайте

Если вам надо использовать проигрывание конкретного видео, используйте команду

URL GOTO=http://www.youtube.com/watch?v=QqD8x_8PuVk

Следующая команда заведет случайное видео из превьюшек справа на сайте youtube:

TAG POS=1 TYPE=IMG ATTR=SRC:http://*.jpg

Для клика по видео из youtube на странице сайта сработает такая конструкция.

VERSION BUILD=8920312 RECORDER=FX
TAB T=1
URL GOTO=http://semmblog.ru/avtomaticheskij-unfollow-v-twitter.html
FRAME F=1
TAG POS=1 TYPE=BUTTON ATTR=CLASS:ytp-large-play-button<SP>ytp-button&&TABINDEX:23&&ARIA-LIVE:assertive&&ARIA-LABEL:Посмотреть<SP>Автоматический<SP>unfollow<SP>в<SP>twitter&&TXT:

Ставите рекордер на запись и кликаете по видео. Настройки рекордера – автоматические (самая верхняя опция). Иногда придется несколько раз макрос писать, чтобы работало корректно.

Вот видео работы макроса:

P.S. Статья в дальнейшем будет пополняться и обновляться. Все зависит от вас. Жду ваших комментариев с вопросами.

Внимание! В последних версиях Firefox функцонал Imacros активно выпиливается. Поэтому для корректной работы скриптов используйте портабельную версию браузера не новее 47 версии.

Полезные материалы:

73 thoughts on “Команды Imacros”

  1. Спасибо за статью. Нужен был код рандомной паузы.

  2. CONTENT={{!COL3}} – это использование данных из третьего столбца, а не строки.

    1. Михаил, если бы вы внимательно прочли статью, то там написано “в данном конкретном случае”. А случай такой – обычный текстовой файл с разделителями. Для выборки из .csv это действительно был бы столбец.

  3. Semm, подскажите. Вот есть видео с Ютуба на стороннем сайте, по середине плеера стоит значок “play”, ну т.е. треугольник при наведении становиться красным. При помощи какой команды можно кликнуть на этот треугольник в imacros?

    1. Спасибо за интересный вопрос. Дополнил статью и снял видео работы скрипта. Как это сделать читайте в статье.

  4. Сем все уже перепробовал, ничего не помогает. Даже при записи макроса по координатам, клик по видео делаешь и ни какой команды в записи не отображается, что делать не знаю. А в день приходиться просмотреть более 100 видео. Уж очень это напряжно. Что может еще посоветуешь.

    1. А взять код из примера отсюда и подставить свой адрес видео пробовали? Когда пишите код в рекордере надо жать не на квадратик видео, я там где он на паузу внизу ставится (слева внизу). Я с 5 раза смог записать. Аймакрос сразу “корячился”, потом поймал. Выбирал именно автоматическое определение (верхний пункт в настройках).
      И еще один нюанс – в чем писать. Только Firefox и самый свежий Imacros. Никаких хромов и IE.

    1. Смысл в том как их смотреть. Ответьте на вопрос – что накручиваете? Если просмотры на ютюбе – можно сделать цикл с выборкой из файла адресов, например.
      А так, берете мой пример, меняете адрес воспроизведения видео в 3 строке. А в 5 строке название видео, как оно в плеере пишется через разделители вместо пробелов.

      Если трудно разобраться – дайте ссылки на эти страницы. Хотя бы парочку. Возможно там использован старый код встраивания плеера ютуба. В любом случае, придется в исходный код веб страницы залезать. Без минимальных знаний html, java-script и imacros работающий скрипт после записи получить практически нет шансов. Всегда править приходится.

  5. Сем привет, не мог ответить срочно по работе в командировку надо было уехать. Накручиваю разное видео на сайте hi-million. Набираю центы за это или кредиты. На сайте надо скорей всего зарегаться. Рега простая и слева в меню будет ссылка на просмотр “YouTube Video” жмешь на Watch и появляется плеер. Что то пробовал сам не выходит.

    1. Там сам код плеера вставлен хитро – нет навигации внизу. Реализовано через функции, я думаю это какая-то защита от автоматики.

    1. Ну если найти способ по треугольнику кликнуть.
      Мне такой не известен. Клик по координатам не сработает (так как это фрейм). Клик по координатам во фрейме тоже, так как это флеш. Советую посмотреть в сторону программы Human emulator – там больше возможностей. Плюс она не бесплатна.

      1. Human emulator-200 бакинских стоит, многовато.
        Есть ли рабочий, почти бесплатный эмулятор работы мыши?
        Спасибо.

        1. С большими возможностями clickemann.

  6. Добрый вечер! Скажите пожалуйста, как в imacros имитировать нажатие кнопки ESC, вообще возможно ли такое?

    1. В самом imacros нет. Но это можно сделать на яве или си и встроить код в скрипт.
      Также это можно сделать на Autoit и внедрить код imacros. Imacros – это надстройка для работы с браузером, поэтому он ограничен только подобными командами.

        1. Пишите скрипт на Autoit и внедряете в него код imacros. Можно вот так например:
          cd “C:\Program Files\Mozilla Firefox”
          start firefox imacros://run/?m=2.iim

  7. Кто знает как refresh страницы сделать через 3-5 цикла?

    1. Засовываете цикл в отдельный макрос, вызываете его из текущего 3 раза, потом делаете REFRESH

  8. Подскажите. Есть 15 акков от вк.
    Нужно по очередно в них зайти, какие команды подойдут для этого?
    Верна ли моя мысль. Нужно делать 2 тхт файла. В первый тхт пишел логин, во второй тхт пароль под той же строкой как и логин.
    Но какие команды использовать для этого?

    1. Нет. Читайте выше – как сделать импорт из текстового файла. Все в одном файле указывается. Можно сделать по классической схеме из csv файла. Тогда там в 1 столбце логины будут, в другом пароли. Насчет команд – ставите макрос на запись и пробуете. Потом скрипт модернизируете под несколько аков. Можно вообще без импорта из файла сделать – это зайти на все 15 с нужными логинами и паролями.

  9. Добрый день! Подскажите, как копировать текст со страницы и записать его в .txt?
    Спасибо.

  10. Подскажите, а как модернизировать скрипт под множество акков?
    Ситуация такая: имеется скрипт, который заходит в один как, делает там определённые действия и выходит.
    Нужно сделать так, чтоб скрипт после этого заходил в другой акк, делал те же действия и выходил. И так далее с другими акками по очереди. А логины от акков брал бы из текстового файла.
    Как так сделать? Можете тут написать какие команды куда добавить?

  11. привет! подскажи как сделать рефреш страницы после ошибки? тоесть макрос выполняется, происходит ошибка, но он ее игнорирует и обновляет страницу

    1. SET !ERRORIGNORE YES
      SET !ERRORCONTINUE YES
      тут тело макроса
      REFRESH

      1. не подходит, нужно чтобы рефреш был в случае ошибки

        1. Тут либо игнорирование ошибок и дальнейшая работа скрипта, либо остановка на ошибке. Условия и циклы станут доступны, если внедрять другой язык, например яваскрипт.

  12. Здравствуйте Semm. Написал макрос для сайт likesrock для Facebook Поделиться так вот там есть поделиться фоткой, поделиться ссылкой и так далее… Бывает макрос работает хорошо. Но бывает выдает ошибку и тормозиться и команды
    1
    SET !ERRORIGNORE YES
    2
    SET !ERRORCONTINUE YES

    Не помогают. Бывает что на фейсбуке выскакивает сообщение что та страница, фотка или ссылка заблокированны или что-то еще и iMacros тормозиться и перестает работать. Как этого избежать и не могли бы вы мне написать полноценный макрос для этого а то я полный ноль (( Пробовал сам и ничего из этого не вышло. Макрос который я сам сдела могу показать если нужно. Но скажу сразу он на приметивном уровне

    1. Попробуйте между разными командами в скрипте поставить небольшую паузу:
      WAIT SECONDS=5
      Или уменьшить скорость работы скрипта:
      SET !REPLAYSPEED 3

  13. Возможно ли в скрипт вставить звуковой сигнал? т.е при завершении работы скрипта идет звуковое напоминание.
    Спасибо.

    1. Возможно. Вызывается через URL GOTO=http://тут-адрес-вашего-файла
      Тут либо куда-то в интернет файл кидается, либо указывается адрес локально установленного веб сервера. Это костыли и займет кучу времени (если локальный сервер ставить или тестировать, будет ли файл проигрываться на бесплатном хостинге).
      Можете попробовать сделать так:
      URL GOTO=file:///C:/1.mp3
      Это путь для файла, лежащего в корне диска С. Но такой финт не со всеми версиями Imacros работает.

  14. Спасибо.
    Скажите а как узнать количество открытых вкладок. Бывает у меня частенько, что вкладки не открываются, а закрытие срабатывает. Идеальным вариантом посчитаю если приведете код для js скрипта.

    1. Узнать можно визуально. Посмотрите сколько открыто, либо переустановите браузер. Если я вам напишу код, это ведь будет совсем просто, не так ли? Куда интереснее, если вы сами справитесь с задачей.

  15. Спасибо за полезную статью. А какой командой можно вставлять фото ВКонтакте на стену открытой группы?

    1. Смотрите выборку из текстового файла. В файле указываете урл адрес фото. Естественно, фото должно где-то уже лежать в интернете по урл адресу.

  16. Сем привет, подскажи вот такая ситуация. На сайте одна ссылка типа TAG POS=1 TYPE=A ATTR=TXT:Просмотретьсайт№1 открывается новый сайт, после его закрываешь и появляется ниже вторая ссылка TAG POS=1 TYPE=A ATTR=TXT:Просмотретьсайт№2 потом №3 и так далее. Как прописать чтобы макрос кликал по ссылкам по очереди.

    1. Тут только клик по координатам с задержкой по времени может сработать.

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

    1. Рандомно вряд ли получится, а вот “псевдорандомно” можно. Делаете выборку ссылок из текстового файла. Просто в строках указываете больше повторяющихся адресов. То же самое и с фото, ведь в строке для выборки можно указать какой угодно код или адрес.

  18. подскажите как сделать повтор действий (цыкла)определенное количество раз
    VERSION BUILD=8940826 RECORDER=FX
    TAB T=1
    CLICK X=141 Y=343
    CLICK X=127 Y=691
    CLICK X=131 Y=416
    CLICK X=197 Y=331
    CLICK X=281 Y=311
    CLICK X=217 Y=222
    CLICK X=730 Y=623

    1. Повторить нужное количество раз в макросе. Либо при запуске макрос в меню выбрать нужное количество.

  19. Здравствуйте! Макрос на открытие вкладок тип:
    TAB OPEN
    TAB T=1
    URL GOTO=http://kotomatrix.ru/
    TAB OPEN
    TAB T=2
    URL GOTO=youtube.com
    и т.д.
    Вопрос, можно ли сделать так чтоб макрос не дожидался полной загрузки страницы?
    Если в момент загрузки страницы кликнуть по другой вкладке, то загрузка страницы пропускается и открывается следующая вкладка. Т.е если в момент загрузки тыкать в другую вкладку он откроет все вкладки с адресами и загружает одновременно. Спасибо!

    1. Читаете текст не внимательно. WAIT SECONDS=#DOWNLOADCOMPLETE#

      1. Наоборот, чтоб НЕ ждал загрузки. Открыл, например, 10-15 ссылок сразу и грузил одновременно. Спасибо!

        1. Открыть несколько окон с браузером одновременно. Для каждого окна свой урл. В статье “как запускать скрипты автоматически” есть пример как запустить браузер из батника. Делаете несколько запусков браузера, каждый со своим урл.

  20. допустим написал макрос на 2000 строк.
    что нужно написать чтобы imacros стартовал с 1000 линии?

    1. Разделить этот макрос на 2 макроса использовать команду запуска 2 макроса.

      1. Semm , а нельзя сделать типа токого:

        1 строка: set !errorignore yes
        2 строка: set !errorcontinue yes
        3 строка: go to 1000 (переходим на 1000 строку)
        4 строка: тут пропускаем и перепрыгиваем 1000 строк
        5 строка: ………………….
        1000 строка: работает макрос….
        1001 строка: работает макрос….
        …………….
        2000 строка: ……

        Вся суть это что можно написать в 3ей строке? просто мой макрос на 18000 строк, там возится нужно чтобы делить на 2… бывает выполнит на 10000 и зависает. вот я и хочу его перезапускать с 10001 строки изменив лишь 3 строку.

        P.s. до меня дошло ваше предложение. Подскажите как запускать макрос из макроса? В данной статье есть оно???

  21. Здравствуйте! Подскажите, возможно ли при воспроизведении макроса при появлении капчи ставить скрипт на паузу автоматически? Проблема в том, что капча вылезает не при каждом цикле. Да и вообще не знаю, как это осуществить) Или для этого нужно переделать в js?

    1. Вам лучше поискать программу постинга, которая умеет обрабатывать капчу. Реально без знания других языков ничего не получится. А зная другой язык – какой смысл использовать Imacros? Это же просто плагин для браузера с очень низкой функциональностью.

  22. Подскажите. как задать условие? Т.е. после комманды клика по кнопке, которая открывает определенную страницу, если на этой странице отображается ошибка – как сделать чтобы макрос закрывал эту страницу с ошибкой и шел в начало, а в случае нормальной загрузки этой самой страницы – продолжал работу дальше? Интересует сам синтаксис задания условия, ну например как в basic есть комманда if и goto.

    1. Силами Imacros браузерной версии – никак. Вставляете в код скрипта яваскрипт, где будут обрабатываться условия. Тут вам придется либо на платный инструмент раскошелиться, либо заказать фрилансеру готовый скрипт на каком-нибудь другом языке написать.

  23. Здравствуйте. Впервые на вашем блоге. Уже дня три ищу способ решения проблемы. Хочу сделать чтобы Imacros добавлял фотографии к посту в Вконтакте (Работаю в Google Chrome). Беру ссылку фотографии и если вставлять вручную, то фотография загрузиться, а если это сделает Imacros, то просто отправит ссылку без прикрепленной фотографии. На YT видел только тех, которые пользуются Imacros в Mozilla Firefox. Может вы знаете скрипт/команду на прикреплении фотографии.
    Надеюсь вы меня поняли 🙂
    Заранее Спасибо!

    1. Chrome не дает даже половины того функционала, который можно реализовать на Firefox. Контакт постоянно что-то меняет в верстке (из-за спамеров и ботов), поэтому что-то советовать не имеет смысла. Ставьте Firefox и пробуйте. Желаю удачи.

  24. imacros нормально работает только на firefox. на остальных браузерах – это извращение…

    1. Согласен, но люди очень любят создавать себе трудности, а потом их героически преодолевать.

      1. Привет.
        Подскажи пожалуйста.
        Нужно сделать так чтобы,находился текст на странице и выполнял действие.
        (Задать условие: если есть на странице текст нажимай кнопку, а если нет пропускай)
        Как сделать подскажи ПЛЗ

        1. Imacros с условиями не работает. Нужно внедрять яваскрипт, либо писать на другом языке.

  25. Добрый день… всю голову сломал, ничего не помогает!
    Есть 3 поля на сайте
    В два из них пишется информация в третьем результат. Типо калькулятора
    Настроил Imacros так что бы он первые 2 поля заполнил из файла, все работает! НО в третьем поле результат не хочет показываться… выглядит примерно так:
    2+2=0
    Как только кликаю на одну из двое и нажимаю любую клавишу на клавиатуре после = появляется результат…
    Как это исправить? Почему результат не показывается как только скрипт поставил в формы числа?
    Спасибо!

    1. В поле “результат” у вас не получится вставить ничего. Там должен отработать скрипт сайта и выдать результат. Единственно, что можно сделать, это клик по координатам для выдачи результата.

  26. Отличная статья!!!…подскажите, а как вставить в макрос ключ антигейт?. Это вообще возможно?

    1. Возможно, если внедрять яваскрипт. Средствами самого аймакрос – нет. Или заказать скрипт на другом языке на фрилансе.

  27. Скажите, как можно написать в макросе чтоб показывалось выпадающее меню, которое выпадает при наведении мышки на объект?

    1. Попробуйте клик по координатам, сначала на открытие меню, потом на выбор пункта. Все зависит от того, как это меню сделано. Шанс что получится – минимален.

  28. Сэмм, подскажите пожалуйста, как сделать цикл с проверкой и выходом из цикла при удовлетворении?

    REFRESH
    WAIT SECONDS=#DOWNLOADCOMPLETE#
    SET !TIMEOUT_STEP 0
    TAG POS=1 TYPE=SPAN ATTR=TXT:Заказать
    TAB T=2

    Если “Заказать” в тексте не находится, то всё опять по кругу, если находится – стоп макрос и перейти на таб2.

    У меня работает просто с “SET !ERRORIGNORE YES”, но как только на сайте всплывает “Заказать”, он естественно начинает открывать кучу одинаковых вкладок. Помогите, пожалуйста.

    1. Уважаемые читатели. Комментарии в этой теме закрываю, так как никто не читает что написано выше – Imacros простой инструмент, который не поддерживает циклы и условия. А просто эмулирует действия пользователя в браузере, причем не все, а часть из них.
      Спасибо вам, что вы меня читаете.

Comments are closed.