Работа с аккаунтом
Типичный проект на 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. База данных, Аккаунты.