ezFERM – конструктор ферм мультиаккаунтов

EZ

Client
Регистрация
04.03.2020
Сообщения
68
Благодарностей
15
Баллы
8
Всем привет, на связи EZ. Благодаря данному конкурсу статей, появился свет в конце тоннеля относительно моего долгострой-проекта, и я могу в полной мере раскрыть тему ферм мультиаккаунтов и какую роль ezFERM играет в их создании.

Цель данной статьи — это показать общие возможности, без углубления в детали создания и разработки фермы. Погнали.

Введение
1. О фермах
Ферма мультиаккаунтов — это система или программа, которая позволяет планировать, вести учет, контроль, обслуживание множества учетных записей (аккаунтов) одновременно и автоматизировать выполняемую ими работу.

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

Примерами ферм могут быть ферма для Telegram, Vkontakte, Odnoklassniki, FaceBook.

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

2. Роль ezFERM
Очевидно, что фермы мультиакаунтов, существуют уже десятки лет, все мы покупали софты для многопоточной работы с большим количеством аккаунтов для каких либо сайтов. Все эти софты работают по одному принципу – загружаете в них аккаунты, выбираете задания, которые имеются в софте (лайк, коммент, добавить в друзья и т. д.) настраиваете интервалы выполнения заданий, доп. рандомизацию и запускаете нужное кол-во потоков. Софт их авторизирует на сайте в Web версии или получает API токен, если работает без браузера.

Раз все софты уже написаны десятки раз, для чего ezFERM? Я до сих пор задаюсь этим вопросом, но 5 лет назад в мою голову попала идея создать для разработчиков на ZennoPoster конструктор таких ферм, который будет иметь все то, что нужно любой ферме. От разработчика потребуется лишь закинуть в нее zpprofile акки, написать и присоединить к ферме свои экшены/задачи (к примеру лайк, коммент, репост и т. д.) и запустить ферму.

Ради этого проекта я побывал в глубинах ZP, освоил C# from zero to hero и работал на должностях SQL и .NET developer. Данный шаблон стабильно функционирует уже 1 год и прошел бесконечное количество тестов и доработок. На нем создано несколько личных ферм, которые меня радуют.

Часть 1. Файлы и папки
1. Среда для разработки ферм
125210


Среда ezFERM, это папка, в которой находятся:
  • Папка “Шаблон” – это папка с файлами фермы и сам шаблон.
  • Папка “Личные фермы” – папка для хранения и разработки личных ферм.
  • Папка “Поставляемые фермы” – папка для хранения ферм, созданных другими разработчиками.
  • Папка "Демонстрационные фермы" – папка с открытыми фермами для изучения.
Среда нужна, чтобы фермы не были разбросаны по всему диску, а всегда были под контролем системы ezFERM, обслуживающей все фермы. К слову, система ezFERM – это файл ezf.dll, который к моменту, как вы установите ezFERM, будет автоматически добавлен в ExternalAssemblies и все фермы будут обращаться к нему.

2. Подробнее о среде
125212


Папка “Шаблон” – это пустая готовая ферма мультиаккаунтов, в которой добавлены по дефолту 10 профилей zpprofile, прокси у которых кончился срок действия и 3 задачи заглушки. Если ее запустить, то она будет переходить на сайты поисковых систем, пока не закончит работу. Что бы создать новую ферму, нужно просто скопировать всю папку “Шаблон" в директорию личных ферм.

125213


Папка “Личные фермы” – так как новая ферма создается путем копирования сюда папки “Шаблон”, то здесь у вас будут находиться ваши фермы.

После копирования, у фермы нужно изменить название папки, название шаблона. zp, удалить дефолтные профили zpprofile, удалить задачи и подзадачи. В целом, добавить в ферму все свое.

125214


Поставляемые фермы. Все, кто скачает ezFERM, получат все фермы, написанные сообществом автоматически в этому папку, с получением изменений. За это отвечает инсталлятор ezIntstall о котором поговорим позже.

3. Обзор функционала и азы использования
125219

