Skip to content
k16emPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

rsstock

English

rsstock は、登録した RSS / Atom フィードを取得してローカルの SQLite データベースに 保存するコマンドラインツールです。保存した記事はプレーンテキストで標準出力に表示する ため、パイプで他のツールに渡せます。

使い方

# 1. 設定ファイルとデータベースを用意する
rsstock init

# 2. ~/.config/rsstock/ のフィードファイルにフィードを追記する(下記参照)

# 3. フィードを取得して記事を保存する
rsstock update

# 4. 記事を一覧表示する
rsstock list

# 5. 記事 ID を指定して本文を読む
rsstock show 1

コマンド

コマンド 説明
rsstock init 設定ディレクトリ(config.toml+feed.toml 雛形)・データベースを作成する
rsstock update フィードを取得し新着記事を保存する
rsstock list 保存済み記事をプレーンテキストで一覧表示する
rsstock show <ID> 指定 ID の記事本文を表示する
rsstock feeds 設定済みフィードと取得状況を表示する
rsstock skill install スキルを ~/.agents/skills/rsstock/SKILL.md に書き出す
rsstock skill uninstall 上記スキルファイルを削除する

各コマンドのオプションは rsstock <コマンド> --help で確認できます。

設定ファイル

設定は ~/.config/rsstock/ ディレクトリを手で編集します(rsstock は読み取りのみ)。 設定 [settings] は config.toml、フィードは任意の *.toml(フィードファイル)に書きます。 ファイル名が --feed で指定する名前になります(例: blog.toml → --feed blog)。

# config.toml — 動作設定
[settings]
concurrency          = 8     # 全体の同時リクエスト数の上限(既定 8)
per_host_concurrency = 2     # 同一ホストへの同時リクエスト上限(既定/下限 2)
per_host_interval_ms = 1000  # 同一ホストへの最小リクエスト間隔ms(既定 1000、下限 250)
timeout_secs         = 30    # 1 リクエストのタイムアウト秒(既定 30)
max_items            = 20    # 1 feed あたり処理する記事数の上限(既定 20、0 で無制限)
# user_contact       = "you@example.com"  # 任意。UA の連絡先欄に入る(UA の他は固定)

per_host_concurrency / per_host_interval_ms / max_items は配信サイトへの負荷を抑える 礼儀設定です。各設定の詳細は docs/specs/configuration.md を参照してください。

# blog.toml — フィードファイル(--feed blog で対象になる)
[[feeds]]
name = "My Feed"
url  = "https://example.com/feed.xml"

[[feeds]]
name    = "Another Feed"
url     = "https://example.org/atom.xml"
enabled = true          # 任意。false でこのフィードをスキップ

name は全フィードファイルで一意、url は http / https のみ。

ファイルの場所

  • 設定: ~/.config/rsstock/($XDG_CONFIG_HOME を尊重)
  • データベース: ~/.local/share/rsstock/rsstock.db($XDG_DATA_HOME を尊重)

セキュリティ上の注意

保存・表示される記事のテキスト(タイトル・本文・要約・URL)は、第三者が管理する フィード由来の未検証データです。テキスト出力では端末表示を改ざんしうる制御文字を 除去しますが、内容そのものは信頼できません。出力を AI エージェント等に渡す場合は、 本文に紛れ込んだ指示(プロンプトインジェクション)に従わせないよう、信頼境界を 意識してください。

なお rsstock は robots.txt を参照しません(ユーザーが明示的に登録した feed のみを 取得する前提のため)。

開発

開発ツール(Semgrep / pre-commit)は mise で管理しています。

mise install                       # mise.toml のツールを導入
pre-commit install                 # コミット時の静的解析フックを設置
cargo test                         # テスト
cargo clippy --all-targets         # lint(警告ゼロを維持)
cargo fmt --check                  # フォーマット検査(差分ゼロを維持)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages