[SPOILER= Socials]
[SPOILER= Discord]
Discord
Класс для автоматизации работы с Discord в ZennoPoster. Предоставляет методы для загрузки учетных данных из базы данных, авторизации в Discord и получения списка серверов.
Конструкторы
Discord(IZennoPosterProjectModel project, Instance instance, bool log = false)
Создает новый экземпляр класса Discord.
Параметры:
project- экземпляр проекта ZennoPosterinstance- экземпляр браузераlog- включить логирование (по умолчанию false)
Пример: [CODE=csharp] var discord = new Discord(project, instance, true); //создать экземпляр Discord с включенным логированием [/CODE]
Методы
CredsFromDb()
Возвращает: string - статус аккаунта Discord
Загружает данные Discord аккаунта из базы данных и сохраняет их в переменные проекта.
Пример: [CODE=csharp] string status = discord.CredsFromDb(); //загрузить данные аккаунта из БД project.SendInfoToLog($“Статус аккаунта: {status}”); [/CODE]
Log(string tolog = "", string callerName = "", bool log = false)
Возвращает: void
Отправляет сообщение в лог проекта с префиксом Discord.
Параметры:
tolog- текст сообщения для логаcallerName- имя вызывающего метода (заполняется автоматически)log- принудительно показать лог даже если отключен
Пример: [CODE=csharp] discord.Log(“Начинаем авторизацию”, log: true); //отправить сообщение в лог с принудительным показом [/CODE]
DSload(bool log = false)
Возвращает: string - результат загрузки (статус или имя пользователя)
Выполняет полную процедуру авторизации в Discord: загружает страницу, пытается авторизоваться по токену, при неудаче выполняет вход по логину/паролю.
Параметры:
log- включить дополнительное логирование
Пример: [CODE=csharp] string result = discord.DSload(true); //авторизоваться в Discord if (result == “ok” || result.Contains(”@”)) { project.SendInfoToLog(“Успешная авторизация”); } [/CODE]
DSservers()
Возвращает: string - список серверов через запятую
Получает список всех серверов Discord, к которым подключен текущий аккаунт, включая серверы в папках.
Пример: [CODE=csharp] string servers = discord.DSservers(); //получить список серверов project.SendInfoToLog($“Серверы: {servers}”); [/CODE][/SPOILER] [SPOILER= GitHub]
GitHub
Класс для автоматизации работы с GitHub аккаунтами, включая авторизацию, двухфакторную аутентификацию и управление паролями.
Конструкторы
GitHub(IZennoPosterProjectModel project, Instance instance, bool log = false)
Создает новый экземпляр класса GitHub с автоматической загрузкой учетных данных.
Параметры:
project- экземпляр проекта ZennoPosterinstance- экземпляр браузераlog- включить логирование (по умолчанию false)
Пример: [CODE=csharp] var github = new GitHub(project, instance, true); [/CODE]
Методы
void LoadCreds()
Загружает учетные данные GitHub из базы данных и сохраняет их в переменные проекта.
Пример: [CODE=csharp] github.LoadCreds(); [/CODE]
void InputCreds()
Вводит учетные данные на странице входа GitHub и обрабатывает двухфакторную аутентификацию.
Пример: [CODE=csharp] github.InputCreds(); [/CODE]
void Go()
Переходит на страницу входа GitHub и принимает cookies если необходимо.
Пример: [CODE=csharp] github.Go(); [/CODE]
void Verify2fa()
Выполняет верификацию двухфакторной аутентификации с использованием OTP кода.
Пример: [CODE=csharp] github.Verify2fa(); [/CODE]
string Load()
Возвращает: имя текущего пользователя GitHub
Выполняет полный процесс входа в аккаунт GitHub с проверкой корректности авторизации и сохранением cookies.
Пример: [CODE=csharp] string currentUser = github.Load(); project.SendInfoToLog($“Вошли как: {currentUser}”); [/CODE]
string Current()
Возвращает: имя текущего авторизованного пользователя
Получает имя текущего пользователя из навигационного меню GitHub.
Пример: [CODE=csharp] string username = github.Current(); project.SendInfoToLog($“Текущий пользователь: {username}”); [/CODE]
void ChangePass(string password = null)
Изменяет пароль аккаунта GitHub через функцию восстановления пароля с использованием email.
Параметры:
password- новый пароль (не используется в текущей реализации)
Пример: [CODE=csharp] github.ChangePass(); [/CODE]
void SaveCookies()
Сохраняет текущие cookies браузера в базу данных для последующего использования.
Пример: [CODE=csharp] github.SaveCookies(); [/CODE][/SPOILER] [SPOILER= Google]
Класс для автоматизации работы с аккаунтами Google. Загружает данные аккаунта из базы данных, выполняет авторизацию с обходом различных проверок безопасности и сохраняет куки для последующего использования.
Конструкторы
Google(IZennoPosterProjectModel project, Instance instance, bool log = false)
Создает новый экземпляр класса для работы с Google аккаунтом.
Параметры:
project- текущий проект ZennoPosterinstance- экземпляр браузера для работыlog- включить подробное логирование (по умолчанию false)
Пример: [CODE=csharp] //создание экземпляра для работы с Google Google google = new Google(project, instance, log: true); [/CODE]
Публичные методы
string Load(bool log = false, bool cookieBackup = true)
Выполняет полную авторизацию в аккаунте Google с автоматическим прохождением всех проверок.
Возвращает: Строка со статусом авторизации (“ok” при успехе)
Параметры:
log- включить логирование процесса (по умолчанию false)cookieBackup- сохранить куки после успешной авторизации (по умолчанию true)
Пример: [CODE=csharp] //авторизация в Google аккаунте string result = google.Load(log: true, cookieBackup: true); if (result == “ok”) { project.SendInfoToLog(“Авторизация успешна”); } else { project.SendErrorToLog($“Ошибка авторизации: {result}”); } [/CODE]
string State(bool log = false)
Определяет текущее состояние страницы авторизации Google.
Возвращает: Строка с текущим состоянием (например: “ok”, “inputLogin”, “inputPassword”, “inputOtp”)
Параметры:
log- включить логирование (по умолчанию false)
Пример: [CODE=csharp] //проверка текущего состояния string currentState = google.State(); project.SendInfoToLog($“Текущее состояние: {currentState}”);
//обработка разных состояний switch (currentState) { case “ok”: project.SendInfoToLog(“Уже авторизован”); break; case “inputLogin”: project.SendInfoToLog(“Требуется ввод логина”); break; case “CAPTCHA”: project.SendWarningToLog(“Обнаружена капча”); break; } [/CODE]
string GAuth(bool log = false)
Выполняет авторизацию через систему Google Auth (для сторонних сервисов).
Возвращает: Строка с результатом авторизации (“SUCCESS” при успехе)
Параметры:
log- включить логирование (по умолчанию false)
Пример: [CODE=csharp] //авторизация через Google Auth string authResult = google.GAuth(log: true); if (authResult.Contains(“SUCCESS”)) { project.SendInfoToLog(“Google Auth успешно пройден”); } else { project.SendErrorToLog($“Ошибка Google Auth: {authResult}”); } [/CODE]
void SaveCookies()
Сохраняет текущие куки Google в базу данных для последующего использования.
Пример: [CODE=csharp] //сохранение кук после успешной авторизации google.SaveCookies(); project.SendInfoToLog(“Куки Google сохранены”); [/CODE]
void ParseSecurity()
Парсит информацию о настройках безопасности аккаунта Google и сохраняет в базу данных.
Пример: [CODE=csharp] //получение информации о безопасности аккаунта google.ParseSecurity(); project.SendInfoToLog(“Информация о безопасности обновлена”); [/CODE][/SPOILER] [SPOILER= Guild]
Guild
Класс для работы с Guild.xyz . Предоставляет возможности для парсинга ролей гильдий, анализа подключений и управления элементами интерфейса.
Конструктор
Guild(IZennoPosterProjectModel project, Instance instance, bool log = false)
Создает новый экземпляр класса Guild для работы с гильдиями.
Параметры:
project- проект ZennoPosterinstance- экземпляр браузераlog- включить логирование (по умолчанию false)
Пример: [CODE=csharp] // создание экземпляра Guild с логированием var guild = new Guild(project, instance, true);
// создание экземпляра Guild без логирования
var guild = new Guild(project, instance);
[/CODE]
Методы
void ParseRoles(string tablename, bool append = true)
Парсит роли гильдий на текущей странице и сохраняет данные в базу данных.
Параметры:
tablename- имя таблицы для сохранения данныхappend- добавлять к существующим данным или перезаписывать (по умолчанию true)
Пример: [CODE=csharp] // парсинг ролей с добавлением к существующим данным guild.ParseRoles(“guild_data”, true);
// парсинг ролей с перезаписью данных guild.ParseRoles(“guild_data”, false);
// проверка результатов string doneRoles = project.Variables[“guildDone”].Value; string undoneRoles = project.Variables[“guildUndone”].Value; project.SendInfoToLog(“Незавершенные роли: {undoneRoles}”); [/CODE]
string Svg(string d)
Возвращает: string - тип социальной сети
Определяет тип социальной сети по SVG-коду иконки.
Параметры:
d- SVG-код или HTML содержимое с иконкой
Пример: [CODE=csharp] // определение типа по SVG string svgCode = “M108,136a16,16,0,1,1-16-16A16,16,0,0,1,108,136Z…”; string socialType = guild.Svg(svgCode); project.SendInfoToLog($“Тип социальной сети: {socialType}”); // выведет “discord”
// если тип не распознан string unknownSvg = “some-unknown-svg-code”; string result = guild.Svg(unknownSvg); project.SendInfoToLog($“Результат: {result}”); // выведет пустую строку [/CODE]
string Svg(HtmlElement he)
Возвращает: string - тип социальной сети
Определяет тип социальной сети по HTML-элементу с иконкой.
Параметры:
he- HTML-элемент с SVG-иконкой
Пример: [CODE=csharp] // получение элемента с иконкой var iconElement = instance.ActiveTab.FindElementByAttribute(“div”, “class”, “icon-container”, “text”, 0);
// определение типа социальной сети string socialType = guild.Svg(iconElement); if (!string.IsNullOrEmpty(socialType)) { project.SendInfoToLog($“Найдена иконка: {socialType}”); } else { project.SendWarningToLog(“Тип социальной сети не определен”); } [/CODE]
Dictionary<string, string> ParseConnections()
Возвращает: Dictionary<string, string> - словарь подключений
Парсит информацию о подключенных социальных сетях на странице.
Пример: [CODE=csharp] // парсинг подключений var connections = guild.ParseConnections();
// обработка результатов foreach (var connection in connections) { string platform = connection.Key; // тип платформы (discord, twitter и т.д.) string status = connection.Value; // статус (“none” если не подключено, или текст со статусом)
if (status == "none")
{
project.SendWarningToLog($"{platform} не подключен");
}
else
{
project.SendInfoToLog($"{platform}: {status}");
}
}
// проверка конкретной платформы if (connections.ContainsKey(“discord”)) { project.SendInfoToLog($“Discord статус: {connections[“discord”]}”); } [/CODE]
HtmlElement MainButton()
Возвращает: HtmlElement - главная кнопка на странице
Находит и возвращает основную кнопку действия на странице гильдии.
Пример: [CODE=csharp] // получение главной кнопки var mainButton = guild.MainButton();
if (mainButton != null) { // проверка текста кнопки string buttonText = mainButton.InnerText; project.SendInfoToLog($“Текст кнопки: {buttonText}”);
// клик по кнопке
mainButton.Click();
project.SendInfoToLog("Кнопка нажата");
} else { project.SendErrorToLog(“Главная кнопка не найдена”); } [/CODE][/SPOILER] [SPOILER= X]
Класс X
Упрощённый менеджер аккаунтов Twitter/X для автоматизации входа и работы с профилем. Выполняет авторизацию через токены или данные логина, проверяет статус аккаунта, анализирует информацию профиля и настройки безопасности.
Конструкторы
X(IZennoPosterProjectModel project, Instance instance, bool log = false)
Описание: Создает экземпляр менеджера X с указанным проектом, экземпляром браузера и настройкой логирования. Автоматически загружает данные аккаунта из базы данных.
Параметры:
- project - модель проекта ZennoPoster
- instance - экземпляр браузера
- log - включить/выключить подробное логирование (по умолчанию false)
Пример: [CODE=csharp] var x = new X(project, instance, true); project.SendInfoToLog(“Менеджер X создан с логированием”, false); [/CODE]
Публичные методы
Load(bool log = false)
Возвращает: string - статус аккаунта (“ok”, “restricted”, “suspended”, “emailCapcha”)
Описание: Выполняет полную загрузку и авторизацию в X. Проверяет состояние аккаунта, использует сохранённый токен или выполняет вход через логин/пароль при необходимости.
Параметры:
- log - включить подробное логирование процесса
Пример: [CODE=csharp] string status = x.Load(true); if (status == “ok”) { project.SendInfoToLog(“Успешно авторизован в X”, false); } else { project.SendWarningToLog($“Проблема с аккаунтом: {status}”, false); } [/CODE]
Auth()
Описание: Выполняет пошаговую авторизацию в X для внешних приложений через OAuth. Обрабатывает все этапы входа: ввод логина, пароля, двухфакторную аутентификацию и подтверждение доступа.
Пример: [CODE=csharp] try { x.Auth(); project.SendInfoToLog(“OAuth авторизация завершена”, false); } catch (Exception ex) { project.SendErrorToLog($“Ошибка авторизации: {ex.Message}”, false); } [/CODE]
State()
Возвращает: string - текущее состояние страницы авторизации
Описание: Определяет текущий этап процесса авторизации. Возвращает состояния: “InputLogin”, “InputPass”, “InputOTP”, “ClickLogin”, “CheckUser”, “AuthV1SignIn”, “AuthV1Confirm” и другие.
Пример: [CODE=csharp] string currentState = x.State(); project.SendInfoToLog($“Текущий этап авторизации: {currentState}”, false); [/CODE]
UpdXCreds(Dictionary<string, string> data)
Описание: Обновляет данные аккаунта в базе данных. Принимает словарь с ключами: LOGIN, PASSWORD, EMAIL, EMAIL_PASSWORD, TOKEN, CODE2FA, RECOVERY_SEED.
Параметры:
- data - словарь с новыми данными аккаунта
Пример: [CODE=csharp] var newData = new Dictionary<string, string> { {“LOGIN”, “newusername”}, {“PASSWORD”, “newpassword”}, {“EMAIL”, “new@email.com”} }; x.UpdXCreds(newData); project.SendInfoToLog(“Данные аккаунта обновлены”, false); [/CODE]
ParseProfile()
Описание: Анализирует профиль пользователя X и сохраняет данные в базу: дату создания, ID, имя пользователя, описание, местоположение, аватар, баннер, количество подписчиков и подписок.
Пример: [CODE=csharp] x.ParseProfile(); project.SendInfoToLog(“Данные профиля сохранены в базу”, false); [/CODE]
ParseSecurity()
Описание: Парсит страницу настроек безопасности аккаунта и сохраняет информацию: email, телефон, дату создания, страну, язык, пол, дату рождения.
Пример:
[CODE=csharp]
x.ParseSecurity();
project.SendInfoToLog(“Данные безопасности собраны”, false);
[/CODE][/SPOILER]
[/SPOILER]