- Регистрация
- 01.10.2015
- Сообщения
- 231
- Благодарностей
- 955
- Баллы
- 93
Всем привет! 
При создании обычного браузерного шаблона для ZennoPoster у нас всегда есть те действия/кубики/сниппеты, которые мы делаем заново под каждый новый сайт/проект/сервис, а есть те, которые раз за разом одни и те же, повторяются практически в каждом проекте. Часто такие кубики просто копируют из старых проектов. Просто, но не всегда удобно. Кто-то выделяет такие повторяющееся действия в наборы кубиков или сниппетов, кто-то вообще их выносит в подпроекты или даже отдельные либы.
Материал данной темы как раз про это - выделим наиболее используемые и распространённые действия, и представим их виде заготовок-шаблонов.
Сразу скажу, что материал ориентирован в первую очередь на новичков в использовании ZennoPoster и ZennoDroid, хоть и оформлен в коде. Код удобен компактностью и гибкостью, а проблемы с его пониманием в нынешнее время легко решают большинство нейронок. Поэтому, если вы далеки даже от использования C#-сниппетов в своих проектах - не стесняйтесь пробовать разобраться с конкретными кусками кода/сниппетами с условным ChatGPT, ныне это большое подспорье в работе + нет необходимости разбираться в коде самостоятельно.
Итак, что можно сказать о повторяющихся частях в большинстве шаблонов?
В первую очередь это следующие два этапа:
Основная работа в данном случае - те действия, ради которых мы создаём шаблон. Т.е., например, идём на какой-то сайт, что-то там делаем, может быть ищем, кликаем, заполняем и т.д.
Соотственно, перед этим мы обычно должны сделать:
Выбрать и загрузить профиль, поднять инстанс нужного движка браузера, выбрать и поставить прокси, включить/переключить/выбрать необходимые настройки инстанса и потока, и т.д.
А после основной работы с нужным сайтом, соответственно:
Сохранить профиль, или же переместить или удалить его вовсе, отключить инстанс, сделать какие-либо дополнительные вещи типа записи лога или запуска другого шаблона в ZP, и т.д.
Можно заметить, что именно в этих местах, в начале и конце работы браузерного шаблона, существует набор однотипных действий, над которыми стоит меньше всего париться, когда приступаешь к созданию нового шаблона. И они особо не зависят от внешних факторов. Например, какие-нибудь клики-заполнения форм на сайтах - тоже можно неплохо загнать в универсальные заготовки, но там больше зависимостей, которые надо "трогать" из проекта в проект - зависимость от конкретных сайтов, от расположений HTML-элементов и путей к ним и т.п.
Поэтому заготовки из данной темы рассчитаны ровно на эти этапы - на начало работы шаблона, и на его окончание.
Перейдём непосредственно к разбору содержимого заготовок.
Каждая из них содержит по 2 нужных сниппета, с соответствующими названиями, Start и End.
В них находятся по паре строк кода:
Первая строка, по сути, ответственна за сбор необходимых переменных проекта (в том числе из входных настроек), а вторая - за вызов всех действий, нужных в начале и конце шаблона.
Весь основной код находится в блоке Общий код, откуда и дергается в сниппетах. Поэтому, если надо что-то отредактировать или изменить в заготовках под себя - идём туда.
Также отмечу, что важные переменные также выведены во входные настройки, т.е. можно посмотреть что затрагивается в коде в таком наглядном виде.
Ещё из важного - в каждом шаблоне есть дубликаты сниппетов, в которых уже все действия вызываются не одной строчкой, а чередой методов.
Вот пример для сниппета Start в шаблоне для ZennoDroid:
Эти варианты сниппетов Start и End удобно использовать тогда, когда вам нужно добавить что-то своё в заготовку. Например, если вам нужно вставить строчку блокировки рекламы, которой в заготовке нет:
В целом, этого достаточно, чтобы начать пользоваться заготовками. Ещё немного информации представлено в видео ниже. Также, в случае каких-либо непоняток, разумеется можно и нужно спрашивать в теме. 
К теме прикреплены 2 шаблона:
StartEnd_ZP.zp - заготовка для ZennoPoster
StartEnd_ZD.droid - заготовка для ZennoDroid Pro/Lite
Дисклеймер к файлам заготовок

