AccountRunner

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

public static class AccountRunner

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

Методы

ChooseAccountByCondition

public static void ChooseAccountByCondition(this IZennoPosterProjectModel project, string condition, string sortByTaskAge = null, bool useRange = true, bool filterTwitter = false, bool filterDiscord = false, bool filterGithub = false, string tableName = null, bool debugLog = false, bool sqlNow = true)

Метод расширения для IZennoPosterProjectModel. исходник

Выбирает аккаунт и сохраняет его в acc0; кандидаты остаются в списке accs, а строке аккаунта ставится status = 'working...'. Если задан acc0Forced, он используется как есть. Если acc0 уже задан, поиск кандидатов пропускается. Бросает исключение, если ни один аккаунт не подходит.

Параметр Описание
condition SQL-условие по таблице аккаунтов. Слово NOW заменяется текущим временем в формате yyyy-MM-ddTHH:mm:ss, если sqlNow равно true.
useRange Ограничиться cfgAccRange. Группы, разделённые :, — приоритеты: берётся первая группа, в которой есть подходящие аккаунты.
filterTwitter Оставлять только аккаунты, у которых строка в таблице _twitter имеет status = 'ok'.
filterDiscord Оставлять только аккаунты, у которых строка в таблице _discord имеет status = 'ok'.
filterGithub Оставлять только аккаунты, у которых строка в таблице _github имеет status = 'ok'.
tableName Таблица аккаунтов; по умолчанию __ + имя проекта.
debugLog Писать запросы в лог.
sqlNow Подставлять вместо NOW в условии.
sortByTaskAge Колонка с метками времени ISO: берётся аккаунт с самым старым значением (пустые — первыми). Если пусто, берётся случайный аккаунт.
public static void ChooseAccountByCondition(this IZennoPosterProjectModel project, Dictionary<string, string> conditionsByTable, string sortByTaskAge = null, bool useRange = true, bool filterTwitter = false, bool filterDiscord = false, bool filterGithub = false, bool debugLog = false, bool sqlNow = true)

Метод расширения для IZennoPosterProjectModel. исходник

То же, что перегрузка с одним условием, но берёт аккаунты, которые подходят под каждое условие в своей таблице (пересечение).

Параметр Описание
conditionsByTable Условие → таблица.
sortByTaskAge Если задано, берётся первый оставшийся аккаунт, а не случайный; сортировки нет.
useRange Ограничиться cfgAccRange. Группы, разделённые :, — приоритеты: берётся первая группа, в которой есть подходящие аккаунты.
filterTwitter Оставлять только аккаунты, у которых строка в таблице _twitter имеет status = 'ok'.
filterDiscord Оставлять только аккаунты, у которых строка в таблице _discord имеет status = 'ok'.
filterGithub Оставлять только аккаунты, у которых строка в таблице _github имеет status = 'ok'.
debugLog Писать запросы в лог; заодно пустое пересечение приводит к исключению.
sqlNow Подставлять вместо NOW в условиях.

ChooseAndRunByCondition

public static void ChooseAndRunByCondition(this IZennoPosterProjectModel project, Instance instance, string condition, bool browser = false, string sortByTaskAge = null, bool useRange = true, bool filterTwitter = false, bool filterDiscord = false, bool filterGithub = false, string tableName = null, bool debugLog = false, bool sqlNow = true, bool useLegacy = true, bool useZpprofile = false, bool useFolder = true)

Метод расширения для IZennoPosterProjectModel. исходник

Выбирает аккаунт (ChooseAccountByCondition) и запускает для него браузер (RunBrowser). Если браузер не удалось запустить в папке профиля, пробуется следующий аккаунт; любая другая ошибка пробрасывается.

Параметр Описание
condition SQL-условие по таблице аккаунтов. Слово NOW заменяется текущим временем в формате yyyy-MM-ddTHH:mm:ss, если sqlNow равно true.
useRange Ограничиться cfgAccRange. Группы, разделённые :, — приоритеты: берётся первая группа, в которой есть подходящие аккаунты.
filterTwitter Оставлять только аккаунты, у которых строка в таблице _twitter имеет status = 'ok'.
filterDiscord Оставлять только аккаунты, у которых строка в таблице _discord имеет status = 'ok'.
filterGithub Оставлять только аккаунты, у которых строка в таблице _github имеет status = 'ok'.
tableName Таблица аккаунтов; по умолчанию __ + имя проекта.
debugLog Писать запросы в лог.
sqlNow Подставлять вместо NOW в условии.
instance Инстанс браузера.
browser Запустить Chromium; иначе работать без браузера.
sortByTaskAge Колонка с метками времени ISO: берётся аккаунт с самым старым значением (пустые — первыми). Если пусто, берётся случайный аккаунт.
useLegacy Передаётся в RunBrowser.
useZpprofile Передаётся в RunBrowser.
useFolder Передаётся в RunBrowser.

QuantityByCondition

public static int QuantityByCondition(this IZennoPosterProjectModel project, string condition, bool useRange = true, bool filterTwitter = false, bool filterDiscord = false, bool filterGithub = false, string tableName = null, bool debugLog = false, bool sqlNow = true)

Метод расширения для IZennoPosterProjectModel. исходник

Считает аккаунты, подходящие под условие, по всем группам диапазона, после фильтров по соцсетям.

Параметр Описание
condition SQL-условие по таблице аккаунтов. Слово NOW заменяется текущим временем в формате yyyy-MM-ddTHH:mm:ss, если sqlNow равно true.
useRange Ограничиться cfgAccRange. Группы, разделённые :, — приоритеты: берётся первая группа, в которой есть подходящие аккаунты.
filterTwitter Оставлять только аккаунты, у которых строка в таблице _twitter имеет status = 'ok'.
filterDiscord Оставлять только аккаунты, у которых строка в таблице _discord имеет status = 'ok'.
filterGithub Оставлять только аккаунты, у которых строка в таблице _github имеет status = 'ok'.
tableName Таблица аккаунтов; по умолчанию __ + имя проекта.
debugLog Писать запросы в лог.
sqlNow Подставлять вместо NOW в условии.