M1 — первые наработки

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

Я заморочился и решил убить сразу нескольких зайцев

  1. Автоматизировать процесс раскрутки инстаграмм-аккаунтов
  2. Изучить функциональный язык Scala
  3. Изучить работы с системой акторов в Scala
  4. Изучить Play Framework

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

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

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

cabinet1

Каждый робот в списке активных может находиться в одном из статусов:

  • Готов к работе — готов к запуску, на панели должна быть кнопка для запуска. Робот в этом статусе ни разу не запускался.
  • Работает
  • Пауза
  • Останавливается — роботу был дан сигнал на остановку и он завершает свою работу. Может находится в этом состоянии достаточно длительное время. Например, робот запросил последние посты и ожидает результаты от инстаграмма. Как только результаты придут робот установит свой статус «Остановлен».
  • Остановлен — робот остановлен по требованию пользователя или самостоятельно завершил свою работу по каким-либо причинам. Из этого состояния робот больше не  может быть запущен. Хранить отработавший робот до удаления требуется, чтобы иметь доступ к результатам его работы.

Параллельно могут работать несколько роботов разного типа. Но следует учесть, что если будут превышены лимиты на операции, то роботы будут остановлены.

На сегодняшний день уже реализовано несколько роботов, о которых я расскажу в дальнейшем…