Коллекция сниппетов от пользователей ZennoPoster (можно добавить свои!)

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 919
Благодарностей
3 809
Баллы
113


Больше 2х лет прошло с того момента, когда я предложил сделать отдельный поддомен со сборником пользовательских сниппетов. Та идея с форком djangosnippets канула в лету, но зато сенью откликнулся камрад @Zymlex и создал репозиторий на github, куда мы с другими уважаемыми людьми с форума втихаря и неспеша добавляли всё то, что у нас лежит в закромах :dz:

Сейчас там более 140 различных сниппетов на все случаи жизни: начиная от "получения даты в unixtime" и заканчивая "отключением Content Security Policy в FF". И благодаря тому, что это всё реализовано как репозиторий на GitHub - каждый желающий может прислать свой Pull Request со сниппетами (главное правильно оформить код).

Все сниппеты вместе с инструкциями по добавлению находятся тут:
https://github.com/ZennoHelpers/Snippets


PS: Если же у вас нет опыта работы с git, то вы можете выложить свою сборную солянку C#-сниппетов тут в архиве, а мы в свободное время разберём это добро и сами добавим в репозиторий ;-)
 
Последнее редактирование модератором:

Konrod_m

Client
Регистрация
18.09.2014
Сообщения
1 309
Благодарностей
684
Баллы
113
Больше 2х лет прошло с того момента
Спасибо за ваш вклад в развитие форума и огромное кол-во полезнях. На форуме наверное нет людей с серьезными проектами, кто не использует ваши наработки.

Если увидите, что могу быть полезным по своим задачам - обращайтесь. Хорошие дела должны возвращаться.
 
  • Спасибо
Реакции: Koqpe

Valandersi

Client
Регистрация
19.01.2015
Сообщения
1 838
Благодарностей
1 104
Баллы
113
Я частенько оттуда юзаю сниппеты, у @Zymlex из подписи взял и в закладки закинул)
 
  • Спасибо
Реакции: Lord_Alfred и Zymlex

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 919
Благодарностей
3 809
Баллы
113
Спасибо за ваш вклад в развитие форума и огромное кол-во полезнях. На форуме наверное нет людей с серьезными проектами, кто не использует ваши наработки.

Если увидите, что могу быть полезным по своим задачам - обращайтесь. Хорошие дела должны возвращаться.
Весьма признателен! Спасибо!

Чем больше будет энтузиастов на форуме, тем быстрее у всех будет повышаться умение и навык, а это напрямую влияет на продуктивность и результат! :ay:
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 695
Благодарностей
3 952
Баллы
113
Спасибо за труд!
Мне показалось или я плохо искал, там нет двух очень важных разделов: "Безопасность" со сниппетами эмуляциями UA, шрифтов,подменой системного времени и т. п. вещами коих не один десяток и "Эмуляция мыши" с подборкой практических методов FullEmulation.
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 919
Благодарностей
3 809
Баллы
113
К слову, именно этот репозиторий - не моя заслуга (чтоб никто не думал, что я всё один!).

В создании и наполнении его сниппетами участвовали: @Zymlex, @Meteorburn, @specialist, @DmitryAk, @AZANIR, @BAZAg, @radv, @sibbora и другие!


Отлайкайте их тоже по полной )))


Мне показалось или я плохо искал, там нет двух очень важных разделов: "Безопасность" со сниппетами эмуляциями UA, шрифтов,подменой системного времени и т. п. вещами коих не один десяток и "Эмуляция мыши" с подборкой практических методов FullEmulation.
К сожалению, пока что никто не присылал сниппетов по "Анонимности" (хоть мы и думали, что должна быть такая директория). Может у тебя есть хорошие решения для этих задач? Я стандартными кубиками пользуюсь и меня это вполне устраивает (потому что на гигантов не покушаюсь, а воюю со середнячком)
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 919
Благодарностей
3 809
Баллы
113
Благодаря инициативе @Astraport - репозиторий сниппетов обзавёлся своим классным логотипом :bo:

Модераторы, добавьте, пожалуйста, его и в мой стартпост (я уже не могу редактировать его) - будет чуточку покрасивее и больше внимания привлекать данная тема для случайнозаблудших))

 

zenno.xxx

Client
Регистрация
05.10.2016
Сообщения
682
Благодарностей
248
Баллы
43
Парни, а про этот сниппет забыли, или я плохо смотрел?

Берем случайные 100 элементов из списка list и записываем их в список list2:
var list = project.Lists["list"];
var list2 = project.Lists["list2"];

list2.AddRange(list.GetItems("random100", false).ToList());

//100 - кол-во случайных элементов из списка;
//false - без удаления из списка, true - с удалением;
 
