尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
방탈출 예약 자동화. Next.js 15 (App Router) + Tailwind v4, Vercel 배포용. Vercel 함수는 상주할 수 없어서 봇은 PC 에서 돌립니다. .env.local 에 알림 채널을 넣고: 옵션: --every 60 (초, 최소 20) · --date 2026-10-03 (여러 번) · --after 18:00 · --before 21:00. /keyescape 페이지에서 테마를 고르면 이 명령을 만들어 줍니다. Node 22 이상이 필요합니다 (--env-file-if-exists). GitHub 에 올리고 Vercel Import. Settings → Environment Variables 에 ADMIN_KEY 추가 (Production / Preview / Development 전부 체크). 이거 없으면 API 가 500 을 냅니다. lib/venues.js 에 항목만 넣으면 메인 목록과 카운트다운에 바로 반영됩니다.檢視完整 README ↗
방탈출 예약 자동화. Next.js 15 (App Router) + Tailwind v4, Vercel 배포용.
app/
page.jsx 메인 — 예약처 목록 + 다음 오픈 카운트다운
play33/page.jsx 플레이33 예약 도구
api/p33/route.js 플레이33 API
keyescape/page.jsx 키이스케이프 취소표 알림봇 — 테마 고르기 + 실행 명령
keyescape/book/page.jsx 키이스케이프 예약 도우미 — 북마클릿 + 2단계 바로가기
keyescape/_ui.jsx 위 두 페이지 공통 (테마 선택 · 현황 표)
api/keyescape/route.js 키이스케이프 조회 프록시 (읽기 전용)
_components/Countdown.jsx
lib/
venues.js 예약처 레지스트리 ← 새 방탈출은 여기에 추가
p33.js 플레이33 요청/파싱 로직
keyescape.js 키이스케이프 조회 · 변화 감지 · 알림 전송
keyescape-book.js 키이스케이프 예약 도우미 (2단계 바로가기 · 오픈 대기 · 채우기 북마클릿, 캡차는 사람이)
scripts/
keyescape-watch.mjs 키이스케이프 취소표 알림봇 (PC 에서 켜두는 프로세스)
npm install
cp .env.example .env.local # ADMIN_KEY 값을 바꿀 것
npm run dev
Vercel 함수는 상주할 수 없어서 봇은 PC 에서 돌립니다. .env.local 에 알림 채널을 넣고:
# TELEGRAM_BOT_TOKEN + TELEGRAM_CHAT_ID, 또는 DISCORD_WEBHOOK_URL
npm run keyescape -- --test
npm run keyescape -- "https://www.keyescape.com/reservation1.php?zizum_num=18&theme_num=57&theme_info_num=34"
옵션: --every 60 (초, 최소 20) · --date 2026-10-03 (여러 번) · --after 18:00 · --before 21:00.
/keyescape 페이지에서 테마를 고르면 이 명령을 만들어 줍니다. Node 22 이상이 필요합니다 (--env-file-if-exists).
GitHub 에 올리고 Vercel Import. Settings → Environment Variables 에 ADMIN_KEY 추가
(Production / Preview / Development 전부 체크). 이거 없으면 API 가 500 을 냅니다.
lib/venues.js 에 항목만 넣으면 메인 목록과 카운트다운에 바로 반영됩니다.
{
slug: 'somewhere',
name: '어디어디',
branch: '강남',
href: '/somewhere', // 도구가 없으면 null
status: 'planned', // ready | partial | blocked | planned
open: { h: 12, m: 0, label: '매일 12:00' },
stack: 'PHP · 세션',
steps: ['슬롯 조회', '예약 전송'],
note: '한 줄 설명.',
}
status 가 곧 섹션입니다. ready 는 예약까지 끝나는 곳, partial 은 일부를 손으로
마무리해야 하는 곳, blocked 는 구조상 막힌 곳입니다. steps 의 마지막 항목은
partial 일 때 붉게 표시되어 "여기서 사람이 개입한다"를 드러냅니다.
세션이 없습니다. 서버리스는 요청마다 인스턴스가 달라 PHP 의 $_SESSION 이 성립하지
않습니다. 예열 결과(폼 구조 · 토큰 · 쿠키)를 응답의 state 로 돌려주고 발사할 때
브라우저가 되돌려 보내는 구조입니다. 그래서 예열과 발사 사이에 새로고침하면 예열이
날아갑니다.
콜드스타트. Vercel 람다는 한동안 호출이 없으면 잠들고 첫 요청에 12초가 더 붙습니다.
오픈 12분 전에 람다 깨우기 를 눌러두세요.
확인창 끄기. app/play33/page.jsx 최상단 CONFIRM_BEFORE_FIRE = false.
무료 플랜. Hobby 로 충분하지만 약관상 상업적 사용은 금지입니다. 개인용으로만 쓰세요.