Работа с аккаунтом

Типичный проект на z3n7 проходит по диапазону аккаунтов: выбирает следующий аккаунт, которому пора, запускает браузер с его профилем, делает свою работу и записывает результат.

// в jVars должен лежать путь к существующему файлу: InitVariables читает его через File.ReadAllText
// 1. Старт сессии: файловые логи ZennoPoster выключены, id сессии, диапазон аккаунтов, SAFU, встроенный сервер
project.InitVariables(instance);

// 2. Выбрать аккаунт, которому пора, и запустить его браузер
project.ChooseAndRunByCondition(instance,
    "daily < NOW OR daily = ''",       // условие по таблице проекта
    browser: true);                    // Chromium; false — без браузера

// 3. ... собственно работа: project.Db*, Rqst, почта, instance.He* ...

// 4. Записать результат
project.DbDone("daily", cooldownMin: 24 * 60);   // снова в работу через 24 часа

// 5. Отчёт, сохранение профиля, освобождение аккаунта, остановка инстанса
project.Finish(instance);

Выбор аккаунта

ChooseAccountByCondition ищет в таблице проекта аккаунты, подходящие под условие и диапазон cfgAccRange, берёт случайный (или с самой старой колонкой задачи при sortByTaskAge) и записывает его в acc0. Его строка получает status = 'working...'.

  • NOW в условии превращается в текущее время, поэтому метки, записанные DbDone, можно сравнивать напрямую.
  • Группы диапазона через : в cfgAccRange — приоритеты: 1-10:11-100 сначала пробует 1–10.
  • filterTwitter, filterDiscord, filterGithub оставляют только аккаунты, у которых в _twitter, _discord, _github стоит status = 'ok'.
  • acc0Forced отменяет выбор.

ChooseAndRunByCondition вдобавок запускает браузер и переходит к следующему аккаунту, если папку профиля открыть не удалось.

Запуск браузера

RunBrowser запускает браузер с папкой профиля аккаунта ({profiles_folder}/accounts/profilesFolder/{acc0}), затем применяет настройки WebGL, прокси и cookies из строки аккаунта в _instance. Прокси сначала проверяется: он должен отвечать и показывать IP, отличный от локального.

Завершение

Finish пишет отчёт об успехе — или отчёт об ошибке со скриншотом, если lastQuery содержит dropped, — в лог и в строку аккаунта; сохраняет профиль; очищает acc0 и флаг занятости аккаунта; останавливает инстанс.

См. также: 04. Переменные проекта, 05. База данных, Аккаунты.