Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release: 1.1.0 #539

Merged
merged 71 commits into from
Nov 8, 2024
Merged

Release: 1.1.0 #539

merged 71 commits into from
Nov 8, 2024

Conversation

kozakura913
Copy link
Collaborator

1.1.0

Cherrypick 4.11.1

Release Date

2024-11-08

Note

ノートが多数ある場合マイグレーションに長時間かかることがあります

docker環境でノートレコードが多数(数百万件)ある場合一時的に compose.ymlのhealthcheckstart_periodを大きめに指定してください

#サービスのwebに追記
    healthcheck:
      test: ["/bin/bash", "/misskey/healthcheck.sh"]
      interval: "5s"
      retries: 20
      start_period: "300s"#5分

インデックス構造が変わったためノートインデックスの再作成が必要です。
リアクションや投票が途中からインデックスにされるので再インデックスをおすすめします。

General

  • Fix: 照会かリモートユーザーの投稿取得で作成されたノートの場合通知を発行しないように
  • Feat: 検索許可制限、SearchableByに対応 #519
  • Feat: 検索許可制限、mastodonのindexableに対応 #449,#502,#504,#507
    • 検索で表示される条件を制限できるようになります
    • 設定→プライバシーより設定できます
    • 設定されている場合対応しているサーバーでは、以下のことをしたユーザーのみ検索できます
      • リアクション
      • リノート
      • クリップ
      • お気に入り
      • 返信
      • 投票
      • コントロールパネル→その他で(クリップ、お気に入り、投票が)再インデックスできるようになりました
  • Feat: 予約投稿 #483
  • Enhance: 連合一覧のソートにリバーシのバージョンを追加 #436
  • Enhance: リモートのクリップをお気に入りに登録できるように #438
  • Enhance: リモートのPlayを遊べるように #447
  • Enhance: リモートのPlayをお気に入りに登録できるように #447
  • Enhance: ノートにつけられたリアクションを対象にした検索ができるように #496
    • Opensearchのみ対応
    • Opensearchの設定で reactionSearchLocalOnly: trueにすることでリモートのカスタム絵文字リアクションをインデックス対象外にできます
  • Enhance: 高度な検索でフォロー中/フォロー外を検索条件にできるように #503
  • Enhance(Opensearch): 表記ゆれがヒットしないようにするオプションを追加 #498

Client

  • Fix: ユーザーページでリアクション履歴が閲覧できる状態の時にリアクションを選択するとユーザーの投稿が表示されてしまうの修正 #429
  • Fix: リモートから添付されてきたクリップURLにホスト情報があると二重になる不具合を修正 #460
  • Fix: リモートクリップ説明文がローカル仕様になってる問題の修正 #466
  • Fix: ユーザー概要の「ファイル」の挙動を通常の添付ファイルに合わせる #472
  • Fix: チャットの絵文字ピッカーが正しく入力できないことがあるのを修正 #497
  • Fix: リモートから添付されてきたクリップURLにホスト情報があると二重になる不具合を修正 #460
  • Fix: リモートクリップ説明文がローカル仕様になってる問題の修正 #466
  • Fix: ユーザー概要の「ファイル」の挙動を通常の添付ファイルに合わせる #472
  • Fix: チャットの絵文字ピッカーが正しく入力できないことがあるのを修正 #497
  • Fix: サーバー情報画面で公式タグを選択するとヘッダが公式タグのままになる不具合を修正 #527
  • Enhance: チャートの連合グラフで割合を表示 #437
  • Enhance: お気に入り登録クリップの一覧画面から登録解除できるように #448
  • Enhance: 高度な検索でもクエリ文字列を使えるように #511
    • /search?type=anote
    • q 通常検索と同じ
    • userId 通常検索と同じ
    • username 通常検索と同じ
    • host 通常検索と同じ
    • fileAttach添付ファイル有無 あり:file-onlyなし:no-file
    • fileSensitive添付ファイルセンシティブ状態 あり:includeSensitive なし:withOutSensitive センシティブのみsensitiveOnly
    • reactions リアクション検索ボックス
    • reactionsExclude リアクション検索ボックス(除外)
    • excludeReply リプライ除外 true/false
    • excludeCw CW除外 true/false
    • excludeQuote 引用除外 true/false
    • strictSearch 表記ゆれ検索有効 true/false
  • Enhance: 非ログイン時に動きのあるMFMを動かすか選べるように #508
  • Fix: デフォルトの公開範囲から連合なしを削除 #532
  • Fix: すべてのキューを今すぐ再試行するとモデログにロケールの無い項目が出現する問題を修正 #534

Server

  • Change: notes/advanced-searchqueryが必須ではなくなりました #496
  • Change: 絵文字を登録する際にシステムユーザーとして再アップロードするように #510
  • Change: api/admin/recreate-indexでは再インデックスをしないように #531
  • Fix: 高度な検索でノート本文に含まれないタグが検索対象外なのを修正 #530
  • Fix: Opensearch利用時ファイルのセンシティブ状態が変更されたとき変更されるように #501
  • Fix: (Opensearch利用時)高度な検索でリプライ除外にするとエラーがでる #449
  • Fix: ノート編集時に3001文字以上の場合編集できない問題を修正 #505
  • Fix: 通知APIがページ境界で重複する問題の修正 #509
  • Enhance: リモートユーザーの/api/clips/show/api/users/clipsの応答にemojisを追加 #466
  • Enhance: api/emojihostを指定できるように #514