Последнее редактирование:
  • Спасибо
Реакции: Lord_Alfred и Astraport

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 919
Благодарностей
3 809
Баллы
113
Парни, а про этот сниппет забыли, или я плохо смотрел?
Такого вроде не было на сколько я помню )
Сделай без лока (имхо, он тут не нужен) с сохранением в другой список (а нее временный) и присылай ;-)
 

zenno.xxx

Client
Регистрация
05.10.2016
Сообщения
682
Благодарностей
248
Баллы
43
хорошо. поправил прямо тут :-)
 
Последнее редактирование:

Valandersi

Client
Регистрация
19.01.2015
Сообщения
1 838
Благодарностей
1 104
Баллы
113
Преобразовываем число в месяц
C#:
string number = project.Variables["mounth_birthday"].Value;

switch (number)
{
    case "1":
        project.Variables["mounth_birthday"].Value = "January";
        break;
    case "2":
        project.Variables["mounth_birthday"].Value = "February";
        break;
    case "3":
        project.Variables["mounth_birthday"].Value = "March";
        break;
    case "4":
        project.Variables["mounth_birthday"].Value = "April";
        break;
    case "5":
        project.Variables["mounth_birthday"].Value = "May";
        break;
    case "6":
        project.Variables["mounth_birthday"].Value = "June";
        break;
    case "7":
        project.Variables["mounth_birthday"].Value = "July";
        break;   
    case "8":
        project.Variables["mounth_birthday"].Value = "August";
        break;   
    case "9":
        project.Variables["mounth_birthday"].Value = "September";
        break;
    case "10":
        project.Variables["mounth_birthday"].Value = "October";
        break;
    case "11":
        project.Variables["mounth_birthday"].Value = "November";
        break;   
    case "12":
        project.Variables["mounth_birthday"].Value = "December";
        break;   
}
 
  • Спасибо
Реакции: phoenixs

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 919
Благодарностей
3 809
Баллы
113

juder

Client
Регистрация
05.08.2018
Сообщения
62
Благодарностей
21
Баллы
8
PS: Если же у вас нет опыта работы с git, то вы можете выложить свою сборную солянку C#-сниппетов тут в архиве, а мы в свободное время разберём это добро и сами добавим в репозиторий ;-)
Сразу говорю не мое, где стырил уже не помню. С тем что уже есть на гитхабе не сравнивал. Если есть у кого желание ковыряйтесь ))
 

Вложения

DocSpoc

Client
Регистрация
04.01.2016
Сообщения
213
Благодарностей
83
Баллы
28
Прошу помощи у спецов по C#

Юзаю сниппет с форума (не помню уже где нашел) для клика по случайной ссылке с сайта (URL передаю через "curUrl")
C#:
string error;//переменная для проверки видимости
string curl = project.Variables["curUrl"].Value;
HtmlElementCollection hes = instance.ActiveTab.GetDocumentByAddress("0").FindElementsByAttribute("a","href",curl,"regexp");//берем все элементы
HtmlElement he;
int i = 0;//счетчик
do
{
    int url = rnd.Next(0, hes.Count);//выбираем совпадение элемента рандомно
    i++;
    he = instance.ActiveTab.GetDocumentByAddress("0").FindElementByAttribute("a","href",curl,"regexp", url);//берем элемент

    int leftInTab =-1;
    int topInTab =-1;
    try { leftInTab = Convert.ToInt32(he.GetAttribute("leftInTab")); } catch{}
    try { topInTab = Convert.ToInt32(he.GetAttribute("topInTab")); } catch{}
    
    if (leftInTab <= 0 && topInTab <= 0)//если элемент не находится в поле видимости
        {
            continue;//если да, то продолжаем искать
        }
    else
        {
            break;//если нет, то выходим из цикла
        }
}
while (i!=100);//пока не будет "100", не выходим из цикла
instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(he);//наводим мышь на элемент
System.Threading.Thread.Sleep(rnd.Next(500, 1000));//случайно ждем время до клика от 0.5 секунды до 1й
instance.ActiveTab.FullEmulationMouseClick("left", "click");//нажимает левой кнопкой мыши на элемент
Столкнулся с тем, что на некоторых сайтах клик и переход на новую страницу не происходит
Если удалить цикл, то все в порядке:

