diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 0c23167..08bcce0 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -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 diff --git a/src/hh/scraper.ts b/src/hh/scraper.ts index 2933b64..d9a95a7 100644 --- a/src/hh/scraper.ts +++ b/src/hh/scraper.ts @@ -374,13 +374,19 @@ export async function applyToJobs( if (letter) { await keep(`✅ ${escapeHtml(vacancy.title)}\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 }) }