- Регистрация
- 23.12.2014
- Сообщения
- 14 427
- Благодарностей
- 5 453
- Баллы
- 113
if (proxyList.Count == 0)
{
var id = Guid.Parse(project.TaskId);
ZennoPoster.SetTries(id, 0);
throw new Exception("[Локальный список прокси пуст!]");
}
я тоже встречал. У меня возникла, когда большой перепост был. Я всё стёр и без цитаты отправил пост. Капча лаговая, не стал с ней бодатьсяМистика..
Поправь 12-ю строку, лишние символы прописались.Супер! значит вот снипет готовый.
Какая его функция?Я начал подобный кусок вставлять во все сниппеты по работе с расходуемыми спискамиC#:if (proxyList.Count == 0) { var id = Guid.Parse(project.TaskId); ZennoPoster.SetTries(id, 0); throw new Exception("[Локальный список прокси пуст!]"); }
А 3, 13 и 17 сторки могут конфликтовать ?Поправь 12-ю строку, лишние символы прописались.
обрубать все попытки, если в списке (в данном случае) нет прокси. Для себя в принципе не особо важно, но для клиентов.Очень уж они чувствительны к ошибкам. Прокси не загрузят, миллион попыток поставят - в логе миллион ошибок. Паника, тревога, попытки суицида)Какая его функция?
Обе закомментироватьА 3, 13 и 17 сторки могут конфликтовать ?
Если я разкоментировал 3 строку, то что нужно делать с 13 и 17?
Еще бы придумать с соксами что нибудь, есть идеи?Обе закомментировать
Добавь в начало кода строкуЕще бы придумать с соксами что нибудь, есть идеи?
Я начал просто socks5:// вписывать в сам список.
string protocol = project.Variables["Protocol"].Value; // из переменной, в переменной значение socks5:// или http:// (пустая переменная = http://)
// или можно явно указать
string protocol = "socks5://";
Если выбираем 1 строку, то 3 надо закоментировать? и наоборот)Добавь в начало кода строку
и замениC#:string protocol = project.Variables["Protocol"].Value; // из переменной, в переменной значение socks5:// или http:// (пустая переменная = http://) // или можно явно указать string protocol = "socks5://";
var content = ZennoPoster.HttpGet("http://chek.zennolab.com/", proxy);
на
var content = ZennoPoster.HttpGet("http://chek.zennolab.com/", protocol + proxy);
Если из переменной будешь брать значение протокола, то остальные строки вообще удали.Если выбираем 1 строку, то 3 надо закоментировать? и наоборот)
Я хочу универсальный сделать, что бы на выбор было.Если из переменной будешь брать значение протокола, то остальные строки вообще удали.
теоретически протокол должен быть тут instance.SetProxy(proxy);Если из переменной будешь брать значение протокола, то остальные строки вообще удали.
Да, кстати, эту строку тоже надо заменить натеоретически протокол должен быть тут instance.SetProxy(proxy);
Из переменной - это и будет универсально. И там уже, если нужно, можешь и во входные настройки добавить опцию выбора протокола.Я хочу универсальный сделать, что бы на выбор было.
Главное что бы эта конструкция заработала в итоге
Скоро тема будет, пока отвлекся по работе.Да, кстати, эту строку тоже надо заменить на
instance.SetProxy(protocol + proxy);
Из переменной - это и будет универсально. И там уже, если нужно, можешь и во входные настройки добавить опцию выбора протокола.
Ниче не напутал?Да, кстати, эту строку тоже надо заменить на
instance.SetProxy(protocol + proxy);
Из переменной - это и будет универсально. И там уже, если нужно, можешь и во входные настройки добавить опцию выбора протокола.
IZennoList proxyList = project.Lists["Proxy"];
int count = 10; // количество неудачных проверок подряд
//int count = proxyList.Count; // если строки берутся с удалением БЕЗ записи в конец списка (проверяем до талого, так сказать)
string protocol = project.Variables["Protocol"].Value; // из переменной, в переменной значение socks5:// или http:// (пустая переменная = http://)
lock (SyncObjects.ListSyncer) {
for (int i = 0; i < count; i++) {
if (proxyList.Count == 0) break;
string proxy = proxyList[0];
proxyList.RemoveAt(0);
var content = ZennoPoster.HttpGet("http://chek.zennolab.com/", proxy);
if (content.Contains(Regex.Match(proxy, @"(\d{1,3}\.){3}\d{1,3}").Value)) {
proxyList.Add(proxy); // записываем живую проксю в конец списка
instance.SetProxy(protocol + proxy);
return proxy;
}
// proxyList.Add(proxy); // записываем проксю в конец списка в любом случае (предыдущее закомментировать!)
}
throw new Exception("Ошибка!");
}
Напутал немного, надоНиче не напутал?