Commit graph

21820 commits

Author SHA1 Message Date
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
syuilo
c5699fae53
New Crowdin updates (#8488)
* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Chinese Simplified)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Romanian)

* New translations ja-JP.yml (Romanian)

* New translations ja-JP.yml (Romanian)

* New translations ja-JP.yml (Romanian)

* New translations ja-JP.yml (Romanian)

* New translations ja-JP.yml (Romanian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Catalan)

* New translations ja-JP.yml (Catalan)

* New translations ja-JP.yml (Catalan)

* New translations ja-JP.yml (Catalan)

* New translations ja-JP.yml (Catalan)

* New translations ja-JP.yml (Catalan)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Czech)

* New translations ja-JP.yml (Czech)

* New translations ja-JP.yml (Czech)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Portuguese)

* New translations ja-JP.yml (Portuguese)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Kabyle)

* New translations ja-JP.yml (Kannada)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Chinese Simplified)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Dutch)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Romanian)

* New translations ja-JP.yml (Portuguese)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Czech)

* New translations ja-JP.yml (Catalan)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Japanese, Kansai)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Chinese Simplified)

* New translations ja-JP.yml (Chinese Simplified)

* New translations ja-JP.yml (Chinese Simplified)

* New translations ja-JP.yml (Chinese Simplified)

* New translations ja-JP.yml (Chinese Simplified)

* New translations ja-JP.yml (Chinese Simplified)

* New translations ja-JP.yml (Chinese Simplified)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Arabic)
2022-05-13 10:14:52 +09:00
Andreas Nedbal
9fc5e8688f
fix(client): add setup attribute to notification page (#8648) 2022-05-12 19:31:26 +02:00
Andreas Nedbal
a29ff7b1fa
Fix lint issues in post form component (#8619)
* fix(client): fix lint issues in post form

* Apply review suggestions from @Johann150

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

Co-authored-by: Johann150 <johann@qwertqwefsday.eu>
2022-05-07 17:01:01 +09:00
Andreas Nedbal
7bd45e5729
Fix lint issues in emoji picker components (#8620)
* fix(client): fix lint issues in emoji picker components

* fix(client): switch argument naming for emoji picker section event
2022-05-07 17:00:05 +09:00
Andreas Nedbal
a975a0971c
fix(client): fix lint issues in scripts (#8621) 2022-05-07 14:19:15 +09:00
Andreas Nedbal
ad860905c6
refactor(client): refactor settings/theme/manage to use Composition API (#8596) 2022-05-05 22:53:08 +09:00
futchitwo
3ea351d8a2
Enhance(MFM): Allow speed changes in all animated MFMs (#8551)
* MFM: Allow speed changes in all animated MFMs

* Feature(MFM): Add speed property to cheat sheet

* Use template literal

Oops!

* Remove unnecessary template string

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

Co-authored-by: Johann150 <johann@qwertqwefsday.eu>
2022-05-05 22:52:33 +09:00
Andreas Nedbal
f3628946af
refactor(client): refactor settings/word-mute to use Composition API (#8597) 2022-05-05 22:51:58 +09:00
Andreas Nedbal
e5a8773bfe
refactor(client): refactor settings/deck to use Composition API (#8598) 2022-05-05 22:51:29 +09:00
Andreas Nedbal
a6c138600f
Refactor settings/sounds to use Composition API (#8594)
* refactor(client): refactor settings/sounds to use Composition API

* Apply review suggestion from @Johann150

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

* chore(client): remove old sound reference

Co-authored-by: Johann150 <johann@qwertqwefsday.eu>
2022-05-05 22:51:05 +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
Andreas Nedbal
bd620a8c77
refactor(client): refactor 2FA settings to Composition API (#8599) 2022-05-05 22:41:10 +09:00
tamaina
1168e25721
fix (client): fix mention icon height (#8615) 2022-05-05 20:46:46 +09:00
Andreas Nedbal
7362c2da76
Fix lint issues in Drive components (#8613)
* fix(client): Fix lint issues in Drive components

* fix(client): only use !=/== for null comparisons

* Update drive.vue

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2022-05-05 20:45:50 +09:00
syuilo
dd8cb7846f
Update CONTRIBUTING.md 2022-05-05 18:38:30 +09:00
syuilo
56436b99bb
Update CONTRIBUTING.md 2022-05-05 18:36:30 +09:00
syuilo
a36f54dec2
Update CONTRIBUTING.md 2022-05-05 18:33:24 +09:00
Andreas Nedbal
d075ead80a
fix(client): fix duplicate token request dialog in plugin install (#8612) 2022-05-05 18:21:38 +09:00
Andreas Nedbal
9230334a31
Refactor settings/notifications to use Composition API (#8587)
* refactor(client): refactor settings/notifications to use Composition API

* fix(client): use async/await for API methods
2022-05-04 12:25:19 +09:00
Andreas Nedbal
7154ad5a73
Refactor account-info to use Composition API (#8568)
* refactor(client): refactor account-info  to use Composition API

* fix(client): use mounted hook for initial data

* fix(client): switch to non-null assertion for account check
2022-05-04 10:16:14 +09:00
Andreas Nedbal
c72f5e2773
refactor(client): refactor settings/api to use Composition API (#8569) 2022-05-04 10:15:43 +09:00
Andreas Nedbal
6226e8d902
refactor(client): refactor settings/apps to use Composition API (#8570) 2022-05-04 10:15:24 +09:00
Andreas Nedbal
80355fb08e
Refactor delete-account to use Composition API (#8572)
* refactor(client): refactor delete-account to use Composition API

* Apply review suggestion from @Johann150

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

Co-authored-by: Johann150 <johann@qwertqwefsday.eu>
2022-05-04 10:15:06 +09:00
Andreas Nedbal
fc02f8fc93
refactor(client): refactor settings/drive to use Composition API (#8573) 2022-05-04 10:14:48 +09:00
Andreas Nedbal
7a51f0ac94
Refactor settings/email to use Composition API (#8576)
* refactor(client): refactor settings/email to use Composition API

* fix(client): switch to non-null assertion for settings values
2022-05-04 10:14:26 +09:00
Andreas Nedbal
247a9deb02
Refactor settings/general to use Composition API (#8578)
* refactor(client): refactor settings/general to use Composition API

* fix(client): turn watcher callback asynchronous
2022-05-04 10:13:51 +09:00
Andreas Nedbal
60010bdb0f
Refactor settings/menu to use Composition API (#8586)
* refactor(client): refactor settings/menu to use Composition API

* Apply review suggestion from @Johann150

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

* Apply review suggestion from @Johann150

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

Co-authored-by: Johann150 <johann@qwertqwefsday.eu>
2022-05-04 10:12:40 +09:00
Andreas Nedbal
8489afa3d7
Refactor settings/other to use Composition API (#8589)
* refactor(client): refactor settings/other to use Composition API

* fix(client): fix 'show featured notes' checkbox
2022-05-04 10:12:08 +09:00
Andreas Nedbal
81e5ff7dce
refactor(client): refactor settings/plugin to use Composition API (#8590) 2022-05-04 10:11:35 +09:00
Andreas Nedbal
4e1b5038fb
refactor(client): refactor settings/plugin/install to use Composition API (#8591) 2022-05-04 10:10:52 +09:00
Andreas Nedbal
f8c66be130
refactor(client): refactor settings/security to use Composition API (#8592) 2022-05-04 10:10:34 +09:00
Andreas Nedbal
1f222e6cd1
refactor(client): refactor settings/theme to use Composition API (#8595) 2022-05-03 20:34:48 +09:00
Andreas Nedbal
0e26fae3bb
refactor(client): refactor settings/accounts to use Composition API (#8604) 2022-05-03 20:33:40 +09:00
tamaina
8a5a99f01b
Merge pull request #8593 from pixeldesu/fix/os-defineasync
Fix missing import of defineAsyncComponent in os.ts
2022-05-02 13:40:42 +09:00
Andreas Nedbal
49b63154df
fix(client): fix missing import of defineAsyncComponent in os.ts 2022-05-01 17:55:17 +02:00
dependabot[bot]
38e6202bdc
chore(deps): bump postcss from 8.2.8 to 8.4.13 in /packages/client (#8588)
Bumps [postcss](https://github.com/postcss/postcss) from 8.2.8 to 8.4.13.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.2.8...8.4.13)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-01 22:52:11 +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 defbb416480905af2150d1c92f10d8e1d1288c0a.

* Revert "clean up"

This reverts commit f94919cb9cff41e274044fc69c56ad36a33974f2.

* 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 e893dbf37aed83bf9f12e427d98c78a7065b4a39.

* revert boot import

* never make two app div

* ;

* remove console.log

* change clientEntry sequence

* fix

* Revert "fix"

This reverts commit 12741b3d89950a31dbb1bb81477ddb27b0e9951a.

* 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
e083205824 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2022-05-01 06:59:47 +00:00
tamaina
b00bf5740a modify CHANGELOG.md 2022-05-01 06:59:43 +00:00
Andreas Nedbal
a00a1fd6b5
Refactor custom-css to use Composition API (#8571)
* refactor(client): refactor custom-css to use Composition API

* Apply review suggestion from @Johann150

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

Co-authored-by: Johann150 <johann@qwertqwefsday.eu>
2022-05-01 15:50:09 +09:00
tamaina
c5048ee993
Merge branch 'develop' into pizzax-indexeddb 2022-05-01 15:08:25 +09:00
tamaina
27b48ef96d ressurect deepcopy 2022-05-01 05:15:01 +00:00
Andreas Nedbal
274ca6f7e6
refactor(client): refactor import-export to use Composition API (#8579) 2022-05-01 11:55:15 +09:00
Andreas Nedbal
475b7556d8
Refactor instance-mute to use Composition API (#8580)
* refactor(client): refactor instance-mute to use Composition API

* Apply review suggestion from @Johann150

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

* Apply review suggestion from @Johann150

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

Co-authored-by: Johann150 <johann@qwertqwefsday.eu>
2022-05-01 11:52:19 +09:00
Andreas Nedbal
3dc027bcd5
Refactor integration to use Composition API (#8581)
* refactor(client): refactor integration to use Composition API

* fix(client): drop superfluous enable* constants

* refactor(client): deduplicate window opening for services
2022-05-01 11:23:12 +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 defbb416480905af2150d1c92f10d8e1d1288c0a.

* Revert "clean up"

This reverts commit f94919cb9cff41e274044fc69c56ad36a33974f2.

* 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