🐛 fix(scraper): исправлены селекторы для ввода текста в письмо
Some checks failed
Deploy / deploy (push) Failing after 18s

🚀 feat(deploy): добавлены переменные окружения для деплоя
В сообщении обязательно два разных типа, например, fix и feat.
This commit is contained in:
Oscar
2026-05-28 12:47:38 +03:00
parent a9de783891
commit c173845910
2 changed files with 18 additions and 14 deletions

View File

@@ -41,12 +41,10 @@ jobs:
docker run -d \
--name hh-auto-reply \
--network traefik \
--volume /home/koptilnya/services/chad/data:/app/data \
-p 40000-40100:40000-40100/udp \
--label "traefik.enable=true" \
--label "traefik.http.routers.hh-auto-reply.rule=Host(\`api.koptilnya.xyz\`) && PathPrefix(\`/hh-auto-reply\`)" \
--label "traefik.http.routers.hh-auto-reply.entrypoints=websecure" \
--label "traefik.http.routers.hh-auto-reply.tls=true" \
--label "traefik.http.routers.hh-auto-reply.tls.certresolver=myresolver" \
--label "traefik.http.services.hh-auto-reply.loadbalancer.server.port=80" \
--volume /home/koptilnya/services/hh-auto-reply/data:/app/data \
--env OPENROUTER_API_KEY=${{secrets.OPENROUTER_API_KEY}}
--env DATABASE_URL=${{secrets.DATABASE_URL}}
--env YOUR_TELEGRAM_ID=${{secrets.YOUR_TELEGRAM_ID}}
--env GROQ_API_KEY=${{secrets.GROQ_API_KEY}}
--env TG_BOT_TOKEN=${{secrets.TG_BOT_TOKEN}}
hh-auto-reply:latest

View File

@@ -374,13 +374,19 @@ export async function applyToJobs(
if (letter) {
await keep(`✅ <b>${escapeHtml(vacancy.title)}</b>\n\n${escapeHtml(letter)}`)
await page.waitForSelector(
'[data-qa="textarea-wrapper"], [data-qa="vacancy-response-popup-form-letter-input"], [data-qa="textarea-native-wrapper"]',
{ timeout: 10000 },
).catch(() => {})
const LETTER_SELECTORS = [
'[data-qa="textarea-wrapper"] textarea',
'[data-qa="vacancy-response-popup-form-letter-input"]',
'[data-qa="textarea-native-wrapper"] textarea',
]
const letterInput = await page.$('[data-qa="textarea-wrapper"] textarea')
?? await page.$('[data-qa="vacancy-response-popup-form-letter-input"]') ?? await page.$('[data-qa="textarea-native-wrapper"] textarea')
await page.waitForSelector(LETTER_SELECTORS.join(', '), { timeout: 10000 }).catch(() => {})
let letterInput = null
for (const sel of LETTER_SELECTORS) {
letterInput = await page.$(sel)
if (letterInput) break
}
await letterInput?.click()
await letterInput?.fill(letter, { force: true })
}