このリポジトリでは、Concurrent 向けのコミュニティキャッシュを提供する簡易的な API を実装しています。
API では、キャッシュデータの取得や検索が可能です。
- CONCRNT_API_HOST
APIをたたきに行く鯖 - SERVER_PORT
サーバーを起動するポート番号を指定します。 - CACHE_INTERVAL_MILLISECONDS スクレイピングのインターバル
# 依存関係のインストール
npm install
# サーバー起動
npm run start
- 概要
サーバーが起動しているかどうかを確認するためのシンプルなエンドポイントです。 - レスポンス
concurrent community cache
-
概要
キャッシュされたドメインおよびタイムラインを返却します。オプションのクエリパラメータによって返却内容を制御できます。 -
クエリパラメータ
パラメータ 型 必須 説明 showOffline
string 任意 true
を指定すると、オフラインも含むすべてのキャッシュデータを返却します。
デフォルトまたは指定なしの場合は、domain.ccid
が存在する(オンラインの)データのみ返却します。q
string 任意 検索キーワードを指定できます。
指定がある場合、Minisearch を用いた前方一致の「ファジー検索」を行い、ヒットしたタイムラインのみ返却します。
指定がない場合は、オフライン指定に応じたすべてのタイムラインを返却します。 -
使用例
-
オンラインのキャッシュのみ取得
GET /cache
-
オフラインを含むすべてのキャッシュを取得
GET /cache?showOffline=true
-
ファジー検索(キーワードが "con")
GET /cache?q=con
- この場合、検索キーワードにマッチしたタイムラインのみ返却します。(オンラインのみ)
-
qで検索できる
- レスポンス例 (JSON)
レスポンス例は src/type.ts のDomainCache[]を参照してください。
-
キャッシュ更新 (初回・定期)
サーバー起動時にtask()
が実行され、gather()
によって取得されたキャッシュをもとにオンライン・オフラインを判定し、それぞれaliveCache
とcache
に格納します。 -
Minisearch のインデックス作成
オンラインのタイムラインデータを Miniseach に登録し、q
が指定された場合のファジー検索を実現します。 -
定期更新
CACHE_INTERVAL_MILLISECONDS
毎に定期的にキャッシュ更新が実行されます(setInterval
でtask()
を呼び出し)。