penginn-net and others added 30 commits September 11, 2024 07:16
cherrypick from Type4ny-Project/Type4ny@e133a6b

# Conflicts:
#	locales/index.d.ts
#	misskey-assets
#	packages/backend/src/core/NoteCreateService.ts
#	packages/backend/src/core/QueueModule.ts
#	packages/backend/src/core/QueueService.ts
#	packages/backend/src/di-symbols.ts
#	packages/backend/src/models/_.ts
#	packages/backend/src/queue/types.ts
#	packages/backend/src/server/api/endpoints/admin/queue/stats.ts
#	packages/backend/src/server/web/ClientServerService.ts
#	packages/frontend/src/components/MkPostForm.vue

Co-authored-by: まっちゃてぃー。 <56515516+mattyatea@users.noreply.github.com>Signed-off-by: mattyatea <mattyacocacora0@gmail.com>
cherrypick from Type4ny-Project/Type4ny@387faf5

# Conflicts:
#	package.json
#	packages/backend/src/models/RepositoryModule.ts
#	packages/backend/src/postgres.ts

Co-authored-by: まっちゃてぃー。 <56515516+mattyatea@users.noreply.github.com>Signed-off-by: mattyatea <mattyacocacora0@gmail.com>
cherrypick from Type4ny-Project/Type4ny@540f531

# Conflicts:
#	locales/index.d.ts
#	packages/backend/src/server/api/EndpointsModule.ts
#	packages/backend/src/server/api/endpoints.ts
#	packages/frontend/src/components/MkNoteHeader.vue
#	packages/frontend/src/components/MkNoteSimple.vue
#	packages/frontend/src/components/MkPostForm.vue

Co-authored-by: まっちゃてぃー。 <56515516+mattyatea@users.noreply.github.com>Signed-off-by: mattyatea <mattyacocacora0@gmail.com>
Signed-off-by: mattyatea <mattyacocacora0@gmail.com>
cherrypick from Type4ny-Project/Type4ny@d6fb3c3

# Conflicts:
#	packages/frontend/src/components/MkPostForm.vue

Co-authored-by: まっちゃてぃー。 <56515516+mattyatea@users.noreply.github.com>
cherrypick from Type4ny-Project/Type4ny@9bc6d80
cherrypick from Type4ny-Project/Type4ny@28ee4d4

# Conflicts:
#	locales/index.d.ts
#	locales/ja-JP.yml
#	packages/frontend/src/components/MkPostForm.vue
#	packages/frontend/src/components/MkScheduleEditor.vue
#	packages/frontend/src/components/MkSchedulePostListDialog.vue

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
Co-authored-by: まっちゃてぃー。 <56515516+mattyatea@users.noreply.github.com>
Co-authored-by: kozakura913 <98575220+kozakura913@users.noreply.github.com>
@kozakura913 kozakura913 added this to the yojo1.1.0 milestone Nov 8, 2024
@kozakura913 kozakura913 self-assigned this Nov 8, 2024
@github-advanced-security
Copy link

This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation.

- 56312:6379

steps:
- uses: actions/checkout@v4.1.1

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium test

score is 0: GitHub-owned GitHubAction not pinned by hash
Remediation tip: update your workflow using https://app.stepsecurity.io
Click Remediation section below for further remediation help
with:
submodules: true
- name: Runs OpenSearch
uses: esmarkowski/opensearch-github-action@v1.0.0

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium test

score is 0: third-party GitHubAction not pinned by hash
Remediation tip: update your workflow using https://app.stepsecurity.io
Click Remediation section below for further remediation help
opensearch_password: eF53xwF4NYjrcXXwZ2CHgpwFL
port: 59200
- name: Install pnpm
uses: pnpm/action-setup@v4

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium test

score is 0: third-party GitHubAction not pinned by hash
Remediation tip: update your workflow using https://app.stepsecurity.io
Click Remediation section below for further remediation help
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.3

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium test

score is 0: GitHub-owned GitHubAction not pinned by hash
Remediation tip: update your workflow using https://app.stepsecurity.io
Click Remediation section below for further remediation help
- name: Test
run: pnpm --filter backend test-and-coverage:e2e
- name: Upload to Codecov
uses: codecov/codecov-action@v4

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium test

score is 0: third-party GitHubAction not pinned by hash
Remediation tip: update your workflow using https://app.stepsecurity.io
Click Remediation section below for further remediation help
Copy link
Contributor

github-actions bot commented Nov 8, 2024

이 PR에 의한 api.json 차이

차이점은 여기에서 볼 수 있음
--- base
+++ head
@@ -1,7 +1,7 @@
 {
   "openapi": "3.1.0",
   "info": {
-    "version": "4.11.1-yojo1.0.1",
+    "version": "4.11.1-yojo1.1.0",
     "description": "2024.8.0",
     "title": "CherryPick API"
   },
@@ -13122,6 +13122,31 @@
             "bearerAuth": []
           }
         ],
+        "requestBody": {
+          "required": true,
+          "content": {
+            "application/json": {
+              "schema": {
+                "type": "object",
+                "properties": {
+                  "index": {
+                    "type": "string",
+                    "enum": [
+                      "notes",
+                      "reaction",
+                      "pollVote",
+                      "clipNotes",
+                      "Favorites"
+                    ]
+                  }
+                },
+                "required": [
+                  "index"
+                ]
+              }
+            }
+          }
+        },
         "responses": {
           "204": {
             "description": "OK (without any results)"
@@ -20817,6 +20842,15 @@
                       }
                     }
                   },
