- 通知重构:归档与通知解耦(Listings.notified 列),tick 末尾统一发,1s 间隔,失败自动重试(30s tick) - 每商品一条图文消息:title/price/condition/seller 名/product_url + 高清图 - 图片用 multipart 上传本地字节(原先传 URL 让 Telegram 下载,遇 carousell CDN 不稳定导致间歇 400) - 图片 URL 去 _progressive_thumbnail 后缀(高清原图) - condition 归一化:New→Brand new、Used→Used,加第 6 档;从所有 paragraph 找 condition(修位置漂移) - listed_at 加 active_bump fallback(被顶置商品) - compose extra_hosts 钉 api.telegram.org 到 IPv4 149.154.166.110(容器无 IPv6 时 DNS 只返 AAAA) - bot 换 @carousellFoundBot,chat @MrFullStackDev
34 lines
993 B
YAML
34 lines
993 B
YAML
# Carousell new-listing monitor -> NocoDB archive + Telegram alerts.
|
|
# Deployed via Portainer on DSM. Secrets come from the stack's environment
|
|
# (see .env.example); operational knobs (enabled / notify / interval) live in
|
|
# the NocoDB "Settings" table.
|
|
|
|
services:
|
|
carousell-monitor:
|
|
build: .
|
|
image: carousell-monitor:latest
|
|
container_name: carousell-monitor
|
|
restart: unless-stopped
|
|
extra_hosts:
|
|
- "api.telegram.org:149.154.166.110"
|
|
environment:
|
|
NOCODB_URL: ${NOCODB_URL:-http://nocodb:10380}
|
|
NOCODB_TOKEN: ${NOCODB_TOKEN}
|
|
NOCODB_BASE_ID: ${NOCODB_BASE_ID:-poqw1zjw3hnsk37}
|
|
TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN}
|
|
TELEGRAM_CHAT_ID: ${TELEGRAM_CHAT_ID}
|
|
TICK_SECONDS: ${TICK_SECONDS:-60}
|
|
HEALTH_STALE_SECONDS: ${HEALTH_STALE_SECONDS:-600}
|
|
TZ: Asia/Kuala_Lumpur
|
|
volumes:
|
|
- carousell-data:/data
|
|
networks:
|
|
- bridge_hoelee
|
|
|
|
volumes:
|
|
carousell-data:
|
|
|
|
networks:
|
|
bridge_hoelee:
|
|
external: true
|