pchu11
Premium Lite
- Регистрация
- 13 Ноя 2015
- Сообщения
- 60
- Реакции
- 50
- Тема Автор Вы автор данного материала? |
- #1
Голосов: 0
В каждом шаблоне ZennoPoster приходится использовать однотипные действия будь то проверка или конвертация данных, которые пользователь указал во входных настройках, или же загрузка страниц и поиск элементов с последующей проверкой были ли они найдены.
В больших шаблонах все это превращается в нагромождение экшенов или же в простыни однообразного кода, а порой и в комбинацию этих факторов.
Самые распространенные проблемы
Продукт складчины состоит из следующего
- DLL файл библиотеки ZennoExtensions
- Файлы проекта с исходным кодом для самостоятельного изучения и доработки
- Документация и инструкции по использованию
- Демо шаблоны с примерами использования, открытые для просмотра
ZennoExtensions - DLL библиотека, расширяющая стандартный набор методов классов ZennoPoster. С ее помощью вы сможете разрабатывать шаблоны быстрее, повысить удобство разработки и качество продуктов, улучшить отладку и исправление багов.
Содержимое
- Методы расширения для работы с типами ZennoPoster:
Instance, Project, Tab, HtmlElement, LocalVariable
- Модуль для работы с аккаунтами
- Модуль для работы с настройками браузера
- Модуль логирования
- Дополнительные классы-помощники
- Ниже будут рассмотрены примеры использования разных частей библиотеки.
Значительный функционал библиотеки представляет из себя набор методов расширения, благодаря чему можно напрямую работать с объектами стандартных классов ZennoPoster'а, не прибегая к созданию экземпляров сторонних классов.
Большинство из методов расширений в библиотеке реализованы в стиле Fluent Interface.
Что такое Fluent Interface
В библиотеке представлены методы расширения для следующих классов:
- Instance (ZennoLab.CommandCenter.Instance)
- Project (ZennoLab.InterfacesLibrary.ProjectModel.IZennoPosterProjectModel)
- LocalVariable (ZennoLab.InterfacesLibrary.ProjectModel.ILocalVariable)
- Tab (ZennoLab.CommandCenter.Tab)
- HtmlElement (ZennoLab.CommandCenter.HtmlElement)
- Некоторые системные типы
Рассмотрим использование методов расширения на примере проверки входных настроек шаблона.
Проверка входных настроек при запуске является хорошей практикой разработки шаблона.
Она несет следующие преимущества:
- Быстрая настройка и запуск шаблона за счет подробных уведомлений в логе
- Устранение багов из-за некорректно введенных данных
- Пользователи смогут понять и исправить свою ошибку во входных настройках не прибегая к вашей помощи
Принцип проверки состоит в том, чтобы проверять корректность всех введенных в настройках данных. Если какие-то данные введены не правильно, нужно оповестить об этом в логе и прекратить дальнейшее выполнение шаблона.
Для этого в библиотеке есть набор методов расширения для локальных переменных.
Методы можно соединять в цепочки вызовов для проверки переменной на соответствие нескольким условиям.
Здесь проверяются сразу 3 различных ситуации:
- Задал ли вообще пользователь файл с аккаунтами. Если файл задан, переходим ко второму шагу.
- Существует ли такой файл. Если файл существует, переходим к третьему шагу.
- Есть ли в файле содержимое.
А вот как выглядит логика проверки без использования библиотеки.
Как видите, код получился 2 раза больше, читаемость кода хуже, а если понадобится проверить еще несколько переменных, то проверка и вовсе станет огромной. К тому же поддерживать такой код будет сложнее - если вы захотите изменить логирование, придется менять его во всех местах.
В библиотеке представлен класс MultiLogger который позволяет удобно логировать в несколько мест одновременно. Одной строчкой кода вы можете записать сообщение в файл, вывести его пользователю в виде MessageBox и в лог ZennoPoster. Также можно добавить в мультилогер свой вариант логирования, например, в БД.
Практически каждый шаблон выполняет работу с аккаунтами, который предоставляет пользователь. Менеджер аккаунтов призван решить проблемы многопоточной работы со списком аккаунтов, а также позволить закреплять ваши данные за аккаунтами, например, прокси.
Особенности
—————————————————————————————————
- Файл аккаунтов не подвергается изменениям
- Для файла аккаунтов создается свой файл конфигурации, в котором содержатся все необходимые данные для последовательного выполнения аккаунтов как при работе в одном, так и в нескольких потоках
- Аккаунты для работы распределяются равномерно - не возникнет такой ситуации, что один аккаунт отработает 10 раз, а другой 15
- Для каждого аккаунта можно сохранять дополнительную информацию
Менеджер браузера позволяет генерировать и применять различные параметры браузера, а также сохранять их для последующего использования с аккаунтом.
Генерируемые параметры
—————————————————————————————————
- Используемый браузер (Firefox, Chrome)
- Используемое устройство (на данный момент только Windows)
- Настройки браузера:
- Использование JavaScript
- Блокировка рекламы
- Использование веб хранилищ (LocalStorage, SessionStorage, Global Storage, Database Storage)
- Использование IndexedDB
- Использование WebGL
- Использование плагинов
- DoNotTrack
- Подмена часового пояса
- Эмуляция WebRTC
- Эмуляция Canvas
- Свойства навигатора и HTTP заголовки
- UserAgent
- Language
Данный класс-помощник позволяет в удобном формате работать с элементами строк. С помощью него можно дать возможность пользователям самостоятельно указывать формат используемых ресурсов. Это добавит гибкости в настройке и избавит от подстраивания используемых файлов под ваш шаблон.
Например, можно вынести задание формата файла аккаунтов во входные настройки. Тогда пользователю нужно будет указать шаблон, содержащий ключевые слова и используемые разделители:
login;password:proxy
Библиотека активно используется и дорабатывается. Участники складчины будут получать обновления бесплатно и смогут вносить предложения по доработке. Помимо самой библиотеки всем участникам будет также доступен проект Visual Studio с исходным кодом, что даст возможность изучать и дорабатывать функционал самостоятельно.
Инструкция по разработке шаблонов через Visual Studio
Способы подключения библиотек к шаблону без использования ExternalAssemblies
Список полезных сервисов и инструментов для разработки
Подборка ссылок на обучающие материалы для самостоятельного изучения
Способы дополнительного заработка на шаблонах
Скачать [HIDEPL="20,20"]https://yadi.sk/d/ieFmKHcH3VXQm3 [/HIDEPL]