This is currently a personal project in development. Yuge currently works with Gyoka.
Yugeは、Blueskyのカスタムフィードを作成・管理するためのサーバーアプリケーションです。 (Yuge: 湯気 /jɯ̟ɡe/, steam form hot water)
- jetstream からポストを購読してフィードロジックに適合したポストをストアに追加します。
- configファイルまたはPDSの
app.bsky.feed.generatorレコードにフィードロジックを記述できます。 - 複数フィードを登録可能
- Yuge単体でフィードジェネレーターとして動作(未実装) 執筆中
subscriberのインストール
go install github.com/nus25/yuge/cmd/yuge_subscriber-
create directories
# make config and data in work dir mkdir -p config data -
create feed list in config dir:
# create feed list file touch config/feedlist.yamlfeedlist.yaml
feeds: - id: "feed1" uri: "at://did:plc:yourdid/app.bsky.feed.generator/feedrkey" configFile: "sample_feed_config.yaml"
-
create feed config
フィード設定ファイルを指定した場合はconfigディレクトリ内に追加で作成。(PDSのapp.bsky.feed.generatorレコードからロードする場合はconfigFileを省略)
sample_feed_config.yaml
#テスト用のコンフィグファイル logic: blocks: #ユーザーリスト(リスト内のユーザーを除外) - type: userlist options: listUri: at://did:plc:someuser/app.bsky.graph.list/somekey allow: false #リプライは除外 - type: remove options: subject: item value: reply #langで日本語が設定されていないポストは除外 - type: remove options: subject: language language: ja operator: '!=' #正規表現フィルタ(200文字文字以上) - type: regex options: value: '^.{200,}$' invert: false caseSensitive: false #連続投稿リミッター(10分以内に10投稿を上限とする) - type: limiter options: count: 10 timeWindow: 10m cleanupFreq: 10m store: trimAt: 1200 trimRemain: 1000 detailedLog: false
-
サーバーの起動:
bin/yuge_subscriber run --help
執筆中
執筆中
自分のrepoのフィードレコードを操作するCLIツール
Goが入っている環境で以下のコマンドでインストール:
go install github.com/nus25/yuge/cmd/yuge_cliyuge_cli
# または
$GOPATH/bin/yuge_cliヘルプの確認:
yuge_cli feed [command] -hyuge_cli feed publish \
-i 自分のハンドル \
--service-did "did:web:ジェネレーターのDID" \
--display-name "フィード名" \
--description "説明" \
--avatar "data/icon.png" \
myrecordkeyyuge_cli feed unpublish -i 自分のハンドル myrecordkeyyuge_cli feed list [rkey または (*,?)入りのパターン]以下のように環境変数を設定すれば、毎回のIDとアプリパスワードの入力を省略できます:
export BLUESKY_IDENTIFIER="nus.bsky.social"
export BLUESKY_PASSWORD=アプリパスワードMIT License