{
  "$type": "com.whtwnd.blog.entry",
  "blobs": [
    {
      "name": "名称未設定3.png",
      "blobref": {
        "$type": "blob",
        "ref": {
          "$link": "bafkreia5mi4c2lm3t3gnidtp65rmf2kuoethytsfrbshu5nzc7abigu6lq"
        },
        "mimeType": "image/png",
        "size": 168101
      },
      "encoding": "image/png"
    },
    {
      "name": "名称未設定4.png",
      "blobref": {
        "$type": "blob",
        "ref": {
          "$link": "bafkreihmjtnc5pezvskgf5uwow2xna5ue6qdj4ncvwtjcvkjoq44keotye"
        },
        "mimeType": "image/png",
        "size": 161210
      },
      "encoding": "image/png"
    },
    {
      "name": "test04.png",
      "blobref": {
        "$type": "blob",
        "ref": {
          "$link": "bafkreiffkcdlgiwkdp4u3ry2ud5adjnevqjf52mzi5yoaqsronmuvmmbre"
        },
        "mimeType": "image/png",
        "size": 126832
      },
      "encoding": "image/png"
    }
  ],
  "theme": "github-light",
  "title": "SkyFeedユーザーに向けた「カスタムフィード作成ツール」の手引き",
  "content": "しげぽんさん(@shigepon.net)が「カスタムフィード作成ツール」を公開されていました。SkyFeedのように条件を指定すると、後は自動で収集してくれるタイプの日本語圏向けのカスタムフィードジェネレーターです。<br />\nしげぽんさんの記事<br />\nhttps://shigepon.net/id/userfeed<br />\n「カスタムフィード作成ツール」<br />\nhttps://customfeed.shigepon.net/<br />\n\nこの記事では、SkyFeedユーザーでよくある作例を「カスタムフィード作成ツール」で実現する手段について解説します。勝手に解説しているため、間違っている箇所があるかもしれません。ろくに検証をしていませんが、概ね間違っていないと信じています。\n\n# 前提\nカスタムフィード作成ツールは「形態素解析」に非常に強いツールです。辞書を鍛えてワード検索を使った方が幸せになりますが、今回はSkyFeedからの移植にフォーカスします。\n# 基本的な考え方\n- 投稿されたら大体の場合は即時反映されます\n- 過去の遡上は出来ませんが、逆に7日の制限はありません(検索条件を変更しても、過去の投稿はそのままです)\n- 動作の挙動はBluesky Feed Creatorとほぼ同じです\n- 投稿言語は日本語のみのはずです\n\n# 構文\n今の所、形態素解析を使わない場合の条件指定は呪文を唱える必要があるので、呪文を作る方法を説明します。\n\n## 超シンプルパターン\n### 検索キーワードの設定\n凝ったものを使っている人が多いと思うので、SkyFeedのRegex Postをそのままコピペしましょう。<br />\n```\nREGEX(/(検索ワード1|検索ワード2)/)\n```\n### 除外ワードの指定\n凝ったものを使っている人が多いと思うので、SkyFeedのRegex Postをそのままコピペしましょう。除外なので、REGEXの頭に!をつけます<br />\n```\nREGEX(/(検索ワード1|検索ワード2)/) && !REGEX(/(除外ワード1|除外ワード2)/) \n```\n\n### 返信は除外する\n&& !IS_REPLYをつけます<br />\n```\nREGEX(/(検索ワード1|検索ワード2)/) && !REGEX(/(除外ワード1|除外ワード2)/)  && !IS_REPLY\n```\n### エログロを弾く\n&& !HAS_LABELをつけます。公式の後付けラベルやカスタムラベラーには対応しません。(Remove Has Labelは無理です)<br />\n```\nREGEX(/(検索ワード1|検索ワード2)/) && !REGEX(/(除外ワード1|除外ワード2)/)  && !IS_REPLY && !HAS_LABEL\n```\nとりあえず呪文は完成したので、後はツールに反映させます。\n### 呪文をツールに反映する\nツールにアクセスして、ログインします。その後、「テキストで編集」をクリックします<br />\nhttps://customfeed.shigepon.net/<br />\n![](https://lionsmane.us-east.host.bsky.network/xrpc/com.atproto.sync.getBlob?did=did%3Aplc%3Argdcflm4ylsl6udghmtblydc&cid=bafkreia5mi4c2lm3t3gnidtp65rmf2kuoethytsfrbshu5nzc7abigu6lq)\n完成した呪文を貼り付けます![](https://lionsmane.us-east.host.bsky.network/xrpc/com.atproto.sync.getBlob?did=did%3Aplc%3Argdcflm4ylsl6udghmtblydc&cid=bafkreihmjtnc5pezvskgf5uwow2xna5ue6qdj4ncvwtjcvkjoq44keotye)\nあとはしげぽんさんの手順に従って、「フィードの公開」を行いましょう。重ねてとなりますが、公開した後の投稿から収集が始まりますので投稿が流れてくるのを待ちましょう。<br />\n# その他の使い方\n大体の使い方は上でカバーできると思いますが、ブロックごとの移植で気になるところをカバーします。(ここから先は私は未検証の物も含まれます)\n\n## Regexブロック\n### Image Alt Text\nIMAGE(検索ワード)を使います。<br />\n```\nREGEX(/検索ワード1|検索ワード2/) || IMAGE(検索ワード3)\n```\n### Link\nLINK(検索ワード)を使います。アフィリエイトを避けるときとかですね。<br />\n```\nREGEX(/検索ワード1|検索ワード2/) && !LINK(A8.net) && !LINK(afb)\n```\n\n## Inputブロック\n### Entire Network\n基本的にこのツールでは「これから未来の投稿」を収集するため、設定は不要です。\n### Tag\nTAG(タグ)を使います。SkyFeedと同様に#は不要ですので、「#自作絵」ハッシュタグを拾う場合は下記のように指定します。\n\n```\nTAG(自作絵) \n```\n### Single User\nFROM(DID)を使います。DIDなにそれ?の人は、下記のURLの最後のところをご自身のハンドルに指定してください。\nhttps://api.bsky.app/xrpc/app.bsky.actor.getProfile?actor=usounds.work<br />\nすると、下記のようにdid:plcから始まるものがあるのでそれをコピペします\n```\n{\"did\":\"did:plc:rgdcflm4ylsl6udghmtblydc\",\"handle\":\"usounds.work\",\"displayName\":\"ゆー\".....}\n```\nSingle Userはご自身の作品をまとめる用途で使われる方が多いでしょうから、「#自作絵」ハッシュタグが含まれる私の投稿のみを拾う場合は\n\n```\nTAG(自作絵) && FROM(did:plc:rgdcflm4ylsl6udghmtblydc)\n```\nとなります\n\n### List,Feed,Single Post,Labels\nこのツールでの機能はありません\n\n\n## Removeブロック\n### Item\n#### Is Post, Is Reply\nIS_REPLYを使います。除外したいケースは基本パターンにて説明済みですので、「リプライだけ」を表示したい場合がこれに該当します。\n```\nREGEX(/検索ワード1|検索ワード2/) && IS_REPLY\n```\n#### Hellthread, is Repost\nこのツールでの機能はありません\n\n### Embed\nSkyFeedよりも選択肢が多く、多くの方が希望されているであろう動画、リスト、スターターパック、誰かへのメンション、が追加判定できます。動画だけを拾う場合は\n```\nREGEX(/検索ワード1|検索ワード2/) && HAS_VIDEO\n```\nです。\n\n### List of Users\nリストでの除外設定はできませんが、人数が少ない場合は!FROM(DID)で代用できます。DIDについてはSingle Userのところを参照してください\n```\nREGEX(/検索ワード1|検索ワード2/) && !FROM(除外したいユーザーのDID)\n```\n### Language\n日本語のみですので設定するところはありません\n\n### Countシリーズ\nこのツールでの機能はありません\n\n## Stash/Popブロック\nこのツールではOR条件が容易に実現できます。そのため、このブロックがなくても困ることはないはずです。\n\n## Replaceブロック\nこのツールでの機能はありません\n\n## Softブロック\n新しい順のみですので設定するところはありません\n\n## Limitブロック\nこのツールでの機能はありません\n\n## Remenber Postブロック\nこのツールでは未来の投稿を検索するため、日数の制限はなく、このブロックの提供はありませんが困ることはないはずです。\n\n# 検索条件の変更\n既存のフィードの条件を変更する場合、「フィードの読み込み」を使用します。この時はフィードのURLを指定する必要がありますが、これはフィードの共有メニューからコピったURLを使う必要があります。\n![](https://lionsmane.us-east.host.bsky.network/xrpc/com.atproto.sync.getBlob?did=did%3Aplc%3Argdcflm4ylsl6udghmtblydc&cid=bafkreiffkcdlgiwkdp4u3ry2ud5adjnevqjf52mzi5yoaqsronmuvmmbre)\nこのような形式を受け付け、<br />\nhttps://bsky.app/profile/did:plc:rgdcflm4ylsl6udghmtblydc/feed/test2<br />\nこの形式では行けつけません<br />\nhttps://bsky.app/profile/usounds.work/feed/test2<br />\n実はこのフィードの読み込み機能、SkyFeedで作成したフィードの検索条件も読み込んでこのツールに検索条件を変換する機能もついています。SkyFeedとこのツールも両方多機能ですので、変換がうまくいったかどうかの結果は目視で確認するようにしましょう。\n\n# ワード検索について\n最後にワード検索について補足します。SkyFeedでは多くの場合、正規表現を使っていますが、私の経験上\n\n- OR検索する手段がそれしかない\n- 日本語だと幅広で拾ってしまうので凝った正規表現にするしかない\n \n\nのような場合に使っていると思います。 <br />\n## メリット\n特に後者は、私の界隈では「ノリス」というF1で今年ドライバーランキング2位担った若きドライバーがいるのですが、SkyFeedでこの単語を拾うと「ノリスケ」を拾います。これを防ぐために、ノリスの前後はカタカナがこないという表示を使う人が多いと思います。<br />\nワード検索では文字の境界を見てくれるので、ワード検索(具体的にはWORD(ノリス))を使うとこのような、ノリスというF1ドライバーの話題を見ようと思ったら日本のアニメの中年サラリーマンの話題を見る羽目になるという悲しい事故が発生しにくくなっています。<br />\n## デメリット\n辞書の精度(登録量/精度)に依存することです。最近の人名や造語(カップリング系)、アニメの登場人物の名前や地域名は当然辞書に載っていることはありませんので、これを正しく判定するのが非常に困難です。Blueskyの検索がイマイチ、というのも一部はこのような事情もあります。<br />\nこのツールでは、我々利用者が「これは単語だよ」と辞書に教え込ませることができる、個人的には1番の目玉機能だと思っている機能がついています。もちろん、辞書登録をしなくてもTEXT(ノリス)やREGEX(/ノリス/)を使えば確実に拾うことができますので、どのような選択肢でも取ることができるのがこのツールのいいところですね。<br />\n## 辞書を鍛えるのは楽しい\n私がこの2日でFF14、ぼざろ、モタスポ界隈で判定に苦しんでいる単語を根こそぎ登録したので、精度が上がっているはずです。ぜひあなたも辞書を鍛えてみてください。登録のUIや、「あーこんな感じで分解されるんだー」をみながら楽しみながら登録できますので非常におすすめです。\n正規表現のみを使う場合は単語登録は不要ですが、鍛えれば正規表現は不要になってくるのでぜひトライしてみてください。\n\n以上になります。新しいフィード作成ツールが生まれたことに感謝しつつ、ぜひ使ってみてください。\n\n\n\n\n",
  "createdAt": "2025-01-19T13:06:34.135Z",
  "visibility": "public"
}