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

View File

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