Надеюсь понятно, что нужно скопировать папку “Шаблон” в папку “Личные фермы”. Делаем это, переименовываем папку и шаблон, пусть будет easyferm.zp. Так как мы не будем писать новую ферму, просто рассмотрим все то, что имеем в дефолтной ферме.
125220


В папке “Профили/zpprofiles” мы видим, что лежат 10 профилей zpprofile, которые я просто сгенерировал в другом шаблоне. Вы добавите сюда свои профили, созданные в вашем любимом регистраторе, они могут иметь куки для авторизации так и не иметь, в любом случае, ферме нужны уже созданные заранее профили. Также, можете использовать профиль папки.

125221


После запуска easyferm.zp в режиме “Обновление базы”, информация о профилях загрузится в базу в лист “Аккауты”.

База – это excel файл, в котором хранятся и сводятся данные по вашим аккаунтам, прокси, задачам и подзадачам. В этом же файле задаются настройки эмуляции жизнедеятельности аккаунтов, чтобы их работа была человекоподобна. База используется как фермой во время работы, так и пользователем.

Лист “Забаненные аккаунты” будет пополняться забаненными в ходе работы фермы аккаунтами. Так же, забаненные аккаунты перемещаются не только в этот лист, но и сами профили переместятся из папки “Профили” в папку “Забаненные профили”. Скрин избыточен, так как лист сейчас, как и папка попросту пусты.

125222


Также видим, что на листе “Прокси” уже добавлены прокси, но они не рабочие. Мы можем их удалить, и добавить свои. К слову, прокси распределятся по аккаунтам автоматически, или вручную, в зависимости от настроек.

125223


Переходим на лист “Эмулятор”. Здесь мы настраиваем то, как аккаунты будут выполнять наши задачи с сайтом. Покурив настройки, можно понять, что мы задаем время работы эмулятора и параметры поведения пользователя на сайте. Из этих параметров будут рассчитаны параметры эмулирования, которые прочитает как сама система и применит их к аккаунтам во время работы фермы, так и мы можем увидеть системные требования, которые требуются от нашего ПК, чтобы выполнить работу в заданный срок.

Очень кратко про эмуляцию. После запуска потока, он берет аккаунт из базы. Поток будет активно работать с одним аккаунтом, то есть выполнять задачи и подзадачи 20 минут. За эти 20 минут поток выполнит 60 итераций всех задач у аккаунта, но не за один раз, а за 6 сессий по 10 задач в каждой. За потоком закрепляется в нашем случае 10 аккаунтов. За 200 минут работы потока, т.е. за время работы эмулятора, поток поработает над каждым аккаунтом по 20 минут и выполнит для каждого аккаунта 60 задач. После окончания работы сессии с аккаунтом, поток возьмет следующий аккаунт рандомно из базы и выполнит сессию с ним, и так далее. Таким образом поток гуляет по всей базе аккаунтов и выполняет сессии. Для сайта это будет выглядеть так, будто человек заходит на сайт 6 раз по 3.3мин. в промежутке между 200мин.

125225


Далее лист “Задачи”. Сюда мы записываем название наших задач, количество выполнения каждой задачи и ее тип. Это нужно, чтобы имея, к примеру 30 задач, в любой момент можно было бы зайти и отключить какие то, или включить, без изменения в шаблоне – очень удобно. Тип на самом деле ни на что не влияет, и задается просто для того, чтобы понять, является ли это действие продуктивным. Если продуктивное, то целевое действие на сайте, к примеру сообщение в ЛС. Если пустое, то, к примеру скроллинг страницы, чтобы сделать вид человеческого поведения. Рекомендуемая пропорция 70% пустых и 30% продуктивных.

125226


Лист “Подзадачи” – то же самое назначение что и у листа с задачами, но чуть с другим смыслом.

Функция подзадач – это обеспечивать бесперебойную работу фермы. К примеру, вы можете добавить одну подзадачу для поиска и разгадывания капчи до или после задачи, и если наша задача упадет, или затупит из за капчи, после каждой задачи, сколько бы их не было, будет проходить проверка на наличие и решение капчи. То есть 1 подзадача на весь шаблон. Это как метод в C#, который будет вызван после задачи.

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

125227


Лист “Синхронизированные таблицы” нужен для работы дополнительных таблиц.

Так как на листе “Аккаунты” нельзя добавлять свои столбцы для дополнительных данных, мы можем создать синх. таблицу, в которой создадим наши столбцы и будем записывать туда доп. данные. Ферма автоматически будет добавлять туда имена аккаунтов, если они добавятся в базу аккаунтов, или удалит, если аккаунт будет забанен или исключен. Таким образом наши кастомные базы всегда будут иметь столбец “А” с актуальными аккаунтами.

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

Открываем easyferm.zp и видим нашу дефолтную структуру фермы, которая пока что ничего не делает, а ждет, когда мы добавим свои задачи и подзадачи.

125228


По классике, реализована возможность писать задачи как в самом файле.zp, в PM, так и сделать так, что бы ферма вызывала задачи и подзадачи из dll сборки вашего VS проекта.

В целом, независимо от того, где написан сам проект с задачами и подзадачами, ферма всегда стартует с самого начала. Разница лишь в том, уйдут ли запущенные потоки на время работы фермы в ваш dll файл в случае с VS проектом, или будут крутиться внутри файла.zp, если задачи написаны кубиками. Сразу могу сказать, что код внутри ezf.dll намного оптимальнее, лаконичнее и стабильнее для проектов VS, из-за того, что потокам не приходится прыгать в ezf.dll, получать там работу к выполнению, выходить обратно в проект, выполнять кубики, возвращаться обратно в ezf.dll, обрабатывать результат работы задачи, и так в цикле до тех пор, пока все задачи и подзадачи не будут выполнены.

Ферма в режиме ProjectMaker

125232


125233


В этом режиме ферма будет работать внутри easyferm.zp. Для того что бы не нагружать теорией, скажу, что есть правила создания задач и подзадач. Если коротко:
  • Задачи пишутся слева шаблона, а подзадачи справа. Это всего лишь стиль. Можно по-своему, но мне удобно так.
  • Задачи связаны друг с другом красной веткой.
  • Первая задача связана с кубиком “ezFERM готовит работу” по зеленой.
  • Последняя задача цепочки задач связана с кубиком “ezFERM готовит работу” по красной.
  • Каждая задача состоит из 3 элементов. Системный кубик начала, ваше тело задачи и системный кубик окончания.
Для подзадач все те же правила и системные кубики. Таким образом получается модульная архитектура нашей фермы, теперь ezf.dll может в любом порядке выдавать работу, как мы захотим, и получать результат отдельной по каждой задаче и подзадаче.

Ферма в режиме VisualSudio

125235


Каждый поток фермы запущенный в режиме VisualStudio сразу после старта уходит в кубик “Проект VS” и больше не возвращается. А прыгать поток будет не из ezf.dll в easyferm.zp, а из ezf.dll в вашу сборку.dll в которой будут задачи и подзадачи.

Для проекта VS другие правила создания задач и подзадач.
  • Создается класс, и называется именем задачи, которая добавлена в базу в лист “Задачи”. Для подзадач тоже самое.
  • Класс задачи наследует интерфейс ezFERM.Interfaces.IAction. Класс подзадачи наследует интерфейс ezFERM.Interfaces.ISubAction.
  • Имплементируем для задачи метод public WorkResult RunAction(). Для подзадачи public WorkResult RunSubAction().
  • В теле пишем нужный функционал.
Далее компилируем проект, и закидываем сборку в папку “Проект VS”.

Глава 3. Настройка и запуск фермы
Каждая ваша ферма обладает богатыми настройками работы с аккаунтами, прокси, задачами, подзадачами, эмуляцией жизнедеятельности, которую мы уже рассмотрели ранее, отлавливание и обработку ошибок, и другие настройки.

У фермы есть как внешние, так и внутренние настройки. У каждой настройки есть комментарии, если на нее навести. Разобраться в них будет не сложно.

125258


125259


125247


125262


125253


125256


125257

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

