From e159f1560018361de573c182b085c5aa12dc7840 Mon Sep 17 00:00:00 2001 From: tamaina Date: Wed, 29 Dec 2021 22:13:09 +0900 Subject: enhance: pizzaxでstreamingのuser storage updateイベントを監視して更新 (#8095) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * wip * wip? * ? * streamingのuser storage updateイベントを監視して更新 * 必要な時以外はストレージを更新しない * fix? * wip * fix * fix --- packages/client/src/pages/admin/metrics.vue | 5 +++-- packages/client/src/pages/admin/overview.vue | 3 ++- packages/client/src/pages/admin/queue.vue | 3 ++- packages/client/src/pages/messaging/index.vue | 3 ++- packages/client/src/pages/messaging/messaging-room.form.vue | 3 ++- packages/client/src/pages/messaging/messaging-room.vue | 3 ++- packages/client/src/pages/reversi/game.vue | 3 ++- packages/client/src/pages/reversi/index.vue | 3 ++- 8 files changed, 17 insertions(+), 9 deletions(-) (limited to 'packages/client/src/pages') diff --git a/packages/client/src/pages/admin/metrics.vue b/packages/client/src/pages/admin/metrics.vue index 05b64b235c..f566061ceb 100644 --- a/packages/client/src/pages/admin/metrics.vue +++ b/packages/client/src/pages/admin/metrics.vue @@ -101,6 +101,7 @@ const alpha = (hex, a) => { return `rgba(${r}, ${g}, ${b}, ${a})`; }; import * as os from '@/os'; +import { stream } from '@/stream'; export default defineComponent({ components: { @@ -119,7 +120,7 @@ export default defineComponent({ stats: null, serverInfo: null, connection: null, - queueConnection: markRaw(os.stream.useChannel('queueStats')), + queueConnection: markRaw(stream.useChannel('queueStats')), memUsage: 0, chartCpuMem: null, chartNet: null, @@ -150,7 +151,7 @@ export default defineComponent({ os.api('admin/server-info', {}).then(res => { this.serverInfo = res; - this.connection = markRaw(os.stream.useChannel('serverStats')); + this.connection = markRaw(stream.useChannel('serverStats')); this.connection.on('stats', this.onStats); this.connection.on('statsLog', this.onStatsLog); this.connection.send('requestLog', { diff --git a/packages/client/src/pages/admin/overview.vue b/packages/client/src/pages/admin/overview.vue index da5fc0ba6d..59a4281599 100644 --- a/packages/client/src/pages/admin/overview.vue +++ b/packages/client/src/pages/admin/overview.vue @@ -81,6 +81,7 @@ import number from '@/filters/number'; import MkInstanceInfo from './instance.vue'; import XMetrics from './metrics.vue'; import * as os from '@/os'; +import { stream } from '@/stream'; import * as symbols from '@/symbols'; export default defineComponent({ @@ -113,7 +114,7 @@ export default defineComponent({ notesComparedToThePrevDay: null, fetchJobs: () => os.api('admin/queue/deliver-delayed', {}), fetchModLogs: () => os.api('admin/show-moderation-logs', {}), - queueStatsConnection: markRaw(os.stream.useChannel('queueStats')), + queueStatsConnection: markRaw(stream.useChannel('queueStats')), } }, diff --git a/packages/client/src/pages/admin/queue.vue b/packages/client/src/pages/admin/queue.vue index 37a87089cb..49f3c63e82 100644 --- a/packages/client/src/pages/admin/queue.vue +++ b/packages/client/src/pages/admin/queue.vue @@ -17,6 +17,7 @@ import XQueue from './queue.chart.vue'; import FormBase from '@/components/debobigego/base.vue'; import FormButton from '@/components/debobigego/button.vue'; import * as os from '@/os'; +import { stream } from '@/stream'; import * as symbols from '@/symbols'; export default defineComponent({ @@ -36,7 +37,7 @@ export default defineComponent({ icon: 'fas fa-clipboard-list', bg: 'var(--bg)', }, - connection: markRaw(os.stream.useChannel('queueStats')), + connection: markRaw(stream.useChannel('queueStats')), } }, diff --git a/packages/client/src/pages/messaging/index.vue b/packages/client/src/pages/messaging/index.vue index 01f9d4518f..554ebc4b6b 100644 --- a/packages/client/src/pages/messaging/index.vue +++ b/packages/client/src/pages/messaging/index.vue @@ -44,6 +44,7 @@ import * as Acct from 'misskey-js/built/acct'; import MkButton from '@/components/ui/button.vue'; import { acct } from '@/filters/user'; import * as os from '@/os'; +import { stream } from '@/stream'; import * as symbols from '@/symbols'; export default defineComponent({ @@ -66,7 +67,7 @@ export default defineComponent({ }, mounted() { - this.connection = markRaw(os.stream.useChannel('messagingIndex')); + this.connection = markRaw(stream.useChannel('messagingIndex')); this.connection.on('message', this.onMessage); this.connection.on('read', this.onRead); diff --git a/packages/client/src/pages/messaging/messaging-room.form.vue b/packages/client/src/pages/messaging/messaging-room.form.vue index 8d92c430f1..f2a90fbfba 100644 --- a/packages/client/src/pages/messaging/messaging-room.form.vue +++ b/packages/client/src/pages/messaging/messaging-room.form.vue @@ -28,6 +28,7 @@ import * as autosize from 'autosize'; import { formatTimeString } from '@/scripts/format-time-string'; import { selectFile } from '@/scripts/select-file'; import * as os from '@/os'; +import { stream } from '@/stream'; import { Autocomplete } from '@/scripts/autocomplete'; import { throttle } from 'throttle-debounce'; @@ -48,7 +49,7 @@ export default defineComponent({ file: null, sending: false, typing: throttle(3000, () => { - os.stream.send('typingOnMessaging', this.user ? { partner: this.user.id } : { group: this.group.id }); + stream.send('typingOnMessaging', this.user ? { partner: this.user.id } : { group: this.group.id }); }), }; }, diff --git a/packages/client/src/pages/messaging/messaging-room.vue b/packages/client/src/pages/messaging/messaging-room.vue index ffc7f7bc0d..1bcee01d29 100644 --- a/packages/client/src/pages/messaging/messaging-room.vue +++ b/packages/client/src/pages/messaging/messaging-room.vue @@ -43,6 +43,7 @@ import XForm from './messaging-room.form.vue'; import * as Acct from 'misskey-js/built/acct'; import { isBottom, onScrollBottom, scroll } from '@/scripts/scroll'; import * as os from '@/os'; +import { stream } from '@/stream'; import { popout } from '@/scripts/popout'; import * as sound from '@/scripts/sound'; import * as symbols from '@/symbols'; @@ -141,7 +142,7 @@ const Component = defineComponent({ this.group = group; } - this.connection = markRaw(os.stream.useChannel('messaging', { + this.connection = markRaw(stream.useChannel('messaging', { otherparty: this.user ? this.user.id : undefined, group: this.group ? this.group.id : undefined, })); diff --git a/packages/client/src/pages/reversi/game.vue b/packages/client/src/pages/reversi/game.vue index b1ed632904..697d2898b9 100644 --- a/packages/client/src/pages/reversi/game.vue +++ b/packages/client/src/pages/reversi/game.vue @@ -9,6 +9,7 @@ import { defineComponent, markRaw } from 'vue'; import GameSetting from './game.setting.vue'; import GameBoard from './game.board.vue'; import * as os from '@/os'; +import { stream } from '@/stream'; import * as symbols from '@/symbols'; export default defineComponent({ @@ -61,7 +62,7 @@ export default defineComponent({ if (this.connection) { this.connection.dispose(); } - this.connection = markRaw(os.stream.useChannel('gamesReversiGame', { + this.connection = markRaw(stream.useChannel('gamesReversiGame', { gameId: this.game.id })); this.connection.on('started', this.onStarted); diff --git a/packages/client/src/pages/reversi/index.vue b/packages/client/src/pages/reversi/index.vue index 0b118531fc..93c22c02f3 100644 --- a/packages/client/src/pages/reversi/index.vue +++ b/packages/client/src/pages/reversi/index.vue @@ -62,6 +62,7 @@ diff --git a/packages/client/src/components/form/switch.vue b/packages/client/src/components/form/switch.vue index aa9b09215e..ac3284e7da 100644 --- a/packages/client/src/components/form/switch.vue +++ b/packages/client/src/components/form/switch.vue @@ -13,7 +13,8 @@ - + +

diff --git a/packages/client/src/components/user-select-dialog.vue b/packages/client/src/components/user-select-dialog.vue index ba2975478b..dbef34d547 100644 --- a/packages/client/src/components/user-select-dialog.vue +++ b/packages/client/src/components/user-select-dialog.vue @@ -1,5 +1,5 @@ - -- cgit v1.2.3-freya From 6a5713f5e54efa82a196e105c508dd83b2e726bd Mon Sep 17 00:00:00 2001 From: syuilo Date: Tue, 4 Jan 2022 15:36:14 +0900 Subject: tweak ui --- packages/client/src/components/chart.vue | 8 +- packages/client/src/components/form/section.vue | 7 +- packages/client/src/components/form/switch.vue | 2 +- packages/client/src/components/global/spacer.vue | 2 +- packages/client/src/components/instance-stats.vue | 15 +- packages/client/src/components/key-value.vue | 27 +- packages/client/src/pages/about.vue | 3 +- packages/client/src/pages/admin/instance.vue | 291 ---------------------- packages/client/src/pages/admin/metrics.vue | 1 - packages/client/src/pages/admin/overview.vue | 7 +- packages/client/src/pages/instance-info.vue | 234 ++++++++--------- packages/client/src/pages/user-ap-info.vue | 124 --------- packages/client/src/pages/user-info.vue | 137 +++++----- packages/client/src/router.ts | 1 - 14 files changed, 233 insertions(+), 626 deletions(-) delete mode 100644 packages/client/src/pages/admin/instance.vue delete mode 100644 packages/client/src/pages/user-ap-info.vue (limited to 'packages/client/src/pages') diff --git a/packages/client/src/components/chart.vue b/packages/client/src/components/chart.vue index c4d0eb85dd..1959271f5d 100644 --- a/packages/client/src/components/chart.vue +++ b/packages/client/src/components/chart.vue @@ -170,10 +170,10 @@ export default defineComponent({ aspectRatio: props.aspectRatio || 2.5, layout: { padding: { - left: 16, - right: 16, - top: 16, - bottom: 8, + left: 0, + right: 0, + top: 0, + bottom: 0, }, }, scales: { diff --git a/packages/client/src/components/form/section.vue b/packages/client/src/components/form/section.vue index ab9fbe5fcd..c6e34ef1cc 100644 --- a/packages/client/src/components/form/section.vue +++ b/packages/client/src/components/form/section.vue @@ -1,5 +1,5 @@ + + diff --git a/packages/client/src/pages/admin/database.vue b/packages/client/src/pages/admin/database.vue index fc9a3e9690..c1088afd77 100644 --- a/packages/client/src/pages/admin/database.vue +++ b/packages/client/src/pages/admin/database.vue @@ -1,5 +1,5 @@ - -- cgit v1.2.3-freya From 298e950e81eb1b78cbf79b629a9ba7cd25b25b99 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 7 Jan 2022 16:34:11 +0900 Subject: refactor(client): use composition api --- packages/client/src/pages/favorites.vue | 23 ++++------------------ packages/client/src/pages/featured.vue | 31 +++++++++++------------------ packages/client/src/pages/mentions.vue | 29 +++++++++++---------------- packages/client/src/pages/messages.vue | 35 +++++++++++++-------------------- 4 files changed, 41 insertions(+), 77 deletions(-) (limited to 'packages/client/src/pages') diff --git a/packages/client/src/pages/favorites.vue b/packages/client/src/pages/favorites.vue index 4a2ecb0341..588b0fa66c 100644 --- a/packages/client/src/pages/favorites.vue +++ b/packages/client/src/pages/favorites.vue @@ -1,9 +1,7 @@ - - diff --git a/packages/client/src/pages/featured.vue b/packages/client/src/pages/featured.vue index 0844c0952f..efa74ca599 100644 --- a/packages/client/src/pages/featured.vue +++ b/packages/client/src/pages/featured.vue @@ -4,29 +4,22 @@ - diff --git a/packages/client/src/pages/mentions.vue b/packages/client/src/pages/mentions.vue index 691d3bd9aa..ea23c6a2f6 100644 --- a/packages/client/src/pages/mentions.vue +++ b/packages/client/src/pages/mentions.vue @@ -4,28 +4,21 @@ - diff --git a/packages/client/src/pages/messages.vue b/packages/client/src/pages/messages.vue index 9085af9489..448aa0241f 100644 --- a/packages/client/src/pages/messages.vue +++ b/packages/client/src/pages/messages.vue @@ -4,31 +4,24 @@ - -- cgit v1.2.3-freya From 40075761fa74c80550f415ad09c755bfe3a2dd5d Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 7 Jan 2022 16:48:51 +0900 Subject: refactor(client): use composition api --- packages/client/src/pages/_loading_.vue | 6 +---- packages/client/src/pages/about.vue | 44 +++++++++++---------------------- packages/client/src/pages/not-found.vue | 18 ++++++-------- 3 files changed, 22 insertions(+), 46 deletions(-) (limited to 'packages/client/src/pages') diff --git a/packages/client/src/pages/_loading_.vue b/packages/client/src/pages/_loading_.vue index 05c6af1cd7..1dd2e46e10 100644 --- a/packages/client/src/pages/_loading_.vue +++ b/packages/client/src/pages/_loading_.vue @@ -2,9 +2,5 @@ - diff --git a/packages/client/src/pages/about.vue b/packages/client/src/pages/about.vue index e9d17feec1..a5984c548d 100644 --- a/packages/client/src/pages/about.vue +++ b/packages/client/src/pages/about.vue @@ -67,8 +67,8 @@ - diff --git a/packages/client/src/pages/not-found.vue b/packages/client/src/pages/not-found.vue index 92d3f399f7..914fdb9297 100644 --- a/packages/client/src/pages/not-found.vue +++ b/packages/client/src/pages/not-found.vue @@ -7,19 +7,15 @@ - -- cgit v1.2.3-freya From f897357b3c8d407beef75cd183b2d44a973ce1ba Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 7 Jan 2022 16:50:35 +0900 Subject: remove unused components --- .../client/src/pages/advanced-theme-editor.vue | 349 --------------------- packages/client/src/pages/test.vue | 260 --------------- 2 files changed, 609 deletions(-) delete mode 100644 packages/client/src/pages/advanced-theme-editor.vue delete mode 100644 packages/client/src/pages/test.vue (limited to 'packages/client/src/pages') diff --git a/packages/client/src/pages/advanced-theme-editor.vue b/packages/client/src/pages/advanced-theme-editor.vue deleted file mode 100644 index 9c2423131c..0000000000 --- a/packages/client/src/pages/advanced-theme-editor.vue +++ /dev/null @@ -1,349 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/test.vue b/packages/client/src/pages/test.vue deleted file mode 100644 index d05e00d374..0000000000 --- a/packages/client/src/pages/test.vue +++ /dev/null @@ -1,260 +0,0 @@ - - - -- cgit v1.2.3-freya From faef125b74cd5ae32c69f2d997b5fc9c179ca475 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 7 Jan 2022 17:06:47 +0900 Subject: bye room --- CHANGELOG.md | 10 + CONTRIBUTING.md | 11 - locales/ja-JP.yml | 64 -- .../backend/src/models/entities/user-profile.ts | 1 + .../backend/src/server/api/endpoints/room/show.ts | 160 ----- .../src/server/api/endpoints/room/update.ts | 52 -- .../assets/room/furnitures/banknote/banknote.blend | Bin 716076 -> 0 bytes .../assets/room/furnitures/banknote/banknote.glb | Bin 48988 -> 0 bytes .../client/assets/room/furnitures/banknote/tex.png | Bin 43794 -> 0 bytes .../client/assets/room/furnitures/bed/bed.blend | Bin 573584 -> 0 bytes packages/client/assets/room/furnitures/bed/bed.glb | Bin 8944 -> 0 bytes .../client/assets/room/furnitures/bin/bin.blend | Bin 695512 -> 0 bytes packages/client/assets/room/furnitures/bin/bin.glb | Bin 22140 -> 0 bytes .../client/assets/room/furnitures/book/book.blend | Bin 511864 -> 0 bytes .../client/assets/room/furnitures/book/book.glb | Bin 4304 -> 0 bytes .../assets/room/furnitures/book2/barcode.png | Bin 3505 -> 0 bytes .../assets/room/furnitures/book2/book2.blend | Bin 521456 -> 0 bytes .../client/assets/room/furnitures/book2/book2.glb | Bin 82920 -> 0 bytes .../assets/room/furnitures/book2/texture.afdesign | Bin 875434 -> 0 bytes .../assets/room/furnitures/book2/texture.png | Bin 61019 -> 0 bytes .../client/assets/room/furnitures/book2/uv.png | Bin 8611 -> 0 bytes .../furnitures/cardboard-box/cardboard-box.blend | Bin 515036 -> 0 bytes .../furnitures/cardboard-box/cardboard-box.glb | Bin 4568 -> 0 bytes .../furnitures/cardboard-box2/cardboard-box2.blend | Bin 545788 -> 0 bytes .../furnitures/cardboard-box2/cardboard-box2.glb | Bin 24084 -> 0 bytes .../room/furnitures/cardboard-box2/texture.png | Bin 16879 -> 0 bytes .../assets/room/furnitures/cardboard-box2/uv.png | Bin 4630 -> 0 bytes .../furnitures/cardboard-box3/cardboard-box3.blend | Bin 547868 -> 0 bytes .../furnitures/cardboard-box3/cardboard-box3.glb | Bin 23668 -> 0 bytes .../room/furnitures/cardboard-box3/texture.png | Bin 16204 -> 0 bytes .../room/furnitures/cardboard-box3/texture.xcf | Bin 242066 -> 0 bytes .../assets/room/furnitures/cardboard-box3/uv.png | Bin 3598 -> 0 bytes .../furnitures/carpet-stripe/carpet-stripe.blend | Bin 481784 -> 0 bytes .../furnitures/carpet-stripe/carpet-stripe.glb | Bin 4956 -> 0 bytes .../assets/room/furnitures/chair/chair.blend | Bin 500696 -> 0 bytes .../client/assets/room/furnitures/chair/chair.glb | Bin 4252 -> 0 bytes .../assets/room/furnitures/chair2/chair2.blend | Bin 523036 -> 0 bytes .../assets/room/furnitures/chair2/chair2.glb | Bin 6140 -> 0 bytes .../room/furnitures/color-box/color-box.blend | Bin 631168 -> 0 bytes .../assets/room/furnitures/color-box/color-box.glb | Bin 7492 -> 0 bytes .../room/furnitures/corkboard/corkboard.blend | Bin 565404 -> 0 bytes .../assets/room/furnitures/corkboard/corkboard.glb | Bin 7180 -> 0 bytes .../client/assets/room/furnitures/cube/cube.blend | Bin 646184 -> 0 bytes .../client/assets/room/furnitures/cube/cube.glb | Bin 188392 -> 0 bytes .../room/furnitures/cup-noodle/cup-noodle.blend | Bin 855164 -> 0 bytes .../room/furnitures/cup-noodle/cup-noodle.glb | Bin 318332 -> 0 bytes .../assets/room/furnitures/cup-noodle/noodle.png | Bin 297154 -> 0 bytes .../client/assets/room/furnitures/desk/desk.blend | Bin 541980 -> 0 bytes .../client/assets/room/furnitures/desk/desk.glb | Bin 10184 -> 0 bytes .../assets/room/furnitures/doll-ai/doll-ai.blend | Bin 1155028 -> 0 bytes .../assets/room/furnitures/doll-ai/doll-ai.glb | Bin 112160 -> 0 bytes .../assets/room/furnitures/doll-ai/doll_ai_tex.png | Bin 10712 -> 0 bytes .../furnitures/energy-drink/energy-drink.blend | Bin 724764 -> 0 bytes .../room/furnitures/energy-drink/energy-drink.glb | Bin 145836 -> 0 bytes .../room/furnitures/energy-drink/texture.afdesign | Bin 824566 -> 0 bytes .../room/furnitures/energy-drink/texture.png | Bin 127510 -> 0 bytes .../assets/room/furnitures/energy-drink/uv.png | Bin 22142 -> 0 bytes .../client/assets/room/furnitures/eraser/cover.png | Bin 8336 -> 0 bytes .../client/assets/room/furnitures/eraser/cover.psd | Bin 219123 -> 0 bytes .../assets/room/furnitures/eraser/eraser-uv.png | Bin 11164 -> 0 bytes .../assets/room/furnitures/eraser/eraser.blend | Bin 527996 -> 0 bytes .../assets/room/furnitures/eraser/eraser.glb | Bin 15748 -> 0 bytes .../furnitures/facial-tissue/facial-tissue-uv.png | Bin 4470 -> 0 bytes .../furnitures/facial-tissue/facial-tissue.blend | Bin 533220 -> 0 bytes .../furnitures/facial-tissue/facial-tissue.glb | Bin 8332 -> 0 bytes .../furnitures/facial-tissue/facial-tissue.png | Bin 688 -> 0 bytes .../furnitures/facial-tissue/facial-tissue.psd | Bin 111968 -> 0 bytes .../client/assets/room/furnitures/fan/fan.blend | Bin 772732 -> 0 bytes packages/client/assets/room/furnitures/fan/fan.glb | Bin 51612 -> 0 bytes .../furnitures/holo-display/holo-display.blend | Bin 788456 -> 0 bytes .../room/furnitures/holo-display/holo-display.glb | Bin 148928 -> 0 bytes .../assets/room/furnitures/holo-display/ray-uv.png | Bin 20901 -> 0 bytes .../assets/room/furnitures/holo-display/ray.png | Bin 104293 -> 0 bytes .../assets/room/furnitures/keyboard/keyboard.blend | Bin 1005588 -> 0 bytes .../assets/room/furnitures/keyboard/keyboard.glb | Bin 132360 -> 0 bytes .../room/furnitures/low-table/low-table.blend | Bin 497336 -> 0 bytes .../assets/room/furnitures/low-table/low-table.glb | Bin 2364 -> 0 bytes .../client/assets/room/furnitures/mat/mat.blend | Bin 489304 -> 0 bytes packages/client/assets/room/furnitures/mat/mat.glb | Bin 1700 -> 0 bytes .../client/assets/room/furnitures/milk/milk-uv.png | Bin 16577 -> 0 bytes .../client/assets/room/furnitures/milk/milk.blend | Bin 539836 -> 0 bytes .../client/assets/room/furnitures/milk/milk.glb | Bin 8456 -> 0 bytes .../client/assets/room/furnitures/milk/milk.png | Bin 658 -> 0 bytes .../client/assets/room/furnitures/milk/milk.psd | Bin 125415 -> 0 bytes .../assets/room/furnitures/monitor/monitor.blend | Bin 586820 -> 0 bytes .../assets/room/furnitures/monitor/monitor.glb | Bin 35300 -> 0 bytes .../assets/room/furnitures/monitor/monitor.psd | Bin 3692204 -> 0 bytes .../assets/room/furnitures/monitor/screen-uv.png | Bin 1495 -> 0 bytes .../assets/room/furnitures/monitor/screen.jpg | Bin 24842 -> 0 bytes .../client/assets/room/furnitures/moon/moon.blend | Bin 725536 -> 0 bytes .../client/assets/room/furnitures/moon/moon.glb | Bin 122112 -> 0 bytes .../client/assets/room/furnitures/moon/moon.jpg | Bin 87151 -> 0 bytes .../assets/room/furnitures/mousepad/mousepad.blend | Bin 495008 -> 0 bytes .../assets/room/furnitures/mousepad/mousepad.glb | Bin 4360 -> 0 bytes .../assets/room/furnitures/pc/motherboard-uv.png | Bin 2920 -> 0 bytes .../assets/room/furnitures/pc/motherboard-uv.psd | Bin 7131432 -> 0 bytes .../assets/room/furnitures/pc/motherboard.jpg | Bin 64600 -> 0 bytes packages/client/assets/room/furnitures/pc/pc.blend | Bin 818152 -> 0 bytes packages/client/assets/room/furnitures/pc/pc.glb | Bin 103620 -> 0 bytes .../assets/room/furnitures/pencil/pencil.blend | Bin 683032 -> 0 bytes .../assets/room/furnitures/pencil/pencil.glb | Bin 7788 -> 0 bytes .../assets/room/furnitures/photoframe/photo-uv.png | Bin 2639 -> 0 bytes .../assets/room/furnitures/photoframe/photo.jpg | Bin 30500 -> 0 bytes .../room/furnitures/photoframe/photoframe.blend | Bin 551416 -> 0 bytes .../room/furnitures/photoframe/photoframe.glb | Bin 37612 -> 0 bytes .../assets/room/furnitures/piano/piano.blend | Bin 713228 -> 0 bytes .../client/assets/room/furnitures/piano/piano.glb | Bin 73320 -> 0 bytes .../assets/room/furnitures/pinguin/pinguin.blend | Bin 778976 -> 0 bytes .../assets/room/furnitures/pinguin/pinguin.glb | Bin 60172 -> 0 bytes .../assets/room/furnitures/plant/plant-soil-uv.png | Bin 4509 -> 0 bytes .../assets/room/furnitures/plant/plant-soil.png | Bin 10852 -> 0 bytes .../assets/room/furnitures/plant/plant-soil.psd | Bin 390188 -> 0 bytes .../assets/room/furnitures/plant/plant.blend | Bin 604488 -> 0 bytes .../client/assets/room/furnitures/plant/plant.glb | Bin 27664 -> 0 bytes .../assets/room/furnitures/plant2/plant2.blend | Bin 1060816 -> 0 bytes .../assets/room/furnitures/plant2/plant2.glb | Bin 133212 -> 0 bytes .../client/assets/room/furnitures/plant2/soil.png | Bin 10852 -> 0 bytes .../assets/room/furnitures/poster-h/poster-h.blend | Bin 667604 -> 0 bytes .../assets/room/furnitures/poster-h/poster-h.glb | Bin 1280 -> 0 bytes .../client/assets/room/furnitures/poster-h/uv.png | Bin 3786 -> 0 bytes .../assets/room/furnitures/poster-v/poster-v.blend | Bin 650740 -> 0 bytes .../assets/room/furnitures/poster-v/poster-v.glb | Bin 1280 -> 0 bytes .../client/assets/room/furnitures/poster-v/uv.png | Bin 3795 -> 0 bytes .../assets/room/furnitures/pudding/pudding.blend | Bin 694784 -> 0 bytes .../assets/room/furnitures/pudding/pudding.glb | Bin 10612 -> 0 bytes .../room/furnitures/rubik-cube/rubik-cube.blend | Bin 745960 -> 0 bytes .../room/furnitures/rubik-cube/rubik-cube.glb | Bin 67688 -> 0 bytes .../assets/room/furnitures/server/rack-uv.png | Bin 6705 -> 0 bytes .../client/assets/room/furnitures/server/rack.png | Bin 7046 -> 0 bytes .../assets/room/furnitures/server/server.blend | Bin 684372 -> 0 bytes .../assets/room/furnitures/server/server.glb | Bin 149480 -> 0 bytes .../assets/room/furnitures/server/server.png | Bin 116866 -> 0 bytes .../client/assets/room/furnitures/server/uv.png | Bin 4012 -> 0 bytes .../client/assets/room/furnitures/sofa/sofa.blend | Bin 711488 -> 0 bytes .../client/assets/room/furnitures/sofa/sofa.glb | Bin 37656 -> 0 bytes .../assets/room/furnitures/spiral/spiral.blend | Bin 1241416 -> 0 bytes .../assets/room/furnitures/spiral/spiral.glb | Bin 251788 -> 0 bytes .../client/assets/room/furnitures/tv/screen-uv.png | Bin 3792 -> 0 bytes packages/client/assets/room/furnitures/tv/tv.blend | Bin 587640 -> 0 bytes packages/client/assets/room/furnitures/tv/tv.glb | Bin 8580 -> 0 bytes .../room/furnitures/wall-clock/wall-clock.blend | Bin 574128 -> 0 bytes .../room/furnitures/wall-clock/wall-clock.glb | Bin 47848 -> 0 bytes .../client/assets/room/rooms/default/default.blend | Bin 618364 -> 0 bytes .../client/assets/room/rooms/default/default.glb | Bin 12280 -> 0 bytes .../assets/room/rooms/washitsu/husuma-uv.png | Bin 4037 -> 0 bytes .../client/assets/room/rooms/washitsu/husuma.png | Bin 2539 -> 0 bytes .../room/rooms/washitsu/tatami-single1600.png | Bin 1173343 -> 0 bytes .../assets/room/rooms/washitsu/tatami-uv.png | Bin 4075 -> 0 bytes .../assets/room/rooms/washitsu/tatami.afdesign | Bin 2501804 -> 0 bytes .../client/assets/room/rooms/washitsu/tatami.png | Bin 313722 -> 0 bytes .../assets/room/rooms/washitsu/washitsu.blend | Bin 664000 -> 0 bytes .../client/assets/room/rooms/washitsu/washitsu.glb | Bin 415180 -> 0 bytes packages/client/src/menu.ts | 6 - packages/client/src/pages/room/preview.vue | 107 --- packages/client/src/pages/room/room.vue | 279 -------- packages/client/src/router.ts | 1 - packages/client/src/scripts/room/furniture.ts | 21 - packages/client/src/scripts/room/furnitures.json5 | 407 ----------- packages/client/src/scripts/room/room.ts | 775 --------------------- packages/client/src/store.ts | 2 - 160 files changed, 11 insertions(+), 1885 deletions(-) delete mode 100644 packages/backend/src/server/api/endpoints/room/show.ts delete mode 100644 packages/backend/src/server/api/endpoints/room/update.ts delete mode 100644 packages/client/assets/room/furnitures/banknote/banknote.blend delete mode 100644 packages/client/assets/room/furnitures/banknote/banknote.glb delete mode 100644 packages/client/assets/room/furnitures/banknote/tex.png delete mode 100644 packages/client/assets/room/furnitures/bed/bed.blend delete mode 100644 packages/client/assets/room/furnitures/bed/bed.glb delete mode 100644 packages/client/assets/room/furnitures/bin/bin.blend delete mode 100644 packages/client/assets/room/furnitures/bin/bin.glb delete mode 100644 packages/client/assets/room/furnitures/book/book.blend delete mode 100644 packages/client/assets/room/furnitures/book/book.glb delete mode 100644 packages/client/assets/room/furnitures/book2/barcode.png delete mode 100644 packages/client/assets/room/furnitures/book2/book2.blend delete mode 100644 packages/client/assets/room/furnitures/book2/book2.glb delete mode 100644 packages/client/assets/room/furnitures/book2/texture.afdesign delete mode 100644 packages/client/assets/room/furnitures/book2/texture.png delete mode 100644 packages/client/assets/room/furnitures/book2/uv.png delete mode 100644 packages/client/assets/room/furnitures/cardboard-box/cardboard-box.blend delete mode 100644 packages/client/assets/room/furnitures/cardboard-box/cardboard-box.glb delete mode 100644 packages/client/assets/room/furnitures/cardboard-box2/cardboard-box2.blend delete mode 100644 packages/client/assets/room/furnitures/cardboard-box2/cardboard-box2.glb delete mode 100644 packages/client/assets/room/furnitures/cardboard-box2/texture.png delete mode 100644 packages/client/assets/room/furnitures/cardboard-box2/uv.png delete mode 100644 packages/client/assets/room/furnitures/cardboard-box3/cardboard-box3.blend delete mode 100644 packages/client/assets/room/furnitures/cardboard-box3/cardboard-box3.glb delete mode 100644 packages/client/assets/room/furnitures/cardboard-box3/texture.png delete mode 100644 packages/client/assets/room/furnitures/cardboard-box3/texture.xcf delete mode 100644 packages/client/assets/room/furnitures/cardboard-box3/uv.png delete mode 100644 packages/client/assets/room/furnitures/carpet-stripe/carpet-stripe.blend delete mode 100644 packages/client/assets/room/furnitures/carpet-stripe/carpet-stripe.glb delete mode 100644 packages/client/assets/room/furnitures/chair/chair.blend delete mode 100644 packages/client/assets/room/furnitures/chair/chair.glb delete mode 100644 packages/client/assets/room/furnitures/chair2/chair2.blend delete mode 100644 packages/client/assets/room/furnitures/chair2/chair2.glb delete mode 100644 packages/client/assets/room/furnitures/color-box/color-box.blend delete mode 100644 packages/client/assets/room/furnitures/color-box/color-box.glb delete mode 100644 packages/client/assets/room/furnitures/corkboard/corkboard.blend delete mode 100644 packages/client/assets/room/furnitures/corkboard/corkboard.glb delete mode 100644 packages/client/assets/room/furnitures/cube/cube.blend delete mode 100644 packages/client/assets/room/furnitures/cube/cube.glb delete mode 100644 packages/client/assets/room/furnitures/cup-noodle/cup-noodle.blend delete mode 100644 packages/client/assets/room/furnitures/cup-noodle/cup-noodle.glb delete mode 100644 packages/client/assets/room/furnitures/cup-noodle/noodle.png delete mode 100644 packages/client/assets/room/furnitures/desk/desk.blend delete mode 100644 packages/client/assets/room/furnitures/desk/desk.glb delete mode 100644 packages/client/assets/room/furnitures/doll-ai/doll-ai.blend delete mode 100644 packages/client/assets/room/furnitures/doll-ai/doll-ai.glb delete mode 100644 packages/client/assets/room/furnitures/doll-ai/doll_ai_tex.png delete mode 100644 packages/client/assets/room/furnitures/energy-drink/energy-drink.blend delete mode 100644 packages/client/assets/room/furnitures/energy-drink/energy-drink.glb delete mode 100644 packages/client/assets/room/furnitures/energy-drink/texture.afdesign delete mode 100644 packages/client/assets/room/furnitures/energy-drink/texture.png delete mode 100644 packages/client/assets/room/furnitures/energy-drink/uv.png delete mode 100644 packages/client/assets/room/furnitures/eraser/cover.png delete mode 100644 packages/client/assets/room/furnitures/eraser/cover.psd delete mode 100644 packages/client/assets/room/furnitures/eraser/eraser-uv.png delete mode 100644 packages/client/assets/room/furnitures/eraser/eraser.blend delete mode 100644 packages/client/assets/room/furnitures/eraser/eraser.glb delete mode 100644 packages/client/assets/room/furnitures/facial-tissue/facial-tissue-uv.png delete mode 100644 packages/client/assets/room/furnitures/facial-tissue/facial-tissue.blend delete mode 100644 packages/client/assets/room/furnitures/facial-tissue/facial-tissue.glb delete mode 100644 packages/client/assets/room/furnitures/facial-tissue/facial-tissue.png delete mode 100644 packages/client/assets/room/furnitures/facial-tissue/facial-tissue.psd delete mode 100644 packages/client/assets/room/furnitures/fan/fan.blend delete mode 100644 packages/client/assets/room/furnitures/fan/fan.glb delete mode 100644 packages/client/assets/room/furnitures/holo-display/holo-display.blend delete mode 100644 packages/client/assets/room/furnitures/holo-display/holo-display.glb delete mode 100644 packages/client/assets/room/furnitures/holo-display/ray-uv.png delete mode 100644 packages/client/assets/room/furnitures/holo-display/ray.png delete mode 100644 packages/client/assets/room/furnitures/keyboard/keyboard.blend delete mode 100644 packages/client/assets/room/furnitures/keyboard/keyboard.glb delete mode 100644 packages/client/assets/room/furnitures/low-table/low-table.blend delete mode 100644 packages/client/assets/room/furnitures/low-table/low-table.glb delete mode 100644 packages/client/assets/room/furnitures/mat/mat.blend delete mode 100644 packages/client/assets/room/furnitures/mat/mat.glb delete mode 100644 packages/client/assets/room/furnitures/milk/milk-uv.png delete mode 100644 packages/client/assets/room/furnitures/milk/milk.blend delete mode 100644 packages/client/assets/room/furnitures/milk/milk.glb delete mode 100644 packages/client/assets/room/furnitures/milk/milk.png delete mode 100644 packages/client/assets/room/furnitures/milk/milk.psd delete mode 100644 packages/client/assets/room/furnitures/monitor/monitor.blend delete mode 100644 packages/client/assets/room/furnitures/monitor/monitor.glb delete mode 100644 packages/client/assets/room/furnitures/monitor/monitor.psd delete mode 100644 packages/client/assets/room/furnitures/monitor/screen-uv.png delete mode 100644 packages/client/assets/room/furnitures/monitor/screen.jpg delete mode 100644 packages/client/assets/room/furnitures/moon/moon.blend delete mode 100644 packages/client/assets/room/furnitures/moon/moon.glb delete mode 100644 packages/client/assets/room/furnitures/moon/moon.jpg delete mode 100644 packages/client/assets/room/furnitures/mousepad/mousepad.blend delete mode 100644 packages/client/assets/room/furnitures/mousepad/mousepad.glb delete mode 100644 packages/client/assets/room/furnitures/pc/motherboard-uv.png delete mode 100644 packages/client/assets/room/furnitures/pc/motherboard-uv.psd delete mode 100644 packages/client/assets/room/furnitures/pc/motherboard.jpg delete mode 100644 packages/client/assets/room/furnitures/pc/pc.blend delete mode 100644 packages/client/assets/room/furnitures/pc/pc.glb delete mode 100644 packages/client/assets/room/furnitures/pencil/pencil.blend delete mode 100644 packages/client/assets/room/furnitures/pencil/pencil.glb delete mode 100644 packages/client/assets/room/furnitures/photoframe/photo-uv.png delete mode 100644 packages/client/assets/room/furnitures/photoframe/photo.jpg delete mode 100644 packages/client/assets/room/furnitures/photoframe/photoframe.blend delete mode 100644 packages/client/assets/room/furnitures/photoframe/photoframe.glb delete mode 100644 packages/client/assets/room/furnitures/piano/piano.blend delete mode 100644 packages/client/assets/room/furnitures/piano/piano.glb delete mode 100644 packages/client/assets/room/furnitures/pinguin/pinguin.blend delete mode 100644 packages/client/assets/room/furnitures/pinguin/pinguin.glb delete mode 100644 packages/client/assets/room/furnitures/plant/plant-soil-uv.png delete mode 100644 packages/client/assets/room/furnitures/plant/plant-soil.png delete mode 100644 packages/client/assets/room/furnitures/plant/plant-soil.psd delete mode 100644 packages/client/assets/room/furnitures/plant/plant.blend delete mode 100644 packages/client/assets/room/furnitures/plant/plant.glb delete mode 100644 packages/client/assets/room/furnitures/plant2/plant2.blend delete mode 100644 packages/client/assets/room/furnitures/plant2/plant2.glb delete mode 100644 packages/client/assets/room/furnitures/plant2/soil.png delete mode 100644 packages/client/assets/room/furnitures/poster-h/poster-h.blend delete mode 100644 packages/client/assets/room/furnitures/poster-h/poster-h.glb delete mode 100644 packages/client/assets/room/furnitures/poster-h/uv.png delete mode 100644 packages/client/assets/room/furnitures/poster-v/poster-v.blend delete mode 100644 packages/client/assets/room/furnitures/poster-v/poster-v.glb delete mode 100644 packages/client/assets/room/furnitures/poster-v/uv.png delete mode 100644 packages/client/assets/room/furnitures/pudding/pudding.blend delete mode 100644 packages/client/assets/room/furnitures/pudding/pudding.glb delete mode 100644 packages/client/assets/room/furnitures/rubik-cube/rubik-cube.blend delete mode 100644 packages/client/assets/room/furnitures/rubik-cube/rubik-cube.glb delete mode 100644 packages/client/assets/room/furnitures/server/rack-uv.png delete mode 100644 packages/client/assets/room/furnitures/server/rack.png delete mode 100644 packages/client/assets/room/furnitures/server/server.blend delete mode 100644 packages/client/assets/room/furnitures/server/server.glb delete mode 100644 packages/client/assets/room/furnitures/server/server.png delete mode 100644 packages/client/assets/room/furnitures/server/uv.png delete mode 100644 packages/client/assets/room/furnitures/sofa/sofa.blend delete mode 100644 packages/client/assets/room/furnitures/sofa/sofa.glb delete mode 100644 packages/client/assets/room/furnitures/spiral/spiral.blend delete mode 100644 packages/client/assets/room/furnitures/spiral/spiral.glb delete mode 100644 packages/client/assets/room/furnitures/tv/screen-uv.png delete mode 100644 packages/client/assets/room/furnitures/tv/tv.blend delete mode 100644 packages/client/assets/room/furnitures/tv/tv.glb delete mode 100644 packages/client/assets/room/furnitures/wall-clock/wall-clock.blend delete mode 100644 packages/client/assets/room/furnitures/wall-clock/wall-clock.glb delete mode 100644 packages/client/assets/room/rooms/default/default.blend delete mode 100644 packages/client/assets/room/rooms/default/default.glb delete mode 100644 packages/client/assets/room/rooms/washitsu/husuma-uv.png delete mode 100644 packages/client/assets/room/rooms/washitsu/husuma.png delete mode 100644 packages/client/assets/room/rooms/washitsu/tatami-single1600.png delete mode 100644 packages/client/assets/room/rooms/washitsu/tatami-uv.png delete mode 100644 packages/client/assets/room/rooms/washitsu/tatami.afdesign delete mode 100644 packages/client/assets/room/rooms/washitsu/tatami.png delete mode 100644 packages/client/assets/room/rooms/washitsu/washitsu.blend delete mode 100644 packages/client/assets/room/rooms/washitsu/washitsu.glb delete mode 100644 packages/client/src/pages/room/preview.vue delete mode 100644 packages/client/src/pages/room/room.vue delete mode 100644 packages/client/src/scripts/room/furniture.ts delete mode 100644 packages/client/src/scripts/room/furnitures.json5 delete mode 100644 packages/client/src/scripts/room/room.ts (limited to 'packages/client/src/pages') diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fd61442e4..99ab40f761 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,16 @@ --> +## 12.x.x (unreleased) + +### Changes +- Room機能が削除されました + - 後日別リポジトリとして復活予定です + +### Improvements + +### Bugfixes + ## 12.101.1 (2021/12/29) ### Bugfixes diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a16a76abcf..c7a4773bc7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -90,17 +90,6 @@ Misskey uses Vue(v3) as its front-end framework. **When creating a new component, please use the Composition API (with [setup sugar](https://v3.vuejs.org/api/sfc-script-setup.html) and [ref sugar](https://github.com/vuejs/rfcs/discussions/369)) instead of the Options API.** Some of the existing components are implemented in the Options API, but it is an old implementation. Refactors that migrate those components to the Composition API are also welcome. -## Adding MisskeyRoom items -* Use English for material, object and texture names. -* Use meter for unit of length. -* Your PR should include all source files (e.g. `.png`, `.blend`) of your models (for later editing). -* Your PR must include the glTF binary files (`.glb`) of your models. -* Add a locale key `room.furnitures.YOUR_ITEM` at [`/locales/ja-JP.yml`](/locales/ja-JP.yml). -* Add a furniture definition at [`src/client/scripts/room/furnitures.json5`](src/client/scripts/room/furnitures.json5). - -If you have no experience on 3D modeling, we suggest to use the free 3DCG software [Blender](https://www.blender.org/). -You can find information on glTF 2.0 at [glTF 2.0 — Blender Manual]( https://docs.blender.org/manual/en/dev/addons/io_scene_gltf2.html). - ## Notes ### How to resolve conflictions occurred at yarn.lock? diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 74964e366a..5ba09c4a81 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -537,7 +537,6 @@ yourAccountSuspendedDescription: "このアカウントは、サーバーの利 menu: "メニュー" divider: "分割線" addItem: "項目を追加" -rooms: "ルーム" relays: "リレー" addRelay: "リレーの追加" inboxUrl: "inboxのURL" @@ -1362,69 +1361,6 @@ _timelines: social: "ソーシャル" global: "グローバル" -_rooms: - roomOf: "{user}のルーム" - addFurniture: "家具を置く" - translate: "移動" - rotate: "回転" - exit: "戻る" - remove: "しまう" - clear: "片付け" - clearConfirm: "全ての家具をしまいますか?" - leaveConfirm: "未保存の変更があります、移動しますか?" - chooseImage: "画像を選択" - roomType: "部屋のタイプ" - carpetColor: "床の色" - _roomType: - default: "デフォルト" - washitsu: "和室" - _furnitures: - milk: "牛乳パック" - bed: "ベッド" - low-table: "ローテーブル" - desk: "デスク" - chair: "チェア" - chair2: "チェア2" - fan: "換気扇" - pc: "パソコン" - plant: "観葉植物" - plant2: "観葉植物2" - eraser: "消しゴム" - pencil: "鉛筆" - pudding: "プリン" - cardboard-box: "段ボール箱" - cardboard-box2: "段ボール箱2" - cardboard-box3: "段ボール箱3" - book: "本" - book2: "本2" - piano: "ピアノ" - facial-tissue: "ティッシュボックス" - server: "サーバー" - moon: "月" - corkboard: "コルクボード" - mousepad: "マウスパッド" - monitor: "モニター" - keyboard: "キーボード" - carpet-stripe: "カーペット(縞)" - mat: "マット" - color-box: "カラーボックス" - wall-clock: "壁掛け時計" - photoframe: "額縁" - cube: "キューブ" - tv: "テレビ" - pinguin: "ピンギン" - rubik-cube: "ルービックキューブ" - poster-h: "ポスター(横長)" - poster-v: "ポスター(縦長)" - sofa: "ソファ" - spiral: "螺旋階段" - bin: "ゴミ箱" - cup-noodle: "カップ麺" - holo-display: "ホログラフィックディスプレイ" - energy-drink: "エナジードリンク" - doll-ai: "藍ちゃん人形" - banknote: "札束" - _pages: newPage: "ページの作成" editPage: "ページの編集" diff --git a/packages/backend/src/models/entities/user-profile.ts b/packages/backend/src/models/entities/user-profile.ts index eb8cdadd19..d8317de8d3 100644 --- a/packages/backend/src/models/entities/user-profile.ts +++ b/packages/backend/src/models/entities/user-profile.ts @@ -124,6 +124,7 @@ export class UserProfile { }) public clientData: Record; + // TODO: そのうち消す @Column('jsonb', { default: {}, comment: 'The room data of the User.', diff --git a/packages/backend/src/server/api/endpoints/room/show.ts b/packages/backend/src/server/api/endpoints/room/show.ts deleted file mode 100644 index a7193372ff..0000000000 --- a/packages/backend/src/server/api/endpoints/room/show.ts +++ /dev/null @@ -1,160 +0,0 @@ -import $ from 'cafy'; -import define from '../../define'; -import { ApiError } from '../../error'; -import { Users, UserProfiles } from '@/models/index'; -import { ID } from '@/misc/cafy-id'; -import { toPunyNullable } from '@/misc/convert-host'; - -export const meta = { - tags: ['room'], - - requireCredential: false as const, - - params: { - userId: { - validator: $.optional.type(ID), - }, - - username: { - validator: $.optional.str, - }, - - host: { - validator: $.optional.nullable.str, - }, - }, - - errors: { - noSuchUser: { - message: 'No such user.', - code: 'NO_SUCH_USER', - id: '7ad3fa3e-5e12-42f0-b23a-f3d13f10ee4b', - }, - }, - - res: { - type: 'object' as const, - optional: false as const, nullable: false as const, - properties: { - roomType: { - type: 'string' as const, - optional: false as const, nullable: false as const, - enum: ['default', 'washitsu'], - }, - furnitures: { - type: 'array' as const, - optional: false as const, nullable: false as const, - items: { - type: 'object' as const, - optional: false as const, nullable: false as const, - properties: { - id: { - type: 'string' as const, - optional: false as const, nullable: false as const, - }, - type: { - type: 'string' as const, - optional: false as const, nullable: false as const, - }, - props: { - type: 'object' as const, - optional: true as const, nullable: false as const, - }, - position: { - type: 'object' as const, - optional: false as const, nullable: false as const, - properties: { - x: { - type: 'number' as const, - optional: false as const, nullable: false as const, - }, - y: { - type: 'number' as const, - optional: false as const, nullable: false as const, - }, - z: { - type: 'number' as const, - optional: false as const, nullable: false as const, - }, - }, - }, - rotation: { - type: 'object' as const, - optional: false as const, nullable: false as const, - properties: { - x: { - type: 'number' as const, - optional: false as const, nullable: false as const, - }, - y: { - type: 'number' as const, - optional: false as const, nullable: false as const, - }, - z: { - type: 'number' as const, - optional: false as const, nullable: false as const, - }, - }, - }, - }, - }, - }, - carpetColor: { - type: 'string' as const, - optional: false as const, nullable: false as const, - format: 'hex', - example: '#85CAF0', - }, - }, - }, -}; - -// eslint-disable-next-line import/no-default-export -export default define(meta, async (ps, me) => { - const user = await Users.findOne(ps.userId != null - ? { id: ps.userId } - : { usernameLower: ps.username!.toLowerCase(), host: toPunyNullable(ps.host) }); - - if (user == null) { - throw new ApiError(meta.errors.noSuchUser); - } - - const profile = await UserProfiles.findOneOrFail(user.id); - - if (profile.room.furnitures == null) { - await UserProfiles.update(user.id, { - room: { - furnitures: [], - ...profile.room, - }, - }); - - profile.room.furnitures = []; - } - - if (profile.room.roomType == null) { - const initialType = 'default'; - await UserProfiles.update(user.id, { - room: { - roomType: initialType as any, - ...profile.room, - }, - }); - - profile.room.roomType = initialType; - } - - if (profile.room.carpetColor == null) { - const initialColor = '#85CAF0'; - await UserProfiles.update(user.id, { - room: { - carpetColor: initialColor as any, - ...profile.room, - }, - }); - - profile.room.carpetColor = initialColor; - } - - return profile.room; -}); diff --git a/packages/backend/src/server/api/endpoints/room/update.ts b/packages/backend/src/server/api/endpoints/room/update.ts deleted file mode 100644 index e2b18a8ab9..0000000000 --- a/packages/backend/src/server/api/endpoints/room/update.ts +++ /dev/null @@ -1,52 +0,0 @@ -import $ from 'cafy'; -import { publishMainStream } from '@/services/stream'; -import define from '../../define'; -import { Users, UserProfiles } from '@/models/index'; - -export const meta = { - tags: ['room'], - - requireCredential: true as const, - - params: { - room: { - validator: $.obj({ - furnitures: $.arr($.obj({ - id: $.str, - type: $.str, - position: $.obj({ - x: $.num, - y: $.num, - z: $.num, - }), - rotation: $.obj({ - x: $.num, - y: $.num, - z: $.num, - }), - props: $.optional.nullable.obj(), - })), - roomType: $.str, - carpetColor: $.str, - }), - }, - }, -}; - -// eslint-disable-next-line import/no-default-export -export default define(meta, async (ps, user) => { - await UserProfiles.update(user.id, { - room: ps.room as any, - }); - - const iObj = await Users.pack(user.id, user, { - detail: true, - includeSecrets: true, - }); - - // Publish meUpdated event - publishMainStream(user.id, 'meUpdated', iObj); - - // TODO: レスポンスがおかしいと思う by YuzuRyo61 - return iObj; -}); diff --git a/packages/client/assets/room/furnitures/banknote/banknote.blend b/packages/client/assets/room/furnitures/banknote/banknote.blend deleted file mode 100644 index 60b1968a29..0000000000 Binary files a/packages/client/assets/room/furnitures/banknote/banknote.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/banknote/banknote.glb b/packages/client/assets/room/furnitures/banknote/banknote.glb deleted file mode 100644 index f4ef0b91e7..0000000000 Binary files a/packages/client/assets/room/furnitures/banknote/banknote.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/banknote/tex.png b/packages/client/assets/room/furnitures/banknote/tex.png deleted file mode 100644 index 9106dc1457..0000000000 Binary files a/packages/client/assets/room/furnitures/banknote/tex.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/bed/bed.blend b/packages/client/assets/room/furnitures/bed/bed.blend deleted file mode 100644 index 731df76d0c..0000000000 Binary files a/packages/client/assets/room/furnitures/bed/bed.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/bed/bed.glb b/packages/client/assets/room/furnitures/bed/bed.glb deleted file mode 100644 index f35ecb9ef4..0000000000 Binary files a/packages/client/assets/room/furnitures/bed/bed.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/bin/bin.blend b/packages/client/assets/room/furnitures/bin/bin.blend deleted file mode 100644 index 8d459a0869..0000000000 Binary files a/packages/client/assets/room/furnitures/bin/bin.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/bin/bin.glb b/packages/client/assets/room/furnitures/bin/bin.glb deleted file mode 100644 index b45f203802..0000000000 Binary files a/packages/client/assets/room/furnitures/bin/bin.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/book/book.blend b/packages/client/assets/room/furnitures/book/book.blend deleted file mode 100644 index 0d4899d4ae..0000000000 Binary files a/packages/client/assets/room/furnitures/book/book.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/book/book.glb b/packages/client/assets/room/furnitures/book/book.glb deleted file mode 100644 index 546893da06..0000000000 Binary files a/packages/client/assets/room/furnitures/book/book.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/book2/barcode.png b/packages/client/assets/room/furnitures/book2/barcode.png deleted file mode 100644 index 37cfe5add3..0000000000 Binary files a/packages/client/assets/room/furnitures/book2/barcode.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/book2/book2.blend b/packages/client/assets/room/furnitures/book2/book2.blend deleted file mode 100644 index e0fdb48101..0000000000 Binary files a/packages/client/assets/room/furnitures/book2/book2.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/book2/book2.glb b/packages/client/assets/room/furnitures/book2/book2.glb deleted file mode 100644 index 2b26402f8c..0000000000 Binary files a/packages/client/assets/room/furnitures/book2/book2.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/book2/texture.afdesign b/packages/client/assets/room/furnitures/book2/texture.afdesign deleted file mode 100644 index b63771607a..0000000000 Binary files a/packages/client/assets/room/furnitures/book2/texture.afdesign and /dev/null differ diff --git a/packages/client/assets/room/furnitures/book2/texture.png b/packages/client/assets/room/furnitures/book2/texture.png deleted file mode 100644 index 5aa84f0340..0000000000 Binary files a/packages/client/assets/room/furnitures/book2/texture.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/book2/uv.png b/packages/client/assets/room/furnitures/book2/uv.png deleted file mode 100644 index 61c4fb0400..0000000000 Binary files a/packages/client/assets/room/furnitures/book2/uv.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/cardboard-box/cardboard-box.blend b/packages/client/assets/room/furnitures/cardboard-box/cardboard-box.blend deleted file mode 100644 index 3a528de32a..0000000000 Binary files a/packages/client/assets/room/furnitures/cardboard-box/cardboard-box.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/cardboard-box/cardboard-box.glb b/packages/client/assets/room/furnitures/cardboard-box/cardboard-box.glb deleted file mode 100644 index bed372e94f..0000000000 Binary files a/packages/client/assets/room/furnitures/cardboard-box/cardboard-box.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/cardboard-box2/cardboard-box2.blend b/packages/client/assets/room/furnitures/cardboard-box2/cardboard-box2.blend deleted file mode 100644 index 5f146267ac..0000000000 Binary files a/packages/client/assets/room/furnitures/cardboard-box2/cardboard-box2.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/cardboard-box2/cardboard-box2.glb b/packages/client/assets/room/furnitures/cardboard-box2/cardboard-box2.glb deleted file mode 100644 index 85fcb5c0b6..0000000000 Binary files a/packages/client/assets/room/furnitures/cardboard-box2/cardboard-box2.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/cardboard-box2/texture.png b/packages/client/assets/room/furnitures/cardboard-box2/texture.png deleted file mode 100644 index e498d8f65b..0000000000 Binary files a/packages/client/assets/room/furnitures/cardboard-box2/texture.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/cardboard-box2/uv.png b/packages/client/assets/room/furnitures/cardboard-box2/uv.png deleted file mode 100644 index d547843ee0..0000000000 Binary files a/packages/client/assets/room/furnitures/cardboard-box2/uv.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/cardboard-box3/cardboard-box3.blend b/packages/client/assets/room/furnitures/cardboard-box3/cardboard-box3.blend deleted file mode 100644 index 00681a3cfd..0000000000 Binary files a/packages/client/assets/room/furnitures/cardboard-box3/cardboard-box3.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/cardboard-box3/cardboard-box3.glb b/packages/client/assets/room/furnitures/cardboard-box3/cardboard-box3.glb deleted file mode 100644 index 1ef0427689..0000000000 Binary files a/packages/client/assets/room/furnitures/cardboard-box3/cardboard-box3.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/cardboard-box3/texture.png b/packages/client/assets/room/furnitures/cardboard-box3/texture.png deleted file mode 100644 index 56c914cb9d..0000000000 Binary files a/packages/client/assets/room/furnitures/cardboard-box3/texture.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/cardboard-box3/texture.xcf b/packages/client/assets/room/furnitures/cardboard-box3/texture.xcf deleted file mode 100644 index 7ffb3e3439..0000000000 Binary files a/packages/client/assets/room/furnitures/cardboard-box3/texture.xcf and /dev/null differ diff --git a/packages/client/assets/room/furnitures/cardboard-box3/uv.png b/packages/client/assets/room/furnitures/cardboard-box3/uv.png deleted file mode 100644 index 797ac509db..0000000000 Binary files a/packages/client/assets/room/furnitures/cardboard-box3/uv.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/carpet-stripe/carpet-stripe.blend b/packages/client/assets/room/furnitures/carpet-stripe/carpet-stripe.blend deleted file mode 100644 index 750343d4f0..0000000000 Binary files a/packages/client/assets/room/furnitures/carpet-stripe/carpet-stripe.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/carpet-stripe/carpet-stripe.glb b/packages/client/assets/room/furnitures/carpet-stripe/carpet-stripe.glb deleted file mode 100644 index 3066a69e35..0000000000 Binary files a/packages/client/assets/room/furnitures/carpet-stripe/carpet-stripe.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/chair/chair.blend b/packages/client/assets/room/furnitures/chair/chair.blend deleted file mode 100644 index 79c29a8401..0000000000 Binary files a/packages/client/assets/room/furnitures/chair/chair.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/chair/chair.glb b/packages/client/assets/room/furnitures/chair/chair.glb deleted file mode 100644 index 08ee1a0bb0..0000000000 Binary files a/packages/client/assets/room/furnitures/chair/chair.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/chair2/chair2.blend b/packages/client/assets/room/furnitures/chair2/chair2.blend deleted file mode 100644 index c6a1acd96f..0000000000 Binary files a/packages/client/assets/room/furnitures/chair2/chair2.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/chair2/chair2.glb b/packages/client/assets/room/furnitures/chair2/chair2.glb deleted file mode 100644 index 5ea2f3518b..0000000000 Binary files a/packages/client/assets/room/furnitures/chair2/chair2.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/color-box/color-box.blend b/packages/client/assets/room/furnitures/color-box/color-box.blend deleted file mode 100644 index f96a4ff766..0000000000 Binary files a/packages/client/assets/room/furnitures/color-box/color-box.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/color-box/color-box.glb b/packages/client/assets/room/furnitures/color-box/color-box.glb deleted file mode 100644 index 43f2abcae8..0000000000 Binary files a/packages/client/assets/room/furnitures/color-box/color-box.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/corkboard/corkboard.blend b/packages/client/assets/room/furnitures/corkboard/corkboard.blend deleted file mode 100644 index 9a7e1878cd..0000000000 Binary files a/packages/client/assets/room/furnitures/corkboard/corkboard.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/corkboard/corkboard.glb b/packages/client/assets/room/furnitures/corkboard/corkboard.glb deleted file mode 100644 index fee108fb91..0000000000 Binary files a/packages/client/assets/room/furnitures/corkboard/corkboard.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/cube/cube.blend b/packages/client/assets/room/furnitures/cube/cube.blend deleted file mode 100644 index 1af5bf40a9..0000000000 Binary files a/packages/client/assets/room/furnitures/cube/cube.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/cube/cube.glb b/packages/client/assets/room/furnitures/cube/cube.glb deleted file mode 100644 index 4ac8b6036d..0000000000 Binary files a/packages/client/assets/room/furnitures/cube/cube.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/cup-noodle/cup-noodle.blend b/packages/client/assets/room/furnitures/cup-noodle/cup-noodle.blend deleted file mode 100644 index 37ca8868c7..0000000000 Binary files a/packages/client/assets/room/furnitures/cup-noodle/cup-noodle.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/cup-noodle/cup-noodle.glb b/packages/client/assets/room/furnitures/cup-noodle/cup-noodle.glb deleted file mode 100644 index 58efb1b3b4..0000000000 Binary files a/packages/client/assets/room/furnitures/cup-noodle/cup-noodle.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/cup-noodle/noodle.png b/packages/client/assets/room/furnitures/cup-noodle/noodle.png deleted file mode 100644 index 1d74e0bbe7..0000000000 Binary files a/packages/client/assets/room/furnitures/cup-noodle/noodle.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/desk/desk.blend b/packages/client/assets/room/furnitures/desk/desk.blend deleted file mode 100644 index c88d01f0b2..0000000000 Binary files a/packages/client/assets/room/furnitures/desk/desk.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/desk/desk.glb b/packages/client/assets/room/furnitures/desk/desk.glb deleted file mode 100644 index 4a58513095..0000000000 Binary files a/packages/client/assets/room/furnitures/desk/desk.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/doll-ai/doll-ai.blend b/packages/client/assets/room/furnitures/doll-ai/doll-ai.blend deleted file mode 100644 index a912231ecb..0000000000 Binary files a/packages/client/assets/room/furnitures/doll-ai/doll-ai.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/doll-ai/doll-ai.glb b/packages/client/assets/room/furnitures/doll-ai/doll-ai.glb deleted file mode 100644 index ec55a7bd7b..0000000000 Binary files a/packages/client/assets/room/furnitures/doll-ai/doll-ai.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/doll-ai/doll_ai_tex.png b/packages/client/assets/room/furnitures/doll-ai/doll_ai_tex.png deleted file mode 100644 index 370ca5f75b..0000000000 Binary files a/packages/client/assets/room/furnitures/doll-ai/doll_ai_tex.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/energy-drink/energy-drink.blend b/packages/client/assets/room/furnitures/energy-drink/energy-drink.blend deleted file mode 100644 index 65fc41273e..0000000000 Binary files a/packages/client/assets/room/furnitures/energy-drink/energy-drink.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/energy-drink/energy-drink.glb b/packages/client/assets/room/furnitures/energy-drink/energy-drink.glb deleted file mode 100644 index 7fb1c27836..0000000000 Binary files a/packages/client/assets/room/furnitures/energy-drink/energy-drink.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/energy-drink/texture.afdesign b/packages/client/assets/room/furnitures/energy-drink/texture.afdesign deleted file mode 100644 index 8c117a49b1..0000000000 Binary files a/packages/client/assets/room/furnitures/energy-drink/texture.afdesign and /dev/null differ diff --git a/packages/client/assets/room/furnitures/energy-drink/texture.png b/packages/client/assets/room/furnitures/energy-drink/texture.png deleted file mode 100644 index 484ca0f96f..0000000000 Binary files a/packages/client/assets/room/furnitures/energy-drink/texture.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/energy-drink/uv.png b/packages/client/assets/room/furnitures/energy-drink/uv.png deleted file mode 100644 index 2a3f20c999..0000000000 Binary files a/packages/client/assets/room/furnitures/energy-drink/uv.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/eraser/cover.png b/packages/client/assets/room/furnitures/eraser/cover.png deleted file mode 100644 index 932a3fc62e..0000000000 Binary files a/packages/client/assets/room/furnitures/eraser/cover.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/eraser/cover.psd b/packages/client/assets/room/furnitures/eraser/cover.psd deleted file mode 100644 index c393337833..0000000000 Binary files a/packages/client/assets/room/furnitures/eraser/cover.psd and /dev/null differ diff --git a/packages/client/assets/room/furnitures/eraser/eraser-uv.png b/packages/client/assets/room/furnitures/eraser/eraser-uv.png deleted file mode 100644 index 89e4ea4c45..0000000000 Binary files a/packages/client/assets/room/furnitures/eraser/eraser-uv.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/eraser/eraser.blend b/packages/client/assets/room/furnitures/eraser/eraser.blend deleted file mode 100644 index 103c54fbae..0000000000 Binary files a/packages/client/assets/room/furnitures/eraser/eraser.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/eraser/eraser.glb b/packages/client/assets/room/furnitures/eraser/eraser.glb deleted file mode 100644 index 016b60df20..0000000000 Binary files a/packages/client/assets/room/furnitures/eraser/eraser.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/facial-tissue/facial-tissue-uv.png b/packages/client/assets/room/furnitures/facial-tissue/facial-tissue-uv.png deleted file mode 100644 index e3865ad15e..0000000000 Binary files a/packages/client/assets/room/furnitures/facial-tissue/facial-tissue-uv.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.blend b/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.blend deleted file mode 100644 index d59f87c1ee..0000000000 Binary files a/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.glb b/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.glb deleted file mode 100644 index 48b36ef347..0000000000 Binary files a/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.png b/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.png deleted file mode 100644 index 7cee4b1859..0000000000 Binary files a/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.psd b/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.psd deleted file mode 100644 index cd59fc007b..0000000000 Binary files a/packages/client/assets/room/furnitures/facial-tissue/facial-tissue.psd and /dev/null differ diff --git a/packages/client/assets/room/furnitures/fan/fan.blend b/packages/client/assets/room/furnitures/fan/fan.blend deleted file mode 100644 index 8c8106e5fe..0000000000 Binary files a/packages/client/assets/room/furnitures/fan/fan.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/fan/fan.glb b/packages/client/assets/room/furnitures/fan/fan.glb deleted file mode 100644 index d9367f3534..0000000000 Binary files a/packages/client/assets/room/furnitures/fan/fan.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/holo-display/holo-display.blend b/packages/client/assets/room/furnitures/holo-display/holo-display.blend deleted file mode 100644 index 56d2e1f819..0000000000 Binary files a/packages/client/assets/room/furnitures/holo-display/holo-display.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/holo-display/holo-display.glb b/packages/client/assets/room/furnitures/holo-display/holo-display.glb deleted file mode 100644 index 4d042a59b3..0000000000 Binary files a/packages/client/assets/room/furnitures/holo-display/holo-display.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/holo-display/ray-uv.png b/packages/client/assets/room/furnitures/holo-display/ray-uv.png deleted file mode 100644 index aa7e817e0f..0000000000 Binary files a/packages/client/assets/room/furnitures/holo-display/ray-uv.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/holo-display/ray.png b/packages/client/assets/room/furnitures/holo-display/ray.png deleted file mode 100644 index 6a5d24e143..0000000000 Binary files a/packages/client/assets/room/furnitures/holo-display/ray.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/keyboard/keyboard.blend b/packages/client/assets/room/furnitures/keyboard/keyboard.blend deleted file mode 100644 index ab33d134b3..0000000000 Binary files a/packages/client/assets/room/furnitures/keyboard/keyboard.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/keyboard/keyboard.glb b/packages/client/assets/room/furnitures/keyboard/keyboard.glb deleted file mode 100644 index 15dc69f47a..0000000000 Binary files a/packages/client/assets/room/furnitures/keyboard/keyboard.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/low-table/low-table.blend b/packages/client/assets/room/furnitures/low-table/low-table.blend deleted file mode 100644 index e1592174d9..0000000000 Binary files a/packages/client/assets/room/furnitures/low-table/low-table.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/low-table/low-table.glb b/packages/client/assets/room/furnitures/low-table/low-table.glb deleted file mode 100644 index c69bf35d7b..0000000000 Binary files a/packages/client/assets/room/furnitures/low-table/low-table.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/mat/mat.blend b/packages/client/assets/room/furnitures/mat/mat.blend deleted file mode 100644 index a1e1a68c55..0000000000 Binary files a/packages/client/assets/room/furnitures/mat/mat.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/mat/mat.glb b/packages/client/assets/room/furnitures/mat/mat.glb deleted file mode 100644 index 87ccd44e1a..0000000000 Binary files a/packages/client/assets/room/furnitures/mat/mat.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/milk/milk-uv.png b/packages/client/assets/room/furnitures/milk/milk-uv.png deleted file mode 100644 index 258fd54638..0000000000 Binary files a/packages/client/assets/room/furnitures/milk/milk-uv.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/milk/milk.blend b/packages/client/assets/room/furnitures/milk/milk.blend deleted file mode 100644 index 2df508d5b9..0000000000 Binary files a/packages/client/assets/room/furnitures/milk/milk.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/milk/milk.glb b/packages/client/assets/room/furnitures/milk/milk.glb deleted file mode 100644 index b335fe3d02..0000000000 Binary files a/packages/client/assets/room/furnitures/milk/milk.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/milk/milk.png b/packages/client/assets/room/furnitures/milk/milk.png deleted file mode 100644 index 35181c8c8c..0000000000 Binary files a/packages/client/assets/room/furnitures/milk/milk.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/milk/milk.psd b/packages/client/assets/room/furnitures/milk/milk.psd deleted file mode 100644 index f31e439277..0000000000 Binary files a/packages/client/assets/room/furnitures/milk/milk.psd and /dev/null differ diff --git a/packages/client/assets/room/furnitures/monitor/monitor.blend b/packages/client/assets/room/furnitures/monitor/monitor.blend deleted file mode 100644 index 6c042ccdd8..0000000000 Binary files a/packages/client/assets/room/furnitures/monitor/monitor.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/monitor/monitor.glb b/packages/client/assets/room/furnitures/monitor/monitor.glb deleted file mode 100644 index fc33286a15..0000000000 Binary files a/packages/client/assets/room/furnitures/monitor/monitor.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/monitor/monitor.psd b/packages/client/assets/room/furnitures/monitor/monitor.psd deleted file mode 100644 index 57afff9cd9..0000000000 Binary files a/packages/client/assets/room/furnitures/monitor/monitor.psd and /dev/null differ diff --git a/packages/client/assets/room/furnitures/monitor/screen-uv.png b/packages/client/assets/room/furnitures/monitor/screen-uv.png deleted file mode 100644 index 35f74de8aa..0000000000 Binary files a/packages/client/assets/room/furnitures/monitor/screen-uv.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/monitor/screen.jpg b/packages/client/assets/room/furnitures/monitor/screen.jpg deleted file mode 100644 index 4004a1ede9..0000000000 Binary files a/packages/client/assets/room/furnitures/monitor/screen.jpg and /dev/null differ diff --git a/packages/client/assets/room/furnitures/moon/moon.blend b/packages/client/assets/room/furnitures/moon/moon.blend deleted file mode 100644 index 4ff3deab8e..0000000000 Binary files a/packages/client/assets/room/furnitures/moon/moon.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/moon/moon.glb b/packages/client/assets/room/furnitures/moon/moon.glb deleted file mode 100644 index 07fa7e4c02..0000000000 Binary files a/packages/client/assets/room/furnitures/moon/moon.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/moon/moon.jpg b/packages/client/assets/room/furnitures/moon/moon.jpg deleted file mode 100644 index 8988ac64b9..0000000000 Binary files a/packages/client/assets/room/furnitures/moon/moon.jpg and /dev/null differ diff --git a/packages/client/assets/room/furnitures/mousepad/mousepad.blend b/packages/client/assets/room/furnitures/mousepad/mousepad.blend deleted file mode 100644 index 14bd139c94..0000000000 Binary files a/packages/client/assets/room/furnitures/mousepad/mousepad.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/mousepad/mousepad.glb b/packages/client/assets/room/furnitures/mousepad/mousepad.glb deleted file mode 100644 index 681ada49cd..0000000000 Binary files a/packages/client/assets/room/furnitures/mousepad/mousepad.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/pc/motherboard-uv.png b/packages/client/assets/room/furnitures/pc/motherboard-uv.png deleted file mode 100644 index 355009fe7c..0000000000 Binary files a/packages/client/assets/room/furnitures/pc/motherboard-uv.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/pc/motherboard-uv.psd b/packages/client/assets/room/furnitures/pc/motherboard-uv.psd deleted file mode 100644 index 971f33f79e..0000000000 Binary files a/packages/client/assets/room/furnitures/pc/motherboard-uv.psd and /dev/null differ diff --git a/packages/client/assets/room/furnitures/pc/motherboard.jpg b/packages/client/assets/room/furnitures/pc/motherboard.jpg deleted file mode 100644 index d894e4efcf..0000000000 Binary files a/packages/client/assets/room/furnitures/pc/motherboard.jpg and /dev/null differ diff --git a/packages/client/assets/room/furnitures/pc/pc.blend b/packages/client/assets/room/furnitures/pc/pc.blend deleted file mode 100644 index 13dfec6ccc..0000000000 Binary files a/packages/client/assets/room/furnitures/pc/pc.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/pc/pc.glb b/packages/client/assets/room/furnitures/pc/pc.glb deleted file mode 100644 index 44a48b18ae..0000000000 Binary files a/packages/client/assets/room/furnitures/pc/pc.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/pencil/pencil.blend b/packages/client/assets/room/furnitures/pencil/pencil.blend deleted file mode 100644 index 0fc6bdd776..0000000000 Binary files a/packages/client/assets/room/furnitures/pencil/pencil.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/pencil/pencil.glb b/packages/client/assets/room/furnitures/pencil/pencil.glb deleted file mode 100644 index a938b5cdcc..0000000000 Binary files a/packages/client/assets/room/furnitures/pencil/pencil.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/photoframe/photo-uv.png b/packages/client/assets/room/furnitures/photoframe/photo-uv.png deleted file mode 100644 index 9b94906413..0000000000 Binary files a/packages/client/assets/room/furnitures/photoframe/photo-uv.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/photoframe/photo.jpg b/packages/client/assets/room/furnitures/photoframe/photo.jpg deleted file mode 100644 index af14f0f36a..0000000000 Binary files a/packages/client/assets/room/furnitures/photoframe/photo.jpg and /dev/null differ diff --git a/packages/client/assets/room/furnitures/photoframe/photoframe.blend b/packages/client/assets/room/furnitures/photoframe/photoframe.blend deleted file mode 100644 index 4224cde45b..0000000000 Binary files a/packages/client/assets/room/furnitures/photoframe/photoframe.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/photoframe/photoframe.glb b/packages/client/assets/room/furnitures/photoframe/photoframe.glb deleted file mode 100644 index 4255a77de6..0000000000 Binary files a/packages/client/assets/room/furnitures/photoframe/photoframe.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/piano/piano.blend b/packages/client/assets/room/furnitures/piano/piano.blend deleted file mode 100644 index 7653cdf672..0000000000 Binary files a/packages/client/assets/room/furnitures/piano/piano.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/piano/piano.glb b/packages/client/assets/room/furnitures/piano/piano.glb deleted file mode 100644 index 7242e78ceb..0000000000 Binary files a/packages/client/assets/room/furnitures/piano/piano.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/pinguin/pinguin.blend b/packages/client/assets/room/furnitures/pinguin/pinguin.blend deleted file mode 100644 index 514c713e4c..0000000000 Binary files a/packages/client/assets/room/furnitures/pinguin/pinguin.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/pinguin/pinguin.glb b/packages/client/assets/room/furnitures/pinguin/pinguin.glb deleted file mode 100644 index 6df34c06e9..0000000000 Binary files a/packages/client/assets/room/furnitures/pinguin/pinguin.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/plant/plant-soil-uv.png b/packages/client/assets/room/furnitures/plant/plant-soil-uv.png deleted file mode 100644 index d4971a896c..0000000000 Binary files a/packages/client/assets/room/furnitures/plant/plant-soil-uv.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/plant/plant-soil.png b/packages/client/assets/room/furnitures/plant/plant-soil.png deleted file mode 100644 index e79ccd240e..0000000000 Binary files a/packages/client/assets/room/furnitures/plant/plant-soil.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/plant/plant-soil.psd b/packages/client/assets/room/furnitures/plant/plant-soil.psd deleted file mode 100644 index 1457b7ea5b..0000000000 Binary files a/packages/client/assets/room/furnitures/plant/plant-soil.psd and /dev/null differ diff --git a/packages/client/assets/room/furnitures/plant/plant.blend b/packages/client/assets/room/furnitures/plant/plant.blend deleted file mode 100644 index aa38c7b54e..0000000000 Binary files a/packages/client/assets/room/furnitures/plant/plant.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/plant/plant.glb b/packages/client/assets/room/furnitures/plant/plant.glb deleted file mode 100644 index 38422b4a9b..0000000000 Binary files a/packages/client/assets/room/furnitures/plant/plant.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/plant2/plant2.blend b/packages/client/assets/room/furnitures/plant2/plant2.blend deleted file mode 100644 index 6592c5d98d..0000000000 Binary files a/packages/client/assets/room/furnitures/plant2/plant2.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/plant2/plant2.glb b/packages/client/assets/room/furnitures/plant2/plant2.glb deleted file mode 100644 index 223e6f5834..0000000000 Binary files a/packages/client/assets/room/furnitures/plant2/plant2.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/plant2/soil.png b/packages/client/assets/room/furnitures/plant2/soil.png deleted file mode 100644 index e79ccd240e..0000000000 Binary files a/packages/client/assets/room/furnitures/plant2/soil.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/poster-h/poster-h.blend b/packages/client/assets/room/furnitures/poster-h/poster-h.blend deleted file mode 100644 index 40f944f3c1..0000000000 Binary files a/packages/client/assets/room/furnitures/poster-h/poster-h.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/poster-h/poster-h.glb b/packages/client/assets/room/furnitures/poster-h/poster-h.glb deleted file mode 100644 index c6032c1009..0000000000 Binary files a/packages/client/assets/room/furnitures/poster-h/poster-h.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/poster-h/uv.png b/packages/client/assets/room/furnitures/poster-h/uv.png deleted file mode 100644 index f854231e0b..0000000000 Binary files a/packages/client/assets/room/furnitures/poster-h/uv.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/poster-v/poster-v.blend b/packages/client/assets/room/furnitures/poster-v/poster-v.blend deleted file mode 100644 index 07fe971634..0000000000 Binary files a/packages/client/assets/room/furnitures/poster-v/poster-v.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/poster-v/poster-v.glb b/packages/client/assets/room/furnitures/poster-v/poster-v.glb deleted file mode 100644 index 6e3782f193..0000000000 Binary files a/packages/client/assets/room/furnitures/poster-v/poster-v.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/poster-v/uv.png b/packages/client/assets/room/furnitures/poster-v/uv.png deleted file mode 100644 index 7bb2bf809e..0000000000 Binary files a/packages/client/assets/room/furnitures/poster-v/uv.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/pudding/pudding.blend b/packages/client/assets/room/furnitures/pudding/pudding.blend deleted file mode 100644 index bba40ce161..0000000000 Binary files a/packages/client/assets/room/furnitures/pudding/pudding.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/pudding/pudding.glb b/packages/client/assets/room/furnitures/pudding/pudding.glb deleted file mode 100644 index 06c9ed80cc..0000000000 Binary files a/packages/client/assets/room/furnitures/pudding/pudding.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/rubik-cube/rubik-cube.blend b/packages/client/assets/room/furnitures/rubik-cube/rubik-cube.blend deleted file mode 100644 index 6c09067e78..0000000000 Binary files a/packages/client/assets/room/furnitures/rubik-cube/rubik-cube.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/rubik-cube/rubik-cube.glb b/packages/client/assets/room/furnitures/rubik-cube/rubik-cube.glb deleted file mode 100644 index d640df9b06..0000000000 Binary files a/packages/client/assets/room/furnitures/rubik-cube/rubik-cube.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/server/rack-uv.png b/packages/client/assets/room/furnitures/server/rack-uv.png deleted file mode 100644 index 65bdb0ffd9..0000000000 Binary files a/packages/client/assets/room/furnitures/server/rack-uv.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/server/rack.png b/packages/client/assets/room/furnitures/server/rack.png deleted file mode 100644 index b851295cfa..0000000000 Binary files a/packages/client/assets/room/furnitures/server/rack.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/server/server.blend b/packages/client/assets/room/furnitures/server/server.blend deleted file mode 100644 index 6675dfbdc2..0000000000 Binary files a/packages/client/assets/room/furnitures/server/server.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/server/server.glb b/packages/client/assets/room/furnitures/server/server.glb deleted file mode 100644 index a8b530a2d2..0000000000 Binary files a/packages/client/assets/room/furnitures/server/server.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/server/server.png b/packages/client/assets/room/furnitures/server/server.png deleted file mode 100644 index 8e9a0d716c..0000000000 Binary files a/packages/client/assets/room/furnitures/server/server.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/server/uv.png b/packages/client/assets/room/furnitures/server/uv.png deleted file mode 100644 index ca2e747d16..0000000000 Binary files a/packages/client/assets/room/furnitures/server/uv.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/sofa/sofa.blend b/packages/client/assets/room/furnitures/sofa/sofa.blend deleted file mode 100644 index fb5aa51a2c..0000000000 Binary files a/packages/client/assets/room/furnitures/sofa/sofa.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/sofa/sofa.glb b/packages/client/assets/room/furnitures/sofa/sofa.glb deleted file mode 100644 index 6ce77d94ac..0000000000 Binary files a/packages/client/assets/room/furnitures/sofa/sofa.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/spiral/spiral.blend b/packages/client/assets/room/furnitures/spiral/spiral.blend deleted file mode 100644 index 9d3be77bce..0000000000 Binary files a/packages/client/assets/room/furnitures/spiral/spiral.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/spiral/spiral.glb b/packages/client/assets/room/furnitures/spiral/spiral.glb deleted file mode 100644 index ee8e3c23b1..0000000000 Binary files a/packages/client/assets/room/furnitures/spiral/spiral.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/tv/screen-uv.png b/packages/client/assets/room/furnitures/tv/screen-uv.png deleted file mode 100644 index 4bb74f031f..0000000000 Binary files a/packages/client/assets/room/furnitures/tv/screen-uv.png and /dev/null differ diff --git a/packages/client/assets/room/furnitures/tv/tv.blend b/packages/client/assets/room/furnitures/tv/tv.blend deleted file mode 100644 index 490e298e7b..0000000000 Binary files a/packages/client/assets/room/furnitures/tv/tv.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/tv/tv.glb b/packages/client/assets/room/furnitures/tv/tv.glb deleted file mode 100644 index b9bd23896b..0000000000 Binary files a/packages/client/assets/room/furnitures/tv/tv.glb and /dev/null differ diff --git a/packages/client/assets/room/furnitures/wall-clock/wall-clock.blend b/packages/client/assets/room/furnitures/wall-clock/wall-clock.blend deleted file mode 100644 index 0a61c8f01e..0000000000 Binary files a/packages/client/assets/room/furnitures/wall-clock/wall-clock.blend and /dev/null differ diff --git a/packages/client/assets/room/furnitures/wall-clock/wall-clock.glb b/packages/client/assets/room/furnitures/wall-clock/wall-clock.glb deleted file mode 100644 index b9f0093a8d..0000000000 Binary files a/packages/client/assets/room/furnitures/wall-clock/wall-clock.glb and /dev/null differ diff --git a/packages/client/assets/room/rooms/default/default.blend b/packages/client/assets/room/rooms/default/default.blend deleted file mode 100644 index 661154724a..0000000000 Binary files a/packages/client/assets/room/rooms/default/default.blend and /dev/null differ diff --git a/packages/client/assets/room/rooms/default/default.glb b/packages/client/assets/room/rooms/default/default.glb deleted file mode 100644 index 3d378deee2..0000000000 Binary files a/packages/client/assets/room/rooms/default/default.glb and /dev/null differ diff --git a/packages/client/assets/room/rooms/washitsu/husuma-uv.png b/packages/client/assets/room/rooms/washitsu/husuma-uv.png deleted file mode 100644 index ae2fca3911..0000000000 Binary files a/packages/client/assets/room/rooms/washitsu/husuma-uv.png and /dev/null differ diff --git a/packages/client/assets/room/rooms/washitsu/husuma.png b/packages/client/assets/room/rooms/washitsu/husuma.png deleted file mode 100644 index 084cbed67c..0000000000 Binary files a/packages/client/assets/room/rooms/washitsu/husuma.png and /dev/null differ diff --git a/packages/client/assets/room/rooms/washitsu/tatami-single1600.png b/packages/client/assets/room/rooms/washitsu/tatami-single1600.png deleted file mode 100644 index c0e684d743..0000000000 Binary files a/packages/client/assets/room/rooms/washitsu/tatami-single1600.png and /dev/null differ diff --git a/packages/client/assets/room/rooms/washitsu/tatami-uv.png b/packages/client/assets/room/rooms/washitsu/tatami-uv.png deleted file mode 100644 index 5b16c66091..0000000000 Binary files a/packages/client/assets/room/rooms/washitsu/tatami-uv.png and /dev/null differ diff --git a/packages/client/assets/room/rooms/washitsu/tatami.afdesign b/packages/client/assets/room/rooms/washitsu/tatami.afdesign deleted file mode 100644 index 9300a26950..0000000000 Binary files a/packages/client/assets/room/rooms/washitsu/tatami.afdesign and /dev/null differ diff --git a/packages/client/assets/room/rooms/washitsu/tatami.png b/packages/client/assets/room/rooms/washitsu/tatami.png deleted file mode 100644 index 8894d040ae..0000000000 Binary files a/packages/client/assets/room/rooms/washitsu/tatami.png and /dev/null differ diff --git a/packages/client/assets/room/rooms/washitsu/washitsu.blend b/packages/client/assets/room/rooms/washitsu/washitsu.blend deleted file mode 100644 index 84dc11374d..0000000000 Binary files a/packages/client/assets/room/rooms/washitsu/washitsu.blend and /dev/null differ diff --git a/packages/client/assets/room/rooms/washitsu/washitsu.glb b/packages/client/assets/room/rooms/washitsu/washitsu.glb deleted file mode 100644 index 5b4767bc73..0000000000 Binary files a/packages/client/assets/room/rooms/washitsu/washitsu.glb and /dev/null differ diff --git a/packages/client/src/menu.ts b/packages/client/src/menu.ts index bd155ba16d..ea6f801fec 100644 --- a/packages/client/src/menu.ts +++ b/packages/client/src/menu.ts @@ -173,12 +173,6 @@ export const menuDef = reactive({ icon: 'fas fa-terminal', to: '/scratchpad', }, - rooms: { - title: 'rooms', - icon: 'fas fa-door-closed', - show: computed(() => $i != null), - to: computed(() => `/@${$i.username}/room`), - }, ui: { title: 'switchUi', icon: 'fas fa-columns', diff --git a/packages/client/src/pages/room/preview.vue b/packages/client/src/pages/room/preview.vue deleted file mode 100644 index b0e600d4fb..0000000000 --- a/packages/client/src/pages/room/preview.vue +++ /dev/null @@ -1,107 +0,0 @@ - - - diff --git a/packages/client/src/pages/room/room.vue b/packages/client/src/pages/room/room.vue deleted file mode 100644 index eb85d39dc4..0000000000 --- a/packages/client/src/pages/room/room.vue +++ /dev/null @@ -1,279 +0,0 @@ - - - - - diff --git a/packages/client/src/router.ts b/packages/client/src/router.ts index 2a07ff37cd..a5ae1177e8 100644 --- a/packages/client/src/router.ts +++ b/packages/client/src/router.ts @@ -20,7 +20,6 @@ const defaultRoutes = [ { path: '/@:acct/:page?', name: 'user', component: page('user/index'), props: route => ({ acct: route.params.acct, page: route.params.page || 'index' }) }, { path: '/@:user/pages/:page', component: page('page'), props: route => ({ pageName: route.params.page, username: route.params.user }) }, { path: '/@:user/pages/:pageName/view-source', component: page('page-editor/page-editor'), props: route => ({ initUser: route.params.user, initPageName: route.params.pageName }) }, - { path: '/@:acct/room', props: true, component: page('room/room') }, { path: '/settings/:page(.*)?', name: 'settings', component: page('settings/index'), props: route => ({ initialPage: route.params.page || null }) }, { path: '/reset-password/:token?', component: page('reset-password'), props: route => ({ token: route.params.token }) }, { path: '/signup-complete/:code', component: page('signup-complete'), props: route => ({ code: route.params.code }) }, diff --git a/packages/client/src/scripts/room/furniture.ts b/packages/client/src/scripts/room/furniture.ts deleted file mode 100644 index 7734e32668..0000000000 --- a/packages/client/src/scripts/room/furniture.ts +++ /dev/null @@ -1,21 +0,0 @@ -export type RoomInfo = { - roomType: string; - carpetColor: string; - furnitures: Furniture[]; -}; - -export type Furniture = { - id: string; // 同じ家具が複数ある場合にそれぞれを識別するためのIDであり、家具IDではない - type: string; // こっちが家具ID(chairとか) - position: { - x: number; - y: number; - z: number; - }; - rotation: { - x: number; - y: number; - z: number; - }; - props?: Record; -}; diff --git a/packages/client/src/scripts/room/furnitures.json5 b/packages/client/src/scripts/room/furnitures.json5 deleted file mode 100644 index 4a40994107..0000000000 --- a/packages/client/src/scripts/room/furnitures.json5 +++ /dev/null @@ -1,407 +0,0 @@ -// 家具メタデータ - -// 家具IDはglbファイル及びそのディレクトリ名と一致する必要があります - -// 家具にはユーザーが設定できるプロパティを設定可能です: -// -// props: { -// : -// } -// -// proptype一覧: -// * image ... 画像選択ダイアログを出し、その画像のURLが格納されます -// * color ... 色選択コントロールを出し、選択された色が格納されます - -// 家具にカスタムテクスチャを適用できるようにするには、textureプロパティに以下の追加の情報を含めます: -// 便宜上そのUVのどの部分にカスタムテクスチャを貼り合わせるかのエリアをテクスチャエリアと呼びます。 -// UVは1024*1024だと仮定します。 -// -// : { -// prop: <プロパティ名>, -// uv: { -// x: <テクスチャエリアX座標>, -// y: <テクスチャエリアY座標>, -// width: <テクスチャエリアの幅>, -// height: <テクスチャエリアの高さ>, -// }, -// } -// -// には、カスタムテクスチャを適用したいメッシュ名を指定します -// <プロパティ名>には、カスタムテクスチャとして使用する画像を格納するプロパティ(前述)名を指定します - -// 家具にカスタムカラーを適用できるようにするには、colorプロパティに以下の追加の情報を含めます: -// -// : <プロパティ名> -// -// には、カスタムカラーを適用したいマテリアル名を指定します -// <プロパティ名>には、カスタムカラーとして使用する色を格納するプロパティ(前述)名を指定します - -[ - { - id: "milk", - place: "floor" - }, - { - id: "bed", - place: "floor" - }, - { - id: "low-table", - place: "floor", - props: { - color: 'color' - }, - color: { - Table: 'color' - } - }, - { - id: "desk", - place: "floor", - props: { - color: 'color' - }, - color: { - Board: 'color' - } - }, - { - id: "chair", - place: "floor", - props: { - color: 'color' - }, - color: { - Chair: 'color' - } - }, - { - id: "chair2", - place: "floor", - props: { - color1: 'color', - color2: 'color' - }, - color: { - Cushion: 'color1', - Leg: 'color2' - } - }, - { - id: "fan", - place: "wall" - }, - { - id: "pc", - place: "floor" - }, - { - id: "plant", - place: "floor" - }, - { - id: "plant2", - place: "floor" - }, - { - id: "eraser", - place: "floor" - }, - { - id: "pencil", - place: "floor" - }, - { - id: "pudding", - place: "floor" - }, - { - id: "cardboard-box", - place: "floor" - }, - { - id: "cardboard-box2", - place: "floor" - }, - { - id: "cardboard-box3", - place: "floor" - }, - { - id: "book", - place: "floor", - props: { - color: 'color' - }, - color: { - Cover: 'color' - } - }, - { - id: "book2", - place: "floor" - }, - { - id: "piano", - place: "floor" - }, - { - id: "facial-tissue", - place: "floor" - }, - { - id: "server", - place: "floor" - }, - { - id: "moon", - place: "floor" - }, - { - id: "corkboard", - place: "wall" - }, - { - id: "mousepad", - place: "floor", - props: { - color: 'color' - }, - color: { - Pad: 'color' - } - }, - { - id: "monitor", - place: "floor", - props: { - screen: 'image' - }, - texture: { - Screen: { - prop: 'screen', - uv: { - x: 0, - y: 434, - width: 1024, - height: 588, - }, - }, - }, - }, - { - id: "tv", - place: "floor", - props: { - screen: 'image' - }, - texture: { - Screen: { - prop: 'screen', - uv: { - x: 0, - y: 434, - width: 1024, - height: 588, - }, - }, - }, - }, - { - id: "keyboard", - place: "floor" - }, - { - id: "carpet-stripe", - place: "floor", - props: { - color1: 'color', - color2: 'color' - }, - color: { - CarpetAreaA: 'color1', - CarpetAreaB: 'color2' - }, - }, - { - id: "mat", - place: "floor", - props: { - color: 'color' - }, - color: { - Mat: 'color' - } - }, - { - id: "color-box", - place: "floor", - props: { - color: 'color' - }, - color: { - main: 'color' - } - }, - { - id: "wall-clock", - place: "wall" - }, - { - id: "cube", - place: "floor", - props: { - color: 'color' - }, - color: { - Cube: 'color' - } - }, - { - id: "photoframe", - place: "wall", - props: { - photo: 'image', - color: 'color' - }, - texture: { - Photo: { - prop: 'photo', - uv: { - x: 0, - y: 342, - width: 1024, - height: 683, - }, - }, - }, - color: { - Frame: 'color' - } - }, - { - id: "pinguin", - place: "floor", - props: { - body: 'color', - belly: 'color' - }, - color: { - Body: 'body', - Belly: 'belly', - } - }, - { - id: "rubik-cube", - place: "floor", - }, - { - id: "poster-h", - place: "wall", - props: { - picture: 'image' - }, - texture: { - Poster: { - prop: 'picture', - uv: { - x: 0, - y: 277, - width: 1024, - height: 745, - }, - }, - }, - }, - { - id: "poster-v", - place: "wall", - props: { - picture: 'image' - }, - texture: { - Poster: { - prop: 'picture', - uv: { - x: 0, - y: 0, - width: 745, - height: 1024, - }, - }, - }, - }, - { - id: "sofa", - place: "floor", - props: { - color: 'color' - }, - color: { - Sofa: 'color' - } - }, - { - id: "spiral", - place: "floor", - props: { - color: 'color' - }, - color: { - Step: 'color' - } - }, - { - id: "bin", - place: "floor", - props: { - color: 'color' - }, - color: { - Bin: 'color' - } - }, - { - id: "cup-noodle", - place: "floor" - }, - { - id: "holo-display", - place: "floor", - props: { - image: 'image' - }, - texture: { - Image_Front: { - prop: 'image', - uv: { - x: 0, - y: 0, - width: 1024, - height: 1024, - }, - }, - Image_Back: { - prop: 'image', - uv: { - x: 0, - y: 0, - width: 1024, - height: 1024, - }, - }, - }, - }, - { - id: 'energy-drink', - place: "floor", - }, - { - id: 'doll-ai', - place: "floor", - }, - { - id: 'banknote', - place: "floor", - }, -] diff --git a/packages/client/src/scripts/room/room.ts b/packages/client/src/scripts/room/room.ts deleted file mode 100644 index 7e04bec646..0000000000 --- a/packages/client/src/scripts/room/room.ts +++ /dev/null @@ -1,775 +0,0 @@ -import autobind from 'autobind-decorator'; -import { v4 as uuid } from 'uuid'; -import * as THREE from 'three'; -import { GLTFLoader, GLTF } from 'three/examples/jsm/loaders/GLTFLoader'; -import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js'; -import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer.js'; -import { RenderPass } from 'three/examples/jsm/postprocessing/RenderPass.js'; -import { ShaderPass } from 'three/examples/jsm/postprocessing/ShaderPass.js'; -import { BloomPass } from 'three/examples/jsm/postprocessing/BloomPass.js'; -import { FXAAShader } from 'three/examples/jsm/shaders/FXAAShader.js'; -import { TransformControls } from 'three/examples/jsm/controls/TransformControls.js'; -import { Furniture, RoomInfo } from './furniture'; -import { query as urlQuery } from '@/scripts/url'; -const furnitureDefs = require('./furnitures.json5'); - -THREE.ImageUtils.crossOrigin = ''; - -type Options = { - graphicsQuality: Room['graphicsQuality']; - onChangeSelect: Room['onChangeSelect']; - useOrthographicCamera: boolean; -}; - -/** - * MisskeyRoom Core Engine - */ -export class Room { - private clock: THREE.Clock; - private scene: THREE.Scene; - private renderer: THREE.WebGLRenderer; - private camera: THREE.PerspectiveCamera | THREE.OrthographicCamera; - private controls: OrbitControls; - private composer: EffectComposer; - private mixers: THREE.AnimationMixer[] = []; - private furnitureControl: TransformControls; - private roomInfo: RoomInfo; - private graphicsQuality: 'cheep' | 'low' | 'medium' | 'high' | 'ultra'; - private roomObj: THREE.Object3D; - private objects: THREE.Object3D[] = []; - private selectedObject: THREE.Object3D = null; - private onChangeSelect: Function; - private isTransformMode = false; - private renderFrameRequestId: number; - - private get canvas(): HTMLCanvasElement { - return this.renderer.domElement; - } - - private get furnitures(): Furniture[] { - return this.roomInfo.furnitures; - } - - private set furnitures(furnitures: Furniture[]) { - this.roomInfo.furnitures = furnitures; - } - - private get enableShadow() { - return this.graphicsQuality != 'cheep'; - } - - private get usePostFXs() { - return this.graphicsQuality !== 'cheep' && this.graphicsQuality !== 'low'; - } - - private get shadowQuality() { - return ( - this.graphicsQuality === 'ultra' ? 16384 : - this.graphicsQuality === 'high' ? 8192 : - this.graphicsQuality === 'medium' ? 4096 : - this.graphicsQuality === 'low' ? 1024 : - 0); // cheep - } - - constructor(user, isMyRoom, roomInfo: RoomInfo, container: Element, options: Options) { - this.roomInfo = roomInfo; - this.graphicsQuality = options.graphicsQuality; - this.onChangeSelect = options.onChangeSelect; - - this.clock = new THREE.Clock(true); - - //#region Init a scene - this.scene = new THREE.Scene(); - - const width = container.clientWidth; - const height = container.clientHeight; - - //#region Init a renderer - this.renderer = new THREE.WebGLRenderer({ - antialias: false, - stencil: false, - alpha: false, - powerPreference: - this.graphicsQuality === 'ultra' ? 'high-performance' : - this.graphicsQuality === 'high' ? 'high-performance' : - this.graphicsQuality === 'medium' ? 'default' : - this.graphicsQuality === 'low' ? 'low-power' : - 'low-power' // cheep - }); - - this.renderer.setPixelRatio(window.devicePixelRatio); - this.renderer.setSize(width, height); - this.renderer.autoClear = false; - this.renderer.setClearColor(new THREE.Color(0x051f2d)); - this.renderer.shadowMap.enabled = this.enableShadow; - this.renderer.shadowMap.type = - this.graphicsQuality === 'ultra' ? THREE.PCFSoftShadowMap : - this.graphicsQuality === 'high' ? THREE.PCFSoftShadowMap : - this.graphicsQuality === 'medium' ? THREE.PCFShadowMap : - this.graphicsQuality === 'low' ? THREE.BasicShadowMap : - THREE.BasicShadowMap; // cheep - - container.insertBefore(this.canvas, container.firstChild); - //#endregion - - //#region Init a camera - this.camera = options.useOrthographicCamera - ? new THREE.OrthographicCamera( - width / - 2, width / 2, height / 2, height / - 2, -10, 10) - : new THREE.PerspectiveCamera(45, width / height); - - if (options.useOrthographicCamera) { - this.camera.position.x = 2; - this.camera.position.y = 2; - this.camera.position.z = 2; - this.camera.zoom = 100; - this.camera.updateProjectionMatrix(); - } else { - this.camera.position.x = 5; - this.camera.position.y = 2; - this.camera.position.z = 5; - } - - this.scene.add(this.camera); - //#endregion - - //#region AmbientLight - const ambientLight = new THREE.AmbientLight(0xffffff, 1); - this.scene.add(ambientLight); - //#endregion - - if (this.graphicsQuality !== 'cheep') { - //#region Room light - const roomLight = new THREE.SpotLight(0xffffff, 0.1); - - roomLight.position.set(0, 8, 0); - roomLight.castShadow = this.enableShadow; - roomLight.shadow.bias = -0.0001; - roomLight.shadow.mapSize.width = this.shadowQuality; - roomLight.shadow.mapSize.height = this.shadowQuality; - roomLight.shadow.camera.near = 0.1; - roomLight.shadow.camera.far = 9; - roomLight.shadow.camera.fov = 45; - - this.scene.add(roomLight); - //#endregion - } - - //#region Out light - const outLight1 = new THREE.SpotLight(0xffffff, 0.4); - outLight1.position.set(9, 3, -2); - outLight1.castShadow = this.enableShadow; - outLight1.shadow.bias = -0.001; // アクネ、アーチファクト対策 その代わりピーターパンが発生する可能性がある - outLight1.shadow.mapSize.width = this.shadowQuality; - outLight1.shadow.mapSize.height = this.shadowQuality; - outLight1.shadow.camera.near = 6; - outLight1.shadow.camera.far = 15; - outLight1.shadow.camera.fov = 45; - this.scene.add(outLight1); - - const outLight2 = new THREE.SpotLight(0xffffff, 0.2); - outLight2.position.set(-2, 3, 9); - outLight2.castShadow = false; - outLight2.shadow.bias = -0.001; // アクネ、アーチファクト対策 その代わりピーターパンが発生する可能性がある - outLight2.shadow.camera.near = 6; - outLight2.shadow.camera.far = 15; - outLight2.shadow.camera.fov = 45; - this.scene.add(outLight2); - //#endregion - - //#region Init a controller - this.controls = new OrbitControls(this.camera, this.canvas); - - this.controls.target.set(0, 1, 0); - this.controls.enableZoom = true; - this.controls.enablePan = isMyRoom; - this.controls.minPolarAngle = 0; - this.controls.maxPolarAngle = Math.PI / 2; - this.controls.minAzimuthAngle = 0; - this.controls.maxAzimuthAngle = Math.PI / 2; - this.controls.enableDamping = true; - this.controls.dampingFactor = 0.2; - //#endregion - - //#region POST FXs - if (!this.usePostFXs) { - this.composer = null; - } else { - const renderTarget = new THREE.WebGLRenderTarget(width, height, { - minFilter: THREE.LinearFilter, - magFilter: THREE.LinearFilter, - format: THREE.RGBFormat, - stencilBuffer: false, - }); - - const fxaa = new ShaderPass(FXAAShader); - fxaa.uniforms['resolution'].value = new THREE.Vector2(1 / width, 1 / height); - fxaa.renderToScreen = true; - - this.composer = new EffectComposer(this.renderer, renderTarget); - this.composer.addPass(new RenderPass(this.scene, this.camera)); - if (this.graphicsQuality === 'ultra') { - this.composer.addPass(new BloomPass(0.25, 30, 128.0, 512)); - } - this.composer.addPass(fxaa); - } - //#endregion - //#endregion - - //#region Label - //#region Avatar - const avatarUrl = `/proxy/?${urlQuery({ url: user.avatarUrl })}`; - - const textureLoader = new THREE.TextureLoader(); - textureLoader.crossOrigin = 'anonymous'; - - const iconTexture = textureLoader.load(avatarUrl); - iconTexture.wrapS = THREE.RepeatWrapping; - iconTexture.wrapT = THREE.RepeatWrapping; - iconTexture.anisotropy = 16; - - const avatarMaterial = new THREE.MeshBasicMaterial({ - map: iconTexture, - side: THREE.DoubleSide, - alphaTest: 0.5 - }); - - const iconGeometry = new THREE.PlaneGeometry(1, 1); - - const avatarObject = new THREE.Mesh(iconGeometry, avatarMaterial); - avatarObject.position.set(-3, 2.5, 2); - avatarObject.rotation.y = Math.PI / 2; - avatarObject.castShadow = false; - - this.scene.add(avatarObject); - //#endregion - - //#region Username - const name = user.username; - - new THREE.FontLoader().load('/assets/fonts/helvetiker_regular.typeface.json', font => { - const nameGeometry = new THREE.TextGeometry(name, { - size: 0.5, - height: 0, - curveSegments: 8, - font: font, - bevelThickness: 0, - bevelSize: 0, - bevelEnabled: false - }); - - const nameMaterial = new THREE.MeshLambertMaterial({ - color: 0xffffff - }); - - const nameObject = new THREE.Mesh(nameGeometry, nameMaterial); - nameObject.position.set(-3, 2.25, 1.25); - nameObject.rotation.y = Math.PI / 2; - nameObject.castShadow = false; - - this.scene.add(nameObject); - }); - //#endregion - //#endregion - - //#region Interaction - if (isMyRoom) { - this.furnitureControl = new TransformControls(this.camera, this.canvas); - this.scene.add(this.furnitureControl); - - // Hover highlight - this.canvas.onmousemove = this.onmousemove; - - // Click - this.canvas.onmousedown = this.onmousedown; - } - //#endregion - - //#region Init room - this.loadRoom(); - //#endregion - - //#region Load furnitures - for (const furniture of this.furnitures) { - this.loadFurniture(furniture).then(obj => { - this.scene.add(obj.scene); - this.objects.push(obj.scene); - }); - } - //#endregion - - // Start render - if (this.usePostFXs) { - this.renderWithPostFXs(); - } else { - this.renderWithoutPostFXs(); - } - } - - @autobind - private renderWithoutPostFXs() { - this.renderFrameRequestId = - window.requestAnimationFrame(this.renderWithoutPostFXs); - - // Update animations - const clock = this.clock.getDelta(); - for (const mixer of this.mixers) { - mixer.update(clock); - } - - this.controls.update(); - this.renderer.render(this.scene, this.camera); - } - - @autobind - private renderWithPostFXs() { - this.renderFrameRequestId = - window.requestAnimationFrame(this.renderWithPostFXs); - - // Update animations - const clock = this.clock.getDelta(); - for (const mixer of this.mixers) { - mixer.update(clock); - } - - this.controls.update(); - this.renderer.clear(); - this.composer.render(); - } - - @autobind - private loadRoom() { - const type = this.roomInfo.roomType; - new GLTFLoader().load(`/client-assets/room/rooms/${type}/${type}.glb`, gltf => { - gltf.scene.traverse(child => { - if (!(child instanceof THREE.Mesh)) return; - - child.receiveShadow = this.enableShadow; - - child.material = new THREE.MeshLambertMaterial({ - color: (child.material as THREE.MeshStandardMaterial).color, - map: (child.material as THREE.MeshStandardMaterial).map, - name: (child.material as THREE.MeshStandardMaterial).name, - }); - - // 異方性フィルタリング - if ((child.material as THREE.MeshLambertMaterial).map && this.graphicsQuality !== 'cheep') { - (child.material as THREE.MeshLambertMaterial).map.minFilter = THREE.LinearMipMapLinearFilter; - (child.material as THREE.MeshLambertMaterial).map.magFilter = THREE.LinearMipMapLinearFilter; - (child.material as THREE.MeshLambertMaterial).map.anisotropy = 8; - } - }); - - gltf.scene.position.set(0, 0, 0); - - this.scene.add(gltf.scene); - this.roomObj = gltf.scene; - if (this.roomInfo.roomType === 'default') { - this.applyCarpetColor(); - } - }); - } - - @autobind - private loadFurniture(furniture: Furniture) { - const def = furnitureDefs.find(d => d.id === furniture.type); - return new Promise((res, rej) => { - const loader = new GLTFLoader(); - loader.load(`/client-assets/room/furnitures/${furniture.type}/${furniture.type}.glb`, gltf => { - const model = gltf.scene; - - // Load animation - if (gltf.animations.length > 0) { - const mixer = new THREE.AnimationMixer(model); - this.mixers.push(mixer); - for (const clip of gltf.animations) { - mixer.clipAction(clip).play(); - } - } - - model.name = furniture.id; - model.position.x = furniture.position.x; - model.position.y = furniture.position.y; - model.position.z = furniture.position.z; - model.rotation.x = furniture.rotation.x; - model.rotation.y = furniture.rotation.y; - model.rotation.z = furniture.rotation.z; - - model.traverse(child => { - if (!(child instanceof THREE.Mesh)) return; - child.castShadow = this.enableShadow; - child.receiveShadow = this.enableShadow; - (child.material as THREE.MeshStandardMaterial).metalness = 0; - - // 異方性フィルタリング - if ((child.material as THREE.MeshStandardMaterial).map && this.graphicsQuality !== 'cheep') { - (child.material as THREE.MeshStandardMaterial).map.minFilter = THREE.LinearMipMapLinearFilter; - (child.material as THREE.MeshStandardMaterial).map.magFilter = THREE.LinearMipMapLinearFilter; - (child.material as THREE.MeshStandardMaterial).map.anisotropy = 8; - } - }); - - if (def.color) { // カスタムカラー - this.applyCustomColor(model); - } - - if (def.texture) { // カスタムテクスチャ - this.applyCustomTexture(model); - } - - res(gltf); - }, null, rej); - }); - } - - @autobind - private applyCarpetColor() { - this.roomObj.traverse(child => { - if (!(child instanceof THREE.Mesh)) return; - if (child.material && - (child.material as THREE.MeshStandardMaterial).name && - (child.material as THREE.MeshStandardMaterial).name === 'Carpet' - ) { - const colorHex = parseInt(this.roomInfo.carpetColor.substr(1), 16); - (child.material as THREE.MeshStandardMaterial).color.setHex(colorHex); - } - }); - } - - @autobind - private applyCustomColor(model: THREE.Object3D) { - const furniture = this.furnitures.find(furniture => furniture.id === model.name); - const def = furnitureDefs.find(d => d.id === furniture.type); - if (def.color == null) return; - model.traverse(child => { - if (!(child instanceof THREE.Mesh)) return; - for (const t of Object.keys(def.color)) { - if (!child.material || - !(child.material as THREE.MeshStandardMaterial).name || - (child.material as THREE.MeshStandardMaterial).name !== t - ) continue; - - const prop = def.color[t]; - const val = furniture.props ? furniture.props[prop] : undefined; - - if (val == null) continue; - - const colorHex = parseInt(val.substr(1), 16); - (child.material as THREE.MeshStandardMaterial).color.setHex(colorHex); - } - }); - } - - @autobind - private applyCustomTexture(model: THREE.Object3D) { - const furniture = this.furnitures.find(furniture => furniture.id === model.name); - const def = furnitureDefs.find(d => d.id === furniture.type); - if (def.texture == null) return; - - model.traverse(child => { - if (!(child instanceof THREE.Mesh)) return; - for (const t of Object.keys(def.texture)) { - if (child.name !== t) continue; - - const prop = def.texture[t].prop; - const val = furniture.props ? furniture.props[prop] : undefined; - - if (val == null) continue; - - const canvas = document.createElement('canvas'); - canvas.height = 1024; - canvas.width = 1024; - - child.material = new THREE.MeshLambertMaterial({ - emissive: 0x111111, - side: THREE.DoubleSide, - alphaTest: 0.5, - }); - - const img = new Image(); - img.crossOrigin = 'anonymous'; - img.onload = () => { - const uvInfo = def.texture[t].uv; - - const ctx = canvas.getContext('2d'); - ctx.drawImage(img, - 0, 0, img.width, img.height, - uvInfo.x, uvInfo.y, uvInfo.width, uvInfo.height); - - const texture = new THREE.Texture(canvas); - texture.wrapS = THREE.RepeatWrapping; - texture.wrapT = THREE.RepeatWrapping; - texture.anisotropy = 16; - texture.flipY = false; - - (child.material as THREE.MeshLambertMaterial).map = texture; - (child.material as THREE.MeshLambertMaterial).needsUpdate = true; - (child.material as THREE.MeshLambertMaterial).map.needsUpdate = true; - }; - img.src = val; - } - }); - } - - @autobind - private onmousemove(ev: MouseEvent) { - if (this.isTransformMode) return; - - const rect = (ev.target as HTMLElement).getBoundingClientRect(); - const x = ((ev.clientX - rect.left) / rect.width) * 2 - 1; - const y = -((ev.clientY - rect.top) / rect.height) * 2 + 1; - const pos = new THREE.Vector2(x, y); - - this.camera.updateMatrixWorld(); - - const raycaster = new THREE.Raycaster(); - raycaster.setFromCamera(pos, this.camera); - - const intersects = raycaster.intersectObjects(this.objects, true); - - for (const object of this.objects) { - if (this.isSelectedObject(object)) continue; - object.traverse(child => { - if (child instanceof THREE.Mesh) { - (child.material as THREE.MeshStandardMaterial).emissive.setHex(0x000000); - } - }); - } - - if (intersects.length > 0) { - const intersected = this.getRoot(intersects[0].object); - if (this.isSelectedObject(intersected)) return; - intersected.traverse(child => { - if (child instanceof THREE.Mesh) { - (child.material as THREE.MeshStandardMaterial).emissive.setHex(0x191919); - } - }); - } - } - - @autobind - private onmousedown(ev: MouseEvent) { - if (this.isTransformMode) return; - if (ev.target !== this.canvas || ev.button !== 0) return; - - const rect = (ev.target as HTMLElement).getBoundingClientRect(); - const x = ((ev.clientX - rect.left) / rect.width) * 2 - 1; - const y = -((ev.clientY - rect.top) / rect.height) * 2 + 1; - const pos = new THREE.Vector2(x, y); - - this.camera.updateMatrixWorld(); - - const raycaster = new THREE.Raycaster(); - raycaster.setFromCamera(pos, this.camera); - - const intersects = raycaster.intersectObjects(this.objects, true); - - for (const object of this.objects) { - object.traverse(child => { - if (child instanceof THREE.Mesh) { - (child.material as THREE.MeshStandardMaterial).emissive.setHex(0x000000); - } - }); - } - - if (intersects.length > 0) { - const selectedObj = this.getRoot(intersects[0].object); - this.selectFurniture(selectedObj); - } else { - this.selectedObject = null; - this.onChangeSelect(null); - } - } - - @autobind - private getRoot(obj: THREE.Object3D): THREE.Object3D { - let found = false; - let x = obj.parent; - while (!found) { - if (x.parent.parent == null) { - found = true; - } else { - x = x.parent; - } - } - return x; - } - - @autobind - private isSelectedObject(obj: THREE.Object3D): boolean { - if (this.selectedObject == null) { - return false; - } else { - return obj.name === this.selectedObject.name; - } - } - - @autobind - private selectFurniture(obj: THREE.Object3D) { - this.selectedObject = obj; - this.onChangeSelect(obj); - obj.traverse(child => { - if (child instanceof THREE.Mesh) { - (child.material as THREE.MeshStandardMaterial).emissive.setHex(0xff0000); - } - }); - } - - /** - * 家具の移動/回転モードにします - * @param type 移動か回転か - */ - @autobind - public enterTransformMode(type: 'translate' | 'rotate') { - this.isTransformMode = true; - this.furnitureControl.setMode(type); - this.furnitureControl.attach(this.selectedObject); - this.controls.enableRotate = false; - } - - /** - * 家具の移動/回転モードを終了します - */ - @autobind - public exitTransformMode() { - this.isTransformMode = false; - this.furnitureControl.detach(); - this.controls.enableRotate = true; - } - - /** - * 家具プロパティを更新します - * @param key プロパティ名 - * @param value 値 - */ - @autobind - public updateProp(key: string, value: any) { - const furniture = this.furnitures.find(furniture => furniture.id === this.selectedObject.name); - if (furniture.props == null) furniture.props = {}; - furniture.props[key] = value; - this.applyCustomColor(this.selectedObject); - this.applyCustomTexture(this.selectedObject); - } - - /** - * 部屋に家具を追加します - * @param type 家具の種類 - */ - @autobind - public addFurniture(type: string) { - const furniture = { - id: uuid(), - type: type, - position: { - x: 0, - y: 0, - z: 0, - }, - rotation: { - x: 0, - y: 0, - z: 0, - }, - }; - - this.furnitures.push(furniture); - - this.loadFurniture(furniture).then(obj => { - this.scene.add(obj.scene); - this.objects.push(obj.scene); - }); - } - - /** - * 現在選択されている家具を部屋から削除します - */ - @autobind - public removeFurniture() { - this.exitTransformMode(); - const obj = this.selectedObject; - this.scene.remove(obj); - this.objects = this.objects.filter(object => object.name !== obj.name); - this.furnitures = this.furnitures.filter(furniture => furniture.id !== obj.name); - this.selectedObject = null; - this.onChangeSelect(null); - } - - /** - * 全ての家具を部屋から削除します - */ - @autobind - public removeAllFurnitures() { - this.exitTransformMode(); - for (const obj of this.objects) { - this.scene.remove(obj); - } - this.objects = []; - this.furnitures = []; - this.selectedObject = null; - this.onChangeSelect(null); - } - - /** - * 部屋の床の色を変更します - * @param color 色 - */ - @autobind - public updateCarpetColor(color: string) { - this.roomInfo.carpetColor = color; - this.applyCarpetColor(); - } - - /** - * 部屋の種類を変更します - * @param type 種類 - */ - @autobind - public changeRoomType(type: string) { - this.roomInfo.roomType = type; - this.scene.remove(this.roomObj); - this.loadRoom(); - } - - /** - * 部屋データを取得します - */ - @autobind - public getRoomInfo() { - for (const obj of this.objects) { - const furniture = this.furnitures.find(f => f.id === obj.name); - furniture.position.x = obj.position.x; - furniture.position.y = obj.position.y; - furniture.position.z = obj.position.z; - furniture.rotation.x = obj.rotation.x; - furniture.rotation.y = obj.rotation.y; - furniture.rotation.z = obj.rotation.z; - } - - return this.roomInfo; - } - - /** - * 選択されている家具を取得します - */ - @autobind - public getSelectedObject() { - return this.selectedObject; - } - - @autobind - public findFurnitureById(id: string) { - return this.furnitures.find(furniture => furniture.id === id); - } - - /** - * レンダリングを終了します - */ - @autobind - public destroy() { - // Stop render loop - window.cancelAnimationFrame(this.renderFrameRequestId); - - this.controls.dispose(); - this.scene.dispose(); - } -} diff --git a/packages/client/src/store.ts b/packages/client/src/store.ts index dc9c3b7b9e..f2732c57d3 100644 --- a/packages/client/src/store.ts +++ b/packages/client/src/store.ts @@ -257,8 +257,6 @@ export class ColdDeviceStorage { sound_channel: { type: 'syuilo/square-pico', volume: 1 }, sound_reversiPutBlack: { type: 'syuilo/kick', volume: 0.3 }, sound_reversiPutWhite: { type: 'syuilo/snare', volume: 0.3 }, - roomGraphicsQuality: 'medium' as 'cheep' | 'low' | 'medium' | 'high' | 'ultra', - roomUseOrthographicCamera: true, }; public static watchers = []; -- cgit v1.2.3-freya From 586c11251a8c0e7ca9f8f3bbaad9bf745e6ef948 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 9 Jan 2022 21:35:35 +0900 Subject: wip: migrate paging components to composition api #7681 --- packages/client/src/components/form/pagination.vue | 44 ---- packages/client/src/components/notes.vue | 127 +++------- packages/client/src/components/notifications.vue | 208 ++++++---------- packages/client/src/components/ui/pagination.vue | 266 ++++++++++++++++++--- packages/client/src/components/user-list.vue | 106 +++----- packages/client/src/pages/settings/security.vue | 8 +- packages/client/src/pages/user/index.timeline.vue | 60 ++--- packages/client/src/scripts/paging.ts | 246 ------------------- 8 files changed, 381 insertions(+), 684 deletions(-) delete mode 100644 packages/client/src/components/form/pagination.vue delete mode 100644 packages/client/src/scripts/paging.ts (limited to 'packages/client/src/pages') diff --git a/packages/client/src/components/form/pagination.vue b/packages/client/src/components/form/pagination.vue deleted file mode 100644 index 3d3b40a783..0000000000 --- a/packages/client/src/components/form/pagination.vue +++ /dev/null @@ -1,44 +0,0 @@ - - - - - diff --git a/packages/client/src/components/notes.vue b/packages/client/src/components/notes.vue index 4136f72b1b..82703d71c7 100644 --- a/packages/client/src/components/notes.vue +++ b/packages/client/src/components/notes.vue @@ -1,114 +1,49 @@ - diff --git a/packages/client/src/components/user-list.vue b/packages/client/src/components/user-list.vue index 2148dab608..3e273721c7 100644 --- a/packages/client/src/components/user-list.vue +++ b/packages/client/src/components/user-list.vue @@ -1,91 +1,39 @@ - diff --git a/packages/client/src/pages/settings/security.vue b/packages/client/src/pages/settings/security.vue index 82a21d5b16..03f2d6300b 100644 --- a/packages/client/src/pages/settings/security.vue +++ b/packages/client/src/pages/settings/security.vue @@ -12,7 +12,7 @@ - + - + @@ -42,7 +42,7 @@ import { defineComponent } from 'vue'; import FormSection from '@/components/form/section.vue'; import FormSlot from '@/components/form/slot.vue'; import FormButton from '@/components/ui/button.vue'; -import FormPagination from '@/components/form/pagination.vue'; +import MkPagination from '@/components/ui/pagination.vue'; import X2fa from './2fa.vue'; import * as os from '@/os'; import * as symbols from '@/symbols'; @@ -51,7 +51,7 @@ export default defineComponent({ components: { FormSection, FormButton, - FormPagination, + MkPagination, FormSlot, X2fa, }, diff --git a/packages/client/src/pages/user/index.timeline.vue b/packages/client/src/pages/user/index.timeline.vue index 2ffa496979..7396a76efe 100644 --- a/packages/client/src/pages/user/index.timeline.vue +++ b/packages/client/src/pages/user/index.timeline.vue @@ -1,60 +1,36 @@ - \ No newline at end of file -- cgit v1.2.3-freya From 06125e682004cdc7a110912f8926cf11dc4c6352 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 10 Jan 2022 03:30:35 +0900 Subject: wip: refactor(client): migrate paging components to composition api --- packages/client/src/pages/admin/abuses.vue | 20 +++--------------- packages/client/src/pages/admin/files.vue | 20 ++++-------------- packages/client/src/pages/admin/users.vue | 18 +++------------- packages/client/src/pages/channel.vue | 4 ++-- packages/client/src/pages/clip.vue | 4 ++-- packages/client/src/pages/federation.vue | 6 +++--- packages/client/src/pages/gallery/post.vue | 4 ++-- packages/client/src/pages/page.vue | 4 ++-- packages/client/src/pages/search.vue | 10 ++------- packages/client/src/pages/tag.vue | 12 +++-------- packages/client/src/pages/user/follow-list.vue | 29 ++++++++++++-------------- packages/client/src/pages/user/gallery.vue | 12 +++-------- packages/client/src/pages/user/pages.vue | 12 +++-------- packages/client/src/pages/user/reactions.vue | 12 +++-------- packages/client/src/ui/deck/direct-column.vue | 6 +++--- 15 files changed, 51 insertions(+), 122 deletions(-) (limited to 'packages/client/src/pages') diff --git a/packages/client/src/pages/admin/abuses.vue b/packages/client/src/pages/admin/abuses.vue index 8df20097b3..04257f86ce 100644 --- a/packages/client/src/pages/admin/abuses.vue +++ b/packages/client/src/pages/admin/abuses.vue @@ -62,7 +62,7 @@ diff --git a/packages/client/src/pages/tag.vue b/packages/client/src/pages/tag.vue index a0c8367849..a9497ae801 100644 --- a/packages/client/src/pages/tag.vue +++ b/packages/client/src/pages/tag.vue @@ -5,7 +5,7 @@ diff --git a/packages/client/src/pages/user/follow-list.vue b/packages/client/src/pages/user/follow-list.vue index 9fb8943fb8..e12ea477ca 100644 --- a/packages/client/src/pages/user/follow-list.vue +++ b/packages/client/src/pages/user/follow-list.vue @@ -1,6 +1,6 @@ diff --git a/packages/client/src/pages/user/gallery.vue b/packages/client/src/pages/user/gallery.vue index 860aa9f44f..88f0604f1f 100644 --- a/packages/client/src/pages/user/gallery.vue +++ b/packages/client/src/pages/user/gallery.vue @@ -9,7 +9,7 @@ diff --git a/packages/client/src/pages/user/pages.vue b/packages/client/src/pages/user/pages.vue index 40d1fe3842..3075dd5729 100644 --- a/packages/client/src/pages/user/pages.vue +++ b/packages/client/src/pages/user/pages.vue @@ -7,7 +7,7 @@ diff --git a/packages/client/src/pages/user/reactions.vue b/packages/client/src/pages/user/reactions.vue index 69c27de55b..f51f6669c3 100644 --- a/packages/client/src/pages/user/reactions.vue +++ b/packages/client/src/pages/user/reactions.vue @@ -14,7 +14,7 @@ diff --git a/packages/client/src/ui/deck/direct-column.vue b/packages/client/src/ui/deck/direct-column.vue index 6ef733dfd0..4206b09b97 100644 --- a/packages/client/src/ui/deck/direct-column.vue +++ b/packages/client/src/ui/deck/direct-column.vue @@ -7,7 +7,7 @@ - - diff --git a/packages/client/src/pages/reversi/game.setting.vue b/packages/client/src/pages/reversi/game.setting.vue deleted file mode 100644 index 28bc598cfd..0000000000 --- a/packages/client/src/pages/reversi/game.setting.vue +++ /dev/null @@ -1,390 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/reversi/game.vue b/packages/client/src/pages/reversi/game.vue deleted file mode 100644 index 697d2898b9..0000000000 --- a/packages/client/src/pages/reversi/game.vue +++ /dev/null @@ -1,77 +0,0 @@ - - - diff --git a/packages/client/src/pages/reversi/index.vue b/packages/client/src/pages/reversi/index.vue deleted file mode 100644 index 93c22c02f3..0000000000 --- a/packages/client/src/pages/reversi/index.vue +++ /dev/null @@ -1,280 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/settings/account-info.vue b/packages/client/src/pages/settings/account-info.vue index 1d6afd9d58..ceff587302 100644 --- a/packages/client/src/pages/settings/account-info.vue +++ b/packages/client/src/pages/settings/account-info.vue @@ -94,10 +94,6 @@ - - - - diff --git a/packages/client/src/pages/settings/sounds.vue b/packages/client/src/pages/settings/sounds.vue index 0977dd8322..b538bf7cf5 100644 --- a/packages/client/src/pages/settings/sounds.vue +++ b/packages/client/src/pages/settings/sounds.vue @@ -94,8 +94,6 @@ export default defineComponent({ this.sounds.chatBg = ColdDeviceStorage.get('sound_chatBg'); this.sounds.antenna = ColdDeviceStorage.get('sound_antenna'); this.sounds.channel = ColdDeviceStorage.get('sound_channel'); - this.sounds.reversiPutBlack = ColdDeviceStorage.get('sound_reversiPutBlack'); - this.sounds.reversiPutWhite = ColdDeviceStorage.get('sound_reversiPutWhite'); }, mounted() { diff --git a/packages/client/src/router.ts b/packages/client/src/router.ts index a5ae1177e8..312374cdb9 100644 --- a/packages/client/src/router.ts +++ b/packages/client/src/router.ts @@ -73,8 +73,6 @@ const defaultRoutes = [ { path: '/tags/:tag', component: page('tag'), props: route => ({ tag: route.params.tag }) }, { path: '/user-info/:user', component: page('user-info'), props: route => ({ userId: route.params.user }) }, { path: '/instance-info/:host', component: page('instance-info'), props: route => ({ host: route.params.host }) }, - { path: '/games/reversi', component: page('reversi/index') }, - { path: '/games/reversi/:gameId', component: page('reversi/game'), props: route => ({ gameId: route.params.gameId }) }, { path: '/mfm-cheat-sheet', component: page('mfm-cheat-sheet') }, { path: '/api-console', component: page('api-console') }, { path: '/preview', component: page('preview') }, diff --git a/packages/client/src/scripts/games/reversi/core.ts b/packages/client/src/scripts/games/reversi/core.ts deleted file mode 100644 index 0cb8922e19..0000000000 --- a/packages/client/src/scripts/games/reversi/core.ts +++ /dev/null @@ -1,263 +0,0 @@ -import { count, concat } from '@/scripts/array'; - -// MISSKEY REVERSI ENGINE - -/** - * true ... 黒 - * false ... 白 - */ -export type Color = boolean; -const BLACK = true; -const WHITE = false; - -export type MapPixel = 'null' | 'empty'; - -export type Options = { - isLlotheo: boolean; - canPutEverywhere: boolean; - loopedBoard: boolean; -}; - -export type Undo = { - /** - * 色 - */ - color: Color; - - /** - * どこに打ったか - */ - pos: number; - - /** - * 反転した石の位置の配列 - */ - effects: number[]; - - /** - * ターン - */ - turn: Color | null; -}; - -/** - * リバーシエンジン - */ -export default class Reversi { - public map: MapPixel[]; - public mapWidth: number; - public mapHeight: number; - public board: (Color | null | undefined)[]; - public turn: Color | null = BLACK; - public opts: Options; - - public prevPos = -1; - public prevColor: Color | null = null; - - private logs: Undo[] = []; - - /** - * ゲームを初期化します - */ - constructor(map: string[], opts: Options) { - //#region binds - this.put = this.put.bind(this); - //#endregion - - //#region Options - this.opts = opts; - if (this.opts.isLlotheo == null) this.opts.isLlotheo = false; - if (this.opts.canPutEverywhere == null) this.opts.canPutEverywhere = false; - if (this.opts.loopedBoard == null) this.opts.loopedBoard = false; - //#endregion - - //#region Parse map data - this.mapWidth = map[0].length; - this.mapHeight = map.length; - const mapData = map.join(''); - - this.board = mapData.split('').map(d => d === '-' ? null : d === 'b' ? BLACK : d === 'w' ? WHITE : undefined); - - this.map = mapData.split('').map(d => d === '-' || d === 'b' || d === 'w' ? 'empty' : 'null'); - //#endregion - - // ゲームが始まった時点で片方の色の石しかないか、始まった時点で勝敗が決定するようなマップの場合がある - if (!this.canPutSomewhere(BLACK)) - this.turn = this.canPutSomewhere(WHITE) ? WHITE : null; - } - - /** - * 黒石の数 - */ - public get blackCount() { - return count(BLACK, this.board); - } - - /** - * 白石の数 - */ - public get whiteCount() { - return count(WHITE, this.board); - } - - public transformPosToXy(pos: number): number[] { - const x = pos % this.mapWidth; - const y = Math.floor(pos / this.mapWidth); - return [x, y]; - } - - public transformXyToPos(x: number, y: number): number { - return x + (y * this.mapWidth); - } - - /** - * 指定のマスに石を打ちます - * @param color 石の色 - * @param pos 位置 - */ - public put(color: Color, pos: number) { - this.prevPos = pos; - this.prevColor = color; - - this.board[pos] = color; - - // 反転させられる石を取得 - const effects = this.effects(color, pos); - - // 反転させる - for (const pos of effects) { - this.board[pos] = color; - } - - const turn = this.turn; - - this.logs.push({ - color, - pos, - effects, - turn - }); - - this.calcTurn(); - } - - private calcTurn() { - // ターン計算 - this.turn = - this.canPutSomewhere(!this.prevColor) ? !this.prevColor : - this.canPutSomewhere(this.prevColor!) ? this.prevColor : - null; - } - - public undo() { - const undo = this.logs.pop()!; - this.prevColor = undo.color; - this.prevPos = undo.pos; - this.board[undo.pos] = null; - for (const pos of undo.effects) { - const color = this.board[pos]; - this.board[pos] = !color; - } - this.turn = undo.turn; - } - - /** - * 指定した位置のマップデータのマスを取得します - * @param pos 位置 - */ - public mapDataGet(pos: number): MapPixel { - const [x, y] = this.transformPosToXy(pos); - return x < 0 || y < 0 || x >= this.mapWidth || y >= this.mapHeight ? 'null' : this.map[pos]; - } - - /** - * 打つことができる場所を取得します - */ - public puttablePlaces(color: Color): number[] { - return Array.from(this.board.keys()).filter(i => this.canPut(color, i)); - } - - /** - * 打つことができる場所があるかどうかを取得します - */ - public canPutSomewhere(color: Color): boolean { - return this.puttablePlaces(color).length > 0; - } - - /** - * 指定のマスに石を打つことができるかどうかを取得します - * @param color 自分の色 - * @param pos 位置 - */ - public canPut(color: Color, pos: number): boolean { - return ( - this.board[pos] !== null ? false : // 既に石が置いてある場所には打てない - this.opts.canPutEverywhere ? this.mapDataGet(pos) == 'empty' : // 挟んでなくても置けるモード - this.effects(color, pos).length !== 0); // 相手の石を1つでも反転させられるか - } - - /** - * 指定のマスに石を置いた時の、反転させられる石を取得します - * @param color 自分の色 - * @param initPos 位置 - */ - public effects(color: Color, initPos: number): number[] { - const enemyColor = !color; - - const diffVectors: [number, number][] = [ - [ 0, -1], // 上 - [ +1, -1], // 右上 - [ +1, 0], // 右 - [ +1, +1], // 右下 - [ 0, +1], // 下 - [ -1, +1], // 左下 - [ -1, 0], // 左 - [ -1, -1] // 左上 - ]; - - const effectsInLine = ([dx, dy]: [number, number]): number[] => { - const nextPos = (x: number, y: number): [number, number] => [x + dx, y + dy]; - - const found: number[] = []; // 挟めるかもしれない相手の石を入れておく配列 - let [x, y] = this.transformPosToXy(initPos); - while (true) { - [x, y] = nextPos(x, y); - - // 座標が指し示す位置がボード外に出たとき - if (this.opts.loopedBoard && this.transformXyToPos( - (x = ((x % this.mapWidth) + this.mapWidth) % this.mapWidth), - (y = ((y % this.mapHeight) + this.mapHeight) % this.mapHeight)) === initPos) - // 盤面の境界でループし、自分が石を置く位置に戻ってきたとき、挟めるようにしている (ref: Test4のマップ) - return found; - else if (x === -1 || y === -1 || x === this.mapWidth || y === this.mapHeight) - return []; // 挟めないことが確定 (盤面外に到達) - - const pos = this.transformXyToPos(x, y); - if (this.mapDataGet(pos) === 'null') return []; // 挟めないことが確定 (配置不可能なマスに到達) - const stone = this.board[pos]; - if (stone === null) return []; // 挟めないことが確定 (石が置かれていないマスに到達) - if (stone === enemyColor) found.push(pos); // 挟めるかもしれない (相手の石を発見) - if (stone === color) return found; // 挟めることが確定 (対となる自分の石を発見) - } - }; - - return concat(diffVectors.map(effectsInLine)); - } - - /** - * ゲームが終了したか否か - */ - public get isEnded(): boolean { - return this.turn === null; - } - - /** - * ゲームの勝者 (null = 引き分け) - */ - public get winner(): Color | null { - return this.isEnded ? - this.blackCount == this.whiteCount ? null : - this.opts.isLlotheo === this.blackCount > this.whiteCount ? WHITE : BLACK : - undefined as never; - } -} diff --git a/packages/client/src/scripts/games/reversi/maps.ts b/packages/client/src/scripts/games/reversi/maps.ts deleted file mode 100644 index dc0d1bf9d0..0000000000 --- a/packages/client/src/scripts/games/reversi/maps.ts +++ /dev/null @@ -1,896 +0,0 @@ -/** - * 組み込みマップ定義 - * - * データ値: - * (スペース) ... マス無し - * - ... マス - * b ... 初期配置される黒石 - * w ... 初期配置される白石 - */ - -export type Map = { - name?: string; - category?: string; - author?: string; - data: string[]; -}; - -export const fourfour: Map = { - name: '4x4', - category: '4x4', - data: [ - '----', - '-wb-', - '-bw-', - '----' - ] -}; - -export const sixsix: Map = { - name: '6x6', - category: '6x6', - data: [ - '------', - '------', - '--wb--', - '--bw--', - '------', - '------' - ] -}; - -export const roundedSixsix: Map = { - name: '6x6 rounded', - category: '6x6', - author: 'syuilo', - data: [ - ' ---- ', - '------', - '--wb--', - '--bw--', - '------', - ' ---- ' - ] -}; - -export const roundedSixsix2: Map = { - name: '6x6 rounded 2', - category: '6x6', - author: 'syuilo', - data: [ - ' -- ', - ' ---- ', - '--wb--', - '--bw--', - ' ---- ', - ' -- ' - ] -}; - -export const eighteight: Map = { - name: '8x8', - category: '8x8', - data: [ - '--------', - '--------', - '--------', - '---wb---', - '---bw---', - '--------', - '--------', - '--------' - ] -}; - -export const eighteightH1: Map = { - name: '8x8 handicap 1', - category: '8x8', - data: [ - 'b-------', - '--------', - '--------', - '---wb---', - '---bw---', - '--------', - '--------', - '--------' - ] -}; - -export const eighteightH2: Map = { - name: '8x8 handicap 2', - category: '8x8', - data: [ - 'b-------', - '--------', - '--------', - '---wb---', - '---bw---', - '--------', - '--------', - '-------b' - ] -}; - -export const eighteightH3: Map = { - name: '8x8 handicap 3', - category: '8x8', - data: [ - 'b------b', - '--------', - '--------', - '---wb---', - '---bw---', - '--------', - '--------', - '-------b' - ] -}; - -export const eighteightH4: Map = { - name: '8x8 handicap 4', - category: '8x8', - data: [ - 'b------b', - '--------', - '--------', - '---wb---', - '---bw---', - '--------', - '--------', - 'b------b' - ] -}; - -export const eighteightH28: Map = { - name: '8x8 handicap 28', - category: '8x8', - data: [ - 'bbbbbbbb', - 'b------b', - 'b------b', - 'b--wb--b', - 'b--bw--b', - 'b------b', - 'b------b', - 'bbbbbbbb' - ] -}; - -export const roundedEighteight: Map = { - name: '8x8 rounded', - category: '8x8', - author: 'syuilo', - data: [ - ' ------ ', - '--------', - '--------', - '---wb---', - '---bw---', - '--------', - '--------', - ' ------ ' - ] -}; - -export const roundedEighteight2: Map = { - name: '8x8 rounded 2', - category: '8x8', - author: 'syuilo', - data: [ - ' ---- ', - ' ------ ', - '--------', - '---wb---', - '---bw---', - '--------', - ' ------ ', - ' ---- ' - ] -}; - -export const roundedEighteight3: Map = { - name: '8x8 rounded 3', - category: '8x8', - author: 'syuilo', - data: [ - ' -- ', - ' ---- ', - ' ------ ', - '---wb---', - '---bw---', - ' ------ ', - ' ---- ', - ' -- ' - ] -}; - -export const eighteightWithNotch: Map = { - name: '8x8 with notch', - category: '8x8', - author: 'syuilo', - data: [ - '--- ---', - '--------', - '--------', - ' --wb-- ', - ' --bw-- ', - '--------', - '--------', - '--- ---' - ] -}; - -export const eighteightWithSomeHoles: Map = { - name: '8x8 with some holes', - category: '8x8', - author: 'syuilo', - data: [ - '--- ----', - '----- --', - '-- -----', - '---wb---', - '---bw- -', - ' -------', - '--- ----', - '--------' - ] -}; - -export const circle: Map = { - name: 'Circle', - category: '8x8', - author: 'syuilo', - data: [ - ' -- ', - ' ------ ', - ' ------ ', - '---wb---', - '---bw---', - ' ------ ', - ' ------ ', - ' -- ' - ] -}; - -export const smile: Map = { - name: 'Smile', - category: '8x8', - author: 'syuilo', - data: [ - ' ------ ', - '--------', - '-- -- --', - '---wb---', - '-- bw --', - '--- ---', - '--------', - ' ------ ' - ] -}; - -export const window: Map = { - name: 'Window', - category: '8x8', - author: 'syuilo', - data: [ - '--------', - '- -- -', - '- -- -', - '---wb---', - '---bw---', - '- -- -', - '- -- -', - '--------' - ] -}; - -export const reserved: Map = { - name: 'Reserved', - category: '8x8', - author: 'Aya', - data: [ - 'w------b', - '--------', - '--------', - '---wb---', - '---bw---', - '--------', - '--------', - 'b------w' - ] -}; - -export const x: Map = { - name: 'X', - category: '8x8', - author: 'Aya', - data: [ - 'w------b', - '-w----b-', - '--w--b--', - '---wb---', - '---bw---', - '--b--w--', - '-b----w-', - 'b------w' - ] -}; - -export const parallel: Map = { - name: 'Parallel', - category: '8x8', - author: 'Aya', - data: [ - '--------', - '--------', - '--------', - '---bb---', - '---ww---', - '--------', - '--------', - '--------' - ] -}; - -export const lackOfBlack: Map = { - name: 'Lack of Black', - category: '8x8', - data: [ - '--------', - '--------', - '--------', - '---w----', - '---bw---', - '--------', - '--------', - '--------' - ] -}; - -export const squareParty: Map = { - name: 'Square Party', - category: '8x8', - author: 'syuilo', - data: [ - '--------', - '-wwwbbb-', - '-w-wb-b-', - '-wwwbbb-', - '-bbbwww-', - '-b-bw-w-', - '-bbbwww-', - '--------' - ] -}; - -export const minesweeper: Map = { - name: 'Minesweeper', - category: '8x8', - author: 'syuilo', - data: [ - 'b-b--w-w', - '-w-wb-b-', - 'w-b--w-b', - '-b-wb-w-', - '-w-bw-b-', - 'b-w--b-w', - '-b-bw-w-', - 'w-w--b-b' - ] -}; - -export const tenthtenth: Map = { - name: '10x10', - category: '10x10', - data: [ - '----------', - '----------', - '----------', - '----------', - '----wb----', - '----bw----', - '----------', - '----------', - '----------', - '----------' - ] -}; - -export const hole: Map = { - name: 'The Hole', - category: '10x10', - author: 'syuilo', - data: [ - '----------', - '----------', - '--wb--wb--', - '--bw--bw--', - '---- ----', - '---- ----', - '--wb--wb--', - '--bw--bw--', - '----------', - '----------' - ] -}; - -export const grid: Map = { - name: 'Grid', - category: '10x10', - author: 'syuilo', - data: [ - '----------', - '- - -- - -', - '----------', - '- - -- - -', - '----wb----', - '----bw----', - '- - -- - -', - '----------', - '- - -- - -', - '----------' - ] -}; - -export const cross: Map = { - name: 'Cross', - category: '10x10', - author: 'Aya', - data: [ - ' ---- ', - ' ---- ', - ' ---- ', - '----------', - '----wb----', - '----bw----', - '----------', - ' ---- ', - ' ---- ', - ' ---- ' - ] -}; - -export const charX: Map = { - name: 'Char X', - category: '10x10', - author: 'syuilo', - data: [ - '--- ---', - '---- ----', - '----------', - ' -------- ', - ' --wb-- ', - ' --bw-- ', - ' -------- ', - '----------', - '---- ----', - '--- ---' - ] -}; - -export const charY: Map = { - name: 'Char Y', - category: '10x10', - author: 'syuilo', - data: [ - '--- ---', - '---- ----', - '----------', - ' -------- ', - ' --wb-- ', - ' --bw-- ', - ' ------ ', - ' ------ ', - ' ------ ', - ' ------ ' - ] -}; - -export const walls: Map = { - name: 'Walls', - category: '10x10', - author: 'Aya', - data: [ - ' bbbbbbbb ', - 'w--------w', - 'w--------w', - 'w--------w', - 'w---wb---w', - 'w---bw---w', - 'w--------w', - 'w--------w', - 'w--------w', - ' bbbbbbbb ' - ] -}; - -export const cpu: Map = { - name: 'CPU', - category: '10x10', - author: 'syuilo', - data: [ - ' b b b b ', - 'w--------w', - ' -------- ', - 'w--------w', - ' ---wb--- ', - ' ---bw--- ', - 'w--------w', - ' -------- ', - 'w--------w', - ' b b b b ' - ] -}; - -export const checker: Map = { - name: 'Checker', - category: '10x10', - author: 'Aya', - data: [ - '----------', - '----------', - '----------', - '---wbwb---', - '---bwbw---', - '---wbwb---', - '---bwbw---', - '----------', - '----------', - '----------' - ] -}; - -export const japaneseCurry: Map = { - name: 'Japanese curry', - category: '10x10', - author: 'syuilo', - data: [ - 'w-b-b-b-b-', - '-w-b-b-b-b', - 'w-w-b-b-b-', - '-w-w-b-b-b', - 'w-w-wwb-b-', - '-w-wbb-b-b', - 'w-w-w-b-b-', - '-w-w-w-b-b', - 'w-w-w-w-b-', - '-w-w-w-w-b' - ] -}; - -export const mosaic: Map = { - name: 'Mosaic', - category: '10x10', - author: 'syuilo', - data: [ - '- - - - - ', - ' - - - - -', - '- - - - - ', - ' - w w - -', - '- - b b - ', - ' - w w - -', - '- - b b - ', - ' - - - - -', - '- - - - - ', - ' - - - - -', - ] -}; - -export const arena: Map = { - name: 'Arena', - category: '10x10', - author: 'syuilo', - data: [ - '- - -- - -', - ' - - - - ', - '- ------ -', - ' -------- ', - '- --wb-- -', - '- --bw-- -', - ' -------- ', - '- ------ -', - ' - - - - ', - '- - -- - -' - ] -}; - -export const reactor: Map = { - name: 'Reactor', - category: '10x10', - author: 'syuilo', - data: [ - '-w------b-', - 'b- - - -w', - '- --wb-- -', - '---b w---', - '- b wb w -', - '- w bw b -', - '---w b---', - '- --bw-- -', - 'w- - - -b', - '-b------w-' - ] -}; - -export const sixeight: Map = { - name: '6x8', - category: 'Special', - data: [ - '------', - '------', - '------', - '--wb--', - '--bw--', - '------', - '------', - '------' - ] -}; - -export const spark: Map = { - name: 'Spark', - category: 'Special', - author: 'syuilo', - data: [ - ' - - ', - '----------', - ' -------- ', - ' -------- ', - ' ---wb--- ', - ' ---bw--- ', - ' -------- ', - ' -------- ', - '----------', - ' - - ' - ] -}; - -export const islands: Map = { - name: 'Islands', - category: 'Special', - author: 'syuilo', - data: [ - '-------- ', - '---wb--- ', - '---bw--- ', - '-------- ', - ' - - ', - ' - - ', - ' --------', - ' --------', - ' --------', - ' --------' - ] -}; - -export const galaxy: Map = { - name: 'Galaxy', - category: 'Special', - author: 'syuilo', - data: [ - ' ------ ', - ' --www--- ', - ' ------w--- ', - '---bbb--w---', - '--b---b-w-b-', - '-b--wwb-w-b-', - '-b-w-bww--b-', - '-b-w-b---b--', - '---w--bbb---', - ' ---w------ ', - ' ---www-- ', - ' ------ ' - ] -}; - -export const triangle: Map = { - name: 'Triangle', - category: 'Special', - author: 'syuilo', - data: [ - ' -- ', - ' -- ', - ' ---- ', - ' ---- ', - ' --wb-- ', - ' --bw-- ', - ' -------- ', - ' -------- ', - '----------', - '----------' - ] -}; - -export const iphonex: Map = { - name: 'iPhone X', - category: 'Special', - author: 'syuilo', - data: [ - ' -- -- ', - '--------', - '--------', - '--------', - '--------', - '---wb---', - '---bw---', - '--------', - '--------', - '--------', - '--------', - ' ------ ' - ] -}; - -export const dealWithIt: Map = { - name: 'Deal with it!', - category: 'Special', - author: 'syuilo', - data: [ - '------------', - '--w-b-------', - ' --b-w------', - ' --w-b---- ', - ' ------- ' - ] -}; - -export const experiment: Map = { - name: 'Let\'s experiment', - category: 'Special', - author: 'syuilo', - data: [ - ' ------------ ', - '------wb------', - '------bw------', - '--------------', - ' - - ', - '------ ------', - 'bbbbbb wwwwww', - 'bbbbbb wwwwww', - 'bbbbbb wwwwww', - 'bbbbbb wwwwww', - 'wwwwww bbbbbb' - ] -}; - -export const bigBoard: Map = { - name: 'Big board', - category: 'Special', - data: [ - '----------------', - '----------------', - '----------------', - '----------------', - '----------------', - '----------------', - '----------------', - '-------wb-------', - '-------bw-------', - '----------------', - '----------------', - '----------------', - '----------------', - '----------------', - '----------------', - '----------------' - ] -}; - -export const twoBoard: Map = { - name: 'Two board', - category: 'Special', - author: 'Aya', - data: [ - '-------- --------', - '-------- --------', - '-------- --------', - '---wb--- ---wb---', - '---bw--- ---bw---', - '-------- --------', - '-------- --------', - '-------- --------' - ] -}; - -export const test1: Map = { - name: 'Test1', - category: 'Test', - data: [ - '--------', - '---wb---', - '---bw---', - '--------' - ] -}; - -export const test2: Map = { - name: 'Test2', - category: 'Test', - data: [ - '------', - '------', - '-b--w-', - '-w--b-', - '-w--b-' - ] -}; - -export const test3: Map = { - name: 'Test3', - category: 'Test', - data: [ - '-w-', - '--w', - 'w--', - '-w-', - '--w', - 'w--', - '-w-', - '--w', - 'w--', - '-w-', - '---', - 'b--', - ] -}; - -export const test4: Map = { - name: 'Test4', - category: 'Test', - data: [ - '-w--b-', - '-w--b-', - '------', - '-w--b-', - '-w--b-' - ] -}; - -// 検証用: この盤面で藍(lv3)が黒で始めると何故か(?)A1に打ってしまう -export const test6: Map = { - name: 'Test6', - category: 'Test', - data: [ - '--wwwww-', - 'wwwwwwww', - 'wbbbwbwb', - 'wbbbbwbb', - 'wbwbbwbb', - 'wwbwbbbb', - '--wbbbbb', - '-wwwww--', - ] -}; - -// 検証用: この盤面で藍(lv3)が黒で始めると何故か(?)G7に打ってしまう -export const test7: Map = { - name: 'Test7', - category: 'Test', - data: [ - 'b--w----', - 'b-wwww--', - 'bwbwwwbb', - 'wbwwwwb-', - 'wwwwwww-', - '-wwbbwwb', - '--wwww--', - '--wwww--', - ] -}; - -// 検証用: この盤面で藍(lv5)が黒で始めると何故か(?)A1に打ってしまう -export const test8: Map = { - name: 'Test8', - category: 'Test', - data: [ - '--------', - '-----w--', - 'w--www--', - 'wwwwww--', - 'bbbbwww-', - 'wwwwww--', - '--www---', - '--ww----', - ] -}; diff --git a/packages/client/src/scripts/games/reversi/package.json b/packages/client/src/scripts/games/reversi/package.json deleted file mode 100644 index a4415ad141..0000000000 --- a/packages/client/src/scripts/games/reversi/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "misskey-reversi", - "version": "0.0.5", - "description": "Misskey reversi engine", - "keywords": [ - "misskey" - ], - "author": "syuilo ", - "license": "MIT", - "repository": "https://github.com/misskey-dev/misskey.git", - "bugs": "https://github.com/misskey-dev/misskey/issues", - "main": "./built/core.js", - "types": "./built/core.d.ts", - "scripts": { - "build": "tsc" - }, - "dependencies": {} -} diff --git a/packages/client/src/scripts/games/reversi/tsconfig.json b/packages/client/src/scripts/games/reversi/tsconfig.json deleted file mode 100644 index 851fb6b7e4..0000000000 --- a/packages/client/src/scripts/games/reversi/tsconfig.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "compilerOptions": { - "noEmitOnError": false, - "noImplicitAny": false, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - "experimentalDecorators": true, - "declaration": true, - "sourceMap": false, - "target": "es2017", - "module": "commonjs", - "removeComments": false, - "noLib": false, - "outDir": "./built", - "rootDir": "./" - }, - "compileOnSave": false, - "include": [ - "./core.ts" - ] -} diff --git a/packages/client/src/store.ts b/packages/client/src/store.ts index f2732c57d3..745d323100 100644 --- a/packages/client/src/store.ts +++ b/packages/client/src/store.ts @@ -255,8 +255,6 @@ export class ColdDeviceStorage { sound_chatBg: { type: 'syuilo/waon', volume: 1 }, sound_antenna: { type: 'syuilo/triple', volume: 1 }, sound_channel: { type: 'syuilo/square-pico', volume: 1 }, - sound_reversiPutBlack: { type: 'syuilo/kick', volume: 0.3 }, - sound_reversiPutWhite: { type: 'syuilo/snare', volume: 0.3 }, }; public static watchers = []; -- cgit v1.2.3-freya From 1f2dab0a839f9ee6d754243881d949988af7df55 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 13 Jan 2022 00:47:05 +0900 Subject: feat: multiple emojis editing --- .../api/endpoints/admin/emoji/add-aliases-bulk.ts | 39 +++ .../api/endpoints/admin/emoji/delete-bulk.ts | 37 +++ .../src/server/api/endpoints/admin/emoji/delete.ts | 43 +++ .../server/api/endpoints/admin/emoji/import-zip.ts | 21 ++ .../endpoints/admin/emoji/remove-aliases-bulk.ts | 39 +++ .../src/server/api/endpoints/admin/emoji/remove.ts | 43 --- .../api/endpoints/admin/emoji/set-aliases-bulk.ts | 35 +++ .../api/endpoints/admin/emoji/set-category-bulk.ts | 35 +++ .../client/src/pages/admin/emoji-edit-dialog.vue | 2 +- packages/client/src/pages/admin/emojis.vue | 341 +++++++++++++-------- packages/client/src/pages/admin/index.vue | 8 +- 11 files changed, 466 insertions(+), 177 deletions(-) create mode 100644 packages/backend/src/server/api/endpoints/admin/emoji/add-aliases-bulk.ts create mode 100644 packages/backend/src/server/api/endpoints/admin/emoji/delete-bulk.ts create mode 100644 packages/backend/src/server/api/endpoints/admin/emoji/delete.ts create mode 100644 packages/backend/src/server/api/endpoints/admin/emoji/import-zip.ts create mode 100644 packages/backend/src/server/api/endpoints/admin/emoji/remove-aliases-bulk.ts delete mode 100644 packages/backend/src/server/api/endpoints/admin/emoji/remove.ts create mode 100644 packages/backend/src/server/api/endpoints/admin/emoji/set-aliases-bulk.ts create mode 100644 packages/backend/src/server/api/endpoints/admin/emoji/set-category-bulk.ts (limited to 'packages/client/src/pages') diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/add-aliases-bulk.ts b/packages/backend/src/server/api/endpoints/admin/emoji/add-aliases-bulk.ts new file mode 100644 index 0000000000..ef0f315022 --- /dev/null +++ b/packages/backend/src/server/api/endpoints/admin/emoji/add-aliases-bulk.ts @@ -0,0 +1,39 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { ID } from '@/misc/cafy-id'; +import { Emojis } from '@/models/index'; +import { getConnection, In } from 'typeorm'; +import { ApiError } from '../../../error'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + ids: { + validator: $.arr($.type(ID)), + }, + + aliases: { + validator: $.arr($.str), + }, + }, +}; + +// eslint-disable-next-line import/no-default-export +export default define(meta, async (ps) => { + const emojis = await Emojis.find({ + id: In(ps.ids), + }); + + for (const emoji of emojis) { + await Emojis.update(emoji.id, { + updatedAt: new Date(), + aliases: [...new Set(emoji.aliases.concat(ps.aliases))], + }); + } + + await getConnection().queryResultCache!.remove(['meta_emojis']); +}); diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/delete-bulk.ts b/packages/backend/src/server/api/endpoints/admin/emoji/delete-bulk.ts new file mode 100644 index 0000000000..a99cd3c978 --- /dev/null +++ b/packages/backend/src/server/api/endpoints/admin/emoji/delete-bulk.ts @@ -0,0 +1,37 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { ID } from '@/misc/cafy-id'; +import { Emojis } from '@/models/index'; +import { getConnection, In } from 'typeorm'; +import { insertModerationLog } from '@/services/insert-moderation-log'; +import { ApiError } from '../../../error'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + ids: { + validator: $.arr($.type(ID)), + }, + }, +}; + +// eslint-disable-next-line import/no-default-export +export default define(meta, async (ps, me) => { + const emojis = await Emojis.find({ + id: In(ps.ids), + }); + + for (const emoji of emojis) { + await Emojis.delete(emoji.id); + + await getConnection().queryResultCache!.remove(['meta_emojis']); + + insertModerationLog(me, 'deleteEmoji', { + emoji: emoji, + }); + } +}); diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/delete.ts b/packages/backend/src/server/api/endpoints/admin/emoji/delete.ts new file mode 100644 index 0000000000..870245ac92 --- /dev/null +++ b/packages/backend/src/server/api/endpoints/admin/emoji/delete.ts @@ -0,0 +1,43 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { ID } from '@/misc/cafy-id'; +import { Emojis } from '@/models/index'; +import { getConnection } from 'typeorm'; +import { insertModerationLog } from '@/services/insert-moderation-log'; +import { ApiError } from '../../../error'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + id: { + validator: $.type(ID), + }, + }, + + errors: { + noSuchEmoji: { + message: 'No such emoji.', + code: 'NO_SUCH_EMOJI', + id: 'be83669b-773a-44b7-b1f8-e5e5170ac3c2', + }, + }, +}; + +// eslint-disable-next-line import/no-default-export +export default define(meta, async (ps, me) => { + const emoji = await Emojis.findOne(ps.id); + + if (emoji == null) throw new ApiError(meta.errors.noSuchEmoji); + + await Emojis.delete(emoji.id); + + await getConnection().queryResultCache!.remove(['meta_emojis']); + + insertModerationLog(me, 'deleteEmoji', { + emoji: emoji, + }); +}); diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/import-zip.ts b/packages/backend/src/server/api/endpoints/admin/emoji/import-zip.ts new file mode 100644 index 0000000000..04895b8f20 --- /dev/null +++ b/packages/backend/src/server/api/endpoints/admin/emoji/import-zip.ts @@ -0,0 +1,21 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { createImportCustomEmojisJob } from '@/queue/index'; +import ms from 'ms'; +import { ID } from '@/misc/cafy-id'; + +export const meta = { + secure: true, + requireCredential: true as const, + requireModerator: true, + params: { + fileId: { + validator: $.type(ID), + }, + }, +}; + +// eslint-disable-next-line import/no-default-export +export default define(meta, async (ps, user) => { + createImportCustomEmojisJob(user, ps.fileId); +}); diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/remove-aliases-bulk.ts b/packages/backend/src/server/api/endpoints/admin/emoji/remove-aliases-bulk.ts new file mode 100644 index 0000000000..4c771b4e42 --- /dev/null +++ b/packages/backend/src/server/api/endpoints/admin/emoji/remove-aliases-bulk.ts @@ -0,0 +1,39 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { ID } from '@/misc/cafy-id'; +import { Emojis } from '@/models/index'; +import { getConnection, In } from 'typeorm'; +import { ApiError } from '../../../error'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + ids: { + validator: $.arr($.type(ID)), + }, + + aliases: { + validator: $.arr($.str), + }, + }, +}; + +// eslint-disable-next-line import/no-default-export +export default define(meta, async (ps) => { + const emojis = await Emojis.find({ + id: In(ps.ids), + }); + + for (const emoji of emojis) { + await Emojis.update(emoji.id, { + updatedAt: new Date(), + aliases: emoji.aliases.filter(x => !ps.aliases.includes(x)), + }); + } + + await getConnection().queryResultCache!.remove(['meta_emojis']); +}); diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/remove.ts b/packages/backend/src/server/api/endpoints/admin/emoji/remove.ts deleted file mode 100644 index 440c1008c7..0000000000 --- a/packages/backend/src/server/api/endpoints/admin/emoji/remove.ts +++ /dev/null @@ -1,43 +0,0 @@ -import $ from 'cafy'; -import define from '../../../define'; -import { ID } from '@/misc/cafy-id'; -import { Emojis } from '@/models/index'; -import { getConnection } from 'typeorm'; -import { insertModerationLog } from '@/services/insert-moderation-log'; -import { ApiError } from '../../../error'; - -export const meta = { - tags: ['admin'], - - requireCredential: true as const, - requireModerator: true, - - params: { - id: { - validator: $.type(ID), - }, - }, - - errors: { - noSuchEmoji: { - message: 'No such emoji.', - code: 'NO_SUCH_EMOJI', - id: 'be83669b-773a-44b7-b1f8-e5e5170ac3c2', - }, - }, -}; - -// eslint-disable-next-line import/no-default-export -export default define(meta, async (ps, me) => { - const emoji = await Emojis.findOne(ps.id); - - if (emoji == null) throw new ApiError(meta.errors.noSuchEmoji); - - await Emojis.delete(emoji.id); - - await getConnection().queryResultCache!.remove(['meta_emojis']); - - insertModerationLog(me, 'removeEmoji', { - emoji: emoji, - }); -}); diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/set-aliases-bulk.ts b/packages/backend/src/server/api/endpoints/admin/emoji/set-aliases-bulk.ts new file mode 100644 index 0000000000..33dccbc642 --- /dev/null +++ b/packages/backend/src/server/api/endpoints/admin/emoji/set-aliases-bulk.ts @@ -0,0 +1,35 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { ID } from '@/misc/cafy-id'; +import { Emojis } from '@/models/index'; +import { getConnection, In } from 'typeorm'; +import { ApiError } from '../../../error'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + ids: { + validator: $.arr($.type(ID)), + }, + + aliases: { + validator: $.arr($.str), + }, + }, +}; + +// eslint-disable-next-line import/no-default-export +export default define(meta, async (ps) => { + await Emojis.update({ + id: In(ps.ids), + }, { + updatedAt: new Date(), + aliases: ps.aliases, + }); + + await getConnection().queryResultCache!.remove(['meta_emojis']); +}); diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/set-category-bulk.ts b/packages/backend/src/server/api/endpoints/admin/emoji/set-category-bulk.ts new file mode 100644 index 0000000000..d40ed52da7 --- /dev/null +++ b/packages/backend/src/server/api/endpoints/admin/emoji/set-category-bulk.ts @@ -0,0 +1,35 @@ +import $ from 'cafy'; +import define from '../../../define'; +import { ID } from '@/misc/cafy-id'; +import { Emojis } from '@/models/index'; +import { getConnection, In } from 'typeorm'; +import { ApiError } from '../../../error'; + +export const meta = { + tags: ['admin'], + + requireCredential: true as const, + requireModerator: true, + + params: { + ids: { + validator: $.arr($.type(ID)), + }, + + category: { + validator: $.optional.nullable.str, + }, + }, +}; + +// eslint-disable-next-line import/no-default-export +export default define(meta, async (ps) => { + await Emojis.update({ + id: In(ps.ids), + }, { + updatedAt: new Date(), + category: ps.category, + }); + + await getConnection().queryResultCache!.remove(['meta_emojis']); +}); diff --git a/packages/client/src/pages/admin/emoji-edit-dialog.vue b/packages/client/src/pages/admin/emoji-edit-dialog.vue index a45d92fa16..2e3903426e 100644 --- a/packages/client/src/pages/admin/emoji-edit-dialog.vue +++ b/packages/client/src/pages/admin/emoji-edit-dialog.vue @@ -95,7 +95,7 @@ export default defineComponent({ }); if (canceled) return; - os.api('admin/emoji/remove', { + os.api('admin/emoji/delete', { id: this.emoji.id }).then(() => { this.$emit('done', { diff --git a/packages/client/src/pages/admin/emojis.vue b/packages/client/src/pages/admin/emojis.vue index df5d234d6f..f995460f11 100644 --- a/packages/client/src/pages/admin/emojis.vue +++ b/packages/client/src/pages/admin/emojis.vue @@ -6,11 +6,22 @@ - + + + +
+ Select all + Set category + Add tag + Remove tag + Set tag + Delete +
+ - diff --git a/packages/client/src/pages/tag.vue b/packages/client/src/pages/tag.vue index a9497ae801..debee2606d 100644 --- a/packages/client/src/pages/tag.vue +++ b/packages/client/src/pages/tag.vue @@ -4,37 +4,28 @@ - diff --git a/packages/client/src/router.ts b/packages/client/src/router.ts index 312374cdb9..499afefbfe 100644 --- a/packages/client/src/router.ts +++ b/packages/client/src/router.ts @@ -33,7 +33,7 @@ const defaultRoutes = [ { path: '/explore/tags/:tag', props: true, component: page('explore') }, { path: '/federation', component: page('federation') }, { path: '/emojis', component: page('emojis') }, - { path: '/search', component: page('search') }, + { path: '/search', component: page('search'), props: route => ({ query: route.query.q, channel: route.query.channel }) }, { path: '/pages', name: 'pages', component: page('pages') }, { path: '/pages/new', component: page('page-editor/page-editor') }, { path: '/pages/edit/:pageId', component: page('page-editor/page-editor'), props: route => ({ initPageId: route.params.pageId }) }, -- cgit v1.2.3-freya From 861d028d0971b026c98f4a68881b3c37749760ee Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 13 Jan 2022 02:26:10 +0900 Subject: refactor --- packages/client/src/pages/admin/abuses.vue | 2 +- packages/client/src/pages/admin/emojis.vue | 4 ++-- packages/client/src/pages/admin/files.vue | 2 +- packages/client/src/pages/admin/users.vue | 2 +- packages/client/src/pages/announcements.vue | 2 +- packages/client/src/pages/channel.vue | 2 +- packages/client/src/pages/channels.vue | 6 +++--- packages/client/src/pages/clip.vue | 2 +- packages/client/src/pages/explore.vue | 4 ++-- packages/client/src/pages/featured.vue | 2 +- packages/client/src/pages/federation.vue | 2 +- packages/client/src/pages/follow-requests.vue | 2 +- packages/client/src/pages/gallery/index.vue | 10 +++++----- packages/client/src/pages/gallery/post.vue | 2 +- packages/client/src/pages/mentions.vue | 2 +- packages/client/src/pages/messages.vue | 2 +- packages/client/src/pages/my-antennas/index.vue | 2 +- packages/client/src/pages/my-clips/index.vue | 2 +- packages/client/src/pages/my-groups/index.vue | 6 +++--- packages/client/src/pages/my-lists/index.vue | 2 +- packages/client/src/pages/note.vue | 4 ++-- packages/client/src/pages/page.vue | 2 +- packages/client/src/pages/pages.vue | 6 +++--- packages/client/src/pages/search.vue | 2 +- packages/client/src/pages/settings/apps.vue | 2 +- packages/client/src/pages/settings/mute-block.vue | 4 ++-- packages/client/src/pages/settings/security.vue | 2 +- packages/client/src/pages/tag.vue | 2 +- packages/client/src/pages/user/clips.vue | 2 +- packages/client/src/pages/user/follow-list.vue | 4 ++-- packages/client/src/pages/user/gallery.vue | 2 +- packages/client/src/pages/user/pages.vue | 2 +- packages/client/src/pages/user/reactions.vue | 2 +- packages/client/src/ui/deck/direct-column.vue | 2 +- packages/client/src/ui/deck/mentions-column.vue | 2 +- 35 files changed, 50 insertions(+), 50 deletions(-) (limited to 'packages/client/src/pages') diff --git a/packages/client/src/pages/admin/abuses.vue b/packages/client/src/pages/admin/abuses.vue index 0f19f8dbe9..31cdef492a 100644 --- a/packages/client/src/pages/admin/abuses.vue +++ b/packages/client/src/pages/admin/abuses.vue @@ -95,7 +95,7 @@ export default defineComponent({ reporterOrigin: 'combined', targetUserOrigin: 'combined', pagination: { - endpoint: 'admin/abuse-user-reports', + endpoint: 'admin/abuse-user-reports' as const, limit: 10, params: computed(() => ({ state: this.state, diff --git a/packages/client/src/pages/admin/emojis.vue b/packages/client/src/pages/admin/emojis.vue index 38182e5be7..5b1dfe565a 100644 --- a/packages/client/src/pages/admin/emojis.vue +++ b/packages/client/src/pages/admin/emojis.vue @@ -85,7 +85,7 @@ const selectMode = ref(false); const selectedEmojis = ref([]); const pagination = { - endpoint: 'admin/emoji/list', + endpoint: 'admin/emoji/list' as const, limit: 30, params: computed(() => ({ query: (query.value && query.value !== '') ? query.value : null, @@ -93,7 +93,7 @@ const pagination = { }; const remotePagination = { - endpoint: 'admin/emoji/list-remote', + endpoint: 'admin/emoji/list-remote' as const, limit: 30, params: computed(() => ({ query: (queryRemote.value && queryRemote.value !== '') ? queryRemote.value : null, diff --git a/packages/client/src/pages/admin/files.vue b/packages/client/src/pages/admin/files.vue index 10341e7e36..87dd12f489 100644 --- a/packages/client/src/pages/admin/files.vue +++ b/packages/client/src/pages/admin/files.vue @@ -95,7 +95,7 @@ export default defineComponent({ type: null, searchHost: '', pagination: { - endpoint: 'admin/drive/files', + endpoint: 'admin/drive/files' as const, limit: 10, params: computed(() => ({ type: (this.type && this.type !== '') ? this.type : null, diff --git a/packages/client/src/pages/admin/users.vue b/packages/client/src/pages/admin/users.vue index 30220a2a29..03e155ddcf 100644 --- a/packages/client/src/pages/admin/users.vue +++ b/packages/client/src/pages/admin/users.vue @@ -110,7 +110,7 @@ export default defineComponent({ searchUsername: '', searchHost: '', pagination: { - endpoint: 'admin/show-users', + endpoint: 'admin/show-users' as const, limit: 10, params: computed(() => ({ sort: this.sort, diff --git a/packages/client/src/pages/announcements.vue b/packages/client/src/pages/announcements.vue index ca94640dda..53727823a4 100644 --- a/packages/client/src/pages/announcements.vue +++ b/packages/client/src/pages/announcements.vue @@ -36,7 +36,7 @@ export default defineComponent({ bg: 'var(--bg)', }, pagination: { - endpoint: 'announcements', + endpoint: 'announcements' as const, limit: 10, }, }; diff --git a/packages/client/src/pages/channel.vue b/packages/client/src/pages/channel.vue index 598e173d81..c9a8f36844 100644 --- a/packages/client/src/pages/channel.vue +++ b/packages/client/src/pages/channel.vue @@ -67,7 +67,7 @@ export default defineComponent({ channel: null, showBanner: true, pagination: { - endpoint: 'channels/timeline', + endpoint: 'channels/timeline' as const, limit: 10, params: computed(() => ({ channelId: this.channelId, diff --git a/packages/client/src/pages/channels.vue b/packages/client/src/pages/channels.vue index 48877ab3ec..4e538a6da3 100644 --- a/packages/client/src/pages/channels.vue +++ b/packages/client/src/pages/channels.vue @@ -60,15 +60,15 @@ export default defineComponent({ })), tab: 'featured', featuredPagination: { - endpoint: 'channels/featured', + endpoint: 'channels/featured' as const, noPaging: true, }, followingPagination: { - endpoint: 'channels/followed', + endpoint: 'channels/followed' as const, limit: 5, }, ownedPagination: { - endpoint: 'channels/owned', + endpoint: 'channels/owned' as const, limit: 5, }, }; diff --git a/packages/client/src/pages/clip.vue b/packages/client/src/pages/clip.vue index b375856803..6b49221d32 100644 --- a/packages/client/src/pages/clip.vue +++ b/packages/client/src/pages/clip.vue @@ -50,7 +50,7 @@ export default defineComponent({ } : null), clip: null, pagination: { - endpoint: 'clips/notes', + endpoint: 'clips/notes' as const, limit: 10, params: computed(() => ({ clipId: this.clipId, diff --git a/packages/client/src/pages/explore.vue b/packages/client/src/pages/explore.vue index a3c3b771f2..04cc3662a7 100644 --- a/packages/client/src/pages/explore.vue +++ b/packages/client/src/pages/explore.vue @@ -156,7 +156,7 @@ export default defineComponent({ sort: '+createdAt', } }, searchPagination: { - endpoint: 'users/search', + endpoint: 'users/search' as const, limit: 10, params: computed(() => (this.searchQuery && this.searchQuery !== '') ? { query: this.searchQuery, @@ -178,7 +178,7 @@ export default defineComponent({ }, tagUsers(): any { return { - endpoint: 'hashtags/users', + endpoint: 'hashtags/users' as const, limit: 30, params: { tag: this.tag, diff --git a/packages/client/src/pages/featured.vue b/packages/client/src/pages/featured.vue index efa74ca599..725c70f0f7 100644 --- a/packages/client/src/pages/featured.vue +++ b/packages/client/src/pages/featured.vue @@ -10,7 +10,7 @@ import * as symbols from '@/symbols'; import { i18n } from '@/i18n'; const pagination = { - endpoint: 'notes/featured', + endpoint: 'notes/featured' as const, limit: 10, offsetMode: true, }; diff --git a/packages/client/src/pages/federation.vue b/packages/client/src/pages/federation.vue index e23c4f8f16..610c9233a3 100644 --- a/packages/client/src/pages/federation.vue +++ b/packages/client/src/pages/federation.vue @@ -127,7 +127,7 @@ export default defineComponent({ state: 'federating', sort: '+pubSub', pagination: { - endpoint: 'federation/instances', + endpoint: 'federation/instances' as const, limit: 10, offsetMode: true, params: computed(() => ({ diff --git a/packages/client/src/pages/follow-requests.vue b/packages/client/src/pages/follow-requests.vue index 00dfa06564..764daa0d3e 100644 --- a/packages/client/src/pages/follow-requests.vue +++ b/packages/client/src/pages/follow-requests.vue @@ -42,7 +42,7 @@ import { i18n } from '@/i18n'; const paginationComponent = ref>(); const pagination = { - endpoint: 'following/requests/list', + endpoint: 'following/requests/list' as const, limit: 10, }; diff --git a/packages/client/src/pages/gallery/index.vue b/packages/client/src/pages/gallery/index.vue index cd0d2a40e4..a19d69d5c2 100644 --- a/packages/client/src/pages/gallery/index.vue +++ b/packages/client/src/pages/gallery/index.vue @@ -81,19 +81,19 @@ export default defineComponent({ }, tab: 'explore', recentPostsPagination: { - endpoint: 'gallery/posts', + endpoint: 'gallery/posts' as const, limit: 6, }, popularPostsPagination: { - endpoint: 'gallery/featured', + endpoint: 'gallery/featured' as const, limit: 5, }, myPostsPagination: { - endpoint: 'i/gallery/posts', + endpoint: 'i/gallery/posts' as const, limit: 5, }, likedPostsPagination: { - endpoint: 'i/gallery/likes', + endpoint: 'i/gallery/likes' as const, limit: 5, }, tags: [], @@ -106,7 +106,7 @@ export default defineComponent({ }, tagUsers(): any { return { - endpoint: 'hashtags/users', + endpoint: 'hashtags/users' as const, limit: 30, params: { tag: this.tag, diff --git a/packages/client/src/pages/gallery/post.vue b/packages/client/src/pages/gallery/post.vue index 9d769deca0..fff2b6a74e 100644 --- a/packages/client/src/pages/gallery/post.vue +++ b/packages/client/src/pages/gallery/post.vue @@ -93,7 +93,7 @@ export default defineComponent({ }] } : null), otherPostsPagination: { - endpoint: 'users/gallery/posts', + endpoint: 'users/gallery/posts' as const, limit: 6, params: computed(() => ({ userId: this.post.user.id diff --git a/packages/client/src/pages/mentions.vue b/packages/client/src/pages/mentions.vue index ea23c6a2f6..bda56fc729 100644 --- a/packages/client/src/pages/mentions.vue +++ b/packages/client/src/pages/mentions.vue @@ -10,7 +10,7 @@ import * as symbols from '@/symbols'; import { i18n } from '@/i18n'; const pagination = { - endpoint: 'notes/mentions', + endpoint: 'notes/mentions' as const, limit: 10, }; diff --git a/packages/client/src/pages/messages.vue b/packages/client/src/pages/messages.vue index 448aa0241f..8efdc55586 100644 --- a/packages/client/src/pages/messages.vue +++ b/packages/client/src/pages/messages.vue @@ -10,7 +10,7 @@ import * as symbols from '@/symbols'; import { i18n } from '@/i18n'; const pagination = { - endpoint: 'notes/mentions', + endpoint: 'notes/mentions' as const, limit: 10, params: () => ({ visibility: 'specified' diff --git a/packages/client/src/pages/my-antennas/index.vue b/packages/client/src/pages/my-antennas/index.vue index d185e796c3..7138d269a9 100644 --- a/packages/client/src/pages/my-antennas/index.vue +++ b/packages/client/src/pages/my-antennas/index.vue @@ -38,7 +38,7 @@ export default defineComponent({ } }, pagination: { - endpoint: 'antennas/list', + endpoint: 'antennas/list' as const, limit: 10, }, }; diff --git a/packages/client/src/pages/my-clips/index.vue b/packages/client/src/pages/my-clips/index.vue index a5bbc3fd2d..ccfb9095d1 100644 --- a/packages/client/src/pages/my-clips/index.vue +++ b/packages/client/src/pages/my-clips/index.vue @@ -38,7 +38,7 @@ export default defineComponent({ } }, pagination: { - endpoint: 'clips/list', + endpoint: 'clips/list' as const, limit: 10, }, draft: null, diff --git a/packages/client/src/pages/my-groups/index.vue b/packages/client/src/pages/my-groups/index.vue index db5ccde466..4b2b2963a8 100644 --- a/packages/client/src/pages/my-groups/index.vue +++ b/packages/client/src/pages/my-groups/index.vue @@ -87,15 +87,15 @@ export default defineComponent({ })), tab: 'owned', ownedPagination: { - endpoint: 'users/groups/owned', + endpoint: 'users/groups/owned' as const, limit: 10, }, joinedPagination: { - endpoint: 'users/groups/joined', + endpoint: 'users/groups/joined' as const, limit: 10, }, invitationPagination: { - endpoint: 'i/user-group-invites', + endpoint: 'i/user-group-invites' as const, limit: 10, }, }; diff --git a/packages/client/src/pages/my-lists/index.vue b/packages/client/src/pages/my-lists/index.vue index 94a869b9ff..1b1b7e2d02 100644 --- a/packages/client/src/pages/my-lists/index.vue +++ b/packages/client/src/pages/my-lists/index.vue @@ -40,7 +40,7 @@ export default defineComponent({ }, }, pagination: { - endpoint: 'users/lists/list', + endpoint: 'users/lists/list' as const, limit: 10, }, }; diff --git a/packages/client/src/pages/note.vue b/packages/client/src/pages/note.vue index d40082381c..2249fa2b91 100644 --- a/packages/client/src/pages/note.vue +++ b/packages/client/src/pages/note.vue @@ -82,7 +82,7 @@ export default defineComponent({ showNext: false, error: null, prev: { - endpoint: 'users/notes', + endpoint: 'users/notes' as const, limit: 10, params: init => ({ userId: this.note.userId, @@ -91,7 +91,7 @@ export default defineComponent({ }, next: { reversed: true, - endpoint: 'users/notes', + endpoint: 'users/notes' as const, limit: 10, params: init => ({ userId: this.note.userId, diff --git a/packages/client/src/pages/page.vue b/packages/client/src/pages/page.vue index 5cb3948f1c..429d1ddea2 100644 --- a/packages/client/src/pages/page.vue +++ b/packages/client/src/pages/page.vue @@ -106,7 +106,7 @@ export default defineComponent({ page: null, error: null, otherPostsPagination: { - endpoint: 'users/pages', + endpoint: 'users/pages' as const, limit: 6, params: computed(() => ({ userId: this.page.user.id diff --git a/packages/client/src/pages/pages.vue b/packages/client/src/pages/pages.vue index f1dd64f119..dcccf7f7c4 100644 --- a/packages/client/src/pages/pages.vue +++ b/packages/client/src/pages/pages.vue @@ -62,15 +62,15 @@ export default defineComponent({ })), tab: 'featured', featuredPagesPagination: { - endpoint: 'pages/featured', + endpoint: 'pages/featured' as const, noPaging: true, }, myPagesPagination: { - endpoint: 'i/pages', + endpoint: 'i/pages' as const, limit: 5, }, likedPagesPagination: { - endpoint: 'i/page-likes', + endpoint: 'i/page-likes' as const, limit: 5, }, }; diff --git a/packages/client/src/pages/search.vue b/packages/client/src/pages/search.vue index d25d5af147..ce2b7035da 100644 --- a/packages/client/src/pages/search.vue +++ b/packages/client/src/pages/search.vue @@ -18,7 +18,7 @@ const props = defineProps<{ }>(); const pagination = { - endpoint: 'notes/search', + endpoint: 'notes/search' as const, limit: 10, params: computed(() => ({ query: props.query, diff --git a/packages/client/src/pages/settings/apps.vue b/packages/client/src/pages/settings/apps.vue index a75e06165d..9c0fa8a54d 100644 --- a/packages/client/src/pages/settings/apps.vue +++ b/packages/client/src/pages/settings/apps.vue @@ -58,7 +58,7 @@ export default defineComponent({ bg: 'var(--bg)', }, pagination: { - endpoint: 'i/apps', + endpoint: 'i/apps' as const, limit: 100, params: { sort: '+lastUsedAt' diff --git a/packages/client/src/pages/settings/mute-block.vue b/packages/client/src/pages/settings/mute-block.vue index a4f9b41e80..903d32d08c 100644 --- a/packages/client/src/pages/settings/mute-block.vue +++ b/packages/client/src/pages/settings/mute-block.vue @@ -56,11 +56,11 @@ export default defineComponent({ }, tab: 'mute', mutingPagination: { - endpoint: 'mute/list', + endpoint: 'mute/list' as const, limit: 10, }, blockingPagination: { - endpoint: 'blocking/list', + endpoint: 'blocking/list' as const, limit: 10, }, } diff --git a/packages/client/src/pages/settings/security.vue b/packages/client/src/pages/settings/security.vue index 2386340028..6fb3f1c413 100644 --- a/packages/client/src/pages/settings/security.vue +++ b/packages/client/src/pages/settings/security.vue @@ -66,7 +66,7 @@ export default defineComponent({ bg: 'var(--bg)', }, pagination: { - endpoint: 'i/signin-history', + endpoint: 'i/signin-history' as const, limit: 5, }, } diff --git a/packages/client/src/pages/tag.vue b/packages/client/src/pages/tag.vue index debee2606d..8d8dc0a65c 100644 --- a/packages/client/src/pages/tag.vue +++ b/packages/client/src/pages/tag.vue @@ -14,7 +14,7 @@ const props = defineProps<{ }>(); const pagination = { - endpoint: 'notes/search-by-tag', + endpoint: 'notes/search-by-tag' as const, limit: 10, params: computed(() => ({ tag: props.tag, diff --git a/packages/client/src/pages/user/clips.vue b/packages/client/src/pages/user/clips.vue index aad5317ce0..870e6f7174 100644 --- a/packages/client/src/pages/user/clips.vue +++ b/packages/client/src/pages/user/clips.vue @@ -28,7 +28,7 @@ export default defineComponent({ data() { return { pagination: { - endpoint: 'users/clips', + endpoint: 'users/clips' as const, limit: 20, params: { userId: this.user.id, diff --git a/packages/client/src/pages/user/follow-list.vue b/packages/client/src/pages/user/follow-list.vue index e12ea477ca..b34757c166 100644 --- a/packages/client/src/pages/user/follow-list.vue +++ b/packages/client/src/pages/user/follow-list.vue @@ -33,14 +33,14 @@ export default defineComponent({ data() { return { followingPagination: { - endpoint: 'users/following', + endpoint: 'users/following' as const, limit: 20, params: computed(() => ({ userId: this.user.id, })), }, followersPagination: { - endpoint: 'users/followers', + endpoint: 'users/followers' as const, limit: 20, params: computed(() => ({ userId: this.user.id, diff --git a/packages/client/src/pages/user/gallery.vue b/packages/client/src/pages/user/gallery.vue index 88f0604f1f..07dda4a292 100644 --- a/packages/client/src/pages/user/gallery.vue +++ b/packages/client/src/pages/user/gallery.vue @@ -29,7 +29,7 @@ export default defineComponent({ data() { return { pagination: { - endpoint: 'users/gallery/posts', + endpoint: 'users/gallery/posts' as const, limit: 6, params: computed(() => ({ userId: this.user.id diff --git a/packages/client/src/pages/user/pages.vue b/packages/client/src/pages/user/pages.vue index 3075dd5729..6ce84da0a2 100644 --- a/packages/client/src/pages/user/pages.vue +++ b/packages/client/src/pages/user/pages.vue @@ -27,7 +27,7 @@ export default defineComponent({ data() { return { pagination: { - endpoint: 'users/pages', + endpoint: 'users/pages' as const, limit: 20, params: computed(() => ({ userId: this.user.id, diff --git a/packages/client/src/pages/user/reactions.vue b/packages/client/src/pages/user/reactions.vue index f51f6669c3..5cb035bace 100644 --- a/packages/client/src/pages/user/reactions.vue +++ b/packages/client/src/pages/user/reactions.vue @@ -36,7 +36,7 @@ export default defineComponent({ data() { return { pagination: { - endpoint: 'users/reactions', + endpoint: 'users/reactions' as const, limit: 20, params: computed(() => ({ userId: this.user.id, diff --git a/packages/client/src/ui/deck/direct-column.vue b/packages/client/src/ui/deck/direct-column.vue index 4206b09b97..7bf6344153 100644 --- a/packages/client/src/ui/deck/direct-column.vue +++ b/packages/client/src/ui/deck/direct-column.vue @@ -32,7 +32,7 @@ export default defineComponent({ data() { return { pagination: { - endpoint: 'notes/mentions', + endpoint: 'notes/mentions' as const, limit: 10, params: computed(() => ({ visibility: 'specified' diff --git a/packages/client/src/ui/deck/mentions-column.vue b/packages/client/src/ui/deck/mentions-column.vue index 4b8dc0c4ee..e007b3e08a 100644 --- a/packages/client/src/ui/deck/mentions-column.vue +++ b/packages/client/src/ui/deck/mentions-column.vue @@ -32,7 +32,7 @@ export default defineComponent({ data() { return { pagination: { - endpoint: 'notes/mentions', + endpoint: 'notes/mentions' as const, limit: 10, }, } -- cgit v1.2.3-freya From 2900f998b13e2fd1880224a53cc2472110b55dd4 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 13 Jan 2022 02:36:51 +0900 Subject: wip: refactor(client): migrate paging components to composition api --- packages/client/src/pages/emojis.emoji.vue | 42 ++++++-------- packages/client/src/pages/emojis.vue | 76 +++++++++++-------------- packages/client/src/pages/timeline.tutorial.vue | 24 ++------ 3 files changed, 58 insertions(+), 84 deletions(-) (limited to 'packages/client/src/pages') diff --git a/packages/client/src/pages/emojis.emoji.vue b/packages/client/src/pages/emojis.emoji.vue index 5dab72daea..83539ce7a3 100644 --- a/packages/client/src/pages/emojis.emoji.vue +++ b/packages/client/src/pages/emojis.emoji.vue @@ -8,35 +8,29 @@ - diff --git a/packages/client/src/components/note-detailed.vue b/packages/client/src/components/note-detailed.vue index a5cb2f0426..07e9920f65 100644 --- a/packages/client/src/components/note-detailed.vue +++ b/packages/client/src/components/note-detailed.vue @@ -8,8 +8,8 @@ :tabindex="!isDeleted ? '-1' : null" :class="{ renote: isRenote }" > - - + +
@@ -107,7 +107,7 @@
- +
@@ -120,765 +120,171 @@
- diff --git a/packages/client/src/components/note.vue b/packages/client/src/components/note.vue index 3cf924928a..b309afe051 100644 --- a/packages/client/src/components/note.vue +++ b/packages/client/src/components/note.vue @@ -2,20 +2,21 @@
- -
{{ $ts.pinnedNote }}
-
{{ $ts.promotion }}
-
{{ $ts.featured }}
+ +
{{ i18n.locale.pinnedNote }}
+
{{ i18n.locale.promotion }}
+
{{ i18n.locale.featured }}
- + - diff --git a/packages/client/src/pages/admin/abuses.vue b/packages/client/src/pages/admin/abuses.vue index 31cdef492a..92f93797ce 100644 --- a/packages/client/src/pages/admin/abuses.vue +++ b/packages/client/src/pages/admin/abuses.vue @@ -34,27 +34,7 @@ --> -
-
- -
- -
@{{ acct(report.targetUser) }}
-
-
-
-
- -
-
-
Reporter:
-
-
- -
+
@@ -64,20 +44,19 @@ diff --git a/packages/client/src/components/timeline.vue b/packages/client/src/components/timeline.vue index a7af02c30b..59956b9526 100644 --- a/packages/client/src/components/timeline.vue +++ b/packages/client/src/components/timeline.vue @@ -25,10 +25,10 @@ const emit = defineEmits<{ provide('inChannel', computed(() => props.src === 'channel')); -const tlComponent = ref>(); +const tlComponent: InstanceType = $ref(); const prepend = note => { - tlComponent.value.prepend(note); + tlComponent.pagingComponent?.prepend(note); emit('note'); @@ -38,16 +38,16 @@ const prepend = note => { }; const onUserAdded = () => { - tlComponent.value.reload(); + tlComponent.pagingComponent?.reload(); }; const onUserRemoved = () => { - tlComponent.value.reload(); + tlComponent.pagingComponent?.reload(); }; const onChangeFollowing = () => { - if (!tlComponent.value.backed) { - tlComponent.value.reload(); + if (!tlComponent.pagingComponent?.backed) { + tlComponent.pagingComponent?.reload(); } }; diff --git a/packages/client/src/components/ui/pagination.vue b/packages/client/src/components/ui/pagination.vue index 571ef71eab..9c18fc5ce5 100644 --- a/packages/client/src/components/ui/pagination.vue +++ b/packages/client/src/components/ui/pagination.vue @@ -73,12 +73,11 @@ const queue = ref([]); const offset = ref(0); const fetching = ref(true); const moreFetching = ref(false); -const inited = ref(false); const more = ref(false); const backed = ref(false); // 遡り中か否か const isBackTop = ref(false); -const empty = computed(() => items.value.length === 0 && !fetching.value && inited.value); -const error = computed(() => !fetching.value && !inited.value); +const empty = computed(() => items.value.length === 0); +const error = ref(false); const init = async (): Promise => { queue.value = []; @@ -105,9 +104,10 @@ const init = async (): Promise => { more.value = false; } offset.value = res.length; - inited.value = true; + error.value = false; fetching.value = false; }, e => { + error.value = true; fetching.value = false; }); }; @@ -183,30 +183,36 @@ const fetchMoreAhead = async (): Promise => { }; const prepend = (item: Item): void => { - if (rootEl.value == null) return; - if (props.pagination.reversed) { - const container = getScrollContainer(rootEl.value); - if (container == null) return; // TODO? - - const pos = getScrollPosition(rootEl.value); - const viewHeight = container.clientHeight; - const height = container.scrollHeight; - const isBottom = (pos + viewHeight > height - 32); - if (isBottom) { - // オーバーフローしたら古いアイテムは捨てる - if (items.value.length >= props.displayLimit) { - // このやり方だとVue 3.2以降アニメーションが動かなくなる - //items.value = items.value.slice(-props.displayLimit); - while (items.value.length >= props.displayLimit) { - items.value.shift(); + if (rootEl.value) { + const container = getScrollContainer(rootEl.value); + if (container == null) return; // TODO? + + const pos = getScrollPosition(rootEl.value); + const viewHeight = container.clientHeight; + const height = container.scrollHeight; + const isBottom = (pos + viewHeight > height - 32); + if (isBottom) { + // オーバーフローしたら古いアイテムは捨てる + if (items.value.length >= props.displayLimit) { + // このやり方だとVue 3.2以降アニメーションが動かなくなる + //items.value = items.value.slice(-props.displayLimit); + while (items.value.length >= props.displayLimit) { + items.value.shift(); + } + more.value = true; } - more.value = true; } } items.value.push(item); // TODO } else { + // 初回表示時はunshiftだけでOK + if (!rootEl.value) { + items.value.unshift(item); + return; + } + const isTop = isBackTop.value || (document.body.contains(rootEl.value) && isTopVisible(rootEl.value)); if (isTop) { @@ -264,6 +270,7 @@ onDeactivated(() => { defineExpose({ items, + backed, reload, fetchMoreAhead, prepend, diff --git a/packages/client/src/pages/tag.vue b/packages/client/src/pages/tag.vue index 8d8dc0a65c..045f1ef259 100644 --- a/packages/client/src/pages/tag.vue +++ b/packages/client/src/pages/tag.vue @@ -1,6 +1,6 @@ diff --git a/packages/client/src/pages/user/index.timeline.vue b/packages/client/src/pages/user/index.timeline.vue index 7396a76efe..a1329a7411 100644 --- a/packages/client/src/pages/user/index.timeline.vue +++ b/packages/client/src/pages/user/index.timeline.vue @@ -5,7 +5,7 @@ - + -- cgit v1.2.3-freya From 2c471966002bd62a85ca463aac35f4276fed5d50 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 21 Jan 2022 21:16:12 +0900 Subject: wip: refactor(client): migrate components to composition api --- packages/client/src/pages/about-misskey.vue | 108 +++++++++++++--------------- 1 file changed, 49 insertions(+), 59 deletions(-) (limited to 'packages/client/src/pages') diff --git a/packages/client/src/pages/about-misskey.vue b/packages/client/src/pages/about-misskey.vue index 855a21e493..efb44adffd 100644 --- a/packages/client/src/pages/about-misskey.vue +++ b/packages/client/src/pages/about-misskey.vue @@ -3,36 +3,36 @@
-
+
Misskey
v{{ version }}
- {{ $ts._aboutMisskey.about }}
{{ $ts.learnMore }} + {{ i18n.locale._aboutMisskey.about }}
{{ i18n.locale.learnMore }}
- + - + - +
{{ patron }}
- +
-