From 705debfa7f224aa5ac50a78cbc381a993db9cdc8 Mon Sep 17 00:00:00 2001 From: Sho Sakuma Date: Wed, 17 Jul 2024 20:55:22 +0900 Subject: [PATCH] Update src/endpoint/timeline.md Co-authored-by: Tatsuto YAMAMOTO --- src/endpoint.md | 8 ++++---- src/endpoint/notes.md | 34 ++++++++++++++++------------------ src/endpoint/timeline.md | 6 +++--- src/introduction.md | 3 ++- src/model.md | 26 -------------------------- src/module.md | 23 ----------------------- 6 files changed, 25 insertions(+), 75 deletions(-) diff --git a/src/endpoint.md b/src/endpoint.md index e46e521..7cf0eee 100644 --- a/src/endpoint.md +++ b/src/endpoint.md @@ -22,7 +22,7 @@ Pulsate v0 APIでは殆どのエンドポイントで資格情報が必要であ エンドポイントへアクセスするときの`Authorization` HTTPヘッダーに -```json +```text Bearer ``` @@ -30,7 +30,7 @@ Bearer 例: -```json +```text Bearer ``` @@ -117,13 +117,13 @@ Unicodeで規定された文字以外のデータを表現するときの記法 のスキームである`acct:`を取り除き, `@`に置き換えたもの - 例: アカウント名が `@john@example.com`である場合 -```json +```text <@john@example.com> ``` - 宛先のホスト名(FQDN)は **省略不可** -```md +```text <@john@example.com> <@la@mi.growthers.dev> <@gargon@mastodon.social> ``` diff --git a/src/endpoint/notes.md b/src/endpoint/notes.md index 7bc66b5..6d870e9 100644 --- a/src/endpoint/notes.md +++ b/src/endpoint/notes.md @@ -592,12 +592,10 @@ body: `application/json` `reactions`: -| 項目名 | 型 | 説明 | 例 | -| ---------------------------------------------------------------------------------- | ------------------ | ---------------------------- | ---------- | -| emoji | `string` | 絵文字 | | -| 表記法は [Untitled](https://www.notion.so/74411becb886427fb512a32d523d6faf) を参照 | `<:alias:11938437` | | | -| `🎉` | | | | -| reacted_by | `snowflake` | リアクションしたアカウントID | `48499372` | +| 項目名 | 型 | 説明 | 例 | +| ---------- | ----------- | ------------------------------------------------------------------- | ------------------------- | +| emoji | `string` | 絵文字. 表記法は [絵文字の扱い](../endpoint.md#絵文字の扱い) を参照 | `🎉`, `<:alias:11938437>` | +| reacted_by | `snowflake` | リアクションしたアカウントID | `48499372` | **`400`** **`Bad Request`** @@ -739,12 +737,12 @@ body: `application/json` `reactions`: -| 項目名 | 型 | 説明 | 例 | -| ---------------------------------------------------------------------------------- | ------------------ | ---------------------------- | ---------- | -| emoji | `string` | 絵文字 | | -| 表記法は [Untitled](https://www.notion.so/74411becb886427fb512a32d523d6faf) を参照 | `<:alias:11938437` | | | -| `🎉` | | | | -| reacted_by | `snowflake` | リアクションしたアカウントID | `48499372` | +| 項目名 | 型 | 説明 | 例 | +| ----------------------------------------------------------- | ------------------ | ---------------------------- | ---------- | +| emoji | `string` | 絵文字 | | +| 表記法は [絵文字の扱い](../endpoint.md#絵文字の扱い) を参照 | `<:alias:11938437` | | | +| `🎉` | | | | +| reacted_by | `snowflake` | リアクションしたアカウントID | `48499372` | **`404 Not Found`** @@ -806,9 +804,9 @@ body: `application/json` | blur | `string` | 添付ファイルが画像であるときのサムネイルの [blurhash](https://blurha.sh/) | | | | nsfw | `boolean` | ToDo | | | -| 項目名 | 型 | 説明 | 例 | -| ---------------------------------------------------------------------------------- | ------------------ | ---------------------------- | ---------- | -| emoji | `string` | 絵文字 | | -| 表記法は [Untitled](https://www.notion.so/74411becb886427fb512a32d523d6faf) を参照 | `<:alias:11938437` | | | -| `🎉` | | | | -| reacted_by | `snowflake` | リアクションしたアカウントID | `48499372` | +| 項目名 | 型 | 説明 | 例 | +| ----------------------------------------------------------- | ------------------ | ---------------------------- | ---------- | +| emoji | `string` | 絵文字 | | +| 表記法は [絵文字の扱い](../endpoint.md#絵文字の扱い) を参照 | `<:alias:11938437` | | | +| `🎉` | | | | +| reacted_by | `snowflake` | リアクションしたアカウントID | `48499372` | diff --git a/src/endpoint/timeline.md b/src/endpoint/timeline.md index 172e77a..51e9010 100644 --- a/src/endpoint/timeline.md +++ b/src/endpoint/timeline.md @@ -12,7 +12,7 @@ ### 入力 - パスパラメータ - - `timeline_type`: ```string``, `undefined`` + - `timeline_type`: `string`, `undefined` - とり得る値: `home` / `global` - デフォルト: `home` - クエリパラメータ @@ -22,7 +22,7 @@ - `no_nsfw` : `bool | undefined` - デフォルト: `false` - NSFWフラグの立っているファイルを含む投稿を返さなくなります - - `before_id` : ``snowflake`| undefined` + - `before_id` : `snowflake| undefined` - デフォルト: `undefined` - ~~デフォルトでは現在取得できる最新の投稿から20件取得します.~~ - 指定したIDより古い投稿を返します.指定したIDの投稿は含まれません @@ -112,7 +112,7 @@ - `no_nsfw` : `bool | undefined` - デフォルト: `false` - NSFWフラグの立っているファイルを1つでも含む投稿を返さなくなります - - `before_id` : ``snowflake`| undefined` + - `before_id` : `snowflake`| undefined` - デフォルト: `undefined` - デフォルトでは現在取得できる最新の投稿から20件取得します. - 指定したIDより古い投稿を返します.指定したIDの投稿は含まれません diff --git a/src/introduction.md b/src/introduction.md index fd399c4..6ffac7e 100644 --- a/src/introduction.md +++ b/src/introduction.md @@ -2,7 +2,8 @@ -Pulsate Specification は Pulsate プロジェクトに関する APIエンドポイントや設計などの仕様を記述したドキュメントです. + +Pulsate Specification は Pulsate プロジェクトに関するAPIエンドポイントや設計などの仕様を記述したドキュメントです. プロジェクトの概要については [こちら](./project.md) をご覧ください. diff --git a/src/model.md b/src/model.md index 9ad084a..4fe70a7 100644 --- a/src/model.md +++ b/src/model.md @@ -224,29 +224,3 @@ Pulsate に対して送信されたユーザー生成コンテンツのエンテ 以下の属性が関連付けられます. (wip) - -# タイムライン - -[アカウント関係](#アカウント関係) と [検索述語](#検索述語) をベースに, -ページネーションされた [投稿](#投稿) -のコレクションを高速に取得するためのモデルです. - -まず, この Pulsate システム全体で (Redis のようなインメモリ DB 内に) -検索述語をキーとした大きな木構造を構築します. それらによる投稿 ID -コレクションのフィルタ結果が常に全アカウント間で共有されます. - -その木におけるノードでは, 要素数が 1000 以下の投稿 ID コレクションを保持します. - -この木の更新は, -誰かがタイムラインの作成および条件の編集を行ったタイミングで変更プランが保持され, -一定時間ごとに履行されます. - -## 投稿 ID コレクション - -投稿 ID コレクションは, 投稿 ID を時系列データとしてページネーション & -ランダムアクセスできるキューを実現します. -対数時間以内に挿入とクエリができるデータ構造で構築します. - -タイムラインとしての投稿 ID リストを取得するときは, -そのパラメータである検索述語に最も近い ID コレクションを取得しつつ, -取得後に細かい条件で別途フィルタします. diff --git a/src/module.md b/src/module.md index f0618f4..544ddf0 100644 --- a/src/module.md +++ b/src/module.md @@ -62,26 +62,3 @@ TimelineModule ->> ActivityPubModule: 投稿作成イベント発火 - ActivityPubを経由した外部サーバーへのノート配送を行う. - ActivityPubを経由したノートの受信を行う. - -## モジュール間通信 - -- Accountモジュールのモジュール間通信用サービスはこのように書く. - - `pkg/intermodule/<モジュール名>.ts`のようなファイル名をつける. - -```ts -import { type Result } from "@mikuroxina/mini-fn"; - -import { type Account, type AccountName } from "../accounts/model/account.js"; -import type { FetchAccountService } from "../accounts/service/fetchAccount.js"; - -// Accountモジュールの他モジュールに対して公開するメソッド -export class AccountModule { - constructor(private readonly fetchAccountService: FetchAccountService) {} - - async fetchAccount( - name: AccountName, - ): Promise> { - return await this.fetchAccountService.fetchAccount(name); - } -} -```