Commit graph

363 commits

Author SHA1 Message Date
MeiMei
b6794b614b
enhance: Perform port diagnosis at startup only when Listen fails (#8698)
* Change port check

* Comment: disableClustering

* CHANGELOG

* Smart message
2022-05-19 11:49:07 +09:00
Johann150
037ca92275
fix: postgres type error
Fix a bug introduced in #8659. Solution was already tested there.
2022-05-15 11:32:00 +02:00
syuilo
02a43a310f CAPTCHA求めるのは2fa認証が無効になっているときだけにした
2faのトークンは期限付きだから、CAPTCHA解いてる間に期限切れになる
2022-05-15 16:47:14 +09:00
syuilo
b21b058005 feat: make captcha required when signin to improve security 2022-05-15 12:18:46 +09:00
syuilo
6de40cf789 fix(server): prevent crash when processing certain PNGs
Fix #8605
2022-05-15 01:16:12 +09:00
iwata
67e1ee41c9
test: Nodeのカスタムローダーを直してテストが動くように (#8625)
* test: Nodeのカスタムローダーを直してテストが動くように

* dev: mochaを呼ぶコマンドにNODE_ENV=testを追加

* Update packages/backend/test/loader.js

Co-authored-by: Johann150 <johann@qwertqwefsday.eu>

* chore: change export style in loader.js

Co-authored-by: Johann150 <johann@qwertqwefsday.eu>
2022-05-14 16:10:20 +09:00
iwata
ebb4308a5c
test: __dirnameはESModuleでは使えないので置き換えた (#8626) 2022-05-14 16:09:47 +09:00
tamaina
b2a5076d14
fix: ユーザー検索で、クエリがusernameの条件を満たす場合はusernameもLIKE検索するように (#8644)
* Fix #8643

* 部分一致にする
2022-05-14 15:24:44 +09:00
iwata
22bb1a1793
test: e2eテストがCIで失敗していた問題をいくつか修正 (#8642)
* test: indexeddbをテスト毎に初期化するように

* fix: metaが無いときにfetch-metaを同時に呼ぶと死ぬことがある問題を修正

* test: ログイン後のクライアント側処理を待たずにリロードされてログイン出来ないことがあったのを修正
2022-05-14 15:16:45 +09:00
Johann150
4b872856c2
fix: keep file order (#8659) 2022-05-14 15:09:10 +09:00
syuilo
98e42ec6ff enhance: Display TOTP Register URL
Close #7261

Co-Authored-By: tamaina <tamaina@hotmail.co.jp>
2022-05-14 15:00:15 +09:00
syuilo
e161b71651 update deps 2022-05-14 14:57:51 +09:00
Johann150
89c5fd0931
perf: fix caching (#8660)
The cache implementation did previously not store the results of the
computation and was thus not a cache at all. This can cause a significant
number of database queries each time someone with a large number of
followers does something that causes an activity to be federated.
2022-05-14 13:28:27 +09:00
Johann150
31c73fdfa2
chore: synchronize code and database schema (#8577)
* chore: remove default null

null is always the default value if a table column is nullable, and typeorm's
@Column only accepts strings for default.

* chore: synchronize code with database schema

* chore: sync generated migrations with code
2022-05-05 22:45:22 +09:00
tamaina
a89003b57a
refactor: use Vite to build instead of webpack (#8575)
* update stream.ts

* https://github.com/misskey-dev/misskey/pull/7769#issuecomment-917542339

* fix lint

* clean up?

* add app

* fix

* nanka iroiro

* wip

* wip

* fix lint

* fix loginId

* fix

* refactor

* refactor

* remove follow action

* clean up

* Revert "remove follow action"

This reverts commit defbb41648.

* Revert "clean up"

This reverts commit f94919cb9c.

* remove fetch specification

* renoteの条件追加

* apiFetch => cli

* bypass fetch?

* fix

* refactor: use path alias

* temp: add submodule

* remove submodule

* enhane: unison-reloadに指定したパスに移動できるように

* null

* null

* feat: ログインするアカウントのIDをクエリ文字列で指定する機能

* null

* await?

* rename

* rename

* Update read.ts

* merge

* get-note-summary

* fix

* swパッケージに

* add missing packages

* fix getNoteSummary

* add webpack-cli

* ✌️

* remove plugins

* sw-inject分離したがテストしてない

* fix notification.vue

* remove a blank line

* disconnect intersection observer

* disconnect2

* fix notification.vue

* remove a blank line

* disconnect intersection observer

* disconnect2

* fix

* ✌️

* clean up config

* typesを戻した

* Update packages/client/src/components/notification.vue

Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>

* disconnect

* oops

* Failed to load the script unexpectedly回避
sw.jsとlib.tsを分離してみた

* truncate notification

* Update packages/client/src/ui/_common_/common.vue

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>

* clean up

* clean up

* キャッシュ対策

* Truncate push notification message

* クライアントがあったらストリームに接続しているということなので通知しない判定の位置を修正

* components/drive-file-thumbnail.vue

* components/drive-select-dialog.vue

* components/drive-window.vue

* merge

* fix

* Service Workerのビルドにesbuildを使うようにする

* return createEmptyNotification()

* fix

* i18n.ts

* update

* ✌️

* remove ts-loader

* fix

* fix

* enhance: Service Workerを常に登録するように

* pollEnded

* URLをsw.jsに戻す

* clean up

* wip

* wip

* wip

* wip

* wip

* wip

* ✌️

* use import

* fix

* install rollup

* use defineAsyncComponent.

* fix emojilist

* wip use defineAsyncComponent

* popup(import -> popup(defineAsyncComponent(() => import

* draggable?

* fix init import

* clean up

* fix router

* add comment

* ✌️

* ✌️

* ✌️

* remove webpack

* update vite

* fix boot sequence

* Revert "fix boot sequence"

This reverts commit e893dbf37a.

* revert boot import

* never make two app div

* ;

* remove console.log

* change clientEntry sequence

* fix

* Revert "fix"

This reverts commit 12741b3d89.

* fix

* add comment https://github.com/misskey-dev/misskey/pull/8575#issuecomment-1114239210

* add log

* add comment

Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2022-05-01 22:51:07 +09:00
Johann150
6ed010b192
fix _misskey_content of quote renotes (#8533) 2022-05-01 19:23:34 +09:00
MeiMei
60391ff37e
fix: Add rel attribute to host-meta (#8583)
* Add rel attribute to host-meta

* CHANGELOG
2022-05-01 19:14:14 +09:00
tamaina
766559c6e9
feat: Improve Push Notification (#7667)
* clean up

* ev => data

* refactor

* clean up

* add type

* antenna

* channel

* fix

* add Packed type

* add PackedRef

* fix lint

* add emoji schema

* add reversiGame

* add reversiMatching

* remove signin schema (use Signin entity)

* add schemas refs, fix Packed type

* wip PackedHoge => Packed<'Hoge'>

* add Packed type

* note-reaction

* user

* user-group

* user-list

* note

* app, messaging-message

* notification

* drive-file

* drive-folder

* following

* muting

* blocking

* hashtag

* page

* app (with modifying schema)

* import user?

* channel

* antenna

* clip

* gallery-post

* emoji

* Packed

* reversi-matching

* update stream.ts

* https://github.com/misskey-dev/misskey/pull/7769#issuecomment-917542339

* fix lint

* clean up?

* add app

* fix

* nanka iroiro

* wip

* wip

* fix lint

* fix loginId

* fix

* refactor

* refactor

* remove follow action

* clean up

* Revert "remove follow action"

This reverts commit defbb41648.

* Revert "clean up"

This reverts commit f94919cb9c.

* remove fetch specification

* renoteの条件追加

* apiFetch => cli

* bypass fetch?

* fix

* refactor: use path alias

* temp: add submodule

* remove submodule

* enhane: unison-reloadに指定したパスに移動できるように

* null

* null

* feat: ログインするアカウントのIDをクエリ文字列で指定する機能

* null

* await?

* rename

* rename

* Update read.ts

* merge

* get-note-summary

* fix

* swパッケージに

* add missing packages

* fix getNoteSummary

* add webpack-cli

* ✌️

* remove plugins

* sw-inject分離したがテストしてない

* fix notification.vue

* remove a blank line

* disconnect intersection observer

* disconnect2

* fix notification.vue

* remove a blank line

* disconnect intersection observer

* disconnect2

* fix

* ✌️

* clean up config

* typesを戻した

* Update packages/client/src/components/notification.vue

Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>

* disconnect

* oops

* Failed to load the script unexpectedly回避
sw.jsとlib.tsを分離してみた

* truncate notification

* Update packages/client/src/ui/_common_/common.vue

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>

* clean up

* clean up

* キャッシュ対策

* Truncate push notification message

* クライアントがあったらストリームに接続しているということなので通知しない判定の位置を修正

* components/drive-file-thumbnail.vue

* components/drive-select-dialog.vue

* components/drive-window.vue

* merge

* fix

* Service Workerのビルドにesbuildを使うようにする

* return createEmptyNotification()

* fix

* i18n.ts

* update

* ✌️

* remove ts-loader

* fix

* fix

* enhance: Service Workerを常に登録するように

* pollEnded

* URLをsw.jsに戻す

* clean up

Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2022-04-30 21:52:07 +09:00
dependabot[bot]
1c6d5ddf81
chore(deps): bump ejs from 3.1.6 to 3.1.7 in /packages/backend (#8560)
Bumps [ejs](https://github.com/mde/ejs) from 3.1.6 to 3.1.7.
- [Release notes](https://github.com/mde/ejs/releases)
- [Changelog](https://github.com/mde/ejs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mde/ejs/compare/v3.1.6...v3.1.7)

---
updated-dependencies:
- dependency-name: ejs
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-30 00:16:40 +09:00
tamaina
12a3c6872f
enhance: ドライブに画像ファイルをアップロードするときオリジナル画像を破棄してwebpublicのみ保持するオプション (#8216)
* wip

* Update packages/client/src/os.ts

Co-authored-by: tamaina <tamaina@hotmail.co.jp>

* メニューをComposition API化、switchアイテム追加
クライアントサイド画像圧縮の準備

* メニュー型定義を分離 (TypeScriptの型支援が効かないので)

* disabled

* make keepOriginal to follow setting value

* ✌️

* fix

* fix

* ✌️

* WEBP

* aaa

* ✌️

* webp

* lazy load browser-image-resizer

* rename

* rename 2

* Fix

* clean up

* add comment

* clean up

* jpeg, pngにもどす

* fix

* fix name

* webpでなくする ただしサムネやプレビューはwebpのまま (テスト)

* 動画サムネイルはjpegに

* エラーハンドリング

* ✌️

* v2.2.1-misskey-beta.2

* browser-image-resizer#v2.2.1-misskey.1

* ✌️

* fix alert

* update browser-image-resizer to v2.2.1-misskey.2

* lockfile

Co-authored-by: mei23 <m@m544.net>
Co-authored-by: MeiMei <30769358+mei23@users.noreply.github.com>
2022-04-28 11:14:03 +09:00
tamaina
065324d30b
Fix #8535 Excessive stack ... 'SchemaTypeDef<?>' (#8547)
* Fix #8535 Excessive stack ... 'SchemaTypeDef<?>'

Co-authored-by: acid-chicken <root@acid-chicken.com>

* add comment

* clean up

Co-authored-by: acid-chicken <root@acid-chicken.com>
2022-04-27 10:49:00 +09:00
Johann150
b9e3267198
fix: Promises -> Promise (#8545) 2022-04-25 15:14:13 +09:00
Johann150
7e28c396b9
enhance: only render public notes in HTML template (#8527)
* only render public notes in HTML template

* fix missing import
2022-04-24 14:17:09 +09:00
tamaina
1b2ba09be0
fix: Fix schema key type error #8517 (#8538) 2022-04-24 11:43:15 +09:00
syuilo
fd13173eaf bump jsrsasign 2022-04-23 12:48:26 +09:00
Johann150
92d249210d
chore(lint): fix type definitions for jsrsasign (#8528)
* fix type definitions for jsrsasign

The @types/jsrsasign is not available in exactly the same version as the jsrsa
package misskey uses, so i used an earlier patch version of the same package.

* update yarn.lock
2022-04-23 12:45:36 +09:00
dependabot[bot]
29b9d8998a
chore(deps): bump moment from 2.24.0 to 2.29.3 in /packages/backend (#8531)
Bumps [moment](https://github.com/moment/moment) from 2.24.0 to 2.29.3.
- [Release notes](https://github.com/moment/moment/releases)
- [Changelog](https://github.com/moment/moment/blob/2.29.3/CHANGELOG.md)
- [Commits](https://github.com/moment/moment/compare/2.24.0...2.29.3)

---
updated-dependencies:
- dependency-name: moment
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-23 12:39:44 +09:00
syuilo
84b183a9f6 refactor: use structuredClone for deep clone 2022-04-23 12:38:02 +09:00
syuilo
70958a9f77 update node to 18 2022-04-23 12:37:44 +09:00
syuilo
9f3650b0ef update deps 2022-04-23 12:29:26 +09:00
xianon
60620bdb25
fix: アンテナ、クリップ、リストの表示を速くする (#8518)
* アンテナノートを取得するクエリがタイムアウトしないように速くする

* テーブル名を直接指定しないようにする

* クリップの取得を速くする

* リストの取得を速くする
2022-04-19 22:59:39 +09:00
Johann150
3cf226d534
await promises (#8519) 2022-04-19 18:46:41 +09:00
syuilo
d338ea2591 fix ogp rendering and refactor 2022-04-17 21:18:18 +09:00
syuilo
ce51ef5df5 refactor 2022-04-17 21:01:02 +09:00
syuilo
31e5c5f69a refactor
Resolve #8467
2022-04-17 20:58:37 +09:00
syuilo
ff8313b48b refactor 2022-04-17 20:51:59 +09:00
syuilo
02bb36cdc4 refactor: fix type 2022-04-17 20:44:21 +09:00
syuilo
6b31ea1992 refactor: fix type 2022-04-17 17:30:27 +09:00
syuilo
31b216f667 refactor: fix type 2022-04-17 14:42:13 +09:00
syuilo
a671f9102d refactor: fix type 2022-04-17 13:31:45 +09:00
syuilo
2d2b3edaaf refactor: fix type 2022-04-17 13:26:31 +09:00
syuilo
1ee757cc5f refactor: fix type 2022-04-17 13:21:07 +09:00
syuilo
3770bb6576 Streaming経由でのAPIリクエストを削除 2022-04-17 13:19:05 +09:00
syuilo
ddd655c0c1 refactor: fix type 2022-04-17 13:14:29 +09:00
syuilo
e0a4864bea refactor: fix type 2022-04-17 13:01:30 +09:00
syuilo
d39465085c refactor: fix type 2022-04-17 12:59:41 +09:00
syuilo
44a01c4b5a refactoe 2022-04-16 17:19:30 +09:00
syuilo
4907dc91f7 lint 2022-04-16 17:18:51 +09:00
rinsuki
1d193b9a04
refactor: move typings to devDependencies (#8500) 2022-04-16 01:28:59 +09:00
syuilo
e598d46c31 Update settings.json 2022-04-15 21:33:00 +09:00
syuilo
2c1689c798 chore: add import/order rule for eslint 2022-04-15 15:05:43 +09:00
syuilo
08ff4926c7 enhance(client): show loading icon on splash screen
Close #8481
2022-04-11 23:11:11 +09:00
syuilo
fd4ec81bcb update deps 2022-04-11 22:48:04 +09:00
syuilo
9f7cdb4bc7 refactor 2022-04-08 19:01:38 +09:00
syuilo
daa0ca72a7 fix(api): parameter validation of users/show was wrong 2022-04-06 00:04:25 +09:00
syuilo
45c457b8b3 chore: fix lint on windows 2022-04-05 21:32:14 +09:00
syuilo
ec3be7e4d3 enhance(webhook): add userId to payload 2022-04-03 22:42:01 +09:00
syuilo
f8e6f3cc73 improve webhook 2022-04-03 22:36:30 +09:00
syuilo
7f5d189528 fix type 2022-04-03 16:40:47 +09:00
syuilo
ff9a074ab6 fix type 2022-04-03 16:35:36 +09:00
syuilo
91f4ec3747 fix types 2022-04-03 16:30:22 +09:00
syuilo
41c2aed7dc chore: fix lint 2022-04-03 15:33:22 +09:00
syuilo
433505df48 fix e2e test 2022-04-03 15:14:26 +09:00
Johann150
c8935b32f8
fix: validation (better #8456) (#8461)
* Revert "revert 484e023c0"

This reverts commit c03b70c949.

* also allow pure renote

* fix checks for pure renote
2022-04-03 13:57:26 +09:00
syuilo
408d54f2eb fix(api): admin/update-meta was not working 2022-04-03 13:54:22 +09:00
Andreas Nedbal
f9b5d92176
Fix: Adjust ESLint calls to properly interpret globs (#8462)
* fix(backend): rename .eslintrc.js to .eslintrc.cjs

* fix(backend): wrap lint path glob in quotation marks

* fix(client): wrap lint path glob in quotation marks

* chore(workflow): make lint workflow use Node 16
2022-04-02 22:52:26 +09:00
syuilo
c03b70c949 revert 484e023c0 2022-04-02 16:47:53 +09:00
syuilo
6b6464a659 fix syntax error 2022-04-02 15:31:11 +09:00
syuilo
8e5f2690f2
feat: Webhook (#8457)
* feat: introduce webhook

* wip

* wip

* wip

* Update CHANGELOG.md
2022-04-02 15:28:49 +09:00
Johann150
1033e8e57f
fix(federation): avoid duplicate activity delivery (#8429)
* prefer shared inbox over individual inbox

* no new shared inbox for direct recipes

* fix type error
2022-04-02 15:16:35 +09:00
Johann150
484e023c0c
enhance(doc): required input fields (#8456)
* remove empty file

If the endpoint is to be implemented later, the file can be added back,
but for now it is confusing to have an empty file.

* enhance(doc): document defaults

Default for `isPublic` is based on the database schema default value.
Defaults for `local` and `withFiles` are based on the behaviour of the endpoint.

* enhance(doc): explain nullable emoji category

* fix: make nullable if default is null

* enhance(doc): explain mute attribute expiresAt

* fix: define required fields

- `notes/create`: the default for `text` has been removed because ajv can not handle
  `default` inside of `anyOf`, see
  https://ajv.js.org/guide/modifying-data.html#assigning-defaults
  and the default value cannot be `null` if text is `nullable: false` in the `anyOf`
  first alternative.
- `notes/create`: The `mediaIds` property has been marked as deprecated because it
  has the same behaviour as using `fileIds`, but the implementation tries to handlè
  `fileIds` first.
- The result schema for `admin/emoji/list` has been altered because the `host`
  property will always be `null` as it is filtered this way in the database query.
  See packages/backend/src/server/api/endpoints/admin/emoji/list.ts line 67.

* enhance(doc): explain nullable hostname

* update changelog

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2022-04-02 15:04:36 +09:00
syuilo
39302bf0ea fix(server): admin/meta is not working
Fix #8455
2022-04-01 19:17:19 +09:00
syuilo
11ccb98c93 update deps 2022-04-01 19:13:40 +09:00
syuilo
4e63022a49 fix(server): add missing import 2022-03-29 18:46:59 +09:00
dependabot[bot]
7ccb9226ef
chore(deps): bump follow-redirects in /packages/backend (#8314)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.7 to 1.14.8.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.7...v1.14.8)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-27 16:42:05 +09:00
dependabot[bot]
122d5ea529
Bump nanoid from 3.1.30 to 3.3.1 in /packages/backend (#8426)
Bumps [nanoid](https://github.com/ai/nanoid) from 3.1.30 to 3.3.1.
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/3.1.30...3.3.1)

---
updated-dependencies:
- dependency-name: nanoid
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-27 16:41:26 +09:00
syuilo
4e139d2aae fix query 2022-03-27 16:16:13 +09:00
syuilo
d113aae217 update deps 2022-03-27 15:34:34 +09:00
Johann150
a6f6ddc34e
limit federation of reactions on direct notes (#8448) 2022-03-27 13:57:04 +09:00
syuilo
e6f455a9bb fix null in query 2022-03-26 19:48:22 +09:00
syuilo
fa1a53270e refactor 2022-03-26 19:33:18 +09:00
syuilo
17589843da perf(server): use cached user info in getUserFromApId 2022-03-26 19:09:57 +09:00
syuilo
8cbfc047bb refactor 2022-03-26 18:42:37 +09:00
syuilo
475cee9029 perf(server): reduce db query when get notifications 2022-03-26 18:22:55 +09:00
syuilo
3cac8e0f6f perf(server): improve deliver performance 2022-03-26 17:43:08 +09:00
syuilo
bc2c40a6ca refactor and performance improvements 2022-03-26 17:19:27 +09:00
dependabot[bot]
7a4c3bab7e
chore(deps): bump minimist from 1.2.5 to 1.2.6 in /packages/backend (#8447)
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-26 15:35:10 +09:00
syuilo
1c67c26bd8
refactor: migrate to typeorm 3.0 (#8443)
* wip

* wip

* wip

* Update following.ts

* wip

* wip

* wip

* Update resolve-user.ts

* maxQueryExecutionTime

* wip

* wip
2022-03-26 15:34:00 +09:00
syuilo
41c87074e6 .js 2022-03-25 16:35:24 +09:00
syuilo
889a890ac5 update deps 2022-03-25 16:32:10 +09:00
syuilo
ac8c66f5ab perf(server): refactor and performance improvements 2022-03-25 16:27:41 +09:00
syuilo
22b56ac65c refactor 2022-03-25 13:11:52 +09:00
syuilo
083b913dd2 refactor 2022-03-25 01:51:34 +09:00
syuilo
d0a346ed8a refactor: separate meta api for admin or not 2022-03-25 01:50:28 +09:00
Johann150
725b78349a
recognize null in _misskey_content for notes (#8440) 2022-03-23 03:16:04 +09:00
Ehsan Javadynia
08bace6c7d
Resolve #7208 (#7226)
add decrement replies count on delete note and a test for that
2022-03-22 22:48:33 +09:00
MeiMei
ba9563b983
Use unique id for Undo (#8434) 2022-03-22 00:39:00 +09:00
syuilo
9320c1699a perf(server): disable some antenna features to improve performance 2022-03-22 00:07:43 +09:00
syuilo
ff19640171 perf(server): reduce db query 2022-03-21 20:43:43 +09:00
syuilo
81ee9025fb tweak log 2022-03-21 05:45:09 +09:00