+                  "OUTBOX_FIRST_PAGE_UNDEFINED_THIS_USER": {
+                    "value": {
+                      "error": {
+                        "message": "outbox first page undefined this user",
+                        "code": "OUTBOX_FIRST_PAGE_UNDEFINED_THIS_USER",
+                        "id": "e1f29e66-86a9-4fdc-9be6-63d4587dc350"
+                      }
+                    }
+                  },
                   "INVALID_PARAM": {
                     "value": {
                       "error": {
@@ -29990,6 +30024,15 @@
                       }
                     }
                   },
+                  "FAILED_TO_RESOLVE_REMOTE_USER": {
+                    "value": {
+                      "error": {
+                        "message": "failedToResolveRemoteUser.",
+                        "code": "FAILED_TO_RESOLVE_REMOTE_USER",
+                        "id": "56d5e552-d55a-47e3-9f37-6dc85a93ecf9"
+                      }
+                    }
+                  },
                   "INVALID_PARAM": {
                     "value": {
                       "error": {
@@ -30115,8 +30158,7 @@
                 "type": "object",
                 "properties": {
                   "clipId": {
-                    "type": "string",
-                    "format": "misskey:id"
+                    "type": "string"
                   }
                 },
                 "required": [
@@ -30273,6 +30315,26 @@
             "bearerAuth": []
           }
         ],
+        "requestBody": {
+          "required": true,
+          "content": {
+            "application/json": {
+              "schema": {
+                "type": "object",
+                "properties": {
+                  "withLocal": {
+                    "type": "boolean",
+                    "default": true
+                  },
+                  "withRemote": {
+                    "type": "boolean",
+                    "default": true
+                  }
+                }
+              }
+            }
+          }
+        },
         "responses": {
           "200": {
             "description": "OK (with results)",
@@ -34707,6 +34769,8 @@
                       "-firstRetrievedAt",
                       "+latestRequestReceivedAt",
                       "-latestRequestReceivedAt",
+                      "+reversiVersion",
+                      "-reversiVersion",
                       null
                     ]
                   }
@@ -34934,6 +34998,8 @@
                       "-firstRetrievedAt",
                       "+latestRequestReceivedAt",
                       "-latestRequestReceivedAt",
+                      "+reversiVersion",
+                      "-reversiVersion",
                       null
                     ]
                   }
@@ -46018,6 +46084,7 @@
                         "groupInvited",
                         "roleAssigned",
                         "achievementEarned",
+                        "scheduleNote",
                         "app",
                         "test",
                         "pollVote"
@@ -46042,6 +46109,7 @@
                         "groupInvited",
                         "roleAssigned",
                         "achievementEarned",
+                        "scheduleNote",
                         "app",
                         "test",
                         "pollVote"
@@ -46257,10 +46325,12 @@
                         "groupInvited",
                         "roleAssigned",
                         "achievementEarned",
+                        "scheduleNote",
                         "app",
                         "test",
                         "reaction:grouped",
                         "renote:grouped",
+                        "note:grouped",
                         "pollVote"
                       ]
                     }
@@ -46283,10 +46353,12 @@
                         "groupInvited",
                         "roleAssigned",
                         "achievementEarned",
+                        "scheduleNote",
                         "app",
                         "test",
                         "reaction:grouped",
                         "renote:grouped",
+                        "note:grouped",
                         "pollVote"
                       ]
                     }
@@ -49980,6 +50052,18 @@
                   "isExplorable": {
                     "type": "boolean"
                   },
+                  "isIndexable": {
+                    "type": "boolean"
+                  },
+                  "searchableBy": {
+                    "type": "string",
+                    "enum": [
+                      "public",
+                      "followersAndReacted",
+                      "reactedOnly",
+                      "private"
+                    ]
+                  },
                   "hideOnlineStatus": {
                     "type": "boolean"
                   },
@@ -54749,6 +54833,13 @@
                 "properties": {
                   "name": {
                     "type": "string"
+                  },
+                  "host": {
+                    "type": [
+                      "string",
+                      "null"
+                    ],
+                    "default": null
                   }
                 },
                 "required": [
@@ -54897,6 +54988,13 @@
                 "properties": {
                   "name": {
                     "type": "string"
+                  },
+                  "host": {
+                    "type": [
+                      "string",
+                      "null"
+                    ],
+                    "default": null
                   }
                 },
                 "required": [
@@ -57208,6 +57306,19 @@
                     ],
                     "default": null
                   },
+                  "searchableBy": {
+                    "type": [
+                      "string",
+                      "null"
+                    ],
+                    "enum": [
+                      "public",
+                      "followersAndReacted",
+                      "reactedOnly",
+                      "private"
+                    ],
+                    "default": "public"
+                  },
                   "disableRightClick": {
                     "type": "boolean",
                     "default": false
@@ -57645,6 +57756,959 @@
         }
       }
     },
