binchotan-cachd計画(仮)
モチベ
定期タスクでTweetをfetchしてきて、FS上にtweetをcacheしておき、HTTPにおけるNot ModifiedやIf-then-sinceヘッダを実現したい
cache機構はshellscriptでも処理できるようにしたい
名前
shishiodoshi?
機構
periotic-task部
binchotan-backendと通信してキャッシュを作成する
systemd-timerやcronで駆動?
必要に迫られればdaemon化し、tokioなどで内部的にtaskを実行できるように(自律化)
windows対応を念頭に置く
server部
cacheをもとにreqに応答する
cache方法
$XDG_CACHE_HOME/binchotan-cachd/に諸々を作成
$XDG_CACHE_HOME/binchotan-cachd/$username@twitter.com/indexに投稿のURL(or ID)をkey、投稿作成日時をvalueとしたデータ構造を保存する
fsctlなどでfileはlockしたいね
jsonでもいいが、shellでも処理できるとうれしそうなのでtailやawkで使えそうな構造も提供したい
configやCLI flagで何とかできてほしい
$XDG_CACHE_HOME/binchotan-cachd/$username@twitter.com/$post_id.jsonにbinchotan-backendから入手した投稿を保存する
cacheはcleanできてほしい
server部のrequest
jsonrpc 2.0
code:json
{
"jsonrpc": "2.0",
"method": "v0..updates",
"id": "",
"params": {
"if-then-since": "2022-09-17T16:06:31+09:00",
}
}
code:json
{
"jsonrpc": "2.0",
"result": 203, // Not Modified
"id": "",
}