summaryrefslogtreecommitdiff
path: root/README.md
blob: 1eb452efe6f8d1781b3346ed5cff43256b369e82 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# studio-slots

西荻窪周辺の音楽スタジオの空き枠を、日付ごとに一覧で見るためのローカルWebページ。

```sh
python3 server.py        # → http://localhost:8000
```

依存ライブラリなし(Python 3.9 以上)。

## 構成

- `studios.json` … スタジオの一覧(名前、部屋、営業時間、予約ページ、電話番号、使う provider)
- `providers/` … 空き枠の取得元。`fetch(studio, date)` が `[{"room", "hour", "status"}]` を返す
  - `sample` … 画面確認用のダミーデータ(今はすべてこれ)
  - `manual` … `manual_slots.json` に手で書いた予約済み枠を読む
- `server.py` … `/api/slots?date=YYYY-MM-DD` と `static/` を配信
- `static/index.html` … 一覧画面

## 実データに切り替えるには

1. `studios.json` の部屋名と営業時間を実際のものに直す(今はすべて仮の値)
2. `providers/` に取得用のモジュールを足して `providers/__init__.py` の `PROVIDERS` に登録する
3. 該当スタジオの `"provider"` をそのモジュール名に変える

リンキィディンクは Reserve Mart(reserve1.jp)で予約を受けていて、空き枠を見るには会員ログインが必要。
ID とパスワードは `.env` などに置き、リポジトリには入れないこと。

## デプロイ

`git push` で post-receive フックが `/app/studio-slots` にチェックアウトし、`docker compose up -d --build` する。
コンテナ名は `studio-app`(web ネットワーク、ポート 8000)。設定は hetzner-infra 側(`git/repos.txt`、`git/hooks/studio-slots/`)。