RSSフィードをコンソール上でファイルのように操作するために、FUSEを使用してマウントできるようにしました。
タブ補完が使用できたり、catで表示した記事をPIPEで繋ぐ事ができるようになるメリットがあります。
RSSフィードとは
更新情報を配信するための仕組みで、主にXMLを使用して提供されています。
例として、本ブログのRSSフィードは こちら からアクセスできます。
FUSEとは
FUSEとはFilesystem in Userspaceの略称で、権限を持たないユーザがユーザスペース上でカーネルを修正する事なくファイルシステムを作成する事ができます。
使用方法
インストール
パッケージ管理に poetry を使用しているので、poetryをインストールし依存パッケージをインストールします。
git clone https://github.com/fealone/rss-mounter
cd rss-mounter
pip install poetry
poetry install
設定ファイルの作成
YAMLを使用して設定ファイルを作成します。
サンプルとしてBigQueryのRSSフィードが設定されているので、それを参考に以下のフォーマットに従い修正します。
- rss_config.yaml
{Name}: {URL}
マウント元とマウントポイントを作成
マウント元になるディレクトリと、マウントポイントを作成します。
mkdir rss
mkdir base
実行
プログラムを実行します。
第一引数にマウント元のディレクトリ、第二引数にマウントポイントを入力します。
デーモンとして動作させる場合、第三引数に false
を入力します。
poetry run python main.py base rss false
RSSフィードのディレクトリ構造
マウントしたRSSフィードは以下のディレクトリ構造でマウントポイントにマウントされます。
{Mountpoint}/
├ {FeedName}/
│ └ {Document}
│ └ {Document}
└ {FeedName}/
└ {Document}
└ {Document}
おわりに
本プログラムはGitHubにてGPL-3.0ライセンスで公開しています。
興味のある方は参照ください。
https://github.com/fealone/rss-mounter