Skip to content

nus25/yuge

Repository files navigation

Yuge

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

使用方法

  1. create directories

    # make config and data in work dir
    mkdir -p config data
    
  2. create feed list in config dir:

    # create feed list file
    touch config/feedlist.yaml
    

    feedlist.yaml

    feeds:
      - id: "feed1"
        uri: "at://did:plc:yourdid/app.bsky.feed.generator/feedrkey"
        configFile: "sample_feed_config.yaml"
  3. 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
  4. サーバーの起動:

    bin/yuge_subscriber run --help

    執筆中

設定オプション

執筆中

CLI

自分のrepoのフィードレコードを操作するCLIツール

1. インストール

Goが入っている環境で以下のコマンドでインストール:

go install github.com/nus25/yuge/cmd/yuge_cli

2. 実行

yuge_cli
# または
$GOPATH/bin/yuge_cli

ヘルプの確認:

yuge_cli feed [command] -h

3. コマンド

フィード追加

yuge_cli feed publish \
  -i 自分のハンドル \
  --service-did "did:web:ジェネレーターのDID" \
  --display-name "フィード名" \
  --description "説明" \
  --avatar "data/icon.png" \
  myrecordkey

フィード削除

yuge_cli feed unpublish -i 自分のハンドル myrecordkey

フィードリスト

yuge_cli feed list [rkey または (*,?)入りのパターン]

環境変数の設定

以下のように環境変数を設定すれば、毎回のIDとアプリパスワードの入力を省略できます:

export BLUESKY_IDENTIFIER="nus.bsky.social"
export BLUESKY_PASSWORD=アプリパスワード

ライセンス

MIT License

作者

nus

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Contributors