Короткое видео запущенной фермы.

Полный гайд по установке и созданию фермы с 0.

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

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

Файлы защищены и не являются открытыми. Если у вас возникнут проблемы/баги во время использования или установки - разберемся.

Надеюсь, что вам понравилась эта статья и стало интересно создать свою личную ферму мультиаккаунтов!

Спасибо за внимание!

Документация - https://ezsoft-docs.gitbook.io/ezferm
Установка - https://ezsoft-docs.gitbook.io/ezferm/sreda/ustanovka-ezferm
Цены на лицензии - https://ezsoft-docs.gitbook.io/ezferm/licenziya
EZ - https://t.me/eztrapper
 

Вложения

Последнее редактирование:

Дмитрий202020

Активный пользователь
Регистрация
15.09.2020
Сообщения
278
Благодарностей
67
Баллы
28
а разве можно рекламировать свою работу в конкурсных статьях?
 
  • Спасибо
Реакции: Hannes, adept и Serj566

Serj566

Client
Регистрация
09.05.2016
Сообщения
56
Благодарностей
80
Баллы
18
а разве можно рекламировать свою работу в конкурсных статьях?
Вот такой же вопрос! Я бы тогда просто написал статью про свой плагин и всё! А так как то вообще интересно, кто то выкладывает примеры и исходники бесплатно, скажем так для людей. А тут тупа реклама, вы не ошиблись разделом? Для рекламы есть отдельный раздел на форуме: Продажа шаблонов ZennoPoster/ZennoDroid
А то что у вас есть бесплатный тариф, вообще ничего как по мне не меняет.
 

Oleg1987

Client
Регистрация
11.08.2014
Сообщения
1 225
Благодарностей
784
Баллы
113
Ради этого проекта я побывал в глубинах ZP, освоил C# from zero to hero и работал на должностях SQL и .NET developer.
Ну да, английский вперемешку с русским... сразу уровень виден

А так можно было бы пару книжек по ООП и паттернам вдумчиво почитать и не пришлось бы городить такое безобразие
 
Регистрация
23.03.2015
Сообщения
1 217
Благодарностей
748
Баллы
113
Безусловно описанный опыт интересен. Интересно посмотреть как люди реализуют ту или иную задачу, но ситуация с рекламой расстраивает
 

EZ

Client
Регистрация
04.03.2020
Сообщения
68
Благодарностей
15
Баллы
8
Привет, всем, сказать, что я удивлен, это ничего не сказать! Мою статью не пускали, и вообще не предупредили что она выйдет! Парни, сори за рекламу, но я предлагал варианты в поддержке мне сказали что я не прохожу!!! Я и так все понимал, что это будет оправданно ведь софт не бесплатный. Я в шоке... Так! Все кто будет пробовать скачать и установить, то я выдам бесплатную версию на пол года столько, сколько вам нужно для ваших ферм, что бы никто не злился, что платно. Я не хочу заработать в данной статье от чистого сердца вам говорю. Когда разрабатываешь софт несколько лет, просто хочется поделиться.
 
Последнее редактирование:

EZ

Client
Регистрация
04.03.2020
Сообщения
68
Благодарностей
15
Баллы
8
Ну да, английский вперемешку с русским... сразу уровень виден

А так можно было бы пару книжек по ООП и паттернам вдумчиво почитать и не пришлось бы городить такое безобразие
Привет, я специально вынес для пользователя на русском. Если подумать хорошо и не упираться в шаблонное мышление, то для пользователя это удобнее, что бы понять! Вы же можете писать для себя по код конвенции.
 

EZ

Client
Регистрация
04.03.2020
Сообщения
68
Благодарностей
15
Баллы
8
Безусловно описанный опыт интересен. Интересно посмотреть как люди реализуют ту или иную задачу, но ситуация с рекламой расстраивает
К сожалению, так как мне было сказано, что статья не проходит, я хотел выложить еще 2 статьи с реальной фермой для одноклассников + шаб заполнятор и еще статью личный опыт работы с зенопостером. В итоге я расстроился и не стал их писать.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)