尚未检测到更新。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 로 충분하지만 약관상 상업적 사용은 금지입니다. 개인용으로만 쓰세요.