Piping Serverを使ってhttpsだけでどんな環境からも情報収集
https://gyazo.com/b2a980d58ca7fc9e993f6725a36e0d64
@gosyujin Start presentationでの閲覧を推奨
やりたいこと
収集した情報を一か所に垂れ流したい
特定のアプリに頼らず、標準機能だけで実現したい
ゆるくやりたい
情報収集方法
1. ニュースサイトなど
RSSがあればそれで取得
2. SNSなど
TwitterのAPIなどから取得(記事作成当時)
Xになった今は無理か?
ActivityPub準拠のSNSならRSSで取得できる?
3. それ以外(RSSがないサイトなど)
feed43などで無理やりRSSにする(記事作成当時)
feed43はサービス終了していた
スクレイピングなど
基本的にRSSフィードで取得できるけど、それ以外もほしい
RSSはSlack、SNSはX…ではなく、一か所に集約したい
要件
情報の配信方法
1. 秘密情報は流れないし流さない
誰に見られてもいい
2. リアルタイム性は求めていない
10:00に出された情報が15:00に流れてきてもいい
3. 別に取りこぼしてもいい
10:00から2時間分取得できませんでした、でもOK
上記の2時間分を改めて取得する、ギャップ漏れ対策もいらない
4. 過去に遡れなくてもいい
情報の取得方法
1. どこからでも見たい
2. 1つのアプリ(機能)で見たい
実現方法
案: Slackを使う
1. /feedコマンドでRSSを取得できる
2. Slack APIを使えばスクレイピングした結果なども投稿できる
実はこれで「やりたいこと」を99%実現できている
残り1%の要望…
困ったこと
見るにはSlackアプリが必要(一応Webからも見れる)
https通信ができる環境ならどこからでも見たい…
申請が通らない
ブロックされている
迂回してなんとかしたい…
構成
これで99%達成できている
code:mmd
flowchart LR
subgraph Slack"fab:fa-slack Slack"
#ppng_ch
end
SNS"fab:fa-twitter SNS" -- アドオンなどで取得 --> #ppng_ch
Webサイト"fa:fa-rss Webサイト" -- RSSなどで取得 --> #ppng_ch
ここから残り1%用に拡張
code:mmd
flowchart LR
subgraph Glitch.me
ppngPiping Server
end
subgraph PC1"自宅PC"
nodeスクリプト -- curl --> ppng
nodeスクリプト -- 定期実行 --> nodeスクリプト
end
subgraph Slack"fab:fa-slack Slack"
#ppng_ch -- 一覧返却 --> nodeスクリプト
end
nodeスクリプト -- ポスト一覧要求 --> #ppng_ch
subgraph PC2"PC(不自由な環境)"
コマンドプロンプト -- curl --> ppng
ppng -- 一覧取得 --> コマンドプロンプト
end
SNS"fab:fa-twitter SNS" -- アドオンなどで取得 --> #ppng_ch
Webサイト"fa:fa-rss Webサイト" -- RSSなどで取得 --> #ppng_ch
やっていること
send側
Slackの#ppng_chにとにかくRSSなどを登録する
Slack API経由で定期的に#ppng_chの内容を取得する
cronなどに登録する
最後に取得した時間くらいは保存しておいた方がよい
#ppng_chの内容をPiping Serverに送る
recieve側
Piping Serverの内容を取得するスクリプトを無限ループさせておく
効果
2021年くらいからずっと動かして、毎日使っている
便利