Files
content-harvester/docker-entrypoint.sh
T
huyue 497fae99c6 init: content-harvester —— 内容采集服务
FastAPI + Playwright(headed Chrome/xvfb 过 Cloudflare)抓内容详情页元数据;
可选把 m3u8 视频转 mp4 + 封面上传对象存储(配置由调用方下发,本服务不持密钥);
走主站 lobster 执行器契约(invoke/poll),回传 ResourceIngestItem 形式的 resources。
当前内置 xchina.co 的 scraper(core/scraper.py)。
2026-05-12 16:20:39 +08:00

18 lines
627 B
Bash

#!/bin/sh
set -e
# 有头模式(HEADLESS=0)需要一个 X server。手动起 Xvfb(比 xvfb-run 省事、不依赖 xauth)。
if [ "${HEADLESS:-0}" = "0" ] || [ "${HEADLESS:-0}" = "false" ]; then
: "${DISPLAY:=:99}"
export DISPLAY
rm -f /tmp/.X99-lock 2>/dev/null || true
Xvfb "$DISPLAY" -screen 0 "${XVFB_SCREEN:-1366x900x24}" -nolisten tcp >/tmp/xvfb.log 2>&1 &
XVFB_PID=$!
# 等 Xvfb 起来
for _ in 1 2 3 4 5 6 7 8 9 10; do
if [ -e /tmp/.X99-lock ] || xdpyinfo -display "$DISPLAY" >/dev/null 2>&1; then break; fi
sleep 0.3
done
trap 'kill "$XVFB_PID" 2>/dev/null || true' EXIT INT TERM
fi
exec "$@"