Как создать blacklist

preston

Client
Регистрация
01.01.2012
Сообщения
41
Благодарностей
3
Баллы
8
Как можно реализовать блэклист, чтобы строка (например, ссылка) проверялась на наличие копии в определенном файле
 
  • Спасибо
Реакции: Roman*

Bot_Sculptor

Client
Регистрация
11.06.2012
Сообщения
787
Благодарностей
239
Баллы
43
можно использовать список, проверять в цикле на совпадение все строки (но это херь)
а можно использовать C# сниппет
var url = project.Variables["web_link"].Value;
var check = project.Lists["blacklist"];
return check.Contains(url);

вернет true если строка найдена в списке blacklist

web_link (переменная из проекта) искомая строка в списке
 
  • Спасибо
Реакции: preston

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Код:
// берем из переменной текст, который надо искать
var textContains = project.Variables["listSearchTextContains"].Value;
// получаем список, в котором будем искать
var sourceList = project.Lists["SourceList"];
// ищем в каждой строчке в списке
lock(SyncObjects.ListSyncer)
{
    for(int i=0; i < sourceList.Count; i++)
    {
        // читаем строку из списка
        var str = sourceList[i];
        // проверяем содержание текста в строке, если есть совпадение возвращаем "yes"
        if (str.Contains(textContains))
            return "yes";
    }
}
// если ничего не нашли возвращаем "no"
return "no";
 

weer17

Новичок
Регистрация
08.08.2017
Сообщения
7
Благодарностей
0
Баллы
1
можно использовать список, проверять в цикле на совпадение все строки (но это херь)
Делаю блэклист.

Берём первую строчку из списка 1 , проверяем нет ли её в списке 2, если нет, то совершаем с ней некое действие.
После этого строчка из списка 1 удаляется и ложится в список 2.
А если первая строчка из списка 1 есть в списке 2 , то она удаляется и берётся новая.

А можно такой готовый пример, я новичок, поэтому буду долго тупить. Я с живым примером быстрей разберусь.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
Делаю блэклист.

Берём первую строчку из списка 1 , проверяем нет ли её в списке 2, если нет, то совершаем с ней некое действие.
После этого строчка из списка 1 удаляется и ложится в список 2.
А если первая строчка из списка 1 есть в списке 2 , то она удаляется и берётся новая.

А можно такой готовый пример, я новичок, поэтому буду долго тупить. Я с живым примером быстрей разберусь.
построчно проверять это долго и лишне, можно спсиок в котором находится блеклист объединить в переменную, либо если это не спсиок, а файл, просто вязть содержимое файла в переменную и в этой переменной уже проверять вхождение строки и с помощью IF: проверки на пустоту, проверять есть строка в блеклисте или нет..

upload_2017-8-25_17-37-48.png
 

weer17

Новичок
Регистрация
08.08.2017
Сообщения
7
Благодарностей
0
Баллы
1
либо если это не спсиок, а файл, просто вязть содержимое файла в переменную и в этой переменной уже проверять вхождение строки и с помощью IF: проверки на пустоту, проверять есть строка в блеклисте или нет..
Именно это мне и надо. Если не сложно сделайте мне готовый пример. Я понимаю что это сделать очень просто, но я долго буду копаться. С готовым сразу всё пойму, и сделаю как мне надо.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
Именно это мне и надо. Если не сложно сделайте мне готовый пример. Я понимаю что это сделать очень просто, но я долго буду копаться. С готовым сразу всё пойму, и сделаю как мне надо.
как то так..

upload_2017-8-25_18-7-12.png
 

Вложения

  • Спасибо
Реакции: Dimson

weer17

Новичок
Регистрация
08.08.2017
Сообщения
7
Благодарностей
0
Баллы
1
Спасибо, попробую.
 

Tvister

Client
Регистрация
09.09.2010
Сообщения
255
Благодарностей
33
Баллы
28

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
=


Закидываю в оба файла одно и то же, к примеру
fgdgdgdgf
xcfgxgdg
zfdsfdfgd

По всем строкам говорит типа нет в блеклисте по последней есть. Что не так делаю?
Убрать $ здесь:

upload_2018-11-29_0-8-21.png
 

socsecret.ru

Client
Регистрация
30.09.2017
Сообщения
346
Благодарностей
209
Баллы
43
Код:
// берем из переменной текст, который надо искать
var textContains = project.Variables["listSearchTextContains"].Value;
// получаем список, в котором будем искать
var sourceList = project.Lists["SourceList"];
// ищем в каждой строчке в списке
lock(SyncObjects.ListSyncer)
{
    for(int i=0; i < sourceList.Count; i++)
    {
        // читаем строку из списка
        var str = sourceList[i];
        // проверяем содержание текста в строке, если есть совпадение возвращаем "yes"
        if (str.Contains(textContains))
            return "yes";
    }
}
// если ничего не нашли возвращаем "no"
return "no";
Допустим, в списке SourceList есть строка "123456"
А в переменной listSearchTextContains, скажем, "45". Тогда вернётся "yes", хотя на самом деле строки "45" в списке нет. Что делать?
 

woober

Client
Регистрация
07.04.2015
Сообщения
211
Благодарностей
123
Баллы
43
Допустим, в списке SourceList есть строка "123456"
А в переменной listSearchTextContains, скажем, "45". Тогда вернётся "yes", хотя на самом деле строки "45" в списке нет. Что делать?
а версия у тебя ниже 5.18.0.0 ?
Щас посмотрел в ней исправили метод Contains.
У меня на 5.17.1.0 та же ситуация (IZennoList метод Contains ищет то, чего в списке нет)
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 415
Благодарностей
5 454
Баллы
113
Сталковался с тем, что метод Contains не корректно отрабатывает. Не знаю пофиксили или нет.
 

socsecret.ru

Client
Регистрация
30.09.2017
Сообщения
346
Благодарностей
209
Баллы
43
а версия у тебя ниже 5.18.0.0 ?
Щас посмотрел в ней исправили метод Contains.
У меня на 5.17.1.0 та же ситуация (IZennoList метод Contains ищет то, чего в списке нет)
ZennoPoster RU 5.25.0.0
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113

woober

Client
Регистрация
07.04.2015
Сообщения
211
Благодарностей
123
Баллы
43
на версии с хромом всё норм работает

C#:
var list = new List<string>();
list.Add("123456");

if (list.Contains("45"))
{
    return "es";
}
else
{
    return "no";
}
так речь не про List<string>, а про IZennoList. Попробуй с ним...
Переводи в List<string>() все и Contains наверняка будет отрабатывать как надо
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
  • Спасибо
Реакции: woober

Markoni

Client
Регистрация
27.12.2018
Сообщения
62
Благодарностей
2
Баллы
8
Скажите пожалуйста, а как сделать так, что б с помощью этого кода, пользователи из списка "Users", которым еще не писал, после проверки попадали через кода, заносились в Black list в текстовый файл и потом переходить на парсинг других и если они есть уже в списке то переходить на новых, если нет, добавлять в списоки писать им и т.д.? Какой посоветуете код?
 

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
Скажите пожалуйста, а как сделать так, что б с помощью этого кода, пользователи из списка "Users", которым еще не писал, после проверки попадали через кода, заносились в Black list в текстовый файл и потом переходить на парсинг других и если они есть уже в списке то переходить на новых, если нет, добавлять в списоки писать им и т.д.? Какой посоветуете код?
Напиши, пожалуйста, по пунктам. А то не совсем понятно?
1.
2.
...
 

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