Commit Graph

2091 Commits

Author SHA1 Message Date
dakkar e5ea882ed7 authorized fetch #217
the implementation is copied from the other places we already check
HTTP signatures, and cross-checked with Firefish's implementation
2023-12-23 15:26:42 +00:00
Marie 6526968f2d fix: check 2023-12-23 16:08:04 +01:00
dakkar 683b4aafb2 real-time updates on note detail view
`useNoteCapture` already subscribes to all updates for a note, so
we can tell it when a note gets replied to, too

Since I'm not actually adding any extra subscription in the client,
just an extra callback, there should be no overhead when replies are
not coming in.

Also, all the timelines already call `useNoteCapture` for each note
displayed, so we know the whole `GlobalEventService` thing works fine.

Many thanks to VueJS for taking care of all the DOM complications
2023-12-23 14:09:51 +00:00
Marie b3b89567ee merge: upstream 2023-12-23 14:26:24 +01:00
anatawa12 2f425aa03f
fix: ブロックされててもpure RNできる (#12758)
なぜかわからないけど元々Quoteはできるようなのでそれに戻しました
2023-12-23 17:55:34 +09:00
syuilo e852f4b60d Revert "fix(backend): renote判定がおかしい"
This reverts commit f43599552f.
2023-12-23 17:55:27 +09:00
syuilo f43599552f fix(backend): renote判定がおかしい 2023-12-23 17:54:29 +09:00
syuilo 6e4894c165 lint 2023-12-23 14:39:01 +09:00
GrapeApple0 5b5a537f56
feat: 登録を拒否するメールアドレスのドメインを手動で設定できるように (#12740)
* feat: 使い捨てアドレスのドメインを手動で設定できるように

* Update CHANGELOG.md

* disposableEmailDomains -> bannedEmailDomains

* isBlockedHostを使うように
2023-12-23 12:06:22 +09:00
Nya Candy b3c4f7eddc
fix: email verify enable logic (#12743) 2023-12-23 11:00:14 +09:00
Marie 220344c552 fix: email validation 2023-12-23 02:15:12 +01:00
Marie 5db583a3eb merge: upstream 2023-12-23 02:09:23 +01:00
Marie e0155cffae add: Custom MOTDs
This works almost exactly like FF's custom MOTDs with the only difference being that they get defined in the config file for performance reasons.

Closes #86
2023-12-22 13:10:21 +01:00
anatawa12 52b94dbc4a
fix: 引用RNがpure RNとして連合され、pure RNが引用RNとして連合される (#12744)
* fix: quote notes are rendered as pure renote

* fix: filesが指定されてて空配列のときにQuote扱いされる

* chore: isQuoteの仕様をmisc/is-quote.tsと揃える

* docs: is-quote.tsの方にNoteCreateService.isQuoteのことを書いて更新忘れを防ぐ
2023-12-22 14:03:39 +09:00
おさむのひと 433d46e57f
fix(backend): テストが死んでいるのを修正 (#12738)
* fix test

* fix test

* fix test

* fix test

* fix test
2023-12-22 09:06:13 +09:00
Marie 043f26c895 upd: improve performance for checking if instance is marked as NSFW on images 2023-12-21 23:15:49 +01:00
Marie 4ca3c05487 upd: make new posts be marked as NSFW if instance is marked as NSFW
Closes #226
2023-12-21 23:15:03 +01:00
Marie 9c6a7aed98 fix: websocket for timelines not checking following for muted instance users
Closes #233
2023-12-21 22:42:06 +01:00
Marie 90f8d8e575 upd: fix tag view not respecting blocks and suspensions
Closes #234
2023-12-21 22:24:23 +01:00
GrapeApple0 79ca93cefb
enhance: api.jsonのレスポンスの内容を実際の内容に合わせる (#12723)
* Create packedAdSchema

* admin/emoji/add

* admin/get-user-ips

* admin/roles/users

* admin/get-index-stats

* admin/accounts/find-by-email

* fix type of admin/ad/list

* federation/stats

* endpoints

* get-online-users-count

* i/2fa/register-key

* i/2fa/key-done

* i/2fa/register

* i/apps

* i/authorized-apps

* i/registry/get-all

* i/registry/get

* i/registry/get-detail

* i/registry/key-with-type

* i/registry/scopes-with-domain

* i/update-email

* i/move

* i/webhooks/create

* fix miss type

* i/webhooks/show

* i/webhooks/list

* flash/create

* roles/users

* server-info

* test

* users/lists/get-memberships

* users/achievements

* fetch-rss

* fetch-external-resources
2023-12-21 16:57:05 +09:00
anatawa12 b2254a66d3
chore: remove hashtag from featured immediately (#12668)
* chore: remove hashtag from featured immediately

* docs(changelog): ハッシュタグのトレンド除外設定が即時に効果を持つように修正

---------

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2023-12-21 11:34:19 +09:00
syuilo b3ab96b5ee fix(backend): ロールアサインの通知がある状態でページをリロードすると通知欄に何もでなくなる
Fix #12729
2023-12-21 11:23:31 +09:00
syuilo 15b0d2aff2
enhance: ロールにアサインされたときの通知 (#12607)
* wip

* Update misskey-js.api.md

* Update CHANGELOG.md

* Update RoleService.ts

* Update locales/ja-JP.yml

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>

* Update UserListService.ts

* Update misskey-js.api.md

* fix (#12724)

---------

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
Co-authored-by: おさむのひと <46447427+samunohito@users.noreply.github.com>
2023-12-21 10:39:11 +09:00
Kagami Sascha Rosylight d14eb20122
chore(workflows): use postgres 15 everywhere (#12726) 2023-12-21 10:29:51 +09:00
Kagami Sascha Rosylight 4175b7809b
chore(QueueProcessorService): show error stack for failures (#12727) 2023-12-21 10:29:30 +09:00
Marie cf3299312a merge: allow themes to specify a font (#230)
Closes #225
Closes #25
2023-12-19 11:35:24 +01:00
zawa-ch 4e2d802967
enhance: “つながりの公開範囲”がフォロー・フォロワー個別設定できるように (#12702)
* Enhance: “つながりの公開範囲”がフォロー・フォロワー個別設定できるように (#12072)

* refactor: crowdin 編集部分のコミットを打ち消し

https://github.com/misskey-dev/misskey/pull/12702#issuecomment-1859417158

* refactor: オブジェクトの名前修正

https://github.com/misskey-dev/misskey/pull/12702#issuecomment-1859417158

* fix: 設定項目の説明を削除

名称が具体的になって必要なくなったため
https://github.com/misskey-dev/misskey/pull/12702#discussion_r1429932463
2023-12-18 20:59:20 +09:00
1STEP621 f6ff3b1f1a
Fix: Renoteの判定が間違っているのを修正 (#12706)
* RNと引用RNの判定が間違っているのを修正

* remove dump.rdb

* update CHANGELOG.md

* lint fix
2023-12-18 19:49:19 +09:00
zyoshoka 13990279c3
enhance: Unicode 15.0で新たに追加された絵文字をリアクションに使えるように (#12683) 2023-12-18 14:51:29 +09:00
syuilo 507d436699 update mfm-js 2023-12-18 13:22:34 +09:00
syuilo 8a9f4ef441 update deps 2023-12-18 13:14:58 +09:00
syuilo 5150053275 fix(backend): add missing kind definition for admin endpoints to improve security 2023-12-18 12:32:26 +09:00
Marie c92c2d065f upd: replace mfm with sfm 2023-12-18 03:03:05 +01:00
syuilo 2ecc0299b4 update deps 2023-12-16 14:00:27 +09:00
かっこかり fda5147d06
fix(dev): ファイルの読み込みに失敗することがあるのを修正 (#12684)
* (enhance) コード入力をMkCodeEditorに変更

* (fix) devでファイルの読み込みに失敗することがある

* Revert "(enhance) コード入力をMkCodeEditorに変更"

This reverts commit 726d56c3e962680efc5b5a166e2210d09730341f.
2023-12-16 13:23:25 +09:00
syuilo 9f49b9f4d2 fix(backend): HTTP Digestヘッダのアルゴリズム部分に大文字の"SHA-256"しか使えない
Fix #12678
2023-12-16 10:58:44 +09:00
shiosyakeyakini 3e256eee2c
Fix(backend): JSONSchemaに不足しているパラメータを追加 (#12680)
* Fix(backend): JSONSchemaに不足しているパラメータを追加

* nullable:falseに修正

---------

Co-authored-by: sorairo <sorairo@shiosyakeyakini.info>
2023-12-16 09:00:32 +09:00
anatawa12 bd4d8694dd
perf: early return users/notes and users/featured-notes if me is blocked by requesting user (#12663) 2023-12-15 11:24:13 +09:00
woxtu 5cc3d3c873
Remove an unnecessary type assertion (#12666) 2023-12-15 11:22:49 +09:00
Gianni Ceccarelli 7f2a66f262 allow a theme to specify a font - #225 2023-12-14 14:24:10 +00:00
syuilo 417852779f enhance: アイコンデコレーションの位置を微調整できるように 2023-12-14 20:58:08 +09:00
おさむのひと 386fcedf35
(dev-mode) devモードの改善 (#12639)
* fix dev-mode

* fix dev-mode

* fix dev-mode

* fix dev-mode

---------

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2023-12-14 20:16:02 +09:00
syuilo a2a6a94614 update deps 2023-12-14 18:28:04 +09:00
syuilo aedc1d0ee9 update deps 2023-12-14 13:22:12 +09:00
syuilo 2cfe64e9e6 fix swcrc 2023-12-14 11:35:17 +09:00
syuilo 37820ad572 fix(backend): モデレーションログがモデレーターは閲覧できないように修正
Fix #12622
2023-12-13 18:31:32 +09:00
syuilo 5472f4b934 enhance: アイコンデコレーションを複数設定できるように 2023-12-13 16:56:19 +09:00
Camilla Ett 06ca63f9c2
Fix(backend): inboxJobPerSecのデフォルト値を16から32に (#12631) 2023-12-13 08:14:34 +09:00
syuilo 319267e096 update deps 2023-12-09 13:02:14 +09:00
Insert5StarName 702fc6b6f7
chore: update repo links 2023-12-09 03:02:14 +01:00
ikasoba e38af60fd0
fix: `secure: true` なエンドポイントの型が misskey-js に含まれていない (#12603)
* 作った

* 修正

* 修正
2023-12-08 15:15:17 +09:00
おさむのひと b0039f0946
chore: 開発モードでフロントエンドとバックエンドを独立して起動するようにする(再) (#12593)
* [wip]run standalone vite

* [wip]run standalone vite

* some fix (tabler icons, sw, streaming)

* fix theme

* fix run scripts

* favicon

* client-assets

* cssの読み込み順序とCSP設定の変更

* fix lang change

* fix clientManifest

* baseを相対パスにしてドメイン直下とサブディレクトリ配下両方に対応

* 色々修正

* 色々修正

* 色々修正

* fix

* Revert "client-assets"

This reverts commit 582601e90eb771875bdf8aba263da2316a59d01b.

# Conflicts:
#	packages/frontend/vite.config.ts

* 色々修正

* fix

* fix

* add url and proxy to server proxy

* Update packages/frontend/src/index.html

* wip

* Merge remote-tracking branch 'origin/develop' into feat/launch-standalone-frontend

# Conflicts:
#	packages/frontend/src/pages/welcome.entrance.a.vue

* Merge remote-tracking branch 'origin/develop' into feat/launch-standalone-frontend

# Conflicts:
#	packages/frontend/src/pages/welcome.entrance.a.vue

* fix tabler load

* Apply suggestions from code review

* Update packages/frontend/src/index.html

* fix

* fix vite.config.local-dev.ts

* fix CONTRIBUTING.md

---------

Co-authored-by: FruitRiin <nassii74@gmail.com>
Co-authored-by: osamu <46447427+sam-osamu@users.noreply.github.com>
Co-authored-by: 果物リン <fruitriin@riinswork.space>
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
Co-authored-by: ozelot <contact@ozelot.dev>
2023-12-08 08:22:08 +09:00
KanariKanaru e6d01e33e6
fix(backend): ブロックした相手から自分のノートが見えないように(/users/featured-notes, /users/notes) (#12511)
* fix: ブロックした相手から自分のノートが見えないように(ユーザー,チャンネル)

* Update CHANGELOG.md

* /users/featured-notesでもブロックを考慮するように

* cacheServiceを使うように

* /channels/timeline.tsで必要のないnoteFilterを持たないように

* Update CHANGELOG.md

* FanoutTimelineEndpointServiceへの対応

- ブロックされている場合は、/users/notesでノートが表示されない
- ミュートしている場合は、ノートが表示される
2023-12-07 18:15:38 +09:00
KanariKanaru bcf6b7f5ee
enhance: meilisearchを有効にしてもミュートやブロックを考慮するように (#12575)
* enhance: meilisearchを有効にしてもミュートやブロックを考慮するように

* Update CHANGELOG.md
2023-12-07 17:09:31 +09:00
anatawa12 1d3ef7b42f
fix(backend): pagination with sinceId broken (#12586)
* fix(backend): pagination with sinceId broken

* fix(backend): pagination with sinceId broken for dbFallback
2023-12-07 17:07:06 +09:00
Mar0xy cc8d3edbc8
upd: add misskey icon to font 2023-12-07 01:48:57 +01:00
yupix e42c91dee7
feat: Roleに関するSchemaを追加 (#12572)
* feat: Roleに関連するschemaを追加

* feat: 新しいRoleSchemaを使うように

* chore: misskey.jsのデータを更新

* chore: misskey-js.api.mdを更新
2023-12-06 15:47:57 +09:00
Mar0xy 93869a5f34
add: mark instance as NSFW
Closes transfem-org/Sharkey#197
2023-12-05 22:20:52 +01:00
Mar0xy 62d1cb490b
add: custom icon font 2023-12-05 22:20:51 +01:00
Marie 0de8053bc0
merge: prettier query for bubble timeline (#204) 2023-12-04 15:46:20 +01:00
Mar0xy d5b598d696
fix: edit when it comes to quotes 2023-12-04 15:45:26 +01:00
dakkar 216d177997 fix the spacing
thanks, linter
2023-12-04 14:26:37 +00:00
dakkar c05de08a3b prettier query for bubble timeline
I *think* this works; in my test instance (with no federated notes…)
the generated query looks correct, and PostgreSQL doesn't complain.
2023-12-04 14:13:52 +00:00
anatawa12 8866c530c4
fix(backend): エポックを固定することで年越し時にトレンドが壊れる問題を修正 (#12567) 2023-12-04 20:33:11 +09:00
syuilo 9c90ff7d06 update deps 2023-12-04 19:40:46 +09:00
anatawa12 bb38e62ae6
chore: 自分へのリプライのみ走査するように (#12570) 2023-12-04 17:56:48 +09:00
yupix 33034b0e02
feat: ユーザースキーマの改善 (#12568)
* chore: notifyにenumを設定

* feat: securityKeysListの型を明確に

* feat: notificationRecieveConfigにpropertiesを定義

* chore: misskey.jsのmodelを更新

* fix: as constをつけ忘れている
2023-12-04 16:53:31 +09:00
anatawa12 18109fcef7
Filter User / Instance Mutes in FanoutTimelineEndpointService (#12565)
* fix: unnecessary logging in FanoutTimelineEndpointService

* chore: TimelineOptions

* chore: add FanoutTimelineName type

* chore: forbid specifying both withReplies and withFiles since it's not implemented correctly

* chore: filter mutes, replies, renotes, files in FanoutTimelineEndpointService

* revert unintended changes

* use isReply in NoteCreateService

* fix: excludePureRenotes is not implemented

* fix: replies to me is excluded from local timeline

* chore(frontend): forbid enabling both withReplies and withFiles

* docs(changelog): インスタンスミュートが効かない問題の修正について言及
2023-12-04 14:38:21 +09:00
Mar0xy 2f99c7e9dc
add: Bubble timeline
Closes  transfem-org/Sharkey#154
2023-12-04 02:10:51 +01:00
Mar0xy ec5facd09a
upd: increase cw limit
Closes transfem-org/Sharkey#193
2023-12-03 17:56:54 +01:00
おさむのひと 55c8ec80ed
fix (backend): 「みつける」のなかにミュートしたユーザが現れてしまう問題を修正 (#12559)
* fix (backend): 「みつける」のなかにミュートしたユーザが現れてしまう問題を修正

* fix
2023-12-03 20:46:19 +09:00
Acid Chicken (硫酸鶏) af15f8d09d
fix(backend): reject malformed timestamp (#12554) 2023-12-03 14:38:42 +09:00
6543 34223f3da4
fix(backend): enhance nodeinfo by export instance admin via nodeAdmins key (#12503)
https://codeberg.org/thefederationinfo/nodeinfo_extension
2023-12-03 13:42:41 +09:00
おさむのひと e17d741f4b
enhance(misskey-js) misskey-jsのストリーミングAPI定義をバックエンドに追従 (#12552)
* (enhance) misskey-jsのストリーミングAPI定義をバックエンドに追従

* fix ci

* fix ci
2023-12-03 12:45:18 +09:00
Nanaka Hiira 2eb86e0619
fix(backend): /emojiにおける拡張子の削除方法を修正 (#12543)
Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>
2023-12-03 10:28:35 +09:00
おさむのひと c68d87538a
リストタイムラインでミュートが貫通してしまう問題に対処 (#12534)
* ユーザリストTL系の各種動作を修正・統一

* fix

* fix CHANGELOG.md

* テスト追加
2023-12-03 10:19:37 +09:00
shiosyakeyakini 4de4a2e143
fix: withChannelNotesとwithFilesを同時に指定したときの考慮 (#12550)
Co-authored-by: sorairo <sorairo@shiosyakeyakini.info>
2023-12-03 10:18:28 +09:00
おさむのひと 336416261a
バックエンドが生成するapi.jsonからmisskey-jsの型を作成する (#12434)
* ひとまず生成できるところまで

* ファイル構成整理

* 生成コマンド整理

* misskey-jsへの組み込み

* fix generator.ts

* wip

* fix generator.ts

* fix package.json

* 生成ロジックの調整

* 型レベルでのswitch-case機構をmisskey-jsからfrontendに持ち込めるようにした

* 型チェック用のtsconfig.jsonを作成

* 他のエンドポイントを呼ぶ関数にも適用

* 未使用エンティティなどを削除

* misskey-js側で手動定義されていた型を自動生成された型に移行(ただしapi.jsonがvalidでなくなってしまったので後で修正する)

* messagingは廃止されている(テストのビルドエラー解消)

* validなapi.jsonを出力できるように修正

* 修正漏れ対応

* Ajvに怒られて起動できなかったところを修正

* fix ci(途中)

* パラメータenumをやめる

* add command

* add api.json

* 都度自動生成をやめる

* 一気通貫スクリプト修正

* fix ci

* 生成ロジック修正

* フロントの型チェックは結局やらなかったので戻しておく

* fix pnpm-lock.yaml

* add README.md

---------

Co-authored-by: osamu <46447427+sam-osamu@users.noreply.github.com>
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2023-12-02 21:00:05 +09:00
おさむのひと 92029ac325
fix: #12544 (#12545)
* meを渡し忘れている

* fix CHANGELOG.md

* Revert "fix CHANGELOG.md"

This reverts commit aaee4e9b8a6abf510f393bc02282f6ac016d2124.
2023-12-02 20:11:31 +09:00
MeiMei 238e8ce939
fix: Filter featured collection (#12541) 2023-12-02 19:32:30 +09:00
anatawa12 a631b976c9
Refine fanout timeline (#12507)
* chore(endpoints/hybrid-timeline): don't pack inside getFromDb

* chore(endpoints/hybrid-timeline): Redisから取得する部分のうちSTLに依存しなそうなところを別のServiceに切り出し

* chore(endpoints/local-timeline): FanoutTimelineEndpointServiceで再実装

* chore(endpoints/channels/timeline): FanoutTimelineEndpointServiceで再実装

* chore(endpoints/timeline): FanoutTimelineEndpointServiceで再実装

* chore(endpoints/user-list-timeline): FanoutTimelineEndpointServiceで再実装

* chore(endpoints/users/notes): FanoutTimelineEndpointServiceで再実装

* chore: add useDbFallback to FanoutTimelineEndpointService.timeline and always true for channel / user note list

* style: fix lint error

* chore: split logic to multiple functions

* chore: implement redis fallback

* chore: 成功率を上げる

* fix: db fallback not working

* feat: allowPartial

* chore(frontend): set allowPartial

* chore(backend): remove fallbackIfEmpty

HTL will never be purged so it's no longer required

* fix: missing allowPartial in channel timeline

* fix: type of timelineConfig in hybrid-timeline

---------

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2023-12-02 18:25:07 +09:00
Camilla Ett 8968bfd309
fix(backend): カスタム絵文字のインポート時の動作を修正 (#12360)
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2023-12-02 17:07:57 +09:00
anatawa12 b6b838416d
chore: remove unimplemented excludeNsfw (#12520) 2023-12-02 12:05:53 +09:00
anatawa12 da0ecb650e
chore: フォローしたときにHTLをパージしなくする (#12522) 2023-12-02 12:04:30 +09:00
Mar0xy a707b410d0
Merge branch 'develop' of https://github.com/transfem-org/Sharkey into develop 2023-11-30 23:45:25 +01:00
Mar0xy 7251f12908
upd: lower max uses per hour on `import notes` 2023-11-30 22:05:13 +01:00
dakkar c958d935e4 thread Pleroma imports as well
I have _not_ tested this, but it should work fine, those exports are
the same shape as Mastodon's
2023-11-30 13:26:55 +00:00
dakkar c59e74dfd5 fix chaining for Mastodon notes
the id / replyId are not at the top level, so now `recreateChain`
takes a list of keys to walk, not just a single key
2023-11-30 13:26:55 +00:00
dakkar 15503b96a0 properly thread Mastodon imports 2023-11-30 13:26:55 +00:00
Gianni Ceccarelli e392d523a7 prepare to import more notes
`recreateChain` converts a list of notes into a forest of notes, using
notes that are not replies as roots, and replies as child nodes,
recursively.

Previously, notes that are replies to notes not included in the
export, and their children, were never put in the forest, and
therefore wheren't imported.

This can be fine when importing from Twitter, since we can't really
link a note to a tweet.

And, for the moment, it's acceptable when importing from *key, because
the export doesn't contain the instance URL, so we can't resolve ids
to remote notes.

It's less fine when importing from Mastodon / Pleroma / Akkoma,
because in those cases we _can_ link to the remote note that the user
was replying to.

This commit makes `recreateChain` optionally return "orphaned" note
trees, so in the (near) future we can use it to properly thread
imported notes from those services.
2023-11-30 13:26:55 +00:00
yupix ca424df80e
fix: invite系の戻り値が間違っている close #12517 (#12518) 2023-11-30 15:56:25 +09:00
かっこかり b05d71fabf
feat(frontend): 今日誕生日のフォロー中のユーザーを一覧表示できるウィジェットを追加 (#12450)
* (add) 今日誕生日のフォロイー一覧表示

* Update Changelog

* Update Changelog

* 実装漏れ

* create index

* (fix) index
2023-11-30 14:49:26 +09:00
Mar0xy 9383e3affd
upd: remove accidental additions 2023-11-30 04:05:11 +01:00
Mar0xy fcbb291ef1
upd: pass a few more AP values
The added values are all taken from Mastodon code in hope to make editing and everything else sync better
2023-11-30 04:01:07 +01:00
Mar0xy 65a2ea6a74
upd: improve post editing on polls
Fixes not being able to edit post if poll expiry was set and now checks properly if poll was edited or not
2023-11-30 02:11:47 +01:00
Mar0xy 5f7fc54ee9
upd: delete emoji file from drive on emoji deletion 2023-11-29 18:45:42 +01:00
yupix 3b3b908ccd
fix: packedNoteSchemaにclippedCountが抜けている (#12499) 2023-11-29 08:08:06 +09:00
Mar0xy 62bcd42891
upd: create Folders for imported media 2023-11-28 22:46:10 +01:00
Mar0xy 7e2cf4238f
upd: apply 300x300 PWA icon
Closes transfem-org/Sharkey#165
2023-11-28 03:48:22 +01:00
syuilo 51cf906b25 update deps 2023-11-27 21:05:20 +09:00