シェルだけで何とかしようと思ってたけど……
["REQ","123",{"kinds":[1,6,7],"authors":["a","b"]},{"kinds":[1,3,7],"authors":["c","d"],...}
とか DB 使わないと頭痛い……
SQLite さん、よろしくお願いします。
とにかく配列の最初が "EVENT" だったら2個目の json を記録する。"REQ" だったらフィルターで条件の合う json を送りつける、でいいよな?
クライアントからリレーへは
・"EVENT"
・"REQ"
・"CLOSE"
の3つだけで、リレーから返せるのも
・"EVENT"
・"EOSE"
・"NOTICE"
の3つだけってことを思い出すんだ、俺……
@823chan
yabu.me
ひょっとして私にも何かくれます?
分かった。多分、分かった。
["REQ","sbscID",{"kinds":[*], "authors":["自分のnpub"]}]
を、* を 0,1,2,3,6,7 でやってみて、返って来たのをなぞればいいんだ。多分。
["REQ","sbscID", ...]
に対する応答は
["EVENT","sbscID", json]
になるはずやんなぁ。
EVENT をどうやってDB(not ドラゴンボール)に登録するか考えてたけど、当面 REQ に応答するだけでいいよな。
え? "CLOSE" ?ちょっとよく分からないですねぇ。
「軽量Nostrクライアント」(矛盾)
["REQ",{...},{...}, ...]
って、いくつもリクエストしてんだよね?
欲張りな。
ついにタイッツーにメンション機能が実装された。
完全分散型の Nostr とワンサーバのタイッツー、対照的なはずなのにアナーキーってとこが似てる。
面白くなってきました!
多分、kinds は当面 1,6,7 だけ捌けたら十分だと思うんだよな。
よく考えたら、個人サーバなら {"kinds": [0]} のイベントは処理する必要はないな。直接突っ込めばいいだけだし。ちいいんです。Nostr で個人サーバは意味がない、という当たり前のツッコミは今はいいんです。
wsテスト2。
あと "REQ" って要素三つかと思ったら、三つめ以降に json は幾つも連ねられるのね。
素人だって言ってるでしょう!嫌味ですか!
nostream なら昨日ダウンロードしたばっかだ!(git素人なのでクーロンじゃなくてダウンロードとか言う)
取り敢えず kinds フィルタの0番と1番のリクエストに応答できればいっか、と思ってたが6番7番のリクエストが多い。どうしよう。
あ。
即席wssサーバを建ててリレーに登録したら"REQ"が色々流れてきたけど、何故クライアントがこのリクエストをしてくるのかが分からん。
"kinds":[1,6,7]って何だよ……と思った私に救いの手が。
https://scrapbox.io/nostr/%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E3%81%AE%E7%A8%AE%E9%A1%9E_(kind)