C#:
string curl = project.Variables["curUrl"].Value;
HtmlElementCollection hes = instance.ActiveTab.GetDocumentByAddress("0").FindElementsByAttribute("a","href",curl,"regexp");//берем все элементы
HtmlElement he;
int url = rnd.Next(0, hes.Count);//выбираем совпадение элемента рандомно
he = instance.ActiveTab.GetDocumentByAddress("0").FindElementByAttribute("a","href",curl,"regexp", url);//берем элемент
instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(he);//наводим мышь на элемент
System.Threading.Thread.Sleep(rnd.Next(500, 1000));//случайно ждем время до клика от 0.5 секунды до 1й
instance.ActiveTab.FullEmulationMouseClick("left", "click");//нажимает левой кнопкой мыши на элемент
Вопрос: насколько цикл из первого сниппета необходим? Как я понимаю, там контроль за мышью происходит?

Что в этом цикле может сбоить?

Заранее благодарю.
 
Регистрация
26.05.2020
Сообщения
412
Благодарностей
146
Баллы
43
А как себе их установить все разом?
 

zmike

Client
Регистрация
24.10.2019
Сообщения
119
Благодарностей
7
Баллы
18
Compiling code of Error in action "CS0103" "The name 'ZennoHelpers' does not exist in the current context". [Row: 18; Column: 6]

Что это за ошибка?
Я загрузил zip-файл и указал папку на этот zip-файл.
 

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 068
Благодарностей
724
Баллы
113
Compiling code of Error in action "CS0103" "The name 'ZennoHelpers' does not exist in the current context". [Row: 18; Column: 6]

Что это за ошибка?
Я загрузил zip-файл и указал папку на этот zip-файл.
Надо распаковать, чтобы была папка со снипетами, и указывать на папку
1618735558090.png
 

Zoloo

Client
Регистрация
19.06.2020
Сообщения
110
Благодарностей
9
Баллы
18
HTML to bbcode

string y = project.Variables ["content_body"]. Value;
string result = System.Net.WebUtility.HtmlDecode (y);
return result;

заменил переменную на свою
ставлю положить значение в переменную

Код не меняется (или меняется с ошибкой) - хотел зачеркнуть то, что в скобках, не работает функция на форуме
 

dihard

Client
Регистрация
08.11.2019
Сообщения
240
Благодарностей
40
Баллы
28
HTML to bbcode

string y = project.Variables ["content_body"]. Value;
string result = System.Net.WebUtility.HtmlDecode (y);
return result;

заменил переменную на свою
ставлю положить значение в переменную

Код не меняется (или меняется с ошибкой) - хотел зачеркнуть то, что в скобках, не работает функция на форуме
project.Variables["content_body"].Value;
project.Variables ["content_body"]. Value; \Ваш вариант

Попробуйте удалить пробелы

System.Net.WebUtility.HtmlDecode (y); / тут тоже
 
  • Спасибо
Реакции: Zoloo

Zoloo

Client
Регистрация
19.06.2020
Сообщения
110
Благодарностей
9
Баллы
18
project.Variables["content_body"].Value;
project.Variables ["content_body"]. Value; \Ваш вариант

Попробуйте удалить пробелы

System.Net.WebUtility.HtmlDecode (y); / тут тоже
вроде удалил
string y = project.Variables["content_body"].Value;
string result = System.Net.WebUtility.HtmlDecode(y);
return result;

не конвертирует
 

dihard

Client
Регистрация
08.11.2019
Сообщения
240
Благодарностей
40
Баллы
28
C#:
var y = project.Variables["content_body"].Value;
return System.Net.WebUtility.HtmlDecode(y);
Попробуйте так
 

Markoonij

Client
Регистрация
13.10.2020
Сообщения
58
Благодарностей
2
Баллы
8
В переменной dom_ids лежит DOM страницы.
Нужно из этой переменной xpath'ем выдернуть значение и положить в переменную sport.
Подскажите, как это можно реализовать.
 

material

Client
Регистрация
23.03.2021
Сообщения
160
Благодарностей
46
Баллы
28
К слову, именно этот репозиторий - не моя заслуга (чтоб никто не думал, что я всё один!).

В создании и наполнении его сниппетами участвовали: @Zymlex, @Meteorburn, @specialist, @DmitryAk, @AZANIR, @BAZAg, @radv, @sibbora и другие!


Отлайкайте их тоже по полной )))



К сожалению, пока что никто не присылал сниппетов по "Анонимности" (хоть мы и думали, что должна быть такая директория). Может у тебя есть хорошие решения для этих задач? Я стандартными кубиками пользуюсь и меня это вполне устраивает (потому что на гигантов не покушаюсь, а воюю со середнячком)
Данную тему нужно поднимать раз в квартал и благодарить всех тех, кто развивал и поддерживал инициативу "Сниппеты для ZennoPoster". Если вы знаете более полезную тему на форуме, напишите её в ЛС или в данный тред, буду очень рад ознакомиться с чем-то сапостовимым по вашему мнению.
 
  • Спасибо
Реакции: bizzon

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