Created
July 11, 2024 12:59
-
-
Save mitsugu/d6f71a49044876225015e6206e86aacb to your computer and use it in GitHub Desktop.
Nostr リレーサーバーから指定された kind のデータを取得するサンプル。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"context" | |
"fmt" | |
"log" | |
"time" | |
"github.com/nbd-wtf/go-nostr" | |
) | |
func main() { | |
// リレーのURLを指定します | |
relayURL := "wss://ganges.in/" | |
// コンテキストを作成します | |
// タイムアウトは 10 秒に仮打ちしています | |
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) | |
defer cancel() | |
relay, err := nostr.RelayConnect(ctx, relayURL) | |
if err != nil { | |
log.Fatalf("リレーへの接続に失敗しました: %v", err) | |
} | |
defer relay.Close() | |
// Kind の配列には取得したい kind の値を設定します | |
// 例. | |
// Kinds: []int{nostr.KindTextNote,nostr.KindRepost,nostr.KindReaction} | |
// 配列 npub には 16 進公開鍵を設定します | |
// 取得数を整数で設定します | |
// (とりあえず 10000 件にしてますが適宜書き換えてください | |
// | |
npub := []string{"*** write hex npub this place ***"} | |
filters := []nostr.Filter{{ | |
Kinds: []int{nostr.KindTextNote}, | |
Authors: npub, | |
Limit: 10000, | |
}} | |
// 上記フィルタを使ってイベントを購読します | |
sub, err := relay.Subscribe(ctx, filters) | |
defer sub.Unsub() | |
if err != nil { | |
log.Fatalf("購読中にエラーが発生しました: %v", err) | |
} | |
// イベントを受け取って表示します | |
for ev := range sub.Events { | |
fmt.Printf("%v\n", ev.ID) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment