o2o-infinith-demo/workers/supporters-build/launchd/com.infinith.supporters-poll.plist
Haewon Kam 484601b0f5 feat(supporters): 뉴스룸 워커 단계 + 뉴스 게이트 규칙, launchd 폴러 설치
- collect_news.mjs: 네이버 뉴스 검색 다중 질의(상호·원장·의료진·주제어, 429 백오프) + 언론보도 게시판 자동 발견/clinic.json newsBoard.
  관련성 = 제목·요약에 병원 이름(v2 §8). 제목·매체·날짜·원문 링크만 저장. news_outlets.mjs 는 build_news.py 매체 표 이식
- gate: BANNED_NEWS_TITLE(전후 사진·비교, 후기, 변신)·NEGATIVE_NEWS(규제·사건, "무사고" 통과)·checkNewsItems → check.mjs·test.mjs(19/19)
- 워커 news 단계(youtube 뒤, images 앞), --news-board/--no-news, status.report.news
- 뷰 news.json: 렛미인 "변신" 기사 41건 규칙으로 제외(excludedByGate 에 목록). 회귀 1,105건(수작업 1,096, 제목 일치 1,033), 원진 1,049건
- launchd 폴러 설치(haewon 지시): PATH 에 프레임워크 python3, bootstrap/bootout 안내
- 함정: JS \W 는 한글을 지움(제목 중복 판정 붕괴), 워드프레스 article:published_time 은 게시판 생성일, 네이버 질의당 1,000건
- v3 문서 §1·§2·§3·§5·§6 갱신, 템플릿 재내보내기

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 14:14:08 +09:00

33 lines
1.5 KiB
Plaintext

<?xml version="1.0" encoding="UTF-8"?>
<!--
서포터즈 빌드 큐 폴러 (5분마다). 설치:
cp workers/supporters-build/launchd/com.infinith.supporters-poll.plist ~/Library/LaunchAgents/
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.infinith.supporters-poll.plist
해제:
launchctl bootout gui/$(id -u)/com.infinith.supporters-poll
상태:
launchctl print gui/$(id -u)/com.infinith.supporters-poll | head -20
설치 2026-09-08 (haewon 결정: 파일럿은 Mac 폴러). 같은 라벨은 한 프로세스만 돌므로 빌드가 5분을 넘어도 겹치지 않는다.
로그: ~/supporters-builds/poll.log
저장소 경로가 다르면 WorkingDirectory 와 ProgramArguments 의 경로를 바꾼다.
-->
<plist version="1.0">
<dict>
<key>Label</key><string>com.infinith.supporters-poll</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/node</string>
<string>workers/supporters-build/poll.mjs</string>
</array>
<key>WorkingDirectory</key><string>/Users/haewonkam/orca/workspaces/INFINITH/Productize</string>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key><string>/Library/Frameworks/Python.framework/Versions/3.13/bin:/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin</string>
</dict>
<key>StartInterval</key><integer>300</integer>
<key>RunAtLoad</key><true/>
<key>StandardOutPath</key><string>/Users/haewonkam/supporters-builds/poll.log</string>
<key>StandardErrorPath</key><string>/Users/haewonkam/supporters-builds/poll.log</string>
</dict>
</plist>