Управляющий шаблон ZennoBrowser + обёртка на C#

LaGir

Client
Регистрация
01.10.2015
Сообщения
255
Благодарностей
1 051
Баллы
93
Всем привет :-)

Некоторое время назад появился публичный API ZennoBrowser, который даёт возможность автоматизировать ряд базовых и необходимых операций при работе с этим новым браузером.
API доступен не только для Zenno, можно пользоваться им как угодно, благо это обычный API.
Однако, так как большинство собравшихся тут работает с зеннкой, хотелось бы какое-то удобное прикладное решение для работы с API именно для связки ZP7 + ZB.

Именно поэтому для данной конкурсной работы подготовил полезные инструменты в виде:
  • управляющего шаблона для связки ZB API и ZennoPoster 7
  • C#-обёртки над ZB API, которую можно использовать в любых своих обычных шаблонов для ZennoPoster
Также, на момент написания статьи пока ещё нет более-менее закрывающей все задачи интеграции ZennoBrowser в ZP 7.
Более того, если некоторые вещи пока доступны в кубиках, но не доступны в виде C#-кода. Это отдельная проблема, если у вас в планах встроить поддержку ZennoBrowser в какой-то из ваших шаблонов ZennoPoster, написанных в виде исключительно C#-кода (например, в Общем коде или в виде отдельной dll). Частично эту проблему может закрыть как раз таки использование такой простой C#-обёртки над ZB API.

Давайте по очереди кратко рассмотрим настройки шаблона, а потом и использование обёртки внутри него.


Устройство шаблона

Если вы ещё не сталкивались с API ZennoBrowser, для начала стоит ознакомиться с официальной справкой по нему:

Также там можно сразу увидеть, что для работы с API нужно выписать ключ в своём личном кабинете. К сожалению, на момент написания статьи данная опция доступна только для платных тарифов ZB.

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

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

ZB_API_01.png


А вот так выглядит вкладка настроек по профилям:

ZB_API_02.png


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

Один запуск шаблона – это 1 операция с конкретной сущностью.
Например:
  • запустить N потоков с такими-то профилями
  • получить список ID всех профилей
  • удалить все прокси из папки N
В видео в конце статьи наглядно и более подробно показана работа с настройками, а также некоторые сопутствующие нюансы.


Устройство обёртки

Несколько слов скажем об обёртке, кто соберётся ей пользоваться.
Так как в API нет ничего заурядного, обёртка представляет собой просто модуль общего кода в виде нескольких классов, которые можно вызывать из сниппетов в несколько строчек.
В классе ZennoBrowserConfig лежит конфиг для подключения к API
В классе ZennoBrowserClient реализованы все обращения к API.
Остальные классы – для разборки/сборки json-ов/параметров.

В общем коде есть ещё один класс ZbApiManager, отвечающий за связь входных настроек (и переменных проекта, соотвтетственно) и этой обёртки.
Он чуть поинтереснее, плюс предоставляет возможность вызывать конкретные операции над сущностями API в одну строчку (через использование фасадных методов). А для указания параметров используются те же самые переменные проекта.

Собственно, с помощью обращения к методам этого класса проще всего пользоваться обёрткой. Так что если тащить к себе в шаблоны, то имеет смысл сразу с ZbApiManager.

Ну и сниппеты вызовов из управляющего шаблона – тоже.
Именно для этого я их там и разместил в виде отдельных блоков со сниппетами вызовов – чтобы можно было и понять как это использовать, и протестировать максимально просто.

ZB_API_03.png



Прочие особенности

В шаблоне и сниппетах есть действия по импорту и экспорту кук, однако замечу, что для хранения и загрузки именно в этом шаблоне используются просто переменные проекта. Если вам нужно выгружать/скачивать куки с файла/облака/БД – вашим домашним заданием будет просто добавить соответствующий код в обёртку или класс ZbApiManager. Благо, сделать это несложно как по примерам на форуме, так и с помощью условного чатгпт, даже если с кодом вы особо дел не имели. Если же всё-таки будут проблемы – спрашивайте в теме, в случае чего разберёмся вместе.

Некоторые другие нюансы и особенности, а также более наглядный обзор инструментов – доступны в видео-формате. :-)

 

Вложения

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

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