no-style

Zenno Сниппеты C#


О сниппетах

Очень часто, для того чтобы сделать какой то функционал стандартными способами на зенке - нужно нагородить довольно большую партянку из кубиков. А некоторые фичи и вовсе не реализовать на кубиках. В тоже время можно довольно просто решать некоторые задачи при помощи специальных сниппетов состоящих из C# кода.







Комфортное использование сниппетов

В зенно постере есть удобная система хранения сниппетов. С её помощью удобно хранить и при необходимости быстро загружать необходимый в данный момент снипеты.


Сохранение сниппетов

Для того чтобы сохранить сниппет, необходимо в кубике c# выделить текс и нажав правой кнопкой мыши выбрать пункт Сохранить в c# сниппет.

zenno7-save-snippet-1

Вписываем название и всё готово. Сами сниппеты сохраняются в папку

C:\Users\USERNAME\AppData\Roaming\ZennoLab\ZennoPoster\7\Snippets


Загрузка сниппетов

Загрузка сниппетов интуитивно понятная. На пустом кубике c# кликаем правой кнопкой мыши и выбираем пункт Вставить c# сниппет, после чего выбираем необходимый сниппет

zenno7 load snippet 1


Далее предлагаю коллекцию моих сниппетов. Я буду переодически обновлять её, по мере необходимости







Настройки браузера

Очистка куки + кеш + разрешение экрана инстанса

instance.ClearCookie();
instance.ClearCache();
project.Profile.CookieContainer.Clear();
instance.SetWindowSize(1920,1080);


Доп. настройки

//загрузка рекламы
instance.UseAdds = true;

//загрузка картинок
instance.LoadPictures = true;

//загрузка медиа audio & video
instance.UseMedia = true;

//загрузка стилей css
instance.UseCSS = true;

//загрузка фреймов (iframe)
instance.DownloadFrame = true;

//блокировка всплывающих окон вкл
instance.AllowPopUp = false;


Javascript + плагины

//javascript вкл
instance.UseJavaScripts = true;

//flash, java, silverlight плагины вкл
instance.UsePlugins = true;

//загрузка плагинов в том же окне
instance.UsePluginsForceWmode = true;


Состояние занятости

//игнорировать Ajax запросы
instance.IgnoreAjaxRequests = false;

//игнорировать дополнительные get post запросы
instance.IgnoreAdditionalRequests = false;

//игнорировать Frame запросы
instance.IgnoreFrameRequests = false;

//игнорировать Flash запросы
instance.IgnoreFlashRequests = true;


Уровень эмуляции.
Глобально задаём уровень эмуляции от самого быстрого к самому качественному. Выбрать надо что то 1

instance.EmulationLevel = "None";
instance.EmulationLevel = "Middle";
instance.EmulationLevel = "Full";
instance.EmulationLevel = "SuperEmulation";


Эмуляция задержек

//задержка между набором символов
instance.SymbolEmulationDelay = 250;

//задержка между полями ввода
instance.FieldEmulationDelay = 1000;


Папка для загрузки фаилов

В примере ниже, такой папкой будет папка files внутри папки проекта project.directory

instance.DownloadsPath = "project.directory" + "files";












Работа с переменными

Очистка Переменных. Вместо var1, var2, var3 вписываем переменные которые хотим очистить. Таким образом можно сократить количество переменных в проекте используя несколько временных переменных для не важных данных, постоянно очищая их.



Очистка JSON. Очищаем переменные JSON. Иногда бывает полезно.







Работа со списками

Очистка Списка. Если необходимо очистить 1 список. Вставляем название своего списка вместо testlist



Очистка нескольких списков. Если нужно очистить более 1 списока. Вставляем их названия через запятую например tl,Список 1 testdel. link







Работа с фаилами

Удаление фаилов. Этим снипетом можно удалять сразу несколько фаилов за раз. Переменные Picture_X_Path должны содержать прямой путь до фаила/ов.



Добавляем строку в самое начало фаила. Я использовал этот сниппет чтобы добавить шапку для csv фаила. Через кубики там надо целый велосипед придумывать.



Парсим строку из фаила в переменную. Опять таки полезно чтобы прочитать первую строку csv фаила. Также можно брать рандомную строку или под любым номером.







Работа с Датой и Временем

Генерация UNIXTIME. Стандартная зенновская переменная {-TimeNow.UnixTime-} выводит UNIXTIME в неудобном формате с точкой. А Этим снипетом мы генерим валидный UNIXTIME состоящий из 10 символов. Можно сразу проверить его в сервисе unixtimestamp. В кубике с C# снимаем чекбокс не возвращать значение и выбираем переменную в которую хотим записать.



Перевести дату в UNIXTIME. Для того чтобы перевести дату 06.06.2022 16:54:03 в UNIXTIME можно воспользоваться этим замечательным снипетом.



Перевести время в UNIXTIME. Для того чтобы перевести время 10:49:50 в UNIXTIME. Бывает полезно когда на сайте можно сделать какое то действие только через указанный периуд времени, сначала парсим такое значение в unixtime, а потом например можем добавить это значение к старому значению в бд, получив таким образом актуальное время для действия.



Генерация даты дня рождения в определённом формате. У буржуев даты в другом формате. Данный снипет решает проблемы с датой для написания регеров на бурж сайтах. Также этот сниппет легко изменить чтобы даты были в другом формате изменив конструкцию dd-MM-yyyy на необходимую вам.







Работа с Текстом

Замена HTML Мнемоников. Были проблемы при парсинге вк апи. Кавычки и другие html символы записывались через их html код. Этим Сниппетом, мы вернем им первоначальный вид.



URL Encode. Будет полезен например когда нам нужно передать кириллицу в запросах или прямо в url, подставляя результат закодированной кириллицы.



Массовое удаление / замена спецсимволов. Пригодиться в ситуациях когда нужно удалить или заменить сразу несколько символов в переменной, в пределах одного кубика C#.



Заменить аббревиатуру и умножить числа. Если переменная user_count_likes содержит только число, то ничего не делает. Если в этой переменной есть число с буквой k или K то удаляет эту букву, а само число умножает на 1000. Если в этой переменной есть число с буквой m или M то удаляет эту букву, а само число умножает на 1000000. Перед выполнением очищает содержимое переменных с регулярками.



Парсинг и проверка нескольких значений из переменной. Берём какую то переменную, например html_Dom и делаем несколько проверок за раз. Проверки делаются за счёт того что мы парсим переменную html_Dom регулярками. Перед использованием все регулярки обнуляются. Если получилось спарсить по регулярке то она попадает в переменную регулярки. Если не получилось, то в переменную регулярки попадает empty.







Сниппеты ZennoHelpers/Snippets

На одном из конкурсов статей выкладывали неплохой пак C# сниппетов. Далее он перекочевал в репозиторий ZennoHelpers/Snippets

Комментарии