741d1697c5
Дописан standalone-робот (Node ESM + Playwright) полного цикла создания Telegram-кампании по своей базе телефонов в кабинете МТС Маркетолог: - cabinet.js: вход в визард, выбор «Своя база клиентов», загрузка базы + подсчёт «не МТС» с порогом 367, переход «Аудитория→Объявление» (само- верификация), заполнение объявления + блок ОРД, финал черновик-стоп/боевой (fail-loud при неизвестном режиме — защита от боевого клика по ошибке). - runner.js: оркестратор с алярм/отчётом на почту, гарантированное закрытие профиля браузера, чистка временного файла номеров (152-ФЗ). - task.js: обязательные поля заголовка и названия ОРД; config: потолок бюджета падает при нечисловом значении (защита денег), budget: NaN-guard. - bin/run.js (CLI), bin/keepalive.js (сторож входа с алярмом), bin/login.js (разовый вход), task.example.json (без ПДн), README. - Шаг «Стоимость» намеренно не размечен (заглушка бросает Error) — селекторы снимаются на первом реальном черновике после разового логина владельца. Ядро: 20/20 юнит-тестов зелёные. Браузерная часть проверяется живым черновиком. Двухстадийная ревизия каждой задачи + финальный сквозной проход (поймал и починил пропущенный переход между шагами и NaN-обход потолка бюджета). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
18 lines
361 B
JSON
18 lines
361 B
JSON
{
|
|
"name": "mts-telegram-ads-bot",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"test": "node --test",
|
|
"run:task": "node bin/run.js",
|
|
"keepalive": "node bin/keepalive.js",
|
|
"login": "node bin/login.js"
|
|
},
|
|
"dependencies": {
|
|
"playwright": "^1.47.0",
|
|
"nodemailer": "^6.9.0",
|
|
"dotenv": "^16.4.0"
|
|
}
|
|
}
|