// Путь к файлу, который нужно обработать
string filePath = project.Directory + @"\proxy.txt";
// Читаем все строки из файла в массив
string[] lines = System.IO.File.ReadAllLines(filePath);
// Проверяем, что файл не пустой
if (lines.Length > 0)
{
// Берем первую строку
string firstLine = lines[0];
// Присваиваем значение переменной
project.Variables["proxy"].Value = firstLine;
// Создаем новый массив строк: удаляем первую строку и дописываем её в конец
string[] updatedLines = lines.Skip(1).Concat(new []
{
firstLine
}).ToArray();
// Записываем обновленные строки обратно в файл
System.IO.File.WriteAllLines(filePath, updatedLines);
}
else
{
// Если файл пустой, выбрасываем ошибку
project.SendErrorToLog("Файл proxy.txt пустой!");
throw new Exception("Файл proxy.txt пустой!");
}
//==============================
// Запрос без прокси
var responseWithoutProxy = ZennoPoster.HttpGet("https://chek.zennolab.com/proxy.php", "", "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody);
string cleanedResponseWithoutProxy = Macros.TextProcessing.Replace(responseWithoutProxy, "<.*?>", "", "Regex", "All").Trim();
// Запрос с прокси
var responseWithProxy = ZennoPoster.HttpGet("https://chek.zennolab.com/proxy.php", project.Variables["proxy"].Value, "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody);
string cleanedResponseWithProxy = Macros.TextProcessing.Replace(responseWithProxy, "<.*?>", "", "Regex", "All").Trim();
// Сравнение ответов
if (cleanedResponseWithProxy == cleanedResponseWithoutProxy)
{
project.SendToLog("Прокси не работает!", ZennoLab.InterfacesLibrary.Enums.Log.LogType.Warning, true, ZennoLab.InterfacesLibrary.Enums.Log.LogColor.Red);
throw new Exception("Прокси не работает!");
}
else
{
instance.SetProxy(project.Variables["proxy"].Value); // установка прокси
project.SendToLog("Прокси работает и установлен!", ZennoLab.InterfacesLibrary.Enums.Log.LogType.Info, true, ZennoLab.InterfacesLibrary.Enums.Log.LogColor.Green); }