+    "/notes/schedule/create": {
+      "post": {
+        "operationId": "notes___schedule___create",
+        "summary": "notes/schedule/create",
+        "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *write:notes-schedule*",
+        "externalDocs": {
+          "description": "Source code",
+          "url": "https://github.com/kokonect-link/cherrypick/blob/develop/packages/backend/src/server/api/endpoints/notes/schedule/create.ts"
+        },
+        "tags": [
+          "notes"
+        ],
+        "security": [
+          {
+            "bearerAuth": []
+          }
+        ],
+        "requestBody": {
+          "required": true,
+          "content": {
+            "application/json": {
+              "schema": {
+                "type": "object",
+                "properties": {
+                  "visibility": {
+                    "type": "string",
+                    "enum": [
+                      "public",
+                      "home",
+                      "followers",
+                      "specified"
+                    ],
+                    "default": "public"
+                  },
+                  "visibleUserIds": {
+                    "type": "array",
+                    "uniqueItems": true,
+                    "items": {
+                      "type": "string",
+                      "format": "misskey:id"
+                    }
+                  },
+                  "cw": {
+                    "type": [
+                      "string",
+                      "null"
+                    ],
+                    "minLength": 1,
+                    "maxLength": 100
+                  },
+                  "reactionAcceptance": {
+                    "type": [
+                      "string",
+                      "null"
+                    ],
+                    "enum": [
+                      null,
+                      "likeOnly",
+                      "likeOnlyForRemote",
+                      "nonSensitiveOnly",
+                      "nonSensitiveOnlyForLocalLikeOnlyForRemote"
+                    ],
+                    "default": null
+                  },
+                  "searchableBy": {
+                    "type": [
+                      "string",
+                      "null"
+                    ],
+                    "enum": [
+                      "public",
+                      "followersAndReacted",
+                      "reactedOnly",
+                      "private"
+                    ],
+                    "default": "public"
+                  },
+                  "disableRightClick": {
+                    "type": "boolean",
+                    "default": false
+                  },
+                  "noExtractMentions": {
+                    "type": "boolean",
+                    "default": false
+                  },
+                  "noExtractHashtags": {
+                    "type": "boolean",
+                    "default": false
+                  },
+                  "noExtractEmojis": {
+                    "type": "boolean",
+                    "default": false
+                  },
+                  "replyId": {
+                    "type": [
+                      "string",
+                      "null"
+                    ],
+                    "format": "misskey:id"
+                  },
+                  "renoteId": {
+                    "type": [
+                      "string",
+                      "null"
+                    ],
+                    "format": "misskey:id"
+                  },
+                  "text": {
+                    "type": [
+                      "string",
+                      "null"
+                    ],
+                    "minLength": 1,
+                    "maxLength": 5120
+                  },
+                  "fileIds": {
+                    "type": "array",
+                    "uniqueItems": true,
+                    "minItems": 1,
+                    "maxItems": 16,
+                    "items": {
+                      "type": "string",
+                      "format": "misskey:id"
+                    }
+                  },
+                  "mediaIds": {
+                    "type": "array",
+                    "uniqueItems": true,
+                    "minItems": 1,
+                    "maxItems": 16,
+                    "items": {
+                      "type": "string",
+                      "format": "misskey:id"
+                    }
+                  },
+                  "poll": {
+                    "type": [
+                      "object",
+                      "null"
+                    ],
+                    "properties": {
+                      "choices": {
+                        "type": "array",
+                        "uniqueItems": true,
+                        "minItems": 2,
+                        "maxItems": 10,
+                        "items": {
+                          "type": "string",
+                          "minLength": 1,
+                          "maxLength": 50
+                        }
+                      },
+                      "multiple": {
+                        "type": "boolean"
+                      },
+                      "expiresAt": {
+                        "type": [
+                          "integer",
+                          "null"
+                        ]
+                      },
+                      "expiredAfter": {
+                        "type": [
+                          "integer",
+                          "null"
+                        ],
+                        "minimum": 1
+                      }
+                    },
+                    "required": [
+                      "choices"
+                    ]
+                  },
+                  "event": {
+                    "type": [
+                      "object",
+                      "null"
+                    ],
+                    "properties": {
+                      "title": {
+                        "type": "string",
+                        "minLength": 1,
+                        "maxLength": 128
+                      },
+                      "start": {
+                        "type": "integer"
+                      },
+                      "end": {
+                        "type": [
+                          "integer",
+                          "null"
+                        ]
+                      },
+                      "metadata": {
+                        "type": "object"
+                      }
+                    }
+                  },
+                  "schedule": {
+                    "type": "object",
+                    "properties": {
+                      "expiresAt": {
+                        "type": "integer"
+                      }
+                    }
+                  }
+                },
+                "anyOf": [
+                  {
+                    "required": [
+                      "text"
+                    ]
+                  },
+                  {
+                    "required": [
+                      "renoteId"
+                    ]
+                  },
+                  {
+                    "required": [
+                      "fileIds"
+                    ]
+                  },
+                  {
+                    "required": [
+                      "mediaIds"
+                    ]
+                  },
+                  {
+                    "required": [
+                      "poll"
+                    ]
+                  }
+                ],
+                "required": [
+                  "schedule"
+                ]
+              }
+            }
+          }
+        },
+        "responses": {
+          "204": {
+            "description": "OK (without any results)"
+          },
+          "400": {
+            "description": "Client error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "SCHEDULE_NOTE_MAX": {
+                    "value": {
+                      "error": {
+                        "message": "Schedule note max.",
+                        "code": "SCHEDULE_NOTE_MAX",
+                        "id": "168707c3-e7da-4031-989e-f42aa3a274b2"
+                      }
+                    }
+                  },
+                  "NO_SUCH_RENOTE_TARGET": {
+                    "value": {
+                      "error": {
+                        "message": "No such renote target.",
+                        "code": "NO_SUCH_RENOTE_TARGET",
+                        "id": "b5c90186-4ab0-49c8-9bba-a1f76c282ba4"
+                      }
+                    }
+                  },
+                  "CANNOT_RENOTE_TO_A_PURE_RENOTE": {
+                    "value": {
+                      "error": {
+                        "message": "You can not Renote a pure Renote.",
+                        "code": "CANNOT_RENOTE_TO_A_PURE_RENOTE",
+                        "id": "fd4cc33e-2a37-48dd-99cc-9b806eb2031a"
+                      }
+                    }
+                  },
+                  "CANNOT_RENOTE_DUE_TO_VISIBILITY": {
+                    "value": {
+                      "error": {
+                        "message": "You can not Renote due to target visibility.",
+                        "code": "CANNOT_RENOTE_DUE_TO_VISIBILITY",
+                        "id": "be9529e9-fe72-4de0-ae43-0b363c4938af"
+                      }
+                    }
+                  },
+                  "NO_SUCH_REPLY_TARGET": {
+                    "value": {
+                      "error": {
+                        "message": "No such reply target.",
+                        "code": "NO_SUCH_REPLY_TARGET",
+                        "id": "749ee0f6-d3da-459a-bf02-282e2da4292c"
+                      }
+                    }
+                  },
+                  "CANNOT_REPLY_TO_A_PURE_RENOTE": {
+                    "value": {
+                      "error": {
+                        "message": "You can not reply to a pure Renote.",
+                        "code": "CANNOT_REPLY_TO_A_PURE_RENOTE",
+                        "id": "3ac74a84-8fd5-4bb0-870f-01804f82ce15"
+                      }
+                    }
+                  },
+                  "CANNOT_CREATE_ALREADY_EXPIRED_POLL": {
+                    "value": {
+                      "error": {
+                        "message": "Poll is already expired.",
+                        "code": "CANNOT_CREATE_ALREADY_EXPIRED_POLL",
+                        "id": "04da457d-b083-4055-9082-955525eda5a5"
+                      }
+                    }
+                  },
+                  "CANNOT_CREATE_ALREADY_EXPIRED_SCHEDULE": {
+                    "value": {
+                      "error": {
+                        "message": "Schedule is already expired.",
+                        "code": "CANNOT_CREATE_ALREADY_EXPIRED_SCHEDULE",
+                        "id": "8a9bfb90-fc7e-4878-a3e8-d97faaf5fb07"
+                      }
+                    }
+                  },
+                  "NO_SUCH_CHANNEL": {
+                    "value": {
+                      "error": {
+                        "message": "No such channel.",
+                        "code": "NO_SUCH_CHANNEL",
+                        "id": "b1653923-5453-4edc-b786-7c4f39bb0bbb"
+                      }
+                    }
+                  },
+                  "NO_SUCH_SCHEDULE": {
+                    "value": {
+                      "error": {
+                        "message": "No such schedule.",
+                        "code": "NO_SUCH_SCHEDULE",
+                        "id": "44dee229-8da1-4a61-856d-e3a4bbc12032"
+                      }
+                    }
+                  },
+                  "YOU_HAVE_BEEN_BLOCKED": {
+                    "value": {
+                      "error": {
+                        "message": "You have been blocked by this user.",
+                        "code": "YOU_HAVE_BEEN_BLOCKED",
+                        "id": "b390d7e1-8a5e-46ed-b625-06271cafd3d3"
+                      }
+                    }
+                  },
+                  "NO_SUCH_FILE": {
+                    "value": {
+                      "error": {
+                        "message": "Some files are not found.",
+                        "code": "NO_SUCH_FILE",
+                        "id": "b6992544-63e7-67f0-fa7f-32444b1b5306"
+                      }
+                    }
+                  },
+                  "CANNOT_RENOTE_OUTSIDE_OF_CHANNEL": {
+                    "value": {
+                      "error": {
+                        "message": "Cannot renote outside of channel.",
+                        "code": "CANNOT_RENOTE_OUTSIDE_OF_CHANNEL",
+                        "id": "33510210-8452-094c-6227-4a6c05d99f00"
+                      }
+                    }
+                  },
+                  "INVALID_PARAM": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid param.",
+                        "code": "INVALID_PARAM",
+                        "id": "3d81ceae-475f-4600-b2a8-2bc116157532"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Authentication error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "CREDENTIAL_REQUIRED": {
+                    "value": {
+                      "error": {
+                        "message": "Credential required.",
+                        "code": "CREDENTIAL_REQUIRED",
+                        "id": "1384574d-a912-4b81-8601-c7b1c4085df1"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "AUTHENTICATION_FAILED": {
+                    "value": {
+                      "error": {
+                        "message": "Authentication failed. Please ensure your token is correct.",
+                        "code": "AUTHENTICATION_FAILED",
+                        "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "418": {
+            "description": "I'm Ai",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "I_AM_AI": {
+                    "value": {
+                      "error": {
+                        "message": "You sent a request to Ai-chan, CherryPick's showgirl, instead of the server.",
+                        "code": "I_AM_AI",
+                        "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "429": {
+            "description": "To many requests",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "RATE_LIMIT_EXCEEDED": {
+                    "value": {
+                      "error": {
+                        "message": "Rate limit exceeded. Please try again later.",
+                        "code": "RATE_LIMIT_EXCEEDED",
+                        "id": "d5826d14-3982-4d2e-8011-b9e9f02499ef"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal server error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INTERNAL_ERROR": {
+                    "value": {
+                      "error": {
+                        "message": "Internal error occurred. Please contact us if the error persists.",
+                        "code": "INTERNAL_ERROR",
+                        "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/notes/schedule/list": {
+      "post": {
+        "operationId": "notes___schedule___list",
+        "summary": "notes/schedule/list",
+        "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *read:notes-schedule*",
+        "externalDocs": {
+          "description": "Source code",
+          "url": "https://github.com/kokonect-link/cherrypick/blob/develop/packages/backend/src/server/api/endpoints/notes/schedule/list.ts"
+        },
+        "tags": [
+          "notes"
+        ],
+        "security": [
+          {
+            "bearerAuth": []
+          }
+        ],
+        "requestBody": {
+          "required": true,
+          "content": {
+            "application/json": {
+              "schema": {
+                "type": "object",
+                "properties": {
+                  "sinceId": {
+                    "type": "string",
+                    "format": "misskey:id"
+                  },
+                  "untilId": {
+                    "type": "string",
+                    "format": "misskey:id"
+                  },
+                  "limit": {
+                    "type": "integer",
+                    "minimum": 1,
+                    "maximum": 100,
+                    "default": 10
+                  }
+                }
+              }
+            }
+          }
+        },
+        "responses": {
+          "200": {
+            "description": "OK (with results)",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "type": "array",
+                  "items": {
+                    "type": "object",
+                    "properties": {
+                      "id": {
+                        "type": "string",
+                        "format": "misskey:id"
+                      },
+                      "note": {
+                        "type": "object",
+                        "properties": {
+                          "createdAt": {
+                            "type": "string"
+                          },
+                          "text": {
+                            "type": "string"
+                          },
+                          "cw": {
+                            "type": [
+                              "string",
+                              "null"
+                            ]
+                          },
+                          "fileIds": {
+                            "type": "array",
+                            "items": {
+                              "type": "string",
+                              "format": "misskey:id"
+                            }
+                          },
+                          "visibility": {
+                            "type": "string",
+                            "enum": [
+                              "public",
+                              "home",
+                              "followers",
+                              "specified"
+                            ]
+                          },
+                          "visibleUsers": {
+                            "type": "array",
+                            "items": {
+                              "type": "object",
+                              "$ref": "#/components/schemas/UserLite"
+                            }
+                          },
+                          "user": {
+                            "type": "object",
+                            "$ref": "#/components/schemas/User"
+                          },
+                          "reactionAcceptance": {
+                            "type": [
+                              "string",
+                              "null"
+                            ],
+                            "enum": [
+                              null,
+                              "likeOnly",
+                              "likeOnlyForRemote",
+                              "nonSensitiveOnly",
+                              "nonSensitiveOnlyForLocalLikeOnlyForRemote"
+                            ],
+                            "default": null
+                          },
+                          "isSchedule": {
+                            "type": "boolean"
+                          }
+                        },
+                        "required": [
+                          "createdAt",
+                          "fileIds",
+                          "visibility",
+                          "visibleUsers",
+                          "user",
+                          "reactionAcceptance",
+                          "isSchedule"
+                        ]
+                      },
+                      "userId": {
+                        "type": "string"
+                      },
+                      "expiresAt": {
+                        "type": "string"
+                      }
+                    },
+                    "required": [
+                      "id",
+                      "note",
+                      "userId",
+                      "expiresAt"
+                    ]
+                  }
+                }
+              }
+            }
+          },
+          "400": {
+            "description": "Client error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INVALID_PARAM": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid param.",
+                        "code": "INVALID_PARAM",
+                        "id": "3d81ceae-475f-4600-b2a8-2bc116157532"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Authentication error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "CREDENTIAL_REQUIRED": {
+                    "value": {
+                      "error": {
+                        "message": "Credential required.",
+                        "code": "CREDENTIAL_REQUIRED",
+                        "id": "1384574d-a912-4b81-8601-c7b1c4085df1"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "AUTHENTICATION_FAILED": {
+                    "value": {
+                      "error": {
+                        "message": "Authentication failed. Please ensure your token is correct.",
+                        "code": "AUTHENTICATION_FAILED",
+                        "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "418": {
+            "description": "I'm Ai",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "I_AM_AI": {
+                    "value": {
+                      "error": {
+                        "message": "You sent a request to Ai-chan, CherryPick's showgirl, instead of the server.",
+                        "code": "I_AM_AI",
+                        "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "429": {
+            "description": "To many requests",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "RATE_LIMIT_EXCEEDED": {
+                    "value": {
+                      "error": {
+                        "message": "Rate limit exceeded. Please try again later.",
+                        "code": "RATE_LIMIT_EXCEEDED",
+                        "id": "d5826d14-3982-4d2e-8011-b9e9f02499ef"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal server error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INTERNAL_ERROR": {
+                    "value": {
+                      "error": {
+                        "message": "Internal error occurred. Please contact us if the error persists.",
+                        "code": "INTERNAL_ERROR",
+                        "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/notes/schedule/delete": {
+      "post": {
+        "operationId": "notes___schedule___delete",
+        "summary": "notes/schedule/delete",
+        "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *write:notes-schedule*",
+        "externalDocs": {
+          "description": "Source code",
+          "url": "https://github.com/kokonect-link/cherrypick/blob/develop/packages/backend/src/server/api/endpoints/notes/schedule/delete.ts"
+        },
+        "tags": [
+          "notes"
+        ],
+        "security": [
+          {
+            "bearerAuth": []
+          }
+        ],
+        "requestBody": {
+          "required": true,
+          "content": {
+            "application/json": {
+              "schema": {
+                "type": "object",
+                "properties": {
+                  "noteId": {
+                    "type": "string",
+                    "format": "misskey:id"
+                  }
+                },
+                "required": [
+                  "noteId"
+                ]
+              }
+            }
+          }
+        },
+        "responses": {
+          "204": {
+            "description": "OK (without any results)"
+          },
+          "400": {
+            "description": "Client error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "NO_SUCH_NOTE": {
+                    "value": {
+                      "error": {
+                        "message": "No such note.",
+                        "code": "NO_SUCH_NOTE",
+                        "id": "a58056ba-8ba1-4323-8ebf-e0b585bc244f"
+                      }
+                    }
+                  },
+                  "PERMISSION_DENIED": {
+                    "value": {
+                      "error": {
+                        "message": "Permission denied.",
+                        "code": "PERMISSION_DENIED",
+                        "id": "c0da2fed-8f61-4c47-a41d-431992607b5c",
+                        "httpStatusCode": 403
+                      }
+                    }
+                  },
+                  "INVALID_PARAM": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid param.",
+                        "code": "INVALID_PARAM",
+                        "id": "3d81ceae-475f-4600-b2a8-2bc116157532"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "401": {
+            "description": "Authentication error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "CREDENTIAL_REQUIRED": {
+                    "value": {
+                      "error": {
+                        "message": "Credential required.",
+                        "code": "CREDENTIAL_REQUIRED",
+                        "id": "1384574d-a912-4b81-8601-c7b1c4085df1"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "403": {
+            "description": "Forbidden error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "AUTHENTICATION_FAILED": {
+                    "value": {
+                      "error": {
+                        "message": "Authentication failed. Please ensure your token is correct.",
+                        "code": "AUTHENTICATION_FAILED",
+                        "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "418": {
+            "description": "I'm Ai",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "I_AM_AI": {
+                    "value": {
+                      "error": {
+                        "message": "You sent a request to Ai-chan, CherryPick's showgirl, instead of the server.",
+                        "code": "I_AM_AI",
+                        "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "429": {
+            "description": "To many requests",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "RATE_LIMIT_EXCEEDED": {
+                    "value": {
+                      "error": {
+                        "message": "Rate limit exceeded. Please try again later.",
+                        "code": "RATE_LIMIT_EXCEEDED",
+                        "id": "d5826d14-3982-4d2e-8011-b9e9f02499ef"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "500": {
+            "description": "Internal server error",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/Error"
+                },
+                "examples": {
+                  "INTERNAL_ERROR": {
+                    "value": {
+                      "error": {
+                        "message": "Internal error occurred. Please contact us if the error persists.",
+                        "code": "INTERNAL_ERROR",
+                        "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    },
     "/notes/delete": {
       "post": {
         "operationId": "notes___delete",
@@ -61726,6 +62790,26 @@
                     "type": "string",
                     "description": "指定した文字列を含むノートを返します"
                   },
+                  "reactions": {
+                    "type": "array",
+                    "description": "指定したリアクションがつけられたノートを探します",
+                    "uniqueItems": true,
+                    "minItems": 1,
+                    "maxItems": 16,
+                    "items": {
+                      "type": "string"
+                    }
+                  },
+                  "reactionsExclude": {
+                    "type": "array",
+                    "description": "指定したリアクションがつけられていないノートを探します",
+                    "uniqueItems": true,
+                    "minItems": 1,
+                    "maxItems": 16,
+                    "items": {
+                      "type": "string"
+                    }
+                  },
                   "sinceId": {
                     "type": "string",
                     "description": "指定されたID以降のノートを返します",
@@ -61774,6 +62858,16 @@
                     "default": "combined",
                     "description": "添付ファイルのセンシティブ状態"
                   },
+                  "followingFilter": {
+                    "type": "string",
+                    "enum": [
+                      "following",
+                      "notFollowing",
+                      "combined"
+                    ],
+                    "default": "combined",
+                    "description": "ユーザーのフォロー状態"
+                  },
                   "offset": {
                     "type": "integer",
                     "default": 0,
@@ -61806,11 +62900,16 @@
                     "format": "misskey:id",
                     "default": null,
                     "description": "ノートを作成したユーザーのID"
+                  },
+                  "useStrictSearch": {
+                    "type": [
+                      "boolean",
+                      "null"
+                    ],
+                    "default": false,
+                    "description": "表記ゆれ検索を無効にする"
                   }
-                },
-                "required": [
-                  "query"
-                ]
+                }
               }
             }
           }
@@ -61847,6 +62946,15 @@
                       }
                     }
                   },
+                  "UNIMPLEMENTED": {
+                    "value": {
+                      "error": {
+                        "message": "Reaction Search is unimplemented",
+                        "code": "UNIMPLEMENTED",
+                        "id": "64d1dbf5-c14c-406e-88da-0f799b4b42ea"
+                      }
+                    }
+                  },
                   "INVALID_PARAM": {
                     "value": {
                       "error": {
@@ -66744,8 +67852,7 @@
                 "type": "object",
                 "properties": {
                   "flashId": {
-                    "type": "string",
-                    "format": "misskey:id"
+                    "type": "string"
                   }
                 },
                 "required": [
@@ -66914,8 +68021,7 @@
                 "type": "object",
                 "properties": {
                   "flashId": {
-                    "type": "string",
-                    "format": "misskey:id"
+                    "type": "string"
                   }
                 },
                 "required": [
@@ -66954,6 +68060,24 @@
                       }
                     }
                   },
+                  "INVALID_ID_FORMAT": {
+                    "value": {
+                      "error": {
+                        "message": "Invalid id format.",
+                        "code": "INVALID_ID_FORMAT",
+                        "id": "df45c7d1-cd15-4a35-b3e1-8c9f987c4f5c"
+                      }
+                    }
+                  },
+                  "FAILED_TO_RESOLVE_REMOTE_USER": {
+                    "value": {
+                      "error": {
+                        "message": "failedToResolveRemoteUser.",
+                        "code": "FAILED_TO_RESOLVE_REMOTE_USER",
+                        "id": "56d5e552-d55a-47e3-9f37-6dc85a93ecf9"
+                      }
+                    }
+                  },
                   "INVALID_PARAM": {
                     "value": {
                       "error": {
@@ -67079,8 +68203,7 @@
                 "type": "object",
                 "properties": {
                   "flashId": {
-                    "type": "string",
-                    "format": "misskey:id"
+                    "type": "string"
                   }
                 },
                 "required": [
@@ -67632,6 +68755,14 @@
                   "untilId": {
                     "type": "string",
                     "format": "misskey:id"
+                  },
+                  "withLocal": {
+                    "type": "boolean",
+                    "default": true
+                  },
+                  "withRemote": {
+                    "type": "boolean",
+                    "default": true
                   }
                 }
               }
@@ -76906,12 +78037,10 @@
                     "default": 10
                   },
                   "sinceId": {
-                    "type": "string",
-                    "format": "misskey:id"
+                    "type": "string"
                   },
                   "untilId": {
-                    "type": "string",
-                    "format": "misskey:id"
+                    "type": "string"
                   }
                 },
                 "required": [
@@ -84703,6 +85832,34 @@
               "type": {
                 "type": "string",
                 "enum": [
+                  "scheduleNote"
+                ]
+              },
+              "errorType": {
+                "type": "string"
+              }
+            },
+            "required": [
+              "id",
+              "createdAt",
+              "type",
+              "errorType"
+            ]
+          },
+          {
+            "type": "object",
+            "properties": {
+              "id": {
+                "type": "string",
+                "format": "id"
+              },
+              "createdAt": {
+                "type": "string",
+                "format": "date-time"
+              },
+              "type": {
+                "type": "string",
+                "enum": [
                   "app"
                 ]
               },
@@ -84825,6 +85982,45 @@
               "type": {
                 "type": "string",
                 "enum": [
+                  "note:grouped"
+                ]
+              },
+              "noteIds": {
+                "type": "array",
+                "items": {
+                  "type": "string"
+                }
+              },
+              "users": {
+                "type": "array",
+                "items": {
+                  "type": "object",
+                  "$ref": "#/components/schemas/UserLite"
+                }
+              }
+            },
+            "required": [
+              "id",
+              "createdAt",
+              "type",
+              "noteIds",
+              "users"
+            ]
+          },
+          {
+            "type": "object",
+            "properties": {
+              "id": {
+                "type": "string",
+                "format": "id"
+              },
+              "createdAt": {
+                "type": "string",
+                "format": "date-time"
+              },
+              "type": {
+                "type": "string",
+                "enum": [
                   "test"
                 ]
               }
@@ -85795,6 +86991,16 @@
           },
           "notesCount": {
             "type": "integer"
+          },
+          "emojis": {
+            "type": "object",
+            "additionalProperties": {
+              "anyOf": [
+                {
+                  "type": "string"
+                }
+              ]
+            }
           }
         },
         "required": [
@@ -86211,6 +87417,16 @@
           },
           "isLiked": {
             "type": "boolean"
+          },
+          "emojis": {
+            "type": "object",
+            "additionalProperties": {
+              "anyOf": [
+                {
+                  "type": "string"
+                }
+              ]
+            }
           }
         },
         "required": [
@@ -86678,6 +87894,9 @@
           "canEditNote": {
             "type": "boolean"
           },
+          "scheduleNoteMax": {
+            "type": "integer"
+          },
           "mutualLinkSectionLimit": {
             "type": "integer"
           },
@@ -86715,6 +87934,7 @@
           "avatarDecorationLimit",
           "fileSizeLimit",
           "canEditNote",
+          "scheduleNoteMax",
           "mutualLinkSectionLimit",
           "mutualLinkLimit"
         ]

Get diff files from Workflow Page

@kozakura913 kozakura913 marked this pull request as ready for review November 8, 2024 06:36
@kozakura913 kozakura913 merged commit 566f0be into master Nov 8, 2024
56 of 58 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants