О сниппетах
Очень часто, для того чтобы сделать какой то функционал стандартными способами на зенке - нужно нагородить довольно большую партянку из кубиков. А некоторые фичи и вовсе не реализовать на кубиках. В тоже время можно довольно просто решать некоторые задачи при помощи специальных сниппетов состоящих из C# кода.
Комфортное использование сниппетов
В зенно постере есть удобная система хранения сниппетов. С её помощью удобно хранить и при необходимости быстро загружать необходимый в данный момент снипеты.
Сохранение сниппетов
Для того чтобы сохранить сниппет, необходимо в кубике c# выделить текс и нажав правой кнопкой мыши выбрать пункт Сохранить в c# сниппет.
Вписываем название и всё готово. Сами сниппеты сохраняются в папку
Загрузка сниппетов
Загрузка сниппетов интуитивно понятная. На пустом кубике c# кликаем правой кнопкой мыши и выбираем пункт Вставить c# сниппет, после чего выбираем необходимый сниппет
Далее предлагаю коллекцию моих сниппетов. Я буду переодически обновлять её, по мере необходимости
Настройки браузера
Очистка куки + кеш + разрешение экрана инстанса
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;
instance.UseJavaScripts = true;
//flash, java, silverlight плагины вкл
instance.UsePlugins = true;
//загрузка плагинов в том же окне
instance.UsePluginsForceWmode = true;
instance.IgnoreAjaxRequests = false;
//игнорировать дополнительные get post запросы
instance.IgnoreAdditionalRequests = false;
//игнорировать Frame запросы
instance.IgnoreFrameRequests = false;
//игнорировать Flash запросы
instance.IgnoreFlashRequests = true;
Уровень эмуляции.
Глобально задаём уровень эмуляции от самого быстрого к самому качественному. Выбрать надо что то 1
instance.EmulationLevel = "Middle";
instance.EmulationLevel = "Full";
instance.EmulationLevel = "SuperEmulation";
Эмуляция задержек
instance.SymbolEmulationDelay = 250;
//задержка между полями ввода
instance.FieldEmulationDelay = 1000;
Папка для загрузки фаилов
В примере ниже, такой папкой будет папка files внутри папки проекта project.directory
Работа с переменными
Очистка Переменных. Вместо 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
Отправить комментарий