При создании обычного браузерного шаблона для ZennoPoster у нас всегда есть те действия/кубики/сниппеты, которые мы делаем заново под каждый новый сайт/проект/сервис, а есть те, которые раз за разом одни и те же, повторяются практически в каждом проекте. Часто такие кубики просто копируют из старых проектов. Просто, но не всегда удобно. Кто-то выделяет такие повторяющееся действия в наборы кубиков или сниппетов, кто-то вообще их выносит в подпроекты или даже отдельные либы.
Материал данной темы как раз про это - выделим наиболее используемые и распространённые действия, и представим их виде заготовок-шаблонов.
Сразу скажу, что материал ориентирован в первую очередь на новичков в использовании ZennoPoster и ZennoDroid, хоть и оформлен в коде. Код удобен компактностью и гибкостью, а проблемы с его пониманием в нынешнее время легко решают большинство нейронок. Поэтому, если вы далеки даже от использования C#-сниппетов в своих проектах - не стесняйтесь пробовать разобраться с конкретными кусками кода/сниппетами с условным ChatGPT, ныне это большое подспорье в работе + нет необходимости разбираться в коде самостоятельно.
Итак, что можно сказать о повторяющихся частях в большинстве шаблонов?
В первую очередь это следующие два этапа:
- Сразу после запуска потока (подготовка к основной работе)
- Перед окончанием потока (сразу после завершения основной работы)
Основная работа в данном случае - те действия, ради которых мы создаём шаблон. Т.е., например, идём на какой-то сайт, что-то там делаем, может быть ищем, кликаем, заполняем и т.д.
Соотственно, перед этим мы обычно должны сделать:
Выбрать и загрузить профиль, поднять инстанс нужного движка браузера, выбрать и поставить прокси, включить/переключить/выбрать необходимые настройки инстанса и потока, и т.д.
А после основной работы с нужным сайтом, соответственно:
Сохранить профиль, или же переместить или удалить его вовсе, отключить инстанс, сделать какие-либо дополнительные вещи типа записи лога или запуска другого шаблона в ZP, и т.д.
Можно заметить, что именно в этих местах, в начале и конце работы браузерного шаблона, существует набор однотипных действий, над которыми стоит меньше всего париться, когда приступаешь к созданию нового шаблона. И они особо не зависят от внешних факторов. Например, какие-нибудь клики-заполнения форм на сайтах - тоже можно неплохо загнать в универсальные заготовки, но там больше зависимостей, которые надо "трогать" из проекта в проект - зависимость от конкретных сайтов, от расположений HTML-элементов и путей к ним и т.п.
Поэтому заготовки из данной темы рассчитаны ровно на эти этапы - на начало работы шаблона, и на его окончание.
Перейдём непосредственно к разбору содержимого заготовок.
Каждая из них содержит по 2 нужных сниппета, с соответствующими названиями, Start и End.
В них находятся по паре строк кода:
C#:
// Объект текущего потока для доступа к настройкам и переменным
var ct = new CurrentThread(instance, project);
// Выполнение всех подготовительных задач (загрузка профиля, инстанса и т.д.)
Starter.RunAll(ct);
Весь основной код находится в блоке Общий код, откуда и дергается в сниппетах. Поэтому, если надо что-то отредактировать или изменить в заготовках под себя - идём туда.
Также отмечу, что важные переменные также выведены во входные настройки, т.е. можно посмотреть что затрагивается в коде в таком наглядном виде.
Ещё из важного - в каждом шаблоне есть дубликаты сниппетов, в которых уже все действия вызываются не одной строчкой, а чередой методов.
Вот пример для сниппета Start в шаблоне для ZennoDroid:
C#:
project.SendInfoToLog($"*** Подготовка к работе потока...", true);
// Объект текущего потока для доступа к настройкам и переменным
var ct = new CurrentThread(instance, project);
// == Выполнение всех подготовительных задач (загрузка и настройка устройства, прокси и т.д.)
// Получение устройства
bool isOk = Starter.GetDevice(ct);
if (!isOk) throw new Exception("Проблемы с получением устройства");
// Установка параметров экрана, если надо
Starter.SetScreen(ct);
// Выбор профиля
isOk = Starter.GetProfile(ct);
if (!isOk) throw new Exception("Проблемы с получением профиля");
// Установка прокси
Starter.SetProxy(ct);
// Применение профиля
isOk = Starter.ApplyProfileToDevice(ct);
if (!isOk) throw new Exception("Проблемы с применением профиля");
// Проверка прокси
isOk = Starter.CheckProxy(ct);
if (!isOk) throw new Exception("Проблемы с проверкой прокси");
// Установка днс, времени, таймзоны
Starter.SetPrivateDns(ct);
Starter.SetDateTime(ct);
Starter.SetTimeZone(ct);
// Установка целевого приложения, если надо
Starter.InstallApp(ct);
// Загрузка данных целевого приложения, если есть
Starter.LoadAppData(ct);
project.SendInfoToLog($"*** Подготовка к работе потока завершена", true);
C#:
instance.UseAdds = true;

К теме прикреплены 2 шаблона:
StartEnd_ZP.zp - заготовка для ZennoPoster
StartEnd_ZD.droid - заготовка для ZennoDroid Pro/Lite
Дисклеймер к файлам заготовок
- Заготовки предназначены в первую очередь для новичков. При использовании в своих проектах их можно (и нужно) дополнять своим кодом, сниппетами с форума или от нейронок. Материал ни в коем случае не претендует на исчерпывающее освещение темы - скорее призван служить минималистичной отправной точкой.
- Заготовка для ZennoDroid предназначена только Pro и Lite версий с эмулятором Memu. При желании использовать заготовку для иных эмуляторов и ZDE - адаптировать её под них вам необходимо самостоятельно.
- Материалу по ZennoDroid уделено больше внимания - так как у него "начало" и "конец" отличаются от привычных многим вещей из ZP. Если вы давно пользуетесь ZennoPoster, но всё ещё не добрались до ZennoDroid - возможно, изучение этой заготовки поможет вам освоиться в ZD Pro/Lite.
Вложения
-
23,1 КБ Просмотры: 17
-
21,4 КБ Просмотры: 23
Последнее редактирование модератором: