Цикл Zennoposter

цикл zennoposter

Буквально месяц назад ко мне обратился один заказчик и поставил задачу написать шаблон для Зеннопостера, который бы выгружал данные с системы планирования ASANA в формате tidy data, чтобы потом можно было импортировать их в Google Data Studio. Впрочем, поставленную задачу я выполнил. Мне показалась эта информация полезной, и я решил поделиться ссылками на ролики в этой публикации, и одновременно адаптировать примеры с роликов под Зеннопостер.

Как создать переменную в шаблоне Зеннопостера? Прежде чем начинать работать с кодом, я покажу на скриншотах как создать переменную в шаблоне Зеннопостера. Открываем окно переменных в программе ProjectMaker и создаем новую локальную переменную. Дальше в окне Проекты нажимаем правую кнопку мышки и последовательно выбираем: Добавить действие - Данные - Обработка переменных.

В окне Свойства действия зададим какой-то текст, который хотим присвоить переменной и укажем переменную, в которую он будет сохранен. После выполнения данного действия мы можем посмотреть результат в окне Переменных. Но, так как не всегда удобно смотреть изменения в окне Переменных, то можем добавить Оповещение в лог. Нажимаем в окне Проекта правую кнопку мышки и последовательно выбираем: Добавить действие - Логика - Оповещение.

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

Выполняем созданный нами шаблон, и смотрим результат в логе Зеннопостера или ProjectMaker. Как создать переменную в шаблоне Зеннопостера с помощью сниппета? Так вот, все, что я описал выше - можно реализовать с помощью всего одного кубика Свой C код, который будет содержать всего три строки. В первой мы создадим переменную в шаблоне с именем text. В второй - присвоим ей значение Hello, World! И в последней - выведем аналогичное уведомление в лог.

Value , true ; Думаю, данный пример наглядно демонстрирует, что использование сниппетов позволяет одним кубиком выполнять больше действий.

Понятное дело, что не все разбираются в коде. Но, этим и хорош Зеннопостер, что можно автоматизировать все что угодно даже не разбираясь в коде. Просто сохраняем себе готовые примеры и используем их в своих шаблонах, когда желаем получить такой же результат. Но, все таки некоторые базовые штуки знать необходимо - например как получить значение переменной с шаблона в сниппет своего C кода и как вывести результат выполнения сниппета своего C кода в переменную шаблона.

Как получить содержимое переменной Зеннопостара внутри своего C кода? Обычно этот вопрос решается так - создается текстовая переменная, которой присваивается значение переменной с шаблона: Value; Потом уже в своем C коде с этой переменной проводятся какие-либо манипуляции, и после этого уже делается обратная операция сохранения значения временной переменной, созданной в сниппете своего C кода в переменную шаблона: Конечно, нас никто не заставляет создавать временные переменные в своем коде, можно сразу использовать переменные шаблона.

Но, их вид обычно занимает больше букв, из-за чего в коде сложно ориентироваться. Вот, например показанный выше пример вывода уведомления в лог с использованием временной переменной: Это уже дело вкуса и настроения. Есть пользователи, которые в своих шаблонах всегда используют только переменные в виде project. Value, а есть и те, кто сразу в первых строках переносит все значения в временные переменные сниппета и в конце просто возвращает результат в переменные шаблона.

Как проверить, пуста ли строка сниппетом в Зеннопостере? В этом видео рассказывается как проверить пустая строка находится в переменной или нет в C коде. А так, как Зеннопостер в кубике Свой C код использует C код, то пример актуальный для решения наших задач в Зеннопостере. Отличие только в том, что у нас в Зеннопостере уведомления вместо консоли выводятся в лог - естественно это необходимо указывать. Давайте я адаптирую данный пример для Зеннопостера.

Format "Is Null Or Empty? IsNullOrEmpty text , true ; project. IsNullOrEmpty text2 , true ; project. IsNullOrEmpty text3 , true ; project. IsNullOrEmpty text4 , true ; Точно такой же пример можно было переписать в таком виде, используя массив строк и цикл прямо сейчас можно этим не заморачиваться, но необходимо иметь ввиду, что такое возможно, и в будущем можно будет использовать.

Также как и в предыдущем коде - изначально можно не заморачиваться, просто принять во внимание, что в будущем такое решение можно будет использовать. Собственно адаптированный код под Зеннопостер будет иметь такой вид: Как же использовать данную проверку и зачем она может быть нужна? Пример банальный - в входящих настройках шаблона, который мы делали для какого-то заказчика мы указали к примеру поле ЛОГИН, которое заказчик должен заполнить.

Но, по каким-то причинам он забыл его заполнить - и шаблон у него не работает. Как вариант - можно использовать данную проверку, и если такое произошло - завершаем работу шаблона по ошибке с выводом уведомления в лог. Код будет иметь примерно такой вид: Например, если заказчик не указал логин - значит указываем какой-то определенный нами заранее или с какой-то переменной. Если же логин был указан в входящих настройках - значит указываем его. Пример кода, который можно использовать: SendInfoToLog "До проверки логин был: SendInfoToLog "После проверки логин стал: Сравнивать строки в C , а следовательно и в сниппетах программы Зеннопостер можно используя метод string.

Мне лично никогда не приходилось использовать данную фишку в Зеннопостере - пока не представляю, зачем это может понадобиться. Если Вы знаете зачем - напишите об этом в комментариях. А тем временем я покажу как заставить данный пример кода работать в Зеннопостере: Compare в лог Зеннопостера project.

Compare "a", "a" , true ; project. Compare "a", "b" , true ; project. Compare "b", "a" , true ; project. Compare "ab", "abc" , true ; project. Compare "a", "A" , true ; project.

Compare "a", "A", true , true ; project. Иногда бывает необходимость изменить регистр букв какого-то текста с верхнего на нижний и наоборот. В Зеннопостере это можно выполнить как с помощью стандартных кубиков, так и с помощью своего C кода.

Как мы уже знаем, с помощью сниппетов это бывает удобнее - так как в одном таком кубике можно обработать сразу несколько переменных. Пример, который наводится в видео адаптированный под работу с Зеннопостером выглядит примерно так: SendInfoToLog "Строка в верхнем регистре: SendInfoToLog "Строка в нижнем регистре: А вот проверка на содержание какой-то подстроки в переменной - это очень даже частое действие, которое приходится использовать в Зеннопостере.

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

Короче говоря, функция полезная, и использовать её необходимо. Адаптированный пример для работы в Зеннопостере выглядит примерно так: Contains "world" , true ; project. Contains "hello" , true ; project. Contains "Hello" , true ; project. Contains "hi" , true ; Но, может быть такое, что нам необходимо проверить на ряд совпадений.

Тогда можно забросить признаки к примеру в массив, после чего уже проверять в цикле. Примерный вид кода, который делает перебор массива с выводом результата в лог: Contains key , true ; Естественно, что данную проверку мы проводим, и уже относительно результата выполняем какое-то действие.

В реальных условиях проверка на совпадение может иметь такой вид: Естественно, что если совпадение не найдено - то код выполнен не будет. Еще раз подчеркну - такие конструкции используются в сниппетах Зеннопостера довольно часто, так как это удобно. Как узнать индекс символа в строке сниппетом в Зеннопостере?

Иногда приходится находить индекс символа в строке. Или например для решения антибота на криптовалютных кранах, когда необходимо было прокликать по ссылкам в определенной последовательности.

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

Пример, который приводится в ролике адаптированный под работу в шаблоне Зеннопостера привожу ниже в первых двух циклах проверяем начало строки на наличие подстроки, во вторых - проверяем завершается ли значение нашей переменной на указанную нами подстроку: StartsWith key , true ; foreach string key in keys project. StartsWith key, true, null , true ; foreach string key in keys project. EndsWith key , true ; foreach string key in keys project. EndsWith key, true, null , true ; Как вставить подстроку в строку, начиная с указанной позиции сниппетом в Зеннопостере?

Для реализации такой задачи мы можем воспользоваться методом C Insert который позволяет вставлять подстроку в указанную нами позицию.

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

ZennoLab — ZennoLab

Беккер не мигая смотрел на эту восхитительную женщину. - Мне нужно кольцо, - холодно сказал. - Кто вы такой? - потребовала.

Беккер перешел на испанский с ярко выраженным андалузским акцентом: - Guardia Civil. Росио засмеялась.

Zennoscript Zennoposter шаблоны на заказ. и групп действий добавлен пункт “Повторить в цикле” для быстрого создания циклов. Вот и все, создав массив со списками мы используем цикл для удаления всех строк из указанных Купить zennoposter можно здесь!. Также можно использовать например цикл foreach для перебора элементов массива. Также как и в предыдущем коде - изначально.

Предыдущая статья: тюряга бот вконтакте

Следующая статья: бот вконтакте для накрутки