InstanceManager

class · пространство имён z3n7 · исходник Accounts/InstanceManager.cs

public class InstanceManager

Запускает браузер для текущего аккаунта с его профилем, прокси и куками, а в конце сохраняет и убирает за собой.

Конструкторы

InstanceManager

public InstanceManager(IZennoPosterProjectModel project, Instance instance, Logger log = null)

исходник

Создаёт менеджер.

Параметр Описание
log Логгер для хода работы; null — ничего не писать.

Методы

Cleanup

public void Cleanup()

исходник

Освобождает аккаунт (очищает его глобальную acc{n}, ставит state = 'idle' в _instance), очищает acc0 и останавливает инстанс.

Initialize

public void Initialize(string browserToLaunch = null, bool fixTimezone = false, bool useLegacy = true, bool useZpprofile = false, bool useFolder = true)

исходник

Запускает браузер для acc0 и готовит его. Сохраняет порт и PID браузера в port, pid и instancePort. Старый путь: для Chromium применяет WebGL из базы, прокси и куки (из базы, иначе из файла кук); для остальных — только прокси; до 4 попыток, потом глобальная acc{n} аккаунта очищается и ошибка пробрасывается. Новый путь: восстанавливает профиль из таблиц folder_* (ProfileSync) и ставит прокси.

Параметр Описание
browserToLaunch Chromium или WithoutBrowser; по умолчанию переменная cfgBrowser.
fixTimezone Исправлять часовой пояс через browserscan.net, если в его оценке упоминается время.
useLegacy Использовать старый путь подготовки.
useZpprofile Загружать файл профиля ZennoPoster {profileFolder}.zpprofile, если он есть.
useFolder Запускать Chromium с папкой профиля аккаунта.

ProxySet

public bool ProxySet(string proxyString = null)

исходник

Проверяет прокси и применяет его к инстансу: сравнивает IP, который видят публичные echo-сервисы напрямую и через прокси, и ставит прокси только если они различаются.

Параметр Описание
proxyString Прокси; по умолчанию колонка proxy строки аккаунта в _instance.

Возвращает: true. Бросает исключение, если прокси пустой, не отвечает или показывает локальный IP.

SaveProfile

public void SaveProfile(bool saveCookies = true, bool saveProfile = true, string saveTo = "folder", bool saveZpProfile = true)

исходник

Сохраняет данные браузера аккаунта, если браузер Chromium, acc0 задан, а accRnd пуст: профиль, инстанс, куки и WebGL — в таблицы saveTo (ProfileSync), профиль ZennoPoster — в папку профиля. Ошибки пишутся в лог, а не бросаются.

Параметр Описание
saveCookies Сохранять куки.
saveProfile Сохранять профиль, инстанс и WebGL.
saveTo Префикс таблиц: folder, zb или zpprofile.
saveZpProfile Заодно сохранить профиль ZennoPoster в папку профиля.