timeline.html と notification.html を一枚で表示できるようにする
main.html
<html>
<frameset cols="65%, 35%">
<frame src="timeline.html" NAME="F1">
<frame src="notification.html" NAME="F2">
</trameset>
<html>
サーバサイドのシェルをまとめる
サーバサイドとしてやっていることを並べると
- Caddy サーバで host-meta / webfinger / アクター情報などを提供しつつ
- Caddy サーバで指定したポート(もしくは Unix ドメインソケット)へ inbox へやってくるリクエストを流し
- それを netcat で受けて処理し、202 or 204 に振り分けて
- sort_req_file.sh で 202 ディレクトリのファイルを receive ディレクトリの各種ディレクトリへ送り
- make_timeline.sh で receive ディレクトリの create / announce ディレクトリのリクエストを html にし tmeline.html に追加して create_done/announce_done へ送り
- make_notification.sh で receive ディレクトリの like / follow_request / accept / undo_follow ディレクトリのリクエストを html にし notification.html に追加して like_done / follow_request_done / accept_done / undo_follow_done に送る
- 1-3 を行いつつ 4-6 を繰り返す
である。
これらをそのまま並べる。
baca_server.sh
#!/bin/bash
# Don't miss "sudo"
trap 'kill $(jobs -p)' EXIT # Ctrl+C で止めたらプロセス全殺し
./caddy run &
function rec_proc_req(){
while :; do cat response | netcat -lN 1682 | bash response_move.sh ; done
}
rec_proc_req &
while :; do
bash ./scripts/sort_req_file.sh
bash ./scripts/make_timeline.sh
bash ./scripts/make_notification.sh
sleep 30
done
「baca_server」って何だよ? という向きもいるかもしれないが、 このインスタンスの名前は Baca である である。
sudo bash baca_server.sh
sudo を付けないと verify.sh で使われている rm の y/n 問答で止まる。どちらにせよ sudo は必要だが気になるなら rm -f にするといいのでは。多分。
クライアントもまとめる
bash ./scripts/note
とやるのも面倒なので単純に case を使って番号で選ぶようにする。
baca_client.sh
#!/bin/bash
read -p "What wanna ?:
Note:1 Reply:2 Follow:3 Unfollow:4
Accept:5 Like:6 Announce:7
" number
case $number in
1) bash ./scripts/note.sh;;
2) bash ./scripts/reply.sh;;
3) bash ./scripts/follow.sh;;
4) bash ./scripts/unfollow.sh;;
5) bash ./scripts/accept.sh;;
6) bash ./scripts/like.sh;;
7) bash ./scripts/announce.sh;;
esac