SkyFeedのFeed Builderを使ってカスタムフィードをつくる
クライアントのひとつである SkyFeed にカスタムフィードを作成する機能が追加されました。 この機能を使ってカスタムフィードを自分のアカウントに登録することができます。
https://scrapbox.io/files/653bc1d2f69f4f001b8acbff.png
0.作り方
他にもSkyFeedでのカスタムフィードの作り方解説があります
https://youtu.be/xb-_n-m7TFc?feature=shared
1. ログイン
https://scrapbox.io/files/65c980c7b28d4a0025015424.png
2. フィードを作る
左にタイムラインやフィードが並んでいる中の「🔧Feed Builder」を選択
最初は作ったフィードがないので右上の「Create your first feed」を選択
https://scrapbox.io/files/65c98496c969340025021171.png
スマフォの場合はメニューが隠れていくのでDebug StatsのHideを選択した方が良い
https://scrapbox.io/files/64bca5bcb9c357001c3c0e62.png → https://scrapbox.io/files/64bca60c939d0c001ca5831b.png → https://scrapbox.io/files/64bca67ec05bff001b1b5bd3.png
3.フィードの内容を決める
https://scrapbox.io/files/65c98f89dfb11b0026ca8172.png
左には設定画面、右にはフィードでどのようなPostが並ぶかのプレビューが表示される
初期設定は「24時間以内のPost」を「ReplyのItem」を除いて「hello.+world」の正規表現に合致するものを「作成日降順」となるフィードが設定されている
スマフォの場合は下部に切り替えボタンが出ているので、設定を変えたらFeed Builder Previewを押して結果を確認、またFeed Builderを押して設定内容を変更という流れになる
https://scrapbox.io/files/64bca862167d93001b55b856.png ←→ https://scrapbox.io/files/64bca8bdd11e5d001ca3d2a3.png
3.1.フィード名
カスタムフィードの登録名を指定する
(説明やアイコンは4.の登録する時に設定できる)
https://scrapbox.io/files/64a8f4ebbed8a7001b0526da.png
3.2.カスタムフィードを構成するブロックを設定
フィード名の下にブロック(入力や絞り込みなどの操作)を並べていく
上から下に順に実行された結果が最終的にカスタムフィードとして出力される
最初は「Input(入力元指定)」「Remove(除外指定)」「RegEx (正規表現検索)」「Sort(並び替え)」が用意される
Inputブロック
https://scrapbox.io/files/65c98b669ade2a0026fe7f30.png
Entire Networkを指定することで、最長で過去7日分の全Postを入力とすることができる
おそらく機能的な制限(7日間だけでも数十万Post)のため、それ以上はカスタムフィードを作ってみる?など自分でプログラムを実装してサーバーで稼働させれば可能 Feedで他のフィードを参照できるが、Followingなど見る人によって内容が変わるフィードは参照できない
その他SingleUser(特定の個人のPost、これだけは過去全てが対象になる)や他のフィード、特定の1Postなどもある
https://scrapbox.io/files/65c98d7ddc3d230025980770.png
Removeブロック
https://scrapbox.io/files/65c9904a829ddb0024cd2e97.png
条件にあったPostを除外する
Item is Reply (リプライを除く)
Item has Label (NSFWなどのラベル付きを除く)
Image Count equals 0 (画像が0枚を除く=画像があるものだけにする)
など本文以外の条件が指定できる
単語で除外(マイナス検索)したい場合はRegExブロックのInvertを使う
RegExブロック
https://scrapbox.io/files/65c990f43a39fc00255764e8.png
カスタムフィードの肝となる、検索したい単語などを指定する
単純に複数の単語で検索するだけであれば、「|(バーティカルバー、パイプと呼ばれたりする)」で繋ぐとOR検索となる
例:「Bluesky|Twitter|ツイッター|Threads」→「Bluesky」「Twitter」「ツイッター」「Threads」のいずれかの単語が含まれているPostに絞り込まれる
最後に「|」が残って「Bluesky|Twitter|ツイッター|Threads|」としてしまうと「Bluesky」「Twitter」「ツイッター」「Threads」「」のいずれかになってしまい、「」=どのPostも対象となってしまうので注意
正確には正規表現で検索が行われるため、さまざまな検索が可能 Sortブロック
https://scrapbox.io/files/65c99463df4d060027ab7bde.png
これまでで抽出したPostを並び替える
普段はCreation Date (descending)投稿日時降順(新しい順)で大丈夫だが、いいね順やランダムなどもある
Remember Postsブロック(最初に用意されていないので+Add Blockから追加が必要)
2023/12/24 (v.0.9.7) に実装された、フィードとして抽出したPostを記録するブロック
このブロックを最後のSortブロックの手前に置いて、フィードを公開している場合に限り、記録される
記録はInputブロックのEntire Networkでの制限である7日を超えても保持され、フィードに表示されるようになる
検索条件を変更中に誤って全Postなどを読み込んでしまうことがあるため注意
記録・呼び出しを行うブロックなので、7日以上前のPostを検索できるわけではないことに注意
ブロックの操作方法
+ Add BlockでフィードのPostを操作するブロックを追加することができる
1つのカスタムフィードに対してブロックの数は32個まで
https://scrapbox.io/files/64a8f56f8ba25e001b92b9a9.png
不要なブロックは×で削除可能
https://scrapbox.io/files/64f734397417a8001b6de895.png
ブロックの右にある=をドラッグすることで順番の入れ替えも可能
https://scrapbox.io/files/64f734727417a8001b6deac0.png
また各ブロックの右下に、その時点でのPostの数と、処理にかかった時間(ミリ秒)が表示される
https://scrapbox.io/files/64f73899460c22001b4b4919.png
3.3.サンプル
https://scrapbox.io/files/6589a2d226b9e40024414f76.png
このように設定すると「過去7日のPost」から「ReplyのItem」を除いて「Bluesky」「Twitter」「ツイッター」「Threads」のいずれかの単語が本文に含まれているPostを「7日以前の分も記録」して「作成日降順」としたフィードができる
リストが実装される前に擬似的にカスタムフィードとして作る方法もありました
ミュートリストを使用する方法
ユーザーを追加していく方法
特定のPostをまとめる(Twitterのモーメント)ような場合はBluefeedを利用すると良いでしょう PostのURIをコピーできる機能は実装予定とのこと
3.4.よくある質問
Settings→Content LanguageのチェックによってPostの言語がフィルタリングされている可能性がある
単語のマイナス検索(単語が含まれているPostを削除)がしたい
RegExブロックのInvertにチェックを入れると除外ができる
OR検索はできるけどAND検索はできないの?
RegExブロックを2つ並べることで絞り込みからの絞り込み(実質AND検索)となる
正規表現で先読み・後読みは使えない?
カスタムフィードの先頭に特定のPostをピン留めしたい
SinglePostブロックをSortブロックの後に追加することで可能
ただし先頭のPostが変わらないため、クライアントによっては更新された通知が来ない可能性があるので注意
カスタムフィードを非公開にはできる?
SkyFeedでは非公開にできないが、特定の人がアクセスしたときのみ内容を表示するよおうにプログラムを作れば可能(カスタムフィードの名前や説明自体は見えてしまうけれど)
4.フィードを登録する
上部の「Publish Feed」を選択するとフィード登録画面が表示される
Upload avater imageでフィードのアイコンを設定できる
Descriptionにフィードの説明を記入
https://scrapbox.io/files/65c99610adc27900250d41a7.png
Licenseはこのカスタムフィードの設定に対するライセンスを設定する
(ブログの解説によるとフィードを編集したり改善したりする"Remix"機能のため) When you publish a feed using the SkyFeed Builder, the source code (building blocks) is embedded in the public feed record.
You can license the code with the EUPL (similar to the GPL) to allow other builders to remix and improve your feed, as long as they also release their feed with a compatible open-source license.
↓機械翻訳
SkyFeed Builder を使用してフィードを公開すると、ソースコード (構成要素) が公開フィードレコードに埋め込まれます。(訳注:どのように設定したカスタムフィードか、他の人が内容を見ることができます)
EUPL (GPL と同様) でコードのライセンスを取得すると、他のビルダーがフィードをリミックスして改善できるようになります (互換性のあるオープンソース ライセンスでフィードをリリースする場合に限ります)。
MITライセンス:ライセンス表記をすれば編集や再公開などが可能
EUPL-1.2ライセンス:編集する場合は同じライセンスを必要とする
ライセンスなし:すべての権利を自分が保有する
Publishを選択すると自分のアカウントにフィードが登録される
https://scrapbox.io/files/64a9057d47af60001b5f6315.png
おつかれさまでした!
5.フィードを更新する
更新したい場合は内容を変えた後Update Feedで再度Publishすることで反映させることができる
https://scrapbox.io/files/65006ef2ec0889001b21e830.png
6.フィードを登録解除・削除する
登録解除したい場合はUpdate Feedの更新画面からUnpublish Feedで自分のアカウントからフィードが削除される
https://scrapbox.io/files/65006e5e6d52c5001c47a28e.png
さらにSkyFeed Builder右のゴミ箱アイコンを選択するとBuilderからも削除することができる
https://scrapbox.io/files/65006e87c19d40001c965d3c.png
7.フィードを追加する
追加したい場合はSkyFeed Builder右のフィード名を選択して+Create Feedを選択すると追加できる
複数作成した場合の切り替えもここから
https://scrapbox.io/files/65006ecdf115b1001b070e83.png