Compare commits

...

87 Commits

Author SHA1 Message Date
Derek e995e4134b Merge branch 'master' of https://github.com/misskey-dev/misskey into stage 2021-12-19 20:10:59 -07:00
syuilo 1b956af855 Merge branch 'develop' 2021-12-18 20:59:16 +09:00
syuilo a3dceee7c0 12.100.2 2021-12-18 20:59:05 +09:00
syuilo 7940417d23
New Crowdin updates (#8058)
* New translations ja-JP.yml (Chinese Simplified)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (French)

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

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

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Dutch)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Czech)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

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

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

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)
2021-12-18 20:54:35 +09:00
syuilo b1751543aa fix(client): カスタム絵文字一覧ページの負荷が高いのを修正 2021-12-18 20:20:49 +09:00
syuilo 034dcaeb9d clean up 2021-12-18 20:20:02 +09:00
syuilo 936fb136d2 🎨 2021-12-18 20:12:09 +09:00
syuilo 55ab528c87 Update CHANGELOG.md 2021-12-18 18:13:50 +09:00
syuilo c544e38f34 fix(client/deck): カラムの増減がページをリロードするまで正しく反映されない問題を修正
Fix #8065
2021-12-18 18:11:45 +09:00
syuilo 9b771baa5e 🎨 2021-12-18 15:00:29 +09:00
syuilo f607faef0b refactor(client): improve $i type 2021-12-18 14:56:35 +09:00
syuilo cb16ff866c improve(client): show reload tip 2021-12-18 14:56:15 +09:00
syuilo d6e85ffb59 feat(client): improve toast component and show welcome message 2021-12-18 14:55:53 +09:00
syuilo f9e3fd7001 fix(client): fix zindex issue 2021-12-18 12:14:27 +09:00
syuilo ba1e14443c fix(client): fix zindex issue
Fix #8064
Fix #8063
2021-12-18 12:12:47 +09:00
syuilo 80c88e13ff Merge branch 'develop' 2021-12-17 19:43:00 +09:00
syuilo 35cd9e621a 12.100.1 2021-12-17 19:42:50 +09:00
syuilo ea66080197 fix(client): fix zindex issue 2021-12-17 19:38:17 +09:00
syuilo 06837662a9 fix(client): tweak style 2021-12-17 19:36:18 +09:00
syuilo f9024a0058 improve(client): tweak drawer max height 2021-12-17 19:34:58 +09:00
syuilo 493ff2eed5
fix(client): fix zindex issue 2021-12-17 17:37:58 +09:00
syuilo ad9e6a4ec5 Merge branch 'develop' 2021-12-17 16:18:29 +09:00
syuilo ac82435014 12.100.0 2021-12-17 16:17:56 +09:00
syuilo d9257a5c0e 🎨 2021-12-17 16:14:43 +09:00
syuilo f7c90b58d6 enhance(client): リアクションピッカーの表示方法を選択できるように 2021-12-17 16:14:31 +09:00
syuilo 2f8e3559b5 update deps 2021-12-17 14:12:34 +09:00
syuilo e96a914b6b 🎨 2021-12-17 13:15:06 +09:00
syuilo 6ab2c7780c enhance(client): improve modal menu for mobile 2021-12-17 02:14:40 +09:00
Outvi V 6d6162333e
chore: remove ms-vscode.typescript-javascript-grammar (#8061) 2021-12-16 23:46:18 +09:00
syuilo 58b9dc581e fix(client): fix zindex issues
Fix #8060
2021-12-16 10:57:07 +09:00
syuilo fa8eb43eaf fix(client): 一部のコンポーネントが裏に隠れるのを修正 2021-12-15 21:44:41 +09:00
syuilo 504f182448 Merge branch 'develop' 2021-12-14 23:28:29 +09:00
syuilo cf5fe2d107 12.99.3 2021-12-14 23:28:19 +09:00
syuilo 50f2025421 fix(client): オートコンプリートがダイアログの裏に隠れる問題を修正 2021-12-14 23:27:38 +09:00
syuilo fd5999378b Merge branch 'develop' 2021-12-14 23:13:41 +09:00
syuilo 1894df882b 12.99.2 2021-12-14 23:13:31 +09:00
syuilo 983599bdae Update 1639325650583-chart-v3.js 2021-12-14 23:13:09 +09:00
syuilo 8451436cb8 Merge branch 'develop' 2021-12-14 23:03:56 +09:00
syuilo 6319dd1bfb 12.99.1 2021-12-14 23:03:45 +09:00
syuilo d1ea8654e6 fix: YAMLファイルへのバックスペース文字混入対策 2021-12-14 23:03:18 +09:00
syuilo 37628953c5 Merge branch 'develop' 2021-12-14 22:38:31 +09:00
syuilo 13288e1ed8 12.99.0 2021-12-14 22:38:12 +09:00
syuilo 6d82bbef17 Update CHANGELOG.md 2021-12-14 22:37:50 +09:00
syuilo a46e2f2868 Update formula-core.vue 2021-12-14 22:37:18 +09:00
syuilo 6cbc460c19 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2021-12-14 22:27:52 +09:00
syuilo 9cd2b767a9 enhance(client): make possible to leave a group 2021-12-14 22:27:33 +09:00
syuilo 60b9c467e6
New Crowdin updates (#8053)
* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)
2021-12-14 21:57:12 +09:00
syuilo ceabd7c791 Update CHANGELOG.md 2021-12-14 21:55:48 +09:00
syuilo 0be4e10462 enhance(backend): improve chart engine 2021-12-14 18:12:37 +09:00
syuilo d95fafb5b3
New Crowdin updates (#8033)
* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

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

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Dutch)

* New translations ja-JP.yml (Dutch)

* New translations ja-JP.yml (Dutch)

* New translations ja-JP.yml (Dutch)

* New translations ja-JP.yml (Dutch)

* New translations ja-JP.yml (Dutch)

* New translations ja-JP.yml (French)

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

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

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Dutch)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Chinese Simplified)
2021-12-12 22:36:24 +09:00
syuilo ef485044ea Update export-custom-emojis.ts 2021-12-12 06:24:13 +09:00
syuilo c599a304c8 refactor 2021-12-12 06:21:48 +09:00
syuilo 6d918f195a clean up 2021-12-11 23:21:33 +09:00
syuilo 31a3748a18 fix(client): fix z-index bug 2021-12-11 23:01:05 +09:00
syuilo 48212e7a44 tweak component 2021-12-10 21:41:37 +09:00
syuilo 0f7241c2c2 Update CONTRIBUTING.md 2021-12-10 20:42:01 +09:00
syuilo bd903cdbb5 feat: カスタム絵文字エクスポート 2021-12-10 18:24:26 +09:00
syuilo 0b038f6477 fix(client): メニューなどがウィンドウの裏に隠れる問題を修正 2021-12-10 18:20:41 +09:00
syuilo 7e26daa51b fix(client): クリップの設定を編集できない問題を修正
Fix #8046
2021-12-10 16:15:36 +09:00
syuilo 225d7701a4 🎨 2021-12-10 16:01:35 +09:00
syuilo 1cae39e281 tweak style 2021-12-10 15:33:01 +09:00
Outvi V b635b064ee
fix: integration links (#8036) 2021-12-10 13:32:55 +09:00
syuilo 640fc337af client: tweak style 2021-12-10 11:56:23 +09:00
syuilo 43f2ac56ee Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2021-12-10 10:46:40 +09:00
syuilo d3c7c0ebe3 client: tweak style 2021-12-10 10:46:29 +09:00
Robin B d15c8afcdf
Fix japanese instanceMuteDescription string (#8047) 2021-12-10 10:05:18 +09:00
syuilo 20134a5367 feat: improve follow export 2021-12-10 01:22:35 +09:00
syuilo 46c0280764 refactor(client): 2021-12-10 01:22:22 +09:00
syuilo 980a99b6c9 Update .eslintrc.js 2021-12-10 00:10:10 +09:00
syuilo c69b72e199 fix lint 2021-12-09 23:58:30 +09:00
syuilo 0abe2dfee0 Update instance-mute.vue 2021-12-09 21:48:57 +09:00
syuilo caf0a219a6 Update instance-mute.vue 2021-12-09 21:45:14 +09:00
syuilo 4341c4cccc Update CHANGELOG.md 2021-12-09 21:40:15 +09:00
romaboo 054417354c
feat: user-level instance mute (#7712)
* Update ja-JP.yml

* Added settable config for muted instances

* added psql query for removal of muted notes

* Added filtering and trimming for instance mutes

* cleaned up filtering of bad instance mutes and added a refresh at the end for the list on the client

* Added notification & streaming timeline muting

* Updated changelog

* Added missing semicolon

* Apply japanese string suggestions from robflop

Co-authored-by: Robin B. <robflop98@outlook.com>

* Changed Ja-JP instance mute title string to one suggested by sousuke

Co-authored-by: sousuke0422 <sousuke20xx@gmail.com>

* Update ja-JP instanceMuteDescription based on sousuke's suggestion

Co-authored-by: sousuke0422 <sousuke20xx@gmail.com>

* added notification mute

* added notification and note children muting

* Fixed a bug where local notifications were getting filtered on cold start

* Fixed instance mute imports

* Fixed not saving/loading instance mutes

* removed en-US translations for instance mute

* moved instance mute migration to js

* changed settings index back to spaces

* removed destructuring assignment from notification stream in instance mute check call

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

* added .note accessor for checking note data instead of notification data

* changed note to use Packed<'Note'> instead of any and removed usage of snake case

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

* changed notification mute check to check specifically for notification host

* changed to using single quotes

* moved @click to the end for the linter

* revert unnecessary changes

* restored newlines

* whitespace removal

Co-authored-by: syuilo <syuilotan@yahoo.co.jp>
Co-authored-by: Robin B. <robflop98@outlook.com>
Co-authored-by: sousuke0422 <sousuke20xx@gmail.com>
Co-authored-by: puffaboo <emilis@jigglypuff.club>
Co-authored-by: tamaina <tamaina@hotmail.co.jp>
2021-12-09 21:38:56 +09:00
syuilo b9095995eb update deps 2021-12-09 21:31:36 +09:00
syuilo a60bd33cfc Update about-misskey.vue 2021-12-09 21:30:02 +09:00
futchitwo 7eedb9b19b
Fix(client): iをパラメーターに含めてもデフォルトのiが付与されるのを修正 (#8039) 2021-12-05 21:52:57 +09:00
syuilo e804a299e0 fix(client): better hover detection 2021-12-05 20:01:52 +09:00
syuilo bcf7530eef refactor(client): 2021-12-05 16:57:49 +09:00
syuilo bed982e705 add note 2021-12-05 13:13:46 +09:00
syuilo d9853d9683 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2021-12-05 13:10:29 +09:00
syuilo fbe4869d1e fix(client): タッチ機能付きディスプレイを使っていてマウス操作をしている場合に一部機能が動作しない問題を修正 2021-12-05 13:10:19 +09:00
okpierre ac04c46d3b
Update other.vue (#8040) 2021-12-05 12:47:57 +09:00
futchitwo b1bd7307bb
Fix(client): APIコンソールで with credential がオフだとiが付与されないように (#8038) 2021-12-05 03:01:35 +09:00
syuilo 8a3f860213 fix(client): fix range slider rendering 2021-12-04 20:35:08 +09:00
syuilo e42e9530cb fix(client): tweak style 2021-12-04 18:27:31 +09:00
syuilo b65353bc3c fix(client): pagesで関数を定義できない問題を修正 2021-12-04 18:12:03 +09:00
693 changed files with 6571 additions and 6111 deletions

View File

@ -2,7 +2,6 @@
"recommendations": [ "recommendations": [
"editorconfig.editorconfig", "editorconfig.editorconfig",
"eg2.vscode-npm-script", "eg2.vscode-npm-script",
"ms-vscode.typescript-javascript-grammar",
"dbaeumer.vscode-eslint", "dbaeumer.vscode-eslint",
"johnsoncodehk.volar", "johnsoncodehk.volar",
"sysoev.language-stylus" "sysoev.language-stylus"

View File

@ -7,6 +7,49 @@
--> -->
## 12.100.2 (2021/12/18)
### Bugfixes
- クライアント: Deckカラムの増減がページをリロードするまで正しく反映されない問題を修正
- クライアント: 一部のコンポーネントが裏に隠れるのを修正
- クライアント: カスタム絵文字一覧ページの負荷が高いのを修正
## 12.100.1 (2021/12/17)
### Bugfixes
- クライアント: デザインの調整
## 12.100.0 (2021/12/17)
### Improvements
- クライアント: モバイルでの各種メニュー、リアクションピッカーの表示を改善
### Bugfixes
- クライアント: 一部のコンポーネントが裏に隠れるのを修正
## 12.99.3 (2021/12/14)
### Bugfixes
- クライアント: オートコンプリートがダイアログの裏に隠れる問題を修正
## 12.99.2 (2021/12/14)
## 12.99.1 (2021/12/14)
## 12.99.0 (2021/12/14)
### Improvements
- Added a user-level instance mute in user settings
- フォローエクスポートでミュートしているユーザーを含めないオプションを追加
- フォローエクスポートで使われていないアカウントを含めないオプションを追加
- カスタム絵文字エクスポート機能
- チャートのパフォーマンスの改善
- グループから抜けられるように
### Bugfixes
- クライアント: タッチ機能付きディスプレイを使っていてマウス操作をしている場合に一部機能が動作しない問題を修正
- クライアント: クリップの設定を編集できない問題を修正
- クライアント: メニューなどがウィンドウの裏に隠れる問題を修正
## 12.98.0 (2021/12/03) ## 12.98.0 (2021/12/03)
### Improvements ### Improvements

View File

@ -85,6 +85,11 @@ TODO
Misskey uses GitHub Actions for executing automated tests. Misskey uses GitHub Actions for executing automated tests.
Configuration files are located in [`/.github/workflows`](/.github/workflows). Configuration files are located in [`/.github/workflows`](/.github/workflows).
## Vue
Misskey uses Vue(v3) as its front-end framework.
**When creating a new component, please use the Composition API 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 ## Adding MisskeyRoom items
* Use English for material, object and texture names. * Use English for material, object and texture names.
* Use meter for unit of length. * Use meter for unit of length.

View File

@ -106,7 +106,6 @@ clickToShow: "اضغط للعرض"
sensitive: "محتوى حساس" sensitive: "محتوى حساس"
add: "إضافة" add: "إضافة"
reaction: "التفاعلات" reaction: "التفاعلات"
reactionSettingDescription: "اختر التفاعلات المفضلة التي تريد تثبيتها في منتقي التفاعلات."
reactionSettingDescription2: "اسحب لترتيب ، انقر للحذف ، استخدم \"+\" للإضافة." reactionSettingDescription2: "اسحب لترتيب ، انقر للحذف ، استخدم \"+\" للإضافة."
rememberNoteVisibility: "تذكر إعدادت مدى رؤية الملاحظات" rememberNoteVisibility: "تذكر إعدادت مدى رؤية الملاحظات"
attachCancel: "أزل المرفق" attachCancel: "أزل المرفق"
@ -752,6 +751,7 @@ muteThread: "اكتم النقاش"
unmuteThread: "ارفع الكتم عن النقاش" unmuteThread: "ارفع الكتم عن النقاش"
deleteAccountConfirm: "سيحذف حسابك نهائيًا، أتريد المتابعة؟" deleteAccountConfirm: "سيحذف حسابك نهائيًا، أتريد المتابعة؟"
incorrectPassword: "كلمة السر خاطئة." incorrectPassword: "كلمة السر خاطئة."
hide: "إخفاء"
_emailUnavailable: _emailUnavailable:
used: "هذا البريد الإلكتروني مستخدم" used: "هذا البريد الإلكتروني مستخدم"
format: "صيغة البريد الإلكتروني غير صالحة" format: "صيغة البريد الإلكتروني غير صالحة"

View File

@ -88,7 +88,6 @@ clickToShow: "Klikněte pro zobrazení"
sensitive: "NSFW" sensitive: "NSFW"
add: "Přidat" add: "Přidat"
reaction: "Reakce" reaction: "Reakce"
reactionSettingDescription: "Vyberte Vaší oblíbenou reakci, kterou chcete připnout ve výběru."
reactionSettingDescription2: "Přetažením změníte pořadí, kliknutím smažete, zmáčkněte \"+\" k přidání" reactionSettingDescription2: "Přetažením změníte pořadí, kliknutím smažete, zmáčkněte \"+\" k přidání"
rememberNoteVisibility: "Zapamatovat nastavení zobrazení poznámky" rememberNoteVisibility: "Zapamatovat nastavení zobrazení poznámky"
attachCancel: "Odstranit přílohu" attachCancel: "Odstranit přílohu"

View File

@ -106,7 +106,7 @@ clickToShow: "Zum Anzeigen anklicken"
sensitive: "NSFW" sensitive: "NSFW"
add: "Hinzufügen" add: "Hinzufügen"
reaction: "Reaktionen" reaction: "Reaktionen"
reactionSettingDescription: "Wähle die Reaktionen aus, die in der Reaktionsauswahl angezeigt werden sollen." reactionSetting: "In der Reaktionsauswahl anzuzeigende Reaktionen"
reactionSettingDescription2: "Ziehe zum Anordnen, klicke zum Löschen, drücke + zum Hinzufügen" reactionSettingDescription2: "Ziehe zum Anordnen, klicke zum Löschen, drücke + zum Hinzufügen"
rememberNoteVisibility: "Notizsichtbarkeit merken" rememberNoteVisibility: "Notizsichtbarkeit merken"
attachCancel: "Anhang entfernen" attachCancel: "Anhang entfernen"
@ -592,6 +592,7 @@ smtpSecure: "Für SMTP-Verbindungen implizit SSL/TLS verwenden"
smtpSecureInfo: "Schalte dies aus, falls du STARTTLS verwendest" smtpSecureInfo: "Schalte dies aus, falls du STARTTLS verwendest"
testEmail: "Email-Versand testen" testEmail: "Email-Versand testen"
wordMute: "Wort-Stummschaltung" wordMute: "Wort-Stummschaltung"
instanceMute: "Instanzstummschaltungen"
userSaysSomething: "{name} hat etwas gesagt" userSaysSomething: "{name} hat etwas gesagt"
makeActive: "Aktivieren" makeActive: "Aktivieren"
display: "Anzeigeart" display: "Anzeigeart"
@ -684,6 +685,7 @@ center: "Mitte"
wide: "Breit" wide: "Breit"
narrow: "Schmal" narrow: "Schmal"
reloadToApplySetting: "Diese Einstellung tritt nach einer Aktualisierung der Seite in Kraft. Jetzt aktualisieren?" reloadToApplySetting: "Diese Einstellung tritt nach einer Aktualisierung der Seite in Kraft. Jetzt aktualisieren?"
needReloadToApply: "Diese Einstellung tritt nach einer Aktualisierung der Seite in Kraft."
showTitlebar: "Titelleiste anzeigen" showTitlebar: "Titelleiste anzeigen"
clearCache: "Cache leeren" clearCache: "Cache leeren"
onlineUsersCount: "{n} Benutzer sind online" onlineUsersCount: "{n} Benutzer sind online"
@ -811,6 +813,11 @@ continueThread: "Weiteren Threadverlauf anzeigen"
deleteAccountConfirm: "Dein Benutzerkonto wird unwiderruflich gelöscht. Trotzdem fortfahren?" deleteAccountConfirm: "Dein Benutzerkonto wird unwiderruflich gelöscht. Trotzdem fortfahren?"
incorrectPassword: "Falsches Passwort." incorrectPassword: "Falsches Passwort."
voteConfirm: "Wirklich für \"{choice}\" abstimmen?" voteConfirm: "Wirklich für \"{choice}\" abstimmen?"
hide: "Inhalt verbergen"
leaveGroup: "Gruppe verlassen"
leaveGroupConfirm: "Möchtest du \"{name}\" wirklich verlassen?"
useDrawerReactionPickerForMobile: "Auf mobilen Geräten ausfahrbare Reaktionsauswahl anzeigen"
welcomeBackWithName: "Willkommen zurück, {name}"
_emailUnavailable: _emailUnavailable:
used: "Diese Email-Adresse wird bereits verwendet" used: "Diese Email-Adresse wird bereits verwendet"
format: "Das Format dieser Email-Adresse ist ungültig" format: "Das Format dieser Email-Adresse ist ungültig"
@ -1001,6 +1008,11 @@ _wordMute:
soft: "Leicht" soft: "Leicht"
hard: "Schwer" hard: "Schwer"
mutedNotes: "Stummgeschaltete Notizen" mutedNotes: "Stummgeschaltete Notizen"
_instanceMute:
instanceMuteDescription: "Schaltet alle Notizen/Renotes stumm, die von den gelisteten Instanzen stammen, inklusive Antworten von Benutzern an einen Benutzer einer stummgeschalteten Instanz."
instanceMuteDescription2: "Instanzen getrennt durch Zeilenumbrüchen angeben"
title: "Blendet Notizen von stummgeschalteten Instanzen aus."
heading: "Liste der stummzuschaltenden Instanzen"
_theme: _theme:
explore: "Themen erforschen" explore: "Themen erforschen"
install: "Thema installieren" install: "Thema installieren"
@ -1274,6 +1286,8 @@ _exportOrImport:
muteList: "Stummschaltungen" muteList: "Stummschaltungen"
blockingList: "Blockierungen" blockingList: "Blockierungen"
userLists: "Listen" userLists: "Listen"
excludeMutingUsers: "Stummgeschaltete Benutzer aussortieren"
excludeInactiveUsers: "Inaktive Benutzer aussortieren"
_charts: _charts:
federationInstancesIncDec: "Unterschied in der Anzahl von förderierenden Instanzen" federationInstancesIncDec: "Unterschied in der Anzahl von förderierenden Instanzen"
federationInstancesTotal: "Anzahl aller föderierenden Instanzen" federationInstancesTotal: "Anzahl aller föderierenden Instanzen"

View File

@ -106,7 +106,7 @@ clickToShow: "Click to show"
sensitive: "NSFW" sensitive: "NSFW"
add: "Add" add: "Add"
reaction: "Reactions" reaction: "Reactions"
reactionSettingDescription: "Configure which reactions you want to display in the reaction picker." reactionSetting: "Reactions to show in the reaction picker"
reactionSettingDescription2: "Drag to reorder, Click to delete, Press \"+\" to add" reactionSettingDescription2: "Drag to reorder, Click to delete, Press \"+\" to add"
rememberNoteVisibility: "Remember note visibility settings" rememberNoteVisibility: "Remember note visibility settings"
attachCancel: "Remove attachment" attachCancel: "Remove attachment"
@ -137,7 +137,7 @@ addEmoji: "Add an emoji"
settingGuide: "Recommended settings" settingGuide: "Recommended settings"
cacheRemoteFiles: "Cache remote files" cacheRemoteFiles: "Cache remote files"
cacheRemoteFilesDescription: "When this setting is disabled, remote files are loaded directly from the remote instance. Disabling this will decrease storage usage, but increase traffic, as thumbnails will not be generated." cacheRemoteFilesDescription: "When this setting is disabled, remote files are loaded directly from the remote instance. Disabling this will decrease storage usage, but increase traffic, as thumbnails will not be generated."
flagAsBot: "Mark this account as as bot" flagAsBot: "Mark this account as a bot"
flagAsBotDescription: "Enable this option if this account is controlled by a program. If enabled, it will act as a flag for other developers to prevent endless interaction chains with other bots and adjust Misskey's internal systems to treat this account as a bot." flagAsBotDescription: "Enable this option if this account is controlled by a program. If enabled, it will act as a flag for other developers to prevent endless interaction chains with other bots and adjust Misskey's internal systems to treat this account as a bot."
flagAsCat: "Mark this account as a cat" flagAsCat: "Mark this account as a cat"
flagAsCatDescription: "Enable this option to mark this account as a cat." flagAsCatDescription: "Enable this option to mark this account as a cat."
@ -592,6 +592,7 @@ smtpSecure: "Use implicit SSL/TLS for SMTP connections"
smtpSecureInfo: "Turn this off when using STARTTLS" smtpSecureInfo: "Turn this off when using STARTTLS"
testEmail: "Test email delivery" testEmail: "Test email delivery"
wordMute: "Word mute" wordMute: "Word mute"
instanceMute: "Instance mutes"
userSaysSomething: "{name} said something" userSaysSomething: "{name} said something"
makeActive: "Activate" makeActive: "Activate"
display: "Display" display: "Display"
@ -684,6 +685,7 @@ center: "Center"
wide: "Wide" wide: "Wide"
narrow: "Narrow" narrow: "Narrow"
reloadToApplySetting: "This setting will only apply after a page reload. Reload now?" reloadToApplySetting: "This setting will only apply after a page reload. Reload now?"
needReloadToApply: "This setting will only apply after a page reload."
showTitlebar: "Show title bar" showTitlebar: "Show title bar"
clearCache: "Clear cache" clearCache: "Clear cache"
onlineUsersCount: "{n} users are online" onlineUsersCount: "{n} users are online"
@ -810,6 +812,11 @@ continueThread: "View thread continuation"
deleteAccountConfirm: "This will irreversibly delete your account. Proceed?" deleteAccountConfirm: "This will irreversibly delete your account. Proceed?"
incorrectPassword: "Incorrect password." incorrectPassword: "Incorrect password."
voteConfirm: "Confirm your vote for \"{choice}\"?" voteConfirm: "Confirm your vote for \"{choice}\"?"
hide: "Hide"
leaveGroup: "Leave Group"
leaveGroupConfirm: "Are you sure you want to leave \"{name}\"?"
useDrawerReactionPickerForMobile: "Display reaction picker as drawer on mobile"
welcomeBackWithName: "Welcome back, {name}"
_emailUnavailable: _emailUnavailable:
used: "This email address is already being used" used: "This email address is already being used"
format: "The format of this email address is invalid" format: "The format of this email address is invalid"
@ -1000,6 +1007,11 @@ _wordMute:
soft: "Soft" soft: "Soft"
hard: "Hard" hard: "Hard"
mutedNotes: "Muted notes" mutedNotes: "Muted notes"
_instanceMute:
instanceMuteDescription: "This will mute any notes/renotes from the listed instances, including those of users replying to a user from a muted instance."
instanceMuteDescription2: "Separate with newlines"
title: "Hides notes from listed instances."
heading: "List of instances to be muted"
_theme: _theme:
explore: "Explore Themes" explore: "Explore Themes"
install: "Install a theme" install: "Install a theme"
@ -1273,6 +1285,8 @@ _exportOrImport:
muteList: "Muted users" muteList: "Muted users"
blockingList: "Blocked users" blockingList: "Blocked users"
userLists: "User lists" userLists: "User lists"
excludeMutingUsers: "Exclude muted users"
excludeInactiveUsers: "Exclude inactive users"
_charts: _charts:
federationInstancesIncDec: "Difference in # of federating instances" federationInstancesIncDec: "Difference in # of federating instances"
federationInstancesTotal: "Total # of federating instances" federationInstancesTotal: "Total # of federating instances"

View File

@ -1,8 +1,8 @@
--- ---
_lang_: "Esperanto" _lang_: "Esperanto"
headlineMisskey: "Jen la reto konektata de notoj" headlineMisskey: "Reto konektita per notoj"
introMisskey: "Bonvenon! Misskey estas malfermitkoda malcentraliza etbloga servo.\nKreu \"noto\"n por paroli vian penson al iuj ĉirkaŭ vi. 📡\nLa funkcion \"reago\" ebligas esprimi rapide vian senton pri ies noto en Fediverso. 👍\nBonvole esploru novan mondon. 🚀" introMisskey: "Bonvenon! Misskey estas malfermitkoda malcentraliza etbloga servo.\nKreu \"noto\"n por diskonigi nunan aferon, aŭ por paroli vian penson al ĉiuj ĉirkaŭ vi. 📡\nLa funkcion \"reago\" ebligas esprimi rapide vian senton pri la noto de la alia en la Fediverso. 👍\nBonvole esploru novan mondon. 🚀"
monthAndDay: "la {day}a de la {month}a" monthAndDay: "La {day}a de la {month}a monato"
search: "Serĉi" search: "Serĉi"
notifications: "Sciigoj" notifications: "Sciigoj"
username: "Uzantnomo" username: "Uzantnomo"
@ -20,13 +20,13 @@ instance: "Nodo"
settings: "Agordoj" settings: "Agordoj"
basicSettings: "Ĝeneralaj agordoj" basicSettings: "Ĝeneralaj agordoj"
otherSettings: "Aliaj agordoj" otherSettings: "Aliaj agordoj"
openInWindow: "Malfermi en fenestro" openInWindow: "Malfermi en nova fenestro"
profile: "Profilo" profile: "Profilo"
timeline: "Templinio" timeline: "Templinio"
noAccountDescription: "Neniu sinprezento" noAccountDescription: "Neniu priskribo"
login: "Ensaluti" login: "Saluti"
loggingIn: "Ensalutado…" loggingIn: "Salutado…"
logout: "Elsaluti" logout: "Adiaŭi"
signup: "Registriĝi" signup: "Registriĝi"
uploading: "Alŝutado…" uploading: "Alŝutado…"
save: "Konservi" save: "Konservi"
@ -58,22 +58,22 @@ followRequestAccepted: "La peto de sekvado akceptita"
mention: "Mencioj" mention: "Mencioj"
mentions: "Mencioj" mentions: "Mencioj"
directNotes: "Rekte senditaj" directNotes: "Rekte senditaj"
importAndExport: "Importi/eksporti" importAndExport: "Enporti kaj elporti"
import: "Importi" import: "Enporti"
export: "Eksporti" export: "Elporti"
files: "Dosieroj" files: "Dosieroj"
download: "Elŝuti" download: "Elŝuti"
driveFileDeleteConfirm: "Ĉu vi certas, ke vi volas forviŝi la dosieron \"{name}\"? Pro tio forviŝiĝos ankaŭ la notoj kiuj enhavas ĝin." driveFileDeleteConfirm: "Ĉu vi certas, ke vi volas forviŝi la dosieron \"{name}\"? Tio ankaŭ forviŝos la notojn kiuj citas ĝin."
unfollowConfirm: "Ĉu vi certas, ke vi volas ĉesi sekvi {name}'(o)n?" unfollowConfirm: "Ĉu vi certas, ke vi volas ĉesi sekvi {name}?"
lists: "Listoj" lists: "Listoj"
noLists: "Neniu listo" noLists: "Neniu listo"
note: "Sendi" note: "Noti"
notes: "Notoj" notes: "Notoj"
following: "Sekvatoj" following: "Sekvatoj"
followers: "Sekvantoj" followers: "Sekvantoj"
followsYou: "Sekvas vin" followsYou: "Sekvas vin"
createList: "Krei liston" createList: "Krei liston"
manageLists: "Administri liston" manageLists: "Bonteni liston"
error: "Eraro" error: "Eraro"
somethingHappened: "Problemo okazis" somethingHappened: "Problemo okazis"
retry: "Provi denove" retry: "Provi denove"
@ -101,7 +101,6 @@ clickToShow: "Klaku por malkaŝu"
sensitive: "Enhavo ne estas deca por laborejo (NSFW)" sensitive: "Enhavo ne estas deca por laborejo (NSFW)"
add: "Aldoni" add: "Aldoni"
reaction: "Reagoj" reaction: "Reagoj"
reactionSettingDescription: "Agordi la reagojn kiujn vi volas prefere montrigi ĉe la elektilo de reagoj"
rememberNoteVisibility: "Rememori la agordon de videbleco de la laste sendita" rememberNoteVisibility: "Rememori la agordon de videbleco de la laste sendita"
attachCancel: "Deigi aldonaĵon" attachCancel: "Deigi aldonaĵon"
markAsSensitive: "Troviĝi NSFW" markAsSensitive: "Troviĝi NSFW"
@ -129,8 +128,9 @@ emojiUrl: "URL de la emoĵio"
addEmoji: "Aldoni emoĵion" addEmoji: "Aldoni emoĵion"
settingGuide: "Agordaj rekomendoj" settingGuide: "Agordaj rekomendoj"
cacheRemoteFiles: "Stapli forajn dosierojn" cacheRemoteFiles: "Stapli forajn dosierojn"
flagAsBot: "Fari la flagon por robota uzanto" flagAsBot: "Marki kiel uzata de roboto"
flagAsCat: "Fari la flagon por kat-iĝi" flagAsCat: "Agordi kiel kat-iĝa"
flagAsCatDescription: "Se vi estas kato, ebligu la agordon."
autoAcceptFollowed: "Aŭtomate akcepti la peton de sekvado far uzantoj kiujn vi sekvas" autoAcceptFollowed: "Aŭtomate akcepti la peton de sekvado far uzantoj kiujn vi sekvas"
addAccount: "Aldoni konton" addAccount: "Aldoni konton"
showOnRemote: "Vidi ĉe la surloka nodo" showOnRemote: "Vidi ĉe la surloka nodo"
@ -140,15 +140,16 @@ setWallpaper: "Apliki ekranfonon"
removeWallpaper: "Forviŝi ekranfonon. " removeWallpaper: "Forviŝi ekranfonon. "
searchWith: "Serĉi: {q}" searchWith: "Serĉi: {q}"
youHaveNoLists: "Vi ne havas listojn." youHaveNoLists: "Vi ne havas listojn."
followConfirm: "Ĉu vi certas ke vi volas sekvi {name}'(o)n?" followConfirm: "Ĉu vi certas ke vi volas sekvi {name}?"
proxyAccount: "Retperanta konto"
host: "Nodo" host: "Nodo"
selectUser: "Elekti uzanton" selectUser: "Elekti uzanton"
recipient: "Ricevonto" recipient: "Ricevonton"
annotation: "Komentarioj" annotation: "Komentarioj"
federation: "Federaĵo" federation: "Federaĵo"
instances: "Nodoj" instances: "Nodoj"
latestRequestSentAt: "Lastatempa sendo" latestRequestSentAt: "La laste sendita peto"
latestRequestReceivedAt: "Lastatempa ricevo" latestRequestReceivedAt: "La laste ricevita peto "
latestStatus: "Laŭstato" latestStatus: "Laŭstato"
charts: "Diagramoj" charts: "Diagramoj"
perHour: "por horo" perHour: "por horo"
@ -157,7 +158,7 @@ blockThisInstance: "Bloki la nodon"
operations: "Agoj" operations: "Agoj"
software: "Programaro" software: "Programaro"
version: "Versio" version: "Versio"
metadata: "Metadatumoj" metadata: "Pridatumoj"
withNFiles: "{n} dosiero(j)" withNFiles: "{n} dosiero(j)"
monitor: "Monitoro" monitor: "Monitoro"
network: "Reto" network: "Reto"
@ -223,11 +224,11 @@ messageRead: "Legita"
noMoreHistory: "Ne plu de la historio" noMoreHistory: "Ne plu de la historio"
startMessaging: "Komenci babiladon" startMessaging: "Komenci babiladon"
nUsersRead: "Legita de {n} homoj" nUsersRead: "Legita de {n} homoj"
agreeTo: "Mi akceptas {0}'(o)n" agreeTo: "Mi akceptas {0}"
tos: "Kondiĉoj de uzado" tos: "Kondiĉoj de uzado"
start: "Komenciĝi" start: "Komenciĝi"
home: "Hejma" home: "Hejma"
remoteUserCaution: "Ĉi tiuj infomoj de la uzanto el fora nodo, ne estas tute ekzaktaj." remoteUserCaution: "Ĉi tiuj infomoj ne estas kompletaj, ĉar ili estas pri uzanto el la fora."
activity: "Aktiveco" activity: "Aktiveco"
images: "Bildoj" images: "Bildoj"
birthday: "Naskiĝdato" birthday: "Naskiĝdato"
@ -235,12 +236,13 @@ yearsOld: "{age} jaroj aĝa"
registeredDate: "Dato de registriĝo" registeredDate: "Dato de registriĝo"
location: "Kie" location: "Kie"
theme: "Koloraro" theme: "Koloraro"
themeForLightMode: "Luma kolararo en la luma modo" themeForLightMode: "Koloraro uzita en la luma modo"
themeForDarkMode: "Malluma kolararo en la malluma modo" themeForDarkMode: "Koloraro uzita en la malluma modo"
light: "Luma" light: "Luma"
dark: "Malluma" dark: "Malluma"
lightThemes: "Luma koloraro" lightThemes: "Luma koloraro"
darkThemes: "Malluma koloraro" darkThemes: "Malluma koloraro"
syncDeviceDarkMode: "Speguli la luman modon de via aparato"
drive: "Disko" drive: "Disko"
fileName: "Dosiernomo" fileName: "Dosiernomo"
selectFile: "Elekti dosieron" selectFile: "Elekti dosieron"
@ -262,7 +264,7 @@ inputNewFolderName: "Entajpu novan nomon de la dosierujo"
hasChildFilesOrFolders: "La dosierujo ne estas forviŝebla, ĉar ĝi ne malplenas." hasChildFilesOrFolders: "La dosierujo ne estas forviŝebla, ĉar ĝi ne malplenas."
copyUrl: "Kopii URL" copyUrl: "Kopii URL"
rename: "Alinomi" rename: "Alinomi"
avatar: "Ikono" avatar: "Bildsimbolo"
banner: "Standardo" banner: "Standardo"
nsfw: "Enhavo ne estas deca por laborejo (NSFW)" nsfw: "Enhavo ne estas deca por laborejo (NSFW)"
disconnectedFromServer: "Malkonektita de servilo" disconnectedFromServer: "Malkonektita de servilo"
@ -277,7 +279,7 @@ normal: "Normala"
instanceName: "Nomo de la nodo" instanceName: "Nomo de la nodo"
instanceDescription: "Priskribo de la nodo " instanceDescription: "Priskribo de la nodo "
maintainerName: "Nomo de la administranto" maintainerName: "Nomo de la administranto"
maintainerEmail: "Retpoŝto de la administranto" maintainerEmail: "Retpoŝta adreso de la administranto"
tosUrl: "URL de kondiĉoj de uzado" tosUrl: "URL de kondiĉoj de uzado"
thisYear: "Ĉi-jare" thisYear: "Ĉi-jare"
thisMonth: "Ĉi-monate" thisMonth: "Ĉi-monate"
@ -296,9 +298,9 @@ enableRegistration: "Ebligi novan uzanton registriĝon"
invite: "Inviti" invite: "Inviti"
driveCapacityPerLocalAccount: "Volumo de disko po unu loka uzanto" driveCapacityPerLocalAccount: "Volumo de disko po unu loka uzanto"
driveCapacityPerRemoteAccount: "Volumo de disko po unu fora uzanto" driveCapacityPerRemoteAccount: "Volumo de disko po unu fora uzanto"
iconUrl: "URL de la ikono (retpaĝsimbolo, ktp)" iconUrl: "URL de la bildsimbolo (retpaĝsimbolo, ktp.)"
bannerUrl: "URL de standardo" bannerUrl: "URL de standardo"
backgroundImageUrl: "URL de fona bildo" backgroundImageUrl: "URL de la fona bildo"
basicInfo: "Baza informo" basicInfo: "Baza informo"
pinnedUsers: "Alpinglita uzanto" pinnedUsers: "Alpinglita uzanto"
pinnedUsersDescription: "Listigu uzantnomojn apartige en ĉiu linio por alpingli al la paĝoj ekz \"Esplori\"." pinnedUsersDescription: "Listigu uzantnomojn apartige en ĉiu linio por alpingli al la paĝoj ekz \"Esplori\"."
@ -328,33 +330,35 @@ silenceConfirm: "Ĉu vi certas ke vi volas mutigi la uzanton?"
unsilence: "Malmutigi" unsilence: "Malmutigi"
unsilenceConfirm: "Ĉu vi certas ke vi volas malmutigi la uzanton?" unsilenceConfirm: "Ĉu vi certas ke vi volas malmutigi la uzanton?"
popularUsers: "Popularaj uzantoj" popularUsers: "Popularaj uzantoj"
recentlyUpdatedUsers: "Uzantoj kiuj lastatempe sendis noton" recentlyUpdatedUsers: "Lastatempe afiŝintaj uzantoj"
recentlyRegisteredUsers: "Novaliĝintaj uzantoj" recentlyRegisteredUsers: "Lastatempe aniĝintaj uzantoj"
recentlyDiscoveredUsers: "Lastatempe trovitaj uzantoj" recentlyDiscoveredUsers: "Lastatempe eltrovitaj uzantoj"
exploreUsersCount: "Tio estas {count} uzantoj" exploreUsersCount: "Jen {count} uzantoj"
exploreFediverse: "Esplori la Fediverson" exploreFediverse: "Esplori la Fediverson"
popularTags: "Popularaj kradvortoj" popularTags: "Popularaj kradvortoj"
userList: "Listoj" userList: "Listoj"
about: "Informoj" about: "Informoj"
aboutMisskey: "Pri Misskey" aboutMisskey: "Pri Misskey"
administrator: "Administranto" administrator: "Administranto"
token: "Ĵetono" token: "Peco"
twoStepAuthentication: "Dua-faktora aŭtentiko" twoStepAuthentication: "Dua-faktora aŭtentiko"
moderator: "Kontrolisto" moderator: "Kontrolisto"
nUsersMentioned: "{n} uzanto(j) menciis" nUsersMentioned: "{n} uzanto(j) menciis"
securityKey: "Sekureca ŝlosilo" securityKey: "Sekureca ŝlosilo"
securityKeyName: "Nomo de la ŝlosilo" securityKeyName: "Nomo de la ŝlosilo"
registerSecurityKey: "Registri ŝlosilon de sekureco" registerSecurityKey: "Registri ŝlosilon de sekureco"
lastUsed: "Plej malnove uzita" lastUsed: "La plej malnove uzita"
unregister: "Malregistriĝi" unregister: "Malregistriĝi"
passwordLessLogin: "Ensaluti sen pasvorto" passwordLessLogin: "Saluti sen pasvorto"
resetPassword: "Restarigi pasvorton" resetPassword: "Restarigi pasvorton"
newPasswordIs: "La nova pasvorto estas {password}." newPasswordIs: "La nova pasvorto estas {password}."
reduceUiAnimation: "Redukti la animacioj de la fasado" reduceUiAnimation: "Redukti la animaciojn de la fasado"
share: "Kundividi" share: "Kundividi"
notFound: "Ne trovita" notFound: "Ne trovita"
uploadFolder: "Dosierujo implicita por alŝuto"
cacheClear: "Malplenigi staplon" cacheClear: "Malplenigi staplon"
markAsReadAllNotifications: "Marki ĉiujn sciigojn kiel legita" markAsReadAllNotifications: "Marki ĉiujn sciigojn kiel legita"
markAsReadAllTalkMessages: "Marki ĉiujn retbabiladojn kiel legita"
help: "Manlibro de uzado" help: "Manlibro de uzado"
inputMessageHere: "Entajpu masaĝo tie ĉi" inputMessageHere: "Entajpu masaĝo tie ĉi"
close: "Fermi" close: "Fermi"
@ -362,7 +366,7 @@ group: "Grupo"
groups: "Grupoj" groups: "Grupoj"
createGroup: "Krei grupon" createGroup: "Krei grupon"
ownedGroups: "Administrataj grupoj" ownedGroups: "Administrataj grupoj"
joinedGroups: "Al grupoj kiuj vi aliĝis" joinedGroups: "Grupoj al kiuj vi aliĝis"
invites: "Inviti" invites: "Inviti"
groupName: "Grupa nomo" groupName: "Grupa nomo"
members: "Membroj" members: "Membroj"
@ -377,13 +381,13 @@ retype: "Retajpu"
noteOf: "Noto de {user}" noteOf: "Noto de {user}"
inviteToGroup: "Inviti al grupo" inviteToGroup: "Inviti al grupo"
quoteAttached: "Kun citaĵo" quoteAttached: "Kun citaĵo"
quoteQuestion: "Ĉu vi aldonas citaĵon?" quoteQuestion: "Ĉu vi volas aldoni citaĵon?"
noMessagesYet: "Ankoraŭ neniu mesaĝo" noMessagesYet: "Ankoraŭ neniu mesaĝo"
newMessageExists: "Vi ricevis novan mesaĝon." newMessageExists: "Vi ricevis novan mesaĝon."
onlyOneFileCanBeAttached: "Oni povas aldoni nur unu dosieron po mesaĝo." onlyOneFileCanBeAttached: "Oni povas aldoni nur unu dosieron po mesaĝo."
signinRequired: "Bonvolu ensaluti" signinRequired: "Bonvolu saluti"
invitations: "Inviti" invitations: "Inviti"
invitationCode: "Invita kodo" invitationCode: "Kodo de invito"
available: "Disposabla" available: "Disposabla"
unavailable: "Ne disponebla" unavailable: "Ne disponebla"
usernameInvalidFormat: "La uzantnomo povas enhavi minusklajn kaj majusklajn literojn, numerojn, nur kaj '_'." usernameInvalidFormat: "La uzantnomo povas enhavi minusklajn kaj majusklajn literojn, numerojn, nur kaj '_'."
@ -394,10 +398,11 @@ normalPassword: "Normala pasvorto"
strongPassword: "Forta pasvorto" strongPassword: "Forta pasvorto"
passwordMatched: "Konforma" passwordMatched: "Konforma"
passwordNotMatched: "Nekonforma" passwordNotMatched: "Nekonforma"
signinWith: "Ensaluti kun {x}" signinWith: "Saluti kun {x}"
or: "Aŭ" or: "Aŭ"
language: "Lingvo" language: "Lingvo"
uiLanguage: "Lingvo de fasado" uiLanguage: "Lingvo de fasado"
groupInvited: "Invitita al grupo"
aboutX: "Pri {x}" aboutX: "Pri {x}"
useOsNativeEmojis: "Uzi la emoĵiojn implicitan de la operaciumo" useOsNativeEmojis: "Uzi la emoĵiojn implicitan de la operaciumo"
youHaveNoGroups: "Neniuj grupoj" youHaveNoGroups: "Neniuj grupoj"
@ -408,7 +413,7 @@ category: "Kategorio"
tags: "Etikedoj" tags: "Etikedoj"
docSource: "Fonto de la dokumento" docSource: "Fonto de la dokumento"
createAccount: "Krei konton" createAccount: "Krei konton"
existingAccount: "Ekzista konto" existingAccount: "Ekzistan konton"
regenerate: "Regeneri" regenerate: "Regeneri"
fontSize: "Tipara grando" fontSize: "Tipara grando"
noFollowRequests: "Vi ne havas peto de sekvado" noFollowRequests: "Vi ne havas peto de sekvado"
@ -426,9 +431,10 @@ objectStorageBaseUrl: "Baza URL"
objectStoragePrefix: "Prefix" objectStoragePrefix: "Prefix"
objectStorageRegion: "Regiono" objectStorageRegion: "Regiono"
objectStorageUseSSL: "Oni uzas SSL" objectStorageUseSSL: "Oni uzas SSL"
objectStorageUseProxy: "Uzi retperilon"
serverLogs: "Servila protokolo" serverLogs: "Servila protokolo"
deleteAll: "Forviŝi ĉiujn" deleteAll: "Forviŝi ĉiujn"
newNoteRecived: "Jen estas novaj notoj" newNoteRecived: "Jen novaj notoj"
sounds: "Sonoj" sounds: "Sonoj"
listen: "Aŭdi" listen: "Aŭdi"
none: "Neniu" none: "Neniu"
@ -467,15 +473,15 @@ enableInfiniteScroll: "Ebligi infinitan rulumon"
visibility: "Videbleco" visibility: "Videbleco"
poll: "Balotujo" poll: "Balotujo"
useCw: "Kaŝi enhavo" useCw: "Kaŝi enhavo"
enablePlayer: "Vidi videon" enablePlayer: "Vidigi la filmeton"
disablePlayer: "Fermi videon" disablePlayer: "Malfermi la filmeton"
expandTweet: "Disvolvi pepon" expandTweet: "Disvolvi pepon"
themeEditor: "Redaktilo de koloraroj" themeEditor: "Redaktilo de koloraroj"
description: "Priskribo" description: "Priskribo"
describeFile: "Priskribi la bildon" describeFile: "Priskribi la bildon"
enterFileDescription: "Priskribu" enterFileDescription: "Priskribu"
author: "Aŭtoro" author: "Aŭtoro"
manage: "Administro" manage: "Bonteni"
plugins: "Kromaĵoj" plugins: "Kromaĵoj"
deck: "Kartaro" deck: "Kartaro"
useFullReactionPicker: "Uzi la tuton de la elektilon de reagoj" useFullReactionPicker: "Uzi la tuton de la elektilon de reagoj"
@ -484,13 +490,14 @@ height: "Alteco"
large: "Granda" large: "Granda"
medium: "Meza" medium: "Meza"
small: "Malgranda" small: "Malgranda"
generateAccessToken: "Generi ĵetonon de aliro" generateAccessToken: "Generi aŭtentikigan pecon"
permission: "Permesoj" permission: "Permesoj"
enableAll: "Ebligi ĉiujn" enableAll: "Ebligi ĉiujn"
disableAll: "Malebligi ĉiujn" disableAll: "Malebligi ĉiujn"
notificationType: "Tipo de sciigoj" notificationType: "Tipo de sciigoj"
edit: "Redakti" edit: "Redakti"
emailServer: "Retpoŝta servilo" emailServer: "Retpoŝta servilo"
enableEmail: "Ebligi dissendon el retpoŝto"
email: "Retpoŝto" email: "Retpoŝto"
emailAddress: "Retpoŝta adreso" emailAddress: "Retpoŝta adreso"
smtpConfig: "Agordoj de SMTP servilo" smtpConfig: "Agordoj de SMTP servilo"
@ -513,14 +520,14 @@ create: "Krei"
notificationSetting: "Agordoj de sciigoj" notificationSetting: "Agordoj de sciigoj"
useGlobalSetting: "Oni uzas malloka agordo" useGlobalSetting: "Oni uzas malloka agordo"
other: "Aliaj" other: "Aliaj"
regenerateLoginToken: "Regeneri la ĵetonon de aliro" regenerateLoginToken: "Regeneri la aŭtentikigan pecon"
fileIdOrUrl: "Dosiera identigilo aŭ URL" fileIdOrUrl: "Dosiera identigilo aŭ URL"
chatOpenBehavior: "Konduto por malfermi la fenestron de babilejo" chatOpenBehavior: "Konduto por malfermi la fenestron de babilejo"
behavior: "Konduto" behavior: "Konduto"
sample: "Ekzemplo" sample: "Ekzemplo"
abuseReports: "Signaloj" abuseReports: "Signaloj"
reportAbuse: "Signalo" reportAbuse: "Signalo"
reportAbuseOf: "Signali kontraŭ {name}'(o)" reportAbuseOf: "Signali kontraŭ {name}"
send: "Sendi" send: "Sendi"
openInNewTab: "Malfermi en nova langeto" openInNewTab: "Malfermi en nova langeto"
editTheseSettingsMayBreakAccount: "Redakti ĉi tiujn agordojn povas damaĝi vian konton." editTheseSettingsMayBreakAccount: "Redakti ĉi tiujn agordojn povas damaĝi vian konton."
@ -528,6 +535,7 @@ instanceTicker: "Nomo de la nodo sendinta notojn"
waitingFor: "Atendado pro {x}" waitingFor: "Atendado pro {x}"
random: "Hazarde" random: "Hazarde"
system: "Sistemo" system: "Sistemo"
switchUi: "Modifi la aspektigon"
desktop: "Labortablo" desktop: "Labortablo"
createNew: "Krei novan" createNew: "Krei novan"
optional: "Opciaj" optional: "Opciaj"
@ -563,7 +571,7 @@ wide: "Vasta"
narrow: "Malvasta" narrow: "Malvasta"
showTitlebar: "Videbligi titolan stangon" showTitlebar: "Videbligi titolan stangon"
clearCache: "Malplenigi staplon" clearCache: "Malplenigi staplon"
onlineUsersCount: "{n} uzanto(j) estas surlinea" onlineUsersCount: "{n} uzantoj estas surlineaj"
nUsers: "{n} uzanto(j)" nUsers: "{n} uzanto(j)"
nNotes: "{n} notoj" nNotes: "{n} notoj"
myTheme: "Miaj koloraroj" myTheme: "Miaj koloraroj"
@ -578,11 +586,12 @@ saveConfirm: "Ĉu vi konservas la ŝanĝon?"
deleteConfirm: "Ĉu certas forviŝi?" deleteConfirm: "Ĉu certas forviŝi?"
closeAccount: "Forigi konton" closeAccount: "Forigi konton"
currentVersion: "Nuna versio" currentVersion: "Nuna versio"
latestVersion: "Plej nova versio" latestVersion: "La plej nova versio"
youAreRunningUpToDateClient: "Vi uzas la plej novan version de via kliento." youAreRunningUpToDateClient: "Vi uzas la plej novan version de via kliento."
newVersionOfClientAvailable: "Nova versio de via kliento estas disponebla." newVersionOfClientAvailable: "Nova versio de via kliento estas disponebla."
inUse: "Uzata" inUse: "Uzata"
editCode: "Redakti kodon" editCode: "Redakti kodon"
receiveAnnouncementFromInstance: "Ricevi informojn sciigintajn de la nodo"
emailNotification: "Sciigoj per retpoŝto" emailNotification: "Sciigoj per retpoŝto"
inChannelSearch: "Serĉi en kanalo" inChannelSearch: "Serĉi en kanalo"
useReactionPickerForContextMenu: "Dekstre-klaki por malfermi la elektilon de reagoj" useReactionPickerForContextMenu: "Dekstre-klaki por malfermi la elektilon de reagoj"
@ -599,8 +608,9 @@ offline: "Forkonektita"
instanceBlocking: "Bloki specifajn nodojn" instanceBlocking: "Bloki specifajn nodojn"
selectAccount: "Elekti konton" selectAccount: "Elekti konton"
user: "Uzantoj" user: "Uzantoj"
administration: "Administro" administration: "Bontenado"
accounts: "Kontoj" accounts: "Kontoj"
recentPosts: "Novaj afiŝoj"
shareWithNote: "Kundividi en noto" shareWithNote: "Kundividi en noto"
ads: "Reklamaĵo" ads: "Reklamaĵo"
memo: "Memorigilo" memo: "Memorigilo"
@ -617,14 +627,18 @@ troubleshooting: "Problemsolvi"
learnMore: "Lernu pli" learnMore: "Lernu pli"
translate: "Traduki" translate: "Traduki"
translatedFrom: "Tradukita el {x}" translatedFrom: "Tradukita el {x}"
breakFollow: "Ĉesigi la sekvadon al vi"
itsOn: "Ŝaltita" itsOn: "Ŝaltita"
unread: "Nelegita" unread: "Nelegita"
controlPanel: "Ŝaltpodio" controlPanel: "Ŝaltpodio"
manageAccounts: "Bonteni la kontojn"
classic: "Klasika" classic: "Klasika"
ffVisibility: "Videbleco pri viaj sekvataro/sekvantaro\n" ffVisibility: "Videbleco pri viaj sekvataro/sekvantaro\n"
ffVisibilityDescription: "Agordi la videblecon kiu povas vidi tiujn kiujn vi sekvas kaj tiujn kiuj sekvas vin." ffVisibilityDescription: "Agordi la videblecon kiu povas vidi tiujn kiujn vi sekvas kaj tiujn kiuj sekvas vin."
continueThread: "Vidi pli mesaĝarojn" continueThread: "Vidi pli mesaĝarojn"
incorrectPassword: "Nevalida pasvorto" incorrectPassword: "Nevalida pasvorto"
leaveGroup: "Eliĝi el la grupo"
leaveGroupConfirm: "Ĉu vi certas ke vi volas eliĝi el la grupo {name}?"
_emailUnavailable: _emailUnavailable:
used: "La retpoŝto jam estas uzita." used: "La retpoŝto jam estas uzita."
format: "Nevalida formato." format: "Nevalida formato."
@ -647,12 +661,12 @@ _gallery:
like: "Ŝati" like: "Ŝati"
_email: _email:
_follow: _follow:
title: "Vi estas eksekvita" title: "Eksekvis vin"
_receiveFollowRequest: _receiveFollowRequest:
title: "Vi ricevis peton de sekvado" title: "Vi ricevis peton de sekvado"
_plugin: _plugin:
install: "Instali kromaĵon" install: "Instali kromaĵon"
manage: "Administri kromaĵojn" manage: "Bonteni kromaĵojn"
_registry: _registry:
key: "Ŝlosilo" key: "Ŝlosilo"
keys: "Ŝlosiloj" keys: "Ŝlosiloj"
@ -699,9 +713,9 @@ _channel:
edit: "Redakti kanalon" edit: "Redakti kanalon"
setBanner: "Apliki standardan bildon" setBanner: "Apliki standardan bildon"
removeBanner: "Forviŝi la standardan bildon" removeBanner: "Forviŝi la standardan bildon"
owned: "Posedaĵo" owned: "Bontenitaj de vi"
following: "Sekvante" following: "Sekvante"
usersCount: "{n} partoprenanto(j)" usersCount: "{n} partoprenantoj"
_menuDisplay: _menuDisplay:
top: "Supro" top: "Supro"
hide: "Kaŝi" hide: "Kaŝi"
@ -711,7 +725,7 @@ _wordMute:
hard: "Per la servilo" hard: "Per la servilo"
mutedNotes: "Silentigitaj notoj" mutedNotes: "Silentigitaj notoj"
_theme: _theme:
manage: "Administri kolorarojn" manage: "Bonteni kolorarojn"
code: "Kolorara kodo" code: "Kolorara kodo"
description: "Priskribo" description: "Priskribo"
defaultValue: "Implicitaĵa valoro" defaultValue: "Implicitaĵa valoro"
@ -728,19 +742,19 @@ _theme:
renote: "Plusendita" renote: "Plusendita"
buttonBg: "Fono de butono" buttonBg: "Fono de butono"
driveFolderBg: "Fono de dosierujo de la disko" driveFolderBg: "Fono de dosierujo de la disko"
messageBg: "Fono de retbabilejo" messageBg: "Fono de la retbabilejo"
_sfx: _sfx:
note: "Nova noto" note: "Nova noto"
noteMy: "Mia noto" noteMy: "Mia noto"
notification: "Sciigoj" notification: "Sciigoj"
chat: "Retbabili" chat: "Retbabili"
chatBg: "Retbabili (BG)" chatBg: "Retbabili (BG)"
antenna: "Ricevo de anteno" antenna: "Ricevo de la anteno"
channel: "Sciigoj de kanalo" channel: "Sciigoj de kanalo"
_ago: _ago:
future: "Futuro" future: "Futuro"
justNow: "Ĵus" justNow: "Ĵus"
secondsAgo: "Antaŭ {n} sekundo(j)" secondsAgo: "Antaŭ {n} sekundoj"
minutesAgo: "Antaŭ {n} minutoj" minutesAgo: "Antaŭ {n} minutoj"
hoursAgo: "Antaŭ {n} horo(j)" hoursAgo: "Antaŭ {n} horo(j)"
daysAgo: "Antaŭ {n} tago(j)" daysAgo: "Antaŭ {n} tago(j)"
@ -770,8 +784,8 @@ _permissions:
"write:favorites": "Redakti vian liston de preferaĵoj" "write:favorites": "Redakti vian liston de preferaĵoj"
"read:following": "Vidi la infomaciojn pri tio, kion vi sekvas" "read:following": "Vidi la infomaciojn pri tio, kion vi sekvas"
"write:following": "Sekvi aŭ malsekvi alian uzanton" "write:following": "Sekvi aŭ malsekvi alian uzanton"
"read:messaging": "Vidi vian retbabiladon" "read:messaging": "Vidi viajn retbabiladojn"
"write:messaging": "Retbabilejo" "write:messaging": "Administri viajn retbabiladojn"
"read:mutes": "Vidi vian liston de silentigitoj" "read:mutes": "Vidi vian liston de silentigitoj"
"write:mutes": "Redakti vian liston de silentigitoj" "write:mutes": "Redakti vian liston de silentigitoj"
"write:notes": "Krei / Forviŝi noton" "write:notes": "Krei / Forviŝi noton"
@ -780,6 +794,7 @@ _permissions:
"read:reactions": "Vidi reagojn" "read:reactions": "Vidi reagojn"
"write:reactions": "Redakti viajn reagojn" "write:reactions": "Redakti viajn reagojn"
"read:page-likes": "Vidi ŝatojn de paĝo" "read:page-likes": "Vidi ŝatojn de paĝo"
"read:user-groups": "Vidi viajn grupojn de uzantoj"
"read:channels": "Vidi kanalojn" "read:channels": "Vidi kanalojn"
_antennaSources: _antennaSources:
all: "Ĉiuj notoj" all: "Ĉiuj notoj"
@ -827,23 +842,23 @@ _visibility:
_postForm: _postForm:
replyPlaceholder: "Respondi la noton…" replyPlaceholder: "Respondi la noton…"
quotePlaceholder: "Citi la noton…" quotePlaceholder: "Citi la noton…"
channelPlaceholder: "Mencii en kanalo…" channelPlaceholder: "Mencii en la kanalo…"
_profile: _profile:
name: "Nomo" name: "Nomo"
username: "Uzantnomo" username: "Uzantnomo"
description: "Sinprezento" description: "Sinprezento"
metadata: "Kromaj informoj" metadata: "Kromaj informoj"
metadataEdit: "Redakti kromaj informoj" metadataEdit: "Redakti kromajn informojn"
changeAvatar: "Ŝanĝi profilbildon" changeAvatar: "Ŝanĝi profilbildon"
changeBanner: "Ŝanĝi standardon" changeBanner: "Ŝanĝi standardon"
_exportOrImport: _exportOrImport:
allNotes: "Ĉiuj notoj" allNotes: "Ĉiuj notoj"
followingList: "Sekvataj uzantoj" followingList: "Sekvatoj"
muteList: "Silentigoj" muteList: "Silentigoj"
blockingList: "Blokitoj" blockingList: "Blokitoj"
userLists: "Listoj" userLists: "Listoj"
_charts: _charts:
federationInstancesTotal: "La totala nombro de nodoj kunfederantaj" federationInstancesTotal: "La totala nombro de nodoj federantaj"
usersTotal: "La totala nombro de la uzantoj" usersTotal: "La totala nombro de la uzantoj"
activeUsers: "La nombro de la uzantoj aktivaj" activeUsers: "La nombro de la uzantoj aktivaj"
notesTotal: "La totala nombro de notoj" notesTotal: "La totala nombro de notoj"
@ -890,6 +905,7 @@ _pages:
title: "Temlinio" title: "Temlinio"
url: "URL de paĝo" url: "URL de paĝo"
alignCenter: "Centrigi" alignCenter: "Centrigi"
hideTitleWhenPinned: "Kaŝi la titolon de la paĝo kiam alpinglita"
chooseBlock: "Aldoni blokon" chooseBlock: "Aldoni blokon"
contentBlocks: "Enhavo" contentBlocks: "Enhavo"
inputBlocks: "Enigo" inputBlocks: "Enigo"
@ -914,6 +930,7 @@ _pages:
default: "Implicitaĵa valoro" default: "Implicitaĵa valoro"
_canvas: _canvas:
id: "Kanvasa identigilo" id: "Kanvasa identigilo"
width: "Larĝeco"
_note: _note:
id: "Identigilo de noto" id: "Identigilo de noto"
_switch: _switch:
@ -924,8 +941,11 @@ _pages:
_button: _button:
text: "Titolo" text: "Titolo"
_action: _action:
_dialog:
content: "Enhavo"
_pushEvent: _pushEvent:
event: "Nomo de la evento" event: "Nomo de la evento"
no-variable: "Neniu"
_radioButton: _radioButton:
title: "Titolo" title: "Titolo"
default: "Implicitaĵa valoro" default: "Implicitaĵa valoro"
@ -986,11 +1006,12 @@ _notification:
youGotQuote: "{name} citis" youGotQuote: "{name} citis"
youRenoted: "{name} plusendis" youRenoted: "{name} plusendis"
youGotPoll: "{name} balotis" youGotPoll: "{name} balotis"
youGotMessagingMessageFromUser: "{name} sentis mesaĝon al vi." youGotMessagingMessageFromUser: "{name} sendis al vi mesaĝon"
youGotMessagingMessageFromGroup: "Retbabilan mesaĝon oni sendis al la grupo {name}" youGotMessagingMessageFromGroup: "Oni sendis al la grupo {name} mesaĝon"
youWereFollowed: "eksekvis vin" youWereFollowed: "eksekvis vin"
youReceivedFollowRequest: "Vi ricevis peton de sekvado" youReceivedFollowRequest: "Vi ricevis peton de sekvado"
yourFollowRequestAccepted: "Via peto de sekvado estis akceptita." yourFollowRequestAccepted: "Via peto de sekvado estis akceptita."
youWereInvitedToGroup: "Invitita al grupo"
_types: _types:
all: "Ĉio" all: "Ĉio"
follow: "Novaj sekvatoj" follow: "Novaj sekvatoj"
@ -1001,6 +1022,7 @@ _notification:
reaction: "Reagoj" reaction: "Reagoj"
receiveFollowRequest: "Ricevi peton de sekvado" receiveFollowRequest: "Ricevi peton de sekvado"
followRequestAccepted: "Akceptita peto por sekvado" followRequestAccepted: "Akceptita peto por sekvado"
groupInvited: "Invitita al grupo"
_deck: _deck:
profile: "Agordaro" profile: "Agordaro"
_columns: _columns:

View File

@ -104,7 +104,6 @@ clickToShow: "Click para ver"
sensitive: "Marcado como sensible" sensitive: "Marcado como sensible"
add: "Agregar" add: "Agregar"
reaction: "Reacción" reaction: "Reacción"
reactionSettingDescription: "Asigne sus reacción favoritas que desean anclar en el selector de reacciones."
reactionSettingDescription2: "Arrastre para reordenar, click para borrar, apriete la tecla + para añadir." reactionSettingDescription2: "Arrastre para reordenar, click para borrar, apriete la tecla + para añadir."
rememberNoteVisibility: "Recordar visibilidad" rememberNoteVisibility: "Recordar visibilidad"
attachCancel: "Quitar adjunto" attachCancel: "Quitar adjunto"
@ -738,6 +737,7 @@ lastCommunication: "Última comunicación"
resolved: "Resuelto" resolved: "Resuelto"
unresolved: "Sin resolver" unresolved: "Sin resolver"
controlPanel: "Panel de control" controlPanel: "Panel de control"
hide: "Ocultar"
_accountDelete: _accountDelete:
accountDelete: "Eliminar Cuenta" accountDelete: "Eliminar Cuenta"
_ad: _ad:

View File

@ -106,7 +106,6 @@ clickToShow: "Cliquer pour afficher"
sensitive: "Contenu sensible" sensitive: "Contenu sensible"
add: "Ajouter" add: "Ajouter"
reaction: "Réactions" reaction: "Réactions"
reactionSettingDescription: "Choisissez vos réactions préférées que vous souhaitez épingler dans le sélecteur de réactions."
reactionSettingDescription2: "Déplacer pour réorganiser, cliquer pour effacer, utiliser « + » pour ajouter." reactionSettingDescription2: "Déplacer pour réorganiser, cliquer pour effacer, utiliser « + » pour ajouter."
rememberNoteVisibility: "Activer l'option \" se souvenir de la visibilité des notes \" vous permet de réutiliser automatiquement la visibilité utilisée lors de la publication de votre note précédente." rememberNoteVisibility: "Activer l'option \" se souvenir de la visibilité des notes \" vous permet de réutiliser automatiquement la visibilité utilisée lors de la publication de votre note précédente."
attachCancel: "Supprimer le fichier attaché" attachCancel: "Supprimer le fichier attaché"
@ -798,6 +797,7 @@ filter: "Filtre"
controlPanel: "Panneau de contrôle" controlPanel: "Panneau de contrôle"
manageAccounts: "Gérer les comptes" manageAccounts: "Gérer les comptes"
classic: "Classique" classic: "Classique"
hide: "Masquer"
_emailUnavailable: _emailUnavailable:
format: "Le format de cette adresse de courriel est invalide" format: "Le format de cette adresse de courriel est invalide"
mx: "Ce serveur de courriels est invalide" mx: "Ce serveur de courriels est invalide"

View File

@ -106,7 +106,6 @@ clickToShow: "Klik untuk melihat"
sensitive: "Konten sensitif" sensitive: "Konten sensitif"
add: "Tambahkan" add: "Tambahkan"
reaction: "Reaksi" reaction: "Reaksi"
reactionSettingDescription: "Masukkan reaksi favorit yang ingin kamu sematkan pada bilah reaksi"
reactionSettingDescription2: "Geser untuk memindah urutkan, klik untuk menghapus, tekan \"+\" untuk menambahkan" reactionSettingDescription2: "Geser untuk memindah urutkan, klik untuk menghapus, tekan \"+\" untuk menambahkan"
rememberNoteVisibility: "Ingat pengaturan visibilitas catatan" rememberNoteVisibility: "Ingat pengaturan visibilitas catatan"
attachCancel: "Hapus lampiran" attachCancel: "Hapus lampiran"
@ -810,6 +809,7 @@ continueThread: "Lihat lanjutan thread"
deleteAccountConfirm: "Akun akan dihapus. Apakah kamu yakin?" deleteAccountConfirm: "Akun akan dihapus. Apakah kamu yakin?"
incorrectPassword: "Kata sandi salah." incorrectPassword: "Kata sandi salah."
voteConfirm: "Konfirmasi suara kamu untuk ({choice})" voteConfirm: "Konfirmasi suara kamu untuk ({choice})"
hide: "Sembunyikan"
_emailUnavailable: _emailUnavailable:
used: "Alamat surel ini telah digunakan" used: "Alamat surel ini telah digunakan"
format: "Format tidak valid." format: "Format tidak valid."

View File

@ -46,7 +46,10 @@ const primaries = {
'zh': 'CN', 'zh': 'CN',
}; };
const locales = languages.reduce((a, c) => (a[c] = yaml.load(fs.readFileSync(`${__dirname}/${c}.yml`, 'utf-8')) || {}, a), {}); // 何故か文字列にバックスペース文字が混入することがあり、YAMLが壊れるので取り除く
const clean = (text) => text.replace(new RegExp(String.fromCodePoint(0x08), 'g'), '');
const locales = languages.reduce((a, c) => (a[c] = yaml.load(clean(fs.readFileSync(`${__dirname}/${c}.yml`, 'utf-8'))) || {}, a), {});
module.exports = Object.entries(locales) module.exports = Object.entries(locales)
.reduce((a, [k ,v]) => (a[k] = (() => { .reduce((a, [k ,v]) => (a[k] = (() => {

View File

@ -103,7 +103,6 @@ clickToShow: "Clicca per visualizzare"
sensitive: "Contenuto sensibile" sensitive: "Contenuto sensibile"
add: "Aggiungi" add: "Aggiungi"
reaction: "Reazione" reaction: "Reazione"
reactionSettingDescription: "Scegli le reazioni che preferisci e fissale nel pannello di reazioni."
reactionSettingDescription2: "Trascina per riorganizzare, clicca per cancellare, usa il pulsante \"+\" per aggiungere." reactionSettingDescription2: "Trascina per riorganizzare, clicca per cancellare, usa il pulsante \"+\" per aggiungere."
rememberNoteVisibility: "Ricordare le impostazioni di visibilità delle note" rememberNoteVisibility: "Ricordare le impostazioni di visibilità delle note"
attachCancel: "Rimuovi allegato" attachCancel: "Rimuovi allegato"
@ -745,6 +744,7 @@ global: "Federata"
sent: "Inviare" sent: "Inviare"
hashtags: "Hashtag" hashtags: "Hashtag"
troubleshooting: "Risoluzione problemi" troubleshooting: "Risoluzione problemi"
hide: "Nascondere"
_ffVisibility: _ffVisibility:
public: "Pubblico" public: "Pubblico"
_ad: _ad:

View File

@ -106,7 +106,7 @@ clickToShow: "クリックして表示"
sensitive: "閲覧注意" sensitive: "閲覧注意"
add: "追加" add: "追加"
reaction: "リアクション" reaction: "リアクション"
reactionSettingDescription: "リアクションピッカーに表示するリアクションを設定します。" reactionSetting: "ピッカーに表示するリアクション"
reactionSettingDescription2: "ドラッグして並び替え、クリックして削除、+を押して追加します。" reactionSettingDescription2: "ドラッグして並び替え、クリックして削除、+を押して追加します。"
rememberNoteVisibility: "公開範囲を記憶する" rememberNoteVisibility: "公開範囲を記憶する"
attachCancel: "添付取り消し" attachCancel: "添付取り消し"
@ -592,6 +592,7 @@ smtpSecure: "SMTP 接続に暗黙的なSSL/TLSを使用する"
smtpSecureInfo: "STARTTLS使用時はオフにします。" smtpSecureInfo: "STARTTLS使用時はオフにします。"
testEmail: "配信テスト" testEmail: "配信テスト"
wordMute: "ワードミュート" wordMute: "ワードミュート"
instanceMute: "インスタンスミュート"
userSaysSomething: "{name}が何かを言いました" userSaysSomething: "{name}が何かを言いました"
makeActive: "アクティブにする" makeActive: "アクティブにする"
display: "表示" display: "表示"
@ -684,6 +685,7 @@ center: "中央"
wide: "広い" wide: "広い"
narrow: "狭い" narrow: "狭い"
reloadToApplySetting: "設定はページリロード後に反映されます。今すぐリロードしますか?" reloadToApplySetting: "設定はページリロード後に反映されます。今すぐリロードしますか?"
needReloadToApply: "反映には再起動が必要です。"
showTitlebar: "タイトルバーを表示する" showTitlebar: "タイトルバーを表示する"
clearCache: "キャッシュをクリア" clearCache: "キャッシュをクリア"
onlineUsersCount: "{n}人がオンライン" onlineUsersCount: "{n}人がオンライン"
@ -811,6 +813,11 @@ continueThread: "さらにスレッドを見る"
deleteAccountConfirm: "アカウントが削除されます。よろしいですか?" deleteAccountConfirm: "アカウントが削除されます。よろしいですか?"
incorrectPassword: "パスワードが間違っています。" incorrectPassword: "パスワードが間違っています。"
voteConfirm: "「{choice}」に投票しますか?" voteConfirm: "「{choice}」に投票しますか?"
hide: "隠す"
leaveGroup: "グループから抜ける"
leaveGroupConfirm: "「{name}」から抜けますか?"
useDrawerReactionPickerForMobile: "モバイルデバイスのときドロワーで表示"
welcomeBackWithName: "おかえりなさい、{name}さん"
_emailUnavailable: _emailUnavailable:
used: "既に使用されています" used: "既に使用されています"
@ -1021,6 +1028,12 @@ _wordMute:
hard: "ハード" hard: "ハード"
mutedNotes: "ミュートされたノート" mutedNotes: "ミュートされたノート"
_instanceMute:
instanceMuteDescription: "ミュートしたインスタンスのユーザーへの返信を含めて、設定したインスタンスの全てのートとRenoteをミュートします。"
instanceMuteDescription2: "改行で区切って設定します"
title: "設定したインスタンスのノートを隠します。"
heading: "ミュートするインスタンス"
_theme: _theme:
explore: "テーマを探す" explore: "テーマを探す"
install: "テーマのインストール" install: "テーマのインストール"
@ -1311,6 +1324,8 @@ _exportOrImport:
muteList: "ミュート" muteList: "ミュート"
blockingList: "ブロック" blockingList: "ブロック"
userLists: "リスト" userLists: "リスト"
excludeMutingUsers: "ミュートしているユーザーを除外"
excludeInactiveUsers: "使われていないアカウントを除外"
_charts: _charts:
federationInstancesIncDec: "連合の増減" federationInstancesIncDec: "連合の増減"

View File

@ -104,7 +104,6 @@ clickToShow: "押したら見えるで"
sensitive: "ちょっとアカンやつやで" sensitive: "ちょっとアカンやつやで"
add: "増やす" add: "増やす"
reaction: "リアクション" reaction: "リアクション"
reactionSettingDescription: "リアクションピッカーに出しとくリアクションを選んでや。"
reactionSettingDescription2: "ドラッグで並び替え、クリックで削除、+を押して追加やで。" reactionSettingDescription2: "ドラッグで並び替え、クリックで削除、+を押して追加やで。"
rememberNoteVisibility: "公開範囲覚えといて" rememberNoteVisibility: "公開範囲覚えといて"
attachCancel: "のっけるのやめる" attachCancel: "のっけるのやめる"
@ -204,7 +203,7 @@ noJobs: "ジョブはあらへん"
federating: "連合しとる" federating: "連合しとる"
blocked: "ブロックしとる" blocked: "ブロックしとる"
suspended: "配信せぇへん" suspended: "配信せぇへん"
all: "みな" all: "みな"
subscribing: "購読しとる" subscribing: "購読しとる"
publishing: "配信しとる" publishing: "配信しとる"
notResponding: "応答してへんで" notResponding: "応答してへんで"
@ -653,6 +652,7 @@ low: "低い"
global: "グローバル" global: "グローバル"
sent: "送信" sent: "送信"
hashtags: "ハッシュタグ" hashtags: "ハッシュタグ"
hide: "隠す"
_ad: _ad:
back: "戻る" back: "戻る"
_gallery: _gallery:
@ -848,7 +848,7 @@ _permissions:
_auth: _auth:
permissionAsk: "このアプリは次の権限を要求しとるで" permissionAsk: "このアプリは次の権限を要求しとるで"
_antennaSources: _antennaSources:
all: "みなのノート" all: "みなのノート"
homeTimeline: "フォローしとるユーザーのノート" homeTimeline: "フォローしとるユーザーのノート"
_weekday: _weekday:
sunday: "日曜日" sunday: "日曜日"
@ -896,7 +896,7 @@ _poll:
votesCount: "{n}票" votesCount: "{n}票"
vote: "投票する" vote: "投票する"
_visibility: _visibility:
publicDescription: "みのユーザーに公開" publicDescription: "みなに公開"
home: "ホーム" home: "ホーム"
followers: "フォロワー" followers: "フォロワー"
_profile: _profile:

View File

@ -81,6 +81,8 @@ somethingHappened: "오류가 발생했습니다"
retry: "다시 시도" retry: "다시 시도"
pageLoadError: "페이지를 불러오지 못했습니다." pageLoadError: "페이지를 불러오지 못했습니다."
pageLoadErrorDescription: "네트워크 연결 또는 브라우저 캐시로 인해 발생했을 가능성이 높습니다. 캐시를 삭제하거나, 잠시 후 다시 시도해 주세요." pageLoadErrorDescription: "네트워크 연결 또는 브라우저 캐시로 인해 발생했을 가능성이 높습니다. 캐시를 삭제하거나, 잠시 후 다시 시도해 주세요."
serverIsDead: "서버로부터 응답이 없습니다. 잠시 후 다시 시도해주세요."
youShouldUpgradeClient: "이 페이지를 표시하려면 새로고침하여 새로운 버전의 클라이언트를 이용해 주십시오."
enterListName: "리스트 이름을 입력" enterListName: "리스트 이름을 입력"
privacy: "프라이버시" privacy: "프라이버시"
makeFollowManuallyApprove: "팔로우를 수동으로 승인" makeFollowManuallyApprove: "팔로우를 수동으로 승인"
@ -104,7 +106,6 @@ clickToShow: "클릭하여 보기"
sensitive: "열람주의" sensitive: "열람주의"
add: "추가" add: "추가"
reaction: "리액션" reaction: "리액션"
reactionSettingDescription: "리액션 선택 상자에 표시할 리액션을 설정합니다."
reactionSettingDescription2: "끌어서 순서 변경, 클릭해서 삭제, +를 눌러서 추가할 수 있습니다." reactionSettingDescription2: "끌어서 순서 변경, 클릭해서 삭제, +를 눌러서 추가할 수 있습니다."
rememberNoteVisibility: "공개 범위를 기억하기" rememberNoteVisibility: "공개 범위를 기억하기"
attachCancel: "첨부 취소" attachCancel: "첨부 취소"
@ -590,6 +591,7 @@ smtpSecure: "SMTP 연결에 Implicit SSL/TTS 사용"
smtpSecureInfo: "STARTTLS 사용 시에는 해제합니다." smtpSecureInfo: "STARTTLS 사용 시에는 해제합니다."
testEmail: "이메일 전송 테스트" testEmail: "이메일 전송 테스트"
wordMute: "단어 뮤트" wordMute: "단어 뮤트"
instanceMute: "인스턴스 뮤트"
userSaysSomething: "{name}님이 무언가를 말했습니다" userSaysSomething: "{name}님이 무언가를 말했습니다"
makeActive: "활성화" makeActive: "활성화"
display: "표시" display: "표시"
@ -618,6 +620,8 @@ reportAbuse: "신고"
reportAbuseOf: "{name}을 신고하기" reportAbuseOf: "{name}을 신고하기"
fillAbuseReportDescription: "신고하려는 이유를 자세히 알려주세요. 특정 게시물을 신고할 때에는 게시물의 URL도 포함해 주세요." fillAbuseReportDescription: "신고하려는 이유를 자세히 알려주세요. 특정 게시물을 신고할 때에는 게시물의 URL도 포함해 주세요."
abuseReported: "신고를 보냈습니다. 신고해 주셔서 감사합니다." abuseReported: "신고를 보냈습니다. 신고해 주셔서 감사합니다."
reporteeOrigin: "피신고자"
reporterOrigin: "신고자"
send: "전송" send: "전송"
abuseMarkAsResolved: "해결됨으로 표시" abuseMarkAsResolved: "해결됨으로 표시"
openInNewTab: "새 탭에서 열기" openInNewTab: "새 탭에서 열기"
@ -764,6 +768,7 @@ middle: "보통"
low: "낮음" low: "낮음"
emailNotConfiguredWarning: "메일 주소가 설정되어 있지 않습니다." emailNotConfiguredWarning: "메일 주소가 설정되어 있지 않습니다."
ratio: "비율" ratio: "비율"
previewNoteText: "본문 미리보기"
customCss: "CSS 사용자화" customCss: "CSS 사용자화"
customCssWarn: "이 설정은 기능을 알고 있는 경우에만 사용해야 합니다. 잘못된 값을 입력하면 클라이언트가 정상적으로 작동하지 않을 수 있습니다." customCssWarn: "이 설정은 기능을 알고 있는 경우에만 사용해야 합니다. 잘못된 값을 입력하면 클라이언트가 정상적으로 작동하지 않을 수 있습니다."
global: "글로벌" global: "글로벌"
@ -787,9 +792,40 @@ pubSub: "Pub/Sub 계정"
lastCommunication: "마지막 통신" lastCommunication: "마지막 통신"
resolved: "해결됨" resolved: "해결됨"
unresolved: "해결되지 않음" unresolved: "해결되지 않음"
breakFollow: "팔로워 해제"
itsOn: "켜짐"
itsOff: "꺼짐"
emailRequiredForSignup: "가입할 때 이메일 주소 입력을 필수로 하기"
unread: "읽지 않음"
filter: "필터"
controlPanel: "제어판" controlPanel: "제어판"
manageAccounts: "계정 관리"
makeReactionsPublic: "리액션 목록을 공개하기"
makeReactionsPublicDescription: "나의 리액션을 누구나 볼 수 있게 합니다."
classic: "클래식"
muteThread: "이 글타래를 뮤트"
unmuteThread: "글타래 뮤트 해제"
ffVisibility: "내 인맥의 공개 범위"
ffVisibilityDescription: "나의 팔로우와 팔로워 정보에 대한 공개 범위를 설정할 수 있습니다."
continueThread: "이 글타래 이어서 보기"
deleteAccountConfirm: "계정이 삭제되고 되돌릴 수 없게 됩니다. 계속하시겠습니까? "
incorrectPassword: "비밀번호가 올바르지 않습니다."
voteConfirm: "\"{choice}\"에 투표하시겠습니까?"
hide: "숨기기"
_emailUnavailable:
used: "이 메일 주소는 사용중입니다"
format: "형식이 올바르지 않습니다"
disposable: "임시 이메일 주소는 사용할 수 없습니다"
mx: "메일 서버가 올바르지 않습니다"
smtp: "메일 서버가 응답하지 않습니다"
_ffVisibility: _ffVisibility:
public: "게시" public: "공개"
followers: "팔로워에게만 공개"
private: "비공개"
_signup:
almostThere: "거의 다 끝났습니다"
emailAddressInfo: "당신이 사용하고 있는 이메일 주소를 입력해 주세요. 이메일 주소는 다른 유저에게 공개되지 않습니다."
emailSent: "입력하신 메일 주소({email})로 확인 메일을 보내드렸습니다. 가입을 완료하시려면 보내드린 메일에 있는 링크로 접속해 주세요."
_accountDelete: _accountDelete:
accountDelete: "계정 삭제" accountDelete: "계정 삭제"
mayTakeTime: "계정 삭제는 서버에 부하를 가하기 때문에, 작성한 콘텐츠나 업로드한 파일의 수가 많으면 완료까지 시간이 걸릴 수 있습니다." mayTakeTime: "계정 삭제는 서버에 부하를 가하기 때문에, 작성한 콘텐츠나 업로드한 파일의 수가 많으면 완료까지 시간이 걸릴 수 있습니다."
@ -900,6 +936,7 @@ _mfm:
sparkle: "반짝반짝" sparkle: "반짝반짝"
sparkleDescription: "반짝이는 파티클 효과를 추가합니다." sparkleDescription: "반짝이는 파티클 효과를 추가합니다."
rotate: "회전" rotate: "회전"
rotateDescription: "지정한 각도로 회전시킵니다."
_reversi: _reversi:
reversi: "리버시" reversi: "리버시"
gameSettings: "대국 설정" gameSettings: "대국 설정"
@ -965,6 +1002,11 @@ _wordMute:
soft: "보통" soft: "보통"
hard: "보다 높은 수준" hard: "보다 높은 수준"
mutedNotes: "뮤트된 노트" mutedNotes: "뮤트된 노트"
_instanceMute:
instanceMuteDescription: "뮤트한 인스턴스에서 오는 답글을 포함한 모든 노트와 Renote를 뮤트합니다."
instanceMuteDescription2: "한 줄에 하나씩 입력해 주세요"
title: "지정한 인스턴스의 노트를 숨깁니다."
heading: "뮤트할 인스턴스"
_theme: _theme:
explore: "테마 찾아보기" explore: "테마 찾아보기"
install: "테마 설치" install: "테마 설치"
@ -1238,6 +1280,8 @@ _exportOrImport:
muteList: "뮤트" muteList: "뮤트"
blockingList: "차단" blockingList: "차단"
userLists: "리스트" userLists: "리스트"
excludeMutingUsers: "뮤트한 유저 제외하기"
excludeInactiveUsers: "휴면 중인 계정 제외하기"
_charts: _charts:
federationInstancesIncDec: "연합 인스턴스 수 증감" federationInstancesIncDec: "연합 인스턴스 수 증감"
federationInstancesTotal: "연합 인스턴스 수 합계" federationInstancesTotal: "연합 인스턴스 수 합계"

View File

@ -106,7 +106,6 @@ clickToShow: "Klik om te bekijken"
sensitive: "NSFW" sensitive: "NSFW"
add: "Toevoegen" add: "Toevoegen"
reaction: "Reacties" reaction: "Reacties"
reactionSettingDescription: "Configureer welke reacties je wilt weergeven in de reactiekiezer."
reactionSettingDescription2: "Sleep om opnieuw te ordenen, Klik om te verwijderen, Druk op \"+\" om toe te voegen" reactionSettingDescription2: "Sleep om opnieuw te ordenen, Klik om te verwijderen, Druk op \"+\" om toe te voegen"
rememberNoteVisibility: "Vergeet niet de notitie zichtbaarheidsinstellingen" rememberNoteVisibility: "Vergeet niet de notitie zichtbaarheidsinstellingen"
attachCancel: "Verwijder bijlage" attachCancel: "Verwijder bijlage"
@ -120,16 +119,144 @@ unblock: "Deblokkeren"
suspend: "Opschorten" suspend: "Opschorten"
unsuspend: "Heractiveren" unsuspend: "Heractiveren"
blockConfirm: "Weet je zeker dat je dit account wil blokkeren?" blockConfirm: "Weet je zeker dat je dit account wil blokkeren?"
searchWith: "Zoeken: {q}"
youHaveNoLists: "Je hebt geen lijsten"
followConfirm: "Weet je zeker dat je {name} wilt volgen?"
proxyAccount: "Proxy account"
proxyAccountDescription: "Een proxy-account is een account dat onder bepaalde voorwaarden fungeert als externe volger voor gebruikers. Als een gebruiker bijvoorbeeld een externe gebruiker aan de lijst toevoegt, wordt de activiteit van de externe gebruiker niet aan de server geleverd als geen lokale gebruiker die gebruiker volgt, dus het proxy-account volgt in plaats daarvan."
host: "Server"
selectUser: "Kies een gebruiker"
recipient: "Ontvanger"
annotation: "Reacties"
federation: "Federatie"
instances: "Server" instances: "Server"
registeredAt: "Geregistreerd op"
latestRequestSentAt: "Laatste aanvraag verstuurd"
latestRequestReceivedAt: "Laatste aanvraag ontvangen"
latestStatus: "Laatste status"
storageUsage: "Gebruikte opslagruimte"
charts: "Grafieken"
perHour: "Per uur"
perDay: "Per dag"
stopActivityDelivery: "Stop met versturen activiteiten"
blockThisInstance: "Blokkeer deze server"
operations: "Verwerkingen"
software: "Software"
version: "Versie"
metadata: "Metadata"
withNFiles: "{n} bestand(en)"
monitor: "Monitor"
jobQueue: "Job Queue"
cpuAndMemory: "CPU en geheugen"
network: "Netwerk"
disk: "Schijfruimte"
instanceInfo: "Serverinformatie"
statistics: "Statistieken"
clearQueue: "Wachtrij wissen"
clearQueueConfirmTitle: "Weet je zeker dat je de wachtrji leeg wil maken?"
clearQueueConfirmText: "Niet-bezorgde biljetten die nog in de wachtrij staan, worden niet gefedereerd. Meestal is deze operatie niet nodig."
clearCachedFiles: "Cache opschonen"
clearCachedFilesConfirm: "Weet je zeker dat je alle externe bestanden in de cache wilt verwijderen?"
blockedInstances: "Geblokkeerde servers"
blockedInstancesDescription: "Maak een lijst van de servers die moeten worden geblokkeerd, gescheiden door regeleinden. Geblokkeerde servers kunnen niet meer communiceren met deze server."
muteAndBlock: "Gedempt en geblokkeerd"
mutedUsers: "Gedempte gebruikers"
blockedUsers: "Geblokkeerde gebruikers"
noUsers: "Er zijn geen gebruikers."
editProfile: "Bewerk Profiel"
noteDeleteConfirm: "Ben je zeker dat je dit bericht wil verwijderen?"
pinLimitExceeded: "Je kunt geen berichten meer vastprikken"
intro: "Installatie van Misskey geëindigd! Maak nu een beheerder aan."
done: "Klaar"
processing: "Bezig met verwerken"
preview: "Voorbeeld"
default: "Standaard"
noCustomEmojis: "Er zijn geen emojis"
noJobs: "Er zijn geen taken"
federating: "Federeren"
blocked: "Geblokkeerd"
suspended: "Opgeschort"
all: "Alle"
subscribing: "Abonneren"
publishing: "Publiceren"
notResponding: "Reageert niet"
instanceFollowing: "Volgend op server"
instanceFollowers: "Volgers op server"
instanceUsers: "Gebruikers van deze server"
changePassword: "Wachtwoord wijzigen"
security: "Beveiliging"
retypedNotMatch: "Invoer komt niet overeen"
currentPassword: "Huidig wachtwoord"
newPassword: "Nieuwe wachtwoord"
newPasswordRetype: "Nieuw wachtwoord (herhalen)"
attachFile: "Bestanden toevoegen"
more: "Meer!"
featured: "Uitgelicht"
usernameOrUserId: "Gebruikersnaam of id"
noSuchUser: "Gebruiker niet gevonden"
lookup: "Opzoeken"
announcements: "Aankondigingen"
imageUrl: "AfbeeldingsURL"
remove: "Verwijderen" remove: "Verwijderen"
removed: "Succesvol verwijderd"
removeAreYouSure: "Weet je zeker dat je \"{x}\" wil verwijderen?"
deleteAreYouSure: "Weet je zeker dat je \"{x}\" wil verwijderen?"
resetAreYouSure: "Resetten?"
saved: "Opgeslagen"
messaging: "Chat"
upload: "Uploaden"
fromDrive: "Van schijf"
fromUrl: "Van URL"
uploadFromUrl: "Uploaden vanaf een URL"
uploadFromUrlDescription: "URL van het bestand dat je wil uploaden"
uploadFromUrlRequested: "Uploadverzoek"
uploadFromUrlMayTakeTime: "Het kan even duren voordat het uploaden voltooid is."
explore: "Verkennen"
games: "Misskey spellen"
messageRead: "Lezen"
noMoreHistory: "Er is geen verdere geschiedenis"
startMessaging: "Start een gesprek"
nUsersRead: "gelezen door {n}"
agreeTo: "Ik stem in met {0}"
tos: "Gebruiksvoorwaarden"
start: "Aan de slag"
home: "Startpagina"
remoteUserCaution: "Aangezien deze gebruiker van een externe server afkomstig is, kan de weergegeven informatie onvolledig zijn."
activity: "Activiteit"
images: "Afbeeldingen"
birthday: "Geboortedatum"
yearsOld: "{age} jaar"
registeredDate: "Inschrijvingsdatum"
location: "Locatie"
theme: "Thema's"
themeForLightMode: "Thema voor gebruik in de lichte modus"
themeForDarkMode: "Thema voor gebruik in de donkere modus"
light: "Licht"
dark: "Donker"
lightThemes: "Licht thema's"
darkThemes: "Donkere thema's"
syncDeviceDarkMode: "Synchroniseer donkere modus met je apparaatinstellingen"
drive: "Schijf"
fileName: "Bestandsnaam"
selectFile: "Kies een bestand"
selectFiles: "Selecteer bestanden"
selectFolder: "Kies een map"
selectFolders: "Kies mappen"
renameFile: "Wijzig bestandsnaam"
folderName: "Mapnaam"
createFolder: "Map aanmaken"
renameFolder: "Map hernoemen"
nsfw: "NSFW" nsfw: "NSFW"
pinnedNotes: "Vastgemaakte notitie" pinnedNotes: "Vastgemaakte notitie"
userList: "Lijsten" userList: "Lijsten"
smtpHost: "Server"
smtpUser: "Gebruikersnaam" smtpUser: "Gebruikersnaam"
smtpPass: "Wachtwoord" smtpPass: "Wachtwoord"
clearCache: "Cache opschonen"
user: "Gebruikers" user: "Gebruikers"
muteThread: "Discussies dempen " muteThread: "Discussies dempen "
unmuteThread: "Dempen van discussie ongedaan maken" unmuteThread: "Dempen van discussie ongedaan maken"
hide: "Verbergen"
_email: _email:
_follow: _follow:
title: "volgde jou" title: "volgde jou"
@ -144,12 +271,17 @@ _theme:
_sfx: _sfx:
note: "Notities" note: "Notities"
notification: "Meldingen" notification: "Meldingen"
chat: "Chat"
_widgets: _widgets:
notifications: "Meldingen" notifications: "Meldingen"
timeline: "Tijdlijn" timeline: "Tijdlijn"
activity: "Activiteit"
federation: "Federatie"
jobQueue: "Job Queue"
_cw: _cw:
show: "Laad meer" show: "Laad meer"
_visibility: _visibility:
home: "Startpagina"
followers: "Volgers" followers: "Volgers"
_profile: _profile:
username: "Gebruikersnaam" username: "Gebruikersnaam"
@ -158,7 +290,18 @@ _exportOrImport:
muteList: "Dempen" muteList: "Dempen"
blockingList: "Blokkeren" blockingList: "Blokkeren"
userLists: "Lijsten" userLists: "Lijsten"
excludeMutingUsers: "Negeer gedempte gebruikers"
excludeInactiveUsers: "Negeer inactieve gebruikers"
_timelines:
home: "Startpagina"
_rooms:
_roomType:
default: "Standaard"
_furnitures:
monitor: "Monitor"
_pages: _pages:
blocks:
image: "Afbeeldingen"
script: script:
categories: categories:
list: "Lijsten" list: "Lijsten"

View File

@ -104,7 +104,6 @@ clickToShow: "Kliknij, aby wyświetlić"
sensitive: "NSFW" sensitive: "NSFW"
add: "Dodaj" add: "Dodaj"
reaction: "Reakcja" reaction: "Reakcja"
reactionSettingDescription: "Przypisz swoje ulubione reakcje, które chcesz przypiąć w wyborze reakcji."
reactionSettingDescription2: "Przeciągnij aby zmienić kolejność, naciśnij aby usunąć, naciśnij „+” aby dodać" reactionSettingDescription2: "Przeciągnij aby zmienić kolejność, naciśnij aby usunąć, naciśnij „+” aby dodać"
rememberNoteVisibility: "Zapamiętuj ustawienia widoczności wpisu" rememberNoteVisibility: "Zapamiętuj ustawienia widoczności wpisu"
attachCancel: "Usuń załącznik" attachCancel: "Usuń załącznik"
@ -738,6 +737,7 @@ ratio: "Stosunek"
global: "Globalna" global: "Globalna"
sent: "Wyślij" sent: "Wyślij"
hashtags: "Hashtag" hashtags: "Hashtag"
hide: "Ukryj"
_ffVisibility: _ffVisibility:
public: "Publikuj" public: "Publikuj"
_ad: _ad:

View File

@ -106,7 +106,6 @@ clickToShow: "Нажмите для просмотра"
sensitive: "Содержимое не для всех" sensitive: "Содержимое не для всех"
add: "Добавить" add: "Добавить"
reaction: "Реакции" reaction: "Реакции"
reactionSettingDescription: "Подберите, что будет у вас в палитре реакций"
reactionSettingDescription2: "Расставляйте перетаскиванием, удаляйте нажатием, добавляйте кнопкой «+»." reactionSettingDescription2: "Расставляйте перетаскиванием, удаляйте нажатием, добавляйте кнопкой «+»."
rememberNoteVisibility: "Запоминать видимость заметок" rememberNoteVisibility: "Запоминать видимость заметок"
attachCancel: "Удалить вложение" attachCancel: "Удалить вложение"
@ -802,6 +801,8 @@ makeReactionsPublicDescription: "Список сделанных вами реа
classic: "Классика" classic: "Классика"
unmuteThread: "Отключить звук" unmuteThread: "Отключить звук"
ffVisibilityDescription: "Вы можете установить объем вашей следующей/последней информации." ffVisibilityDescription: "Вы можете установить объем вашей следующей/последней информации."
hide: "Спрятать"
leaveGroupConfirm: "Вы хотите оставить \"{name}\"?"
_emailUnavailable: _emailUnavailable:
used: "Уже используется" used: "Уже используется"
format: "Неправильный формат" format: "Неправильный формат"
@ -923,6 +924,7 @@ _mfm:
sparkle: "Блеск" sparkle: "Блеск"
sparkleDescription: "Добавьте эффект искрящихся частиц." sparkleDescription: "Добавьте эффект искрящихся частиц."
rotate: "Повернуть" rotate: "Повернуть"
rotateDescription: "Повернуть на указанный угол."
_reversi: _reversi:
reversi: "Реверси" reversi: "Реверси"
gameSettings: "Настройки игры" gameSettings: "Настройки игры"

View File

@ -103,7 +103,6 @@ clickToShow: "Натисніть для перегляду"
sensitive: "NSFW" sensitive: "NSFW"
add: "Додати" add: "Додати"
reaction: "Реакції" reaction: "Реакції"
reactionSettingDescription: "Виберіть свої улюблені реакції, які хочете закріпити в селекторі реакцій."
reactionSettingDescription2: "Перемістити щоб змінити порядок, Клацнути мишою щоб видалити, Натиснути \"+\" щоб додати." reactionSettingDescription2: "Перемістити щоб змінити порядок, Клацнути мишою щоб видалити, Натиснути \"+\" щоб додати."
rememberNoteVisibility: "Пам’ятати параметри видимісті" rememberNoteVisibility: "Пам’ятати параметри видимісті"
attachCancel: "Видалити вкладення" attachCancel: "Видалити вкладення"
@ -692,6 +691,7 @@ middle: "Середній"
global: "Глобальна" global: "Глобальна"
sent: "Відправити" sent: "Відправити"
hashtags: "Хештеґ" hashtags: "Хештеґ"
hide: "Сховати"
_ad: _ad:
back: "Назад" back: "Назад"
_gallery: _gallery:

View File

@ -106,7 +106,7 @@ clickToShow: "点击以显示"
sensitive: "敏感内容" sensitive: "敏感内容"
add: "添加" add: "添加"
reaction: "回应" reaction: "回应"
reactionSettingDescription: "选择您想要置顶的回应。" reactionSetting: "在选择器中显示的回应"
reactionSettingDescription2: "拖动重新排序,单击删除,点击 + 添加。" reactionSettingDescription2: "拖动重新排序,单击删除,点击 + 添加。"
rememberNoteVisibility: "保存上次设置的可见性" rememberNoteVisibility: "保存上次设置的可见性"
attachCancel: "删除附件" attachCancel: "删除附件"
@ -592,6 +592,7 @@ smtpSecure: "在 SMTP 连接中使用隐式 SSL / TLS"
smtpSecureInfo: "使用STARTTLS时关闭。" smtpSecureInfo: "使用STARTTLS时关闭。"
testEmail: "邮件发送测试" testEmail: "邮件发送测试"
wordMute: "文字屏蔽" wordMute: "文字屏蔽"
instanceMute: "实例的屏蔽"
userSaysSomething: "{name}说了什么" userSaysSomething: "{name}说了什么"
makeActive: "启用" makeActive: "启用"
display: "显示" display: "显示"
@ -811,6 +812,10 @@ continueThread: "查看更多帖子"
deleteAccountConfirm: "将要删除账户。是否确认?" deleteAccountConfirm: "将要删除账户。是否确认?"
incorrectPassword: "密码错误" incorrectPassword: "密码错误"
voteConfirm: "确定投给“{choice}” " voteConfirm: "确定投给“{choice}” "
hide: "隐藏"
leaveGroup: "离开群组"
leaveGroupConfirm: "确定离开「{name}」?"
useDrawerReactionPickerForMobile: "在移动设备上使用抽屉显示"
_emailUnavailable: _emailUnavailable:
used: "已经被使用过" used: "已经被使用过"
format: "无效的格式" format: "无效的格式"
@ -1001,6 +1006,11 @@ _wordMute:
soft: "软屏蔽" soft: "软屏蔽"
hard: "硬屏蔽" hard: "硬屏蔽"
mutedNotes: "被屏蔽的帖子" mutedNotes: "被屏蔽的帖子"
_instanceMute:
instanceMuteDescription: "屏蔽配置实例中的所有帖子和转帖,包括实例的用户回复。"
instanceMuteDescription2: "设置时用换行符来分隔"
title: "隐藏实例已设置的帖子。"
heading: "屏蔽实例"
_theme: _theme:
explore: "寻找主题" explore: "寻找主题"
install: "安装主题" install: "安装主题"
@ -1274,6 +1284,8 @@ _exportOrImport:
muteList: "屏蔽" muteList: "屏蔽"
blockingList: "拉黑" blockingList: "拉黑"
userLists: "列表" userLists: "列表"
excludeMutingUsers: "排除屏蔽用户"
excludeInactiveUsers: "排除不活跃用户"
_charts: _charts:
federationInstancesIncDec: "联合:增加/减少" federationInstancesIncDec: "联合:增加/减少"
federationInstancesTotal: "联合总数" federationInstancesTotal: "联合总数"

View File

@ -104,7 +104,6 @@ clickToShow: "按一下以顯示"
sensitive: "敏感內容" sensitive: "敏感內容"
add: "新增" add: "新增"
reaction: "情感" reaction: "情感"
reactionSettingDescription: "置頂「反應」表情符號\n"
reactionSettingDescription2: "拖動以重新列序,點擊以刪除,按下 + 添加。" reactionSettingDescription2: "拖動以重新列序,點擊以刪除,按下 + 添加。"
rememberNoteVisibility: "記住貼文可見性" rememberNoteVisibility: "記住貼文可見性"
attachCancel: "移除附件" attachCancel: "移除附件"
@ -754,6 +753,7 @@ ratio: "%"
global: "公開" global: "公開"
sent: "發送" sent: "發送"
hashtags: "#tag" hashtags: "#tag"
hide: "隱藏"
_ffVisibility: _ffVisibility:
public: "發佈" public: "發佈"
_ad: _ad:

View File

@ -1,6 +1,6 @@
{ {
"name": "misskey", "name": "misskey",
"version": "12.98.0+birb1", "version": "12.100.2+birb1",
"codename": "indigo", "codename": "indigo",
"repository": { "repository": {
"type": "git", "type": "git",

View File

@ -0,0 +1,15 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
class userInstanceBlocks1629968054000 {
constructor() {
this.name = 'userInstanceBlocks1629968054000';
}
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "user_profile" ADD "mutedInstances" jsonb NOT NULL DEFAULT '[]'`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."mutedInstances" IS 'List of instances muted by the user.'`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "mutedInstances"`);
}
}
exports.userInstanceBlocks1629968054000 = userInstanceBlocks1629968054000;

View File

@ -0,0 +1,189 @@
const { MigrationInterface, QueryRunner } = require("typeorm");
module.exports = class chartV31639325650583 {
name = 'chartV31639325650583'
async up(queryRunner) {
await queryRunner.query(`DELETE FROM "__chart__per_user_drive" WHERE "group" IS NULL`);
await queryRunner.query(`DROP INDEX "public"."IDX_dd907becf76104e4b656659e6b"`);
await queryRunner.query(`DROP INDEX "public"."IDX_eddfed8fb40305a04c6f941050"`);
await queryRunner.query(`DROP INDEX "public"."IDX_f09d543e3acb16c5976bdb31fa"`);
await queryRunner.query(`DROP INDEX "public"."IDX_e60c358aaced5aab8900a4af31"`);
await queryRunner.query(`DROP INDEX "public"."IDX_337e9599f278bd7537fe30876f"`);
await queryRunner.query(`DROP INDEX "public"."IDX_66feba81e1795d176d06c0b1e6"`);
await queryRunner.query(`DROP INDEX "public"."IDX_0a905b992fecd2b5c3fb98759e"`);
await queryRunner.query(`DROP INDEX "public"."IDX_2082327b2699ce924fa654afc5"`);
await queryRunner.query(`DROP INDEX "public"."IDX_9a3ed15a30ab7e3a37702e6e08"`);
await queryRunner.query(`DROP INDEX "public"."IDX_60c5c6e7e538c09aa274ecd1cf"`);
await queryRunner.query(`DROP INDEX "public"."IDX_8111b817b9818c04d7eb8475b1"`);
await queryRunner.query(`DROP INDEX "public"."IDX_583a157ed0cf0ed1b5ec2a833f"`);
await queryRunner.query(`DROP INDEX "public"."IDX_3313d7288855ec105b5bbf6c21"`);
await queryRunner.query(`DROP INDEX "public"."IDX_ceab80a6729f8e2e6f5b8a1a3d"`);
await queryRunner.query(`DROP INDEX "public"."IDX_3b7697a96f522d0478972e6d6f"`);
await queryRunner.query(`DROP INDEX "public"."IDX_53a3604b939e2b479eb2cfaac8"`);
await queryRunner.query(`DROP INDEX "public"."IDX_dabbb38a51ab86ee3cab291326"`);
await queryRunner.query(`DROP INDEX "public"."IDX_a9a806d466b314f253a1a611c4"`);
await queryRunner.query(`CREATE TABLE "__chart_day__federation" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "___instance_total" bigint NOT NULL, "___instance_inc" bigint NOT NULL, "___instance_dec" bigint NOT NULL, CONSTRAINT "UQ_617a8fe225a6e701d89e02d2c74" UNIQUE ("date"), CONSTRAINT "PK_7ca721c769f31698e0e1331e8e6" PRIMARY KEY ("id"))`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_617a8fe225a6e701d89e02d2c7" ON "__chart_day__federation" ("date") `);
await queryRunner.query(`CREATE TABLE "__chart_day__notes" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "___local_total" bigint NOT NULL, "___local_inc" bigint NOT NULL, "___local_dec" bigint NOT NULL, "___local_diffs_normal" bigint NOT NULL, "___local_diffs_reply" bigint NOT NULL, "___local_diffs_renote" bigint NOT NULL, "___remote_total" bigint NOT NULL, "___remote_inc" bigint NOT NULL, "___remote_dec" bigint NOT NULL, "___remote_diffs_normal" bigint NOT NULL, "___remote_diffs_reply" bigint NOT NULL, "___remote_diffs_renote" bigint NOT NULL, CONSTRAINT "UQ_1a527b423ad0858a1af5a056d43" UNIQUE ("date"), CONSTRAINT "PK_1fa4139e1f338272b758d05e090" PRIMARY KEY ("id"))`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_1a527b423ad0858a1af5a056d4" ON "__chart_day__notes" ("date") `);
await queryRunner.query(`CREATE TABLE "__chart_day__users" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "___local_total" bigint NOT NULL, "___local_inc" bigint NOT NULL, "___local_dec" bigint NOT NULL, "___remote_total" bigint NOT NULL, "___remote_inc" bigint NOT NULL, "___remote_dec" bigint NOT NULL, CONSTRAINT "UQ_cad6e07c20037f31cdba8a350c3" UNIQUE ("date"), CONSTRAINT "PK_d7f7185abb9851f70c4726c54bd" PRIMARY KEY ("id"))`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_cad6e07c20037f31cdba8a350c" ON "__chart_day__users" ("date") `);
await queryRunner.query(`CREATE TABLE "__chart_day__network" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "___incomingRequests" bigint NOT NULL, "___outgoingRequests" bigint NOT NULL, "___totalTime" bigint NOT NULL, "___incomingBytes" bigint NOT NULL, "___outgoingBytes" bigint NOT NULL, CONSTRAINT "UQ_8bfa548c2b31f9e07db113773ee" UNIQUE ("date"), CONSTRAINT "PK_cac499d6f471042dfed1e7e0132" PRIMARY KEY ("id"))`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_8bfa548c2b31f9e07db113773e" ON "__chart_day__network" ("date") `);
await queryRunner.query(`CREATE TABLE "__chart_day__active_users" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "___local_users" character varying array NOT NULL, "___remote_users" character varying array NOT NULL, CONSTRAINT "UQ_d5954f3df5e5e3bdfc3c03f3906" UNIQUE ("date"), CONSTRAINT "PK_b1790489b14f005ae8f404f5795" PRIMARY KEY ("id"))`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_d5954f3df5e5e3bdfc3c03f390" ON "__chart_day__active_users" ("date") `);
await queryRunner.query(`CREATE TABLE "__chart_day__instance" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128) NOT NULL, "___requests_failed" bigint NOT NULL, "___requests_succeeded" bigint NOT NULL, "___requests_received" bigint NOT NULL, "___notes_total" bigint NOT NULL, "___notes_inc" bigint NOT NULL, "___notes_dec" bigint NOT NULL, "___notes_diffs_normal" bigint NOT NULL, "___notes_diffs_reply" bigint NOT NULL, "___notes_diffs_renote" bigint NOT NULL, "___users_total" bigint NOT NULL, "___users_inc" bigint NOT NULL, "___users_dec" bigint NOT NULL, "___following_total" bigint NOT NULL, "___following_inc" bigint NOT NULL, "___following_dec" bigint NOT NULL, "___followers_total" bigint NOT NULL, "___followers_inc" bigint NOT NULL, "___followers_dec" bigint NOT NULL, "___drive_totalFiles" bigint NOT NULL, "___drive_totalUsage" bigint NOT NULL, "___drive_incFiles" bigint NOT NULL, "___drive_incUsage" bigint NOT NULL, "___drive_decFiles" bigint NOT NULL, "___drive_decUsage" bigint NOT NULL, CONSTRAINT "UQ_fea7c0278325a1a2492f2d6acbf" UNIQUE ("date", "group"), CONSTRAINT "PK_479a8ff9d959274981087043023" PRIMARY KEY ("id"))`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_fea7c0278325a1a2492f2d6acb" ON "__chart_day__instance" ("date", "group") `);
await queryRunner.query(`CREATE TABLE "__chart_day__per_user_notes" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128) NOT NULL, "___total" bigint NOT NULL, "___inc" bigint NOT NULL, "___dec" bigint NOT NULL, "___diffs_normal" bigint NOT NULL, "___diffs_reply" bigint NOT NULL, "___diffs_renote" bigint NOT NULL, CONSTRAINT "UQ_c5545d4b31cdc684034e33b81c3" UNIQUE ("date", "group"), CONSTRAINT "PK_58bab6b6d3ad9310cbc7460fd28" PRIMARY KEY ("id"))`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_c5545d4b31cdc684034e33b81c" ON "__chart_day__per_user_notes" ("date", "group") `);
await queryRunner.query(`CREATE TABLE "__chart_day__drive" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "___local_totalCount" bigint NOT NULL, "___local_totalSize" bigint NOT NULL, "___local_incCount" bigint NOT NULL, "___local_incSize" bigint NOT NULL, "___local_decCount" bigint NOT NULL, "___local_decSize" bigint NOT NULL, "___remote_totalCount" bigint NOT NULL, "___remote_totalSize" bigint NOT NULL, "___remote_incCount" bigint NOT NULL, "___remote_incSize" bigint NOT NULL, "___remote_decCount" bigint NOT NULL, "___remote_decSize" bigint NOT NULL, CONSTRAINT "UQ_0b60ebb3aa0065f10b0616c1171" UNIQUE ("date"), CONSTRAINT "PK_e7ec0de057c77c40fc8d8b62151" PRIMARY KEY ("id"))`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0b60ebb3aa0065f10b0616c117" ON "__chart_day__drive" ("date") `);
await queryRunner.query(`CREATE TABLE "__chart_day__per_user_reaction" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128) NOT NULL, "___local_count" bigint NOT NULL, "___remote_count" bigint NOT NULL, CONSTRAINT "UQ_d54b653660d808b118e36c184c0" UNIQUE ("date", "group"), CONSTRAINT "PK_8af24e2d51ff781a354fe595eda" PRIMARY KEY ("id"))`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_d54b653660d808b118e36c184c" ON "__chart_day__per_user_reaction" ("date", "group") `);
await queryRunner.query(`CREATE TABLE "__chart_day__hashtag" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128) NOT NULL, "___local_users" character varying array NOT NULL, "___remote_users" character varying array NOT NULL, CONSTRAINT "UQ_8f589cf056ff51f09d6096f6450" UNIQUE ("date", "group"), CONSTRAINT "PK_13d5a3b089344e5557f8e0980b4" PRIMARY KEY ("id"))`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_8f589cf056ff51f09d6096f645" ON "__chart_day__hashtag" ("date", "group") `);
await queryRunner.query(`CREATE TABLE "__chart_day__per_user_following" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128) NOT NULL, "___local_followings_total" bigint NOT NULL, "___local_followings_inc" bigint NOT NULL, "___local_followings_dec" bigint NOT NULL, "___local_followers_total" bigint NOT NULL, "___local_followers_inc" bigint NOT NULL, "___local_followers_dec" bigint NOT NULL, "___remote_followings_total" bigint NOT NULL, "___remote_followings_inc" bigint NOT NULL, "___remote_followings_dec" bigint NOT NULL, "___remote_followers_total" bigint NOT NULL, "___remote_followers_inc" bigint NOT NULL, "___remote_followers_dec" bigint NOT NULL, CONSTRAINT "UQ_e4849a3231f38281280ea4c0eee" UNIQUE ("date", "group"), CONSTRAINT "PK_68ce6b67da57166da66fc8fb27e" PRIMARY KEY ("id"))`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_e4849a3231f38281280ea4c0ee" ON "__chart_day__per_user_following" ("date", "group") `);
await queryRunner.query(`CREATE TABLE "__chart_day__per_user_drive" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128) NOT NULL, "___totalCount" bigint NOT NULL, "___totalSize" bigint NOT NULL, "___incCount" bigint NOT NULL, "___incSize" bigint NOT NULL, "___decCount" bigint NOT NULL, "___decSize" bigint NOT NULL, CONSTRAINT "UQ_62aa5047b5aec92524f24c701d7" UNIQUE ("date", "group"), CONSTRAINT "PK_1ae135254c137011645da7f4045" PRIMARY KEY ("id"))`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_62aa5047b5aec92524f24c701d" ON "__chart_day__per_user_drive" ("date", "group") `);
await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "group"`);
await queryRunner.query(`ALTER TABLE "__chart__notes" DROP COLUMN "group"`);
await queryRunner.query(`ALTER TABLE "__chart__users" DROP COLUMN "group"`);
await queryRunner.query(`ALTER TABLE "__chart__network" DROP COLUMN "group"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "group"`);
await queryRunner.query(`ALTER TABLE "__chart__drive" DROP COLUMN "group"`);
await queryRunner.query(`ALTER TABLE "__chart__federation" ADD CONSTRAINT "UQ_36cb699c49580d4e6c2e6159f97" UNIQUE ("date")`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ADD CONSTRAINT "UQ_42eb716a37d381cdf566192b2be" UNIQUE ("date")`);
await queryRunner.query(`ALTER TABLE "__chart__users" ADD CONSTRAINT "UQ_845254b3eaf708ae8a6cac30265" UNIQUE ("date")`);
await queryRunner.query(`ALTER TABLE "__chart__network" ADD CONSTRAINT "UQ_a1efd3e0048a5f2793a47360dc6" UNIQUE ("date")`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD CONSTRAINT "UQ_0ad37b7ef50f4ddc84363d7ccca" UNIQUE ("date")`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ALTER COLUMN "___local_users" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ALTER COLUMN "___remote_users" DROP DEFAULT`);
await queryRunner.query(`DROP INDEX "public"."IDX_39ee857ab2f23493037c6b6631"`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "group" SET NOT NULL`);
await queryRunner.query(`DROP INDEX "public"."IDX_5048e9daccbbbc6d567bb142d3"`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "group" SET NOT NULL`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ADD CONSTRAINT "UQ_13565815f618a1ff53886c5b28a" UNIQUE ("date")`);
await queryRunner.query(`DROP INDEX "public"."IDX_229a41ad465f9205f1f5703291"`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ALTER COLUMN "group" SET NOT NULL`);
await queryRunner.query(`DROP INDEX "public"."IDX_25a97c02003338124b2b75fdbc"`);
await queryRunner.query(`ALTER TABLE "__chart__hashtag" ALTER COLUMN "group" SET NOT NULL`);
await queryRunner.query(`ALTER TABLE "__chart__hashtag" ALTER COLUMN "___local_users" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__hashtag" ALTER COLUMN "___remote_users" DROP DEFAULT`);
await queryRunner.query(`DROP INDEX "public"."IDX_b77d4dd9562c3a899d9a286fcd"`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "group" SET NOT NULL`);
await queryRunner.query(`DROP INDEX "public"."IDX_30bf67687f483ace115c5ca642"`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "group" SET NOT NULL`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_36cb699c49580d4e6c2e6159f9" ON "__chart__federation" ("date") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_42eb716a37d381cdf566192b2b" ON "__chart__notes" ("date") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_845254b3eaf708ae8a6cac3026" ON "__chart__users" ("date") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_a1efd3e0048a5f2793a47360dc" ON "__chart__network" ("date") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0ad37b7ef50f4ddc84363d7ccc" ON "__chart__active_users" ("date") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_39ee857ab2f23493037c6b6631" ON "__chart__instance" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_5048e9daccbbbc6d567bb142d3" ON "__chart__per_user_notes" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_13565815f618a1ff53886c5b28" ON "__chart__drive" ("date") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_229a41ad465f9205f1f5703291" ON "__chart__per_user_reaction" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_25a97c02003338124b2b75fdbc" ON "__chart__hashtag" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_b77d4dd9562c3a899d9a286fcd" ON "__chart__per_user_following" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_30bf67687f483ace115c5ca642" ON "__chart__per_user_drive" ("date", "group") `);
await queryRunner.query(`ALTER TABLE "__chart__instance" ADD CONSTRAINT "UQ_39ee857ab2f23493037c6b66311" UNIQUE ("date", "group")`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ADD CONSTRAINT "UQ_5048e9daccbbbc6d567bb142d34" UNIQUE ("date", "group")`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ADD CONSTRAINT "UQ_229a41ad465f9205f1f57032910" UNIQUE ("date", "group")`);
await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD CONSTRAINT "UQ_25a97c02003338124b2b75fdbc8" UNIQUE ("date", "group")`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ADD CONSTRAINT "UQ_b77d4dd9562c3a899d9a286fcd7" UNIQUE ("date", "group")`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ADD CONSTRAINT "UQ_30bf67687f483ace115c5ca6429" UNIQUE ("date", "group")`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" DROP CONSTRAINT "UQ_30bf67687f483ace115c5ca6429"`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" DROP CONSTRAINT "UQ_b77d4dd9562c3a899d9a286fcd7"`);
await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP CONSTRAINT "UQ_25a97c02003338124b2b75fdbc8"`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" DROP CONSTRAINT "UQ_229a41ad465f9205f1f57032910"`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" DROP CONSTRAINT "UQ_5048e9daccbbbc6d567bb142d34"`);
await queryRunner.query(`ALTER TABLE "__chart__instance" DROP CONSTRAINT "UQ_39ee857ab2f23493037c6b66311"`);
await queryRunner.query(`DROP INDEX "public"."IDX_30bf67687f483ace115c5ca642"`);
await queryRunner.query(`DROP INDEX "public"."IDX_b77d4dd9562c3a899d9a286fcd"`);
await queryRunner.query(`DROP INDEX "public"."IDX_25a97c02003338124b2b75fdbc"`);
await queryRunner.query(`DROP INDEX "public"."IDX_229a41ad465f9205f1f5703291"`);
await queryRunner.query(`DROP INDEX "public"."IDX_13565815f618a1ff53886c5b28"`);
await queryRunner.query(`DROP INDEX "public"."IDX_5048e9daccbbbc6d567bb142d3"`);
await queryRunner.query(`DROP INDEX "public"."IDX_39ee857ab2f23493037c6b6631"`);
await queryRunner.query(`DROP INDEX "public"."IDX_0ad37b7ef50f4ddc84363d7ccc"`);
await queryRunner.query(`DROP INDEX "public"."IDX_a1efd3e0048a5f2793a47360dc"`);
await queryRunner.query(`DROP INDEX "public"."IDX_845254b3eaf708ae8a6cac3026"`);
await queryRunner.query(`DROP INDEX "public"."IDX_42eb716a37d381cdf566192b2b"`);
await queryRunner.query(`DROP INDEX "public"."IDX_36cb699c49580d4e6c2e6159f9"`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "group" DROP NOT NULL`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_30bf67687f483ace115c5ca642" ON "__chart__per_user_drive" ("date", "group") `);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "group" DROP NOT NULL`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_b77d4dd9562c3a899d9a286fcd" ON "__chart__per_user_following" ("date", "group") `);
await queryRunner.query(`ALTER TABLE "__chart__hashtag" ALTER COLUMN "___remote_users" SET DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__hashtag" ALTER COLUMN "___local_users" SET DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__hashtag" ALTER COLUMN "group" DROP NOT NULL`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_25a97c02003338124b2b75fdbc" ON "__chart__hashtag" ("date", "group") `);
await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ALTER COLUMN "group" DROP NOT NULL`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_229a41ad465f9205f1f5703291" ON "__chart__per_user_reaction" ("date", "group") `);
await queryRunner.query(`ALTER TABLE "__chart__drive" DROP CONSTRAINT "UQ_13565815f618a1ff53886c5b28a"`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "group" DROP NOT NULL`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_5048e9daccbbbc6d567bb142d3" ON "__chart__per_user_notes" ("date", "group") `);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "group" DROP NOT NULL`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_39ee857ab2f23493037c6b6631" ON "__chart__instance" ("date", "group") `);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ALTER COLUMN "___remote_users" SET DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ALTER COLUMN "___local_users" SET DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP CONSTRAINT "UQ_0ad37b7ef50f4ddc84363d7ccca"`);
await queryRunner.query(`ALTER TABLE "__chart__network" DROP CONSTRAINT "UQ_a1efd3e0048a5f2793a47360dc6"`);
await queryRunner.query(`ALTER TABLE "__chart__users" DROP CONSTRAINT "UQ_845254b3eaf708ae8a6cac30265"`);
await queryRunner.query(`ALTER TABLE "__chart__notes" DROP CONSTRAINT "UQ_42eb716a37d381cdf566192b2be"`);
await queryRunner.query(`ALTER TABLE "__chart__federation" DROP CONSTRAINT "UQ_36cb699c49580d4e6c2e6159f97"`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ADD "group" character varying(128)`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "group" character varying(128)`);
await queryRunner.query(`ALTER TABLE "__chart__network" ADD "group" character varying(128)`);
await queryRunner.query(`ALTER TABLE "__chart__users" ADD "group" character varying(128)`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ADD "group" character varying(128)`);
await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "group" character varying(128)`);
await queryRunner.query(`DROP INDEX "public"."IDX_62aa5047b5aec92524f24c701d"`);
await queryRunner.query(`DROP TABLE "__chart_day__per_user_drive"`);
await queryRunner.query(`DROP INDEX "public"."IDX_e4849a3231f38281280ea4c0ee"`);
await queryRunner.query(`DROP TABLE "__chart_day__per_user_following"`);
await queryRunner.query(`DROP INDEX "public"."IDX_8f589cf056ff51f09d6096f645"`);
await queryRunner.query(`DROP TABLE "__chart_day__hashtag"`);
await queryRunner.query(`DROP INDEX "public"."IDX_d54b653660d808b118e36c184c"`);
await queryRunner.query(`DROP TABLE "__chart_day__per_user_reaction"`);
await queryRunner.query(`DROP INDEX "public"."IDX_0b60ebb3aa0065f10b0616c117"`);
await queryRunner.query(`DROP TABLE "__chart_day__drive"`);
await queryRunner.query(`DROP INDEX "public"."IDX_c5545d4b31cdc684034e33b81c"`);
await queryRunner.query(`DROP TABLE "__chart_day__per_user_notes"`);
await queryRunner.query(`DROP INDEX "public"."IDX_fea7c0278325a1a2492f2d6acb"`);
await queryRunner.query(`DROP TABLE "__chart_day__instance"`);
await queryRunner.query(`DROP INDEX "public"."IDX_d5954f3df5e5e3bdfc3c03f390"`);
await queryRunner.query(`DROP TABLE "__chart_day__active_users"`);
await queryRunner.query(`DROP INDEX "public"."IDX_8bfa548c2b31f9e07db113773e"`);
await queryRunner.query(`DROP TABLE "__chart_day__network"`);
await queryRunner.query(`DROP INDEX "public"."IDX_cad6e07c20037f31cdba8a350c"`);
await queryRunner.query(`DROP TABLE "__chart_day__users"`);
await queryRunner.query(`DROP INDEX "public"."IDX_1a527b423ad0858a1af5a056d4"`);
await queryRunner.query(`DROP TABLE "__chart_day__notes"`);
await queryRunner.query(`DROP INDEX "public"."IDX_617a8fe225a6e701d89e02d2c7"`);
await queryRunner.query(`DROP TABLE "__chart_day__federation"`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_a9a806d466b314f253a1a611c4" ON "__chart__per_user_drive" ("date") WHERE ("group" IS NULL)`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_dabbb38a51ab86ee3cab291326" ON "__chart__per_user_following" ("date") WHERE ("group" IS NULL)`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_53a3604b939e2b479eb2cfaac8" ON "__chart__hashtag" ("date") WHERE ("group" IS NULL)`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_3b7697a96f522d0478972e6d6f" ON "__chart__per_user_reaction" ("date") WHERE ("group" IS NULL)`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_ceab80a6729f8e2e6f5b8a1a3d" ON "__chart__drive" ("date") WHERE ("group" IS NULL)`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_3313d7288855ec105b5bbf6c21" ON "__chart__drive" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_583a157ed0cf0ed1b5ec2a833f" ON "__chart__per_user_notes" ("date") WHERE ("group" IS NULL)`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_8111b817b9818c04d7eb8475b1" ON "__chart__instance" ("date") WHERE ("group" IS NULL)`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_60c5c6e7e538c09aa274ecd1cf" ON "__chart__active_users" ("date") WHERE ("group" IS NULL)`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_9a3ed15a30ab7e3a37702e6e08" ON "__chart__active_users" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_2082327b2699ce924fa654afc5" ON "__chart__network" ("date") WHERE ("group" IS NULL)`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0a905b992fecd2b5c3fb98759e" ON "__chart__network" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_66feba81e1795d176d06c0b1e6" ON "__chart__users" ("date") WHERE ("group" IS NULL)`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_337e9599f278bd7537fe30876f" ON "__chart__users" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_e60c358aaced5aab8900a4af31" ON "__chart__notes" ("date") WHERE ("group" IS NULL)`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_f09d543e3acb16c5976bdb31fa" ON "__chart__notes" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_eddfed8fb40305a04c6f941050" ON "__chart__federation" ("date") WHERE ("group" IS NULL)`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_dd907becf76104e4b656659e6b" ON "__chart__federation" ("date", "group") `);
}
}

View File

@ -46,10 +46,8 @@
"@types/node": "16.11.7", "@types/node": "16.11.7",
"@types/node-fetch": "2.5.12", "@types/node-fetch": "2.5.12",
"@types/nodemailer": "6.4.4", "@types/nodemailer": "6.4.4",
"@types/nprogress": "0.2.0",
"@types/oauth": "0.9.1", "@types/oauth": "0.9.1",
"@types/parse5": "6.0.2", "@types/parse5": "6.0.3",
"@types/parsimmon": "1.10.6",
"@types/portscanner": "2.1.1", "@types/portscanner": "2.1.1",
"@types/pug": "2.0.5", "@types/pug": "2.0.5",
"@types/punycode": "2.1.0", "@types/punycode": "2.1.0",
@ -76,6 +74,7 @@
"@typescript-eslint/eslint-plugin": "5.3.1", "@typescript-eslint/eslint-plugin": "5.3.1",
"@typescript-eslint/parser": "5.1.0", "@typescript-eslint/parser": "5.1.0",
"abort-controller": "3.0.0", "abort-controller": "3.0.0",
"archiver": "5.3.0",
"autobind-decorator": "2.4.0", "autobind-decorator": "2.4.0",
"autosize": "4.0.4", "autosize": "4.0.4",
"autwh": "0.1.0", "autwh": "0.1.0",
@ -93,7 +92,6 @@
"chartjs-plugin-zoom": "1.1.1", "chartjs-plugin-zoom": "1.1.1",
"cli-highlight": "2.1.11", "cli-highlight": "2.1.11",
"compare-versions": "3.6.0", "compare-versions": "3.6.0",
"concurrently": "6.3.0",
"content-disposition": "0.5.3", "content-disposition": "0.5.3",
"crc-32": "1.2.0", "crc-32": "1.2.0",
"css-loader": "6.5.1", "css-loader": "6.5.1",
@ -134,6 +132,7 @@
"koa-views": "7.0.2", "koa-views": "7.0.2",
"langmap": "0.0.16", "langmap": "0.0.16",
"mfm-js": "0.20.0", "mfm-js": "0.20.0",
"mime-types": "2.1.34",
"misskey-js": "0.0.8", "misskey-js": "0.0.8",
"mocha": "8.4.0", "mocha": "8.4.0",
"ms": "3.0.0-canary.1", "ms": "3.0.0-canary.1",
@ -171,7 +170,7 @@
"strict-event-emitter-types": "2.0.0", "strict-event-emitter-types": "2.0.0",
"stringz": "2.1.0", "stringz": "2.1.0",
"style-loader": "3.3.1", "style-loader": "3.3.1",
"summaly": "2.4.1", "summaly": "2.5.0",
"syslog-pro": "1.0.0", "syslog-pro": "1.0.0",
"systeminformation": "5.9.9", "systeminformation": "5.9.9",
"throttle-debounce": "3.0.1", "throttle-debounce": "3.0.1",

View File

@ -10,7 +10,7 @@ import { LessThan } from 'typeorm';
export default function() { export default function() {
async function tick() { async function tick() {
await AttestationChallenges.delete({ await AttestationChallenges.delete({
createdAt: LessThan(new Date(new Date().getTime() - 5 * 60 * 1000)) createdAt: LessThan(new Date(new Date().getTime() - 5 * 60 * 1000)),
}); });
} }

View File

@ -35,13 +35,13 @@ export default function() {
activeSincePrevTick: activeDeliverJobs, activeSincePrevTick: activeDeliverJobs,
active: deliverJobCounts.active, active: deliverJobCounts.active,
waiting: deliverJobCounts.waiting, waiting: deliverJobCounts.waiting,
delayed: deliverJobCounts.delayed delayed: deliverJobCounts.delayed,
}, },
inbox: { inbox: {
activeSincePrevTick: activeInboxJobs, activeSincePrevTick: activeInboxJobs,
active: inboxJobCounts.active, active: inboxJobCounts.active,
waiting: inboxJobCounts.waiting, waiting: inboxJobCounts.waiting,
delayed: inboxJobCounts.delayed delayed: inboxJobCounts.delayed,
}, },
}; };

View File

@ -38,7 +38,7 @@ export default function() {
fs: { fs: {
r: round(Math.max(0, fsStats.rIO_sec)), r: round(Math.max(0, fsStats.rIO_sec)),
w: round(Math.max(0, fsStats.wIO_sec)), w: round(Math.max(0, fsStats.wIO_sec)),
} },
}; };
ev.emit('serverStats', stats); ev.emit('serverStats', stats);
log.unshift(stats); log.unshift(stats);

View File

@ -6,10 +6,10 @@ const index = {
analysis: { analysis: {
analyzer: { analyzer: {
ngram: { ngram: {
tokenizer: 'ngram' tokenizer: 'ngram',
} },
} },
} },
}, },
mappings: { mappings: {
properties: { properties: {
@ -25,9 +25,9 @@ const index = {
userHost: { userHost: {
type: 'keyword', type: 'keyword',
index: true, index: true,
} },
} },
} },
}; };
// Init ElasticSearch connection // Init ElasticSearch connection
@ -35,9 +35,9 @@ const client = config.elasticsearch ? new elasticsearch.Client({
node: `${config.elasticsearch.ssl ? 'https://' : 'http://'}${config.elasticsearch.host}:${config.elasticsearch.port}`, node: `${config.elasticsearch.ssl ? 'https://' : 'http://'}${config.elasticsearch.host}:${config.elasticsearch.port}`,
auth: (config.elasticsearch.user && config.elasticsearch.pass) ? { auth: (config.elasticsearch.user && config.elasticsearch.pass) ? {
username: config.elasticsearch.user, username: config.elasticsearch.user,
password: config.elasticsearch.pass password: config.elasticsearch.pass,
} : undefined, } : undefined,
pingTimeout: 30000 pingTimeout: 30000,
}) : null; }) : null;
if (client) { if (client) {
@ -47,7 +47,7 @@ if (client) {
if (!exist.body) { if (!exist.body) {
client.indices.create({ client.indices.create({
index: config.elasticsearch.index || 'misskey_note', index: config.elasticsearch.index || 'misskey_note',
body: index body: index,
}); });
} }
}); });

View File

@ -3,10 +3,10 @@ const types = require('pg').types;
types.setTypeParser(20, Number); types.setTypeParser(20, Number);
import { createConnection, Logger, getConnection } from 'typeorm'; import { createConnection, Logger, getConnection } from 'typeorm';
import config from '@/config/index';
import { entities as charts } from '@/services/chart/entities';
import { dbLogger } from './logger';
import * as highlight from 'cli-highlight'; import * as highlight from 'cli-highlight';
import config from '@/config/index';
import { dbLogger } from './logger';
import { User } from '@/models/entities/user'; import { User } from '@/models/entities/user';
import { DriveFile } from '@/models/entities/drive-file'; import { DriveFile } from '@/models/entities/drive-file';
@ -74,6 +74,8 @@ import { Ad } from '@/models/entities/ad';
import { PasswordResetRequest } from '@/models/entities/password-reset-request'; import { PasswordResetRequest } from '@/models/entities/password-reset-request';
import { UserPending } from '@/models/entities/user-pending'; import { UserPending } from '@/models/entities/user-pending';
import { entities as charts } from '@/services/chart/entities';
const sqlLogger = dbLogger.createSubLogger('sql', 'white', false); const sqlLogger = dbLogger.createSubLogger('sql', 'white', false);
class MyCustomLogger implements Logger { class MyCustomLogger implements Logger {
@ -175,7 +177,7 @@ export const entities = [
Ad, Ad,
PasswordResetRequest, PasswordResetRequest,
UserPending, UserPending,
...charts as any ...charts,
]; ];
export function initDb(justBorrow = false, sync = false, forceRecreate = false) { export function initDb(justBorrow = false, sync = false, forceRecreate = false) {
@ -205,12 +207,12 @@ export function initDb(justBorrow = false, sync = false, forceRecreate = false)
port: config.redis.port, port: config.redis.port,
password: config.redis.pass, password: config.redis.pass,
prefix: `${config.redis.prefix}:query:`, prefix: `${config.redis.prefix}:query:`,
db: config.redis.db || 0 db: config.redis.db || 0,
} },
} : false, } : false,
logging: log, logging: log,
logger: log ? new MyCustomLogger() : undefined, logger: log ? new MyCustomLogger() : undefined,
entities: entities entities: entities,
}); });
} }

View File

@ -8,7 +8,7 @@ export function createConnection() {
{ {
password: config.redis.pass, password: config.redis.pass,
prefix: config.redis.prefix, prefix: config.redis.prefix,
db: config.redis.db || 0 db: config.redis.db || 0,
} }
); );
} }

View File

@ -134,7 +134,7 @@ export default class Reversi {
color, color,
pos, pos,
effects, effects,
turn turn,
}); });
this.calcTurn(); this.calcTurn();
@ -211,7 +211,7 @@ export default class Reversi {
[ 0, +1], // 下 [ 0, +1], // 下
[ -1, +1], // 左下 [ -1, +1], // 左下
[ -1, 0], // 左 [ -1, 0], // 左
[ -1, -1] // 左上 [ -1, -1], // 左上
]; ];
const effectsInLine = ([dx, dy]: [number, number]): number[] => { const effectsInLine = ([dx, dy]: [number, number]): number[] => {

View File

@ -22,8 +22,8 @@ export const fourfour: Map = {
'----', '----',
'-wb-', '-wb-',
'-bw-', '-bw-',
'----' '----',
] ],
}; };
export const sixsix: Map = { export const sixsix: Map = {
@ -35,8 +35,8 @@ export const sixsix: Map = {
'--wb--', '--wb--',
'--bw--', '--bw--',
'------', '------',
'------' '------',
] ],
}; };
export const roundedSixsix: Map = { export const roundedSixsix: Map = {
@ -49,8 +49,8 @@ export const roundedSixsix: Map = {
'--wb--', '--wb--',
'--bw--', '--bw--',
'------', '------',
' ---- ' ' ---- ',
] ],
}; };
export const roundedSixsix2: Map = { export const roundedSixsix2: Map = {
@ -63,8 +63,8 @@ export const roundedSixsix2: Map = {
'--wb--', '--wb--',
'--bw--', '--bw--',
' ---- ', ' ---- ',
' -- ' ' -- ',
] ],
}; };
export const eighteight: Map = { export const eighteight: Map = {
@ -78,8 +78,8 @@ export const eighteight: Map = {
'---bw---', '---bw---',
'--------', '--------',
'--------', '--------',
'--------' '--------',
] ],
}; };
export const eighteightH1: Map = { export const eighteightH1: Map = {
@ -93,8 +93,8 @@ export const eighteightH1: Map = {
'---bw---', '---bw---',
'--------', '--------',
'--------', '--------',
'--------' '--------',
] ],
}; };
export const eighteightH2: Map = { export const eighteightH2: Map = {
@ -108,8 +108,8 @@ export const eighteightH2: Map = {
'---bw---', '---bw---',
'--------', '--------',
'--------', '--------',
'-------b' '-------b',
] ],
}; };
export const eighteightH3: Map = { export const eighteightH3: Map = {
@ -123,8 +123,8 @@ export const eighteightH3: Map = {
'---bw---', '---bw---',
'--------', '--------',
'--------', '--------',
'-------b' '-------b',
] ],
}; };
export const eighteightH4: Map = { export const eighteightH4: Map = {
@ -138,8 +138,8 @@ export const eighteightH4: Map = {
'---bw---', '---bw---',
'--------', '--------',
'--------', '--------',
'b------b' 'b------b',
] ],
}; };
export const eighteightH28: Map = { export const eighteightH28: Map = {
@ -153,8 +153,8 @@ export const eighteightH28: Map = {
'b--bw--b', 'b--bw--b',
'b------b', 'b------b',
'b------b', 'b------b',
'bbbbbbbb' 'bbbbbbbb',
] ],
}; };
export const roundedEighteight: Map = { export const roundedEighteight: Map = {
@ -169,8 +169,8 @@ export const roundedEighteight: Map = {
'---bw---', '---bw---',
'--------', '--------',
'--------', '--------',
' ------ ' ' ------ ',
] ],
}; };
export const roundedEighteight2: Map = { export const roundedEighteight2: Map = {
@ -185,8 +185,8 @@ export const roundedEighteight2: Map = {
'---bw---', '---bw---',
'--------', '--------',
' ------ ', ' ------ ',
' ---- ' ' ---- ',
] ],
}; };
export const roundedEighteight3: Map = { export const roundedEighteight3: Map = {
@ -201,8 +201,8 @@ export const roundedEighteight3: Map = {
'---bw---', '---bw---',
' ------ ', ' ------ ',
' ---- ', ' ---- ',
' -- ' ' -- ',
] ],
}; };
export const eighteightWithNotch: Map = { export const eighteightWithNotch: Map = {
@ -217,8 +217,8 @@ export const eighteightWithNotch: Map = {
' --bw-- ', ' --bw-- ',
'--------', '--------',
'--------', '--------',
'--- ---' '--- ---',
] ],
}; };
export const eighteightWithSomeHoles: Map = { export const eighteightWithSomeHoles: Map = {
@ -233,8 +233,8 @@ export const eighteightWithSomeHoles: Map = {
'---bw- -', '---bw- -',
' -------', ' -------',
'--- ----', '--- ----',
'--------' '--------',
] ],
}; };
export const circle: Map = { export const circle: Map = {
@ -249,8 +249,8 @@ export const circle: Map = {
'---bw---', '---bw---',
' ------ ', ' ------ ',
' ------ ', ' ------ ',
' -- ' ' -- ',
] ],
}; };
export const smile: Map = { export const smile: Map = {
@ -265,8 +265,8 @@ export const smile: Map = {
'-- bw --', '-- bw --',
'--- ---', '--- ---',
'--------', '--------',
' ------ ' ' ------ ',
] ],
}; };
export const window: Map = { export const window: Map = {
@ -281,8 +281,8 @@ export const window: Map = {
'---bw---', '---bw---',
'- -- -', '- -- -',
'- -- -', '- -- -',
'--------' '--------',
] ],
}; };
export const reserved: Map = { export const reserved: Map = {
@ -297,8 +297,8 @@ export const reserved: Map = {
'---bw---', '---bw---',
'--------', '--------',
'--------', '--------',
'b------w' 'b------w',
] ],
}; };
export const x: Map = { export const x: Map = {
@ -313,8 +313,8 @@ export const x: Map = {
'---bw---', '---bw---',
'--b--w--', '--b--w--',
'-b----w-', '-b----w-',
'b------w' 'b------w',
] ],
}; };
export const parallel: Map = { export const parallel: Map = {
@ -329,8 +329,8 @@ export const parallel: Map = {
'---ww---', '---ww---',
'--------', '--------',
'--------', '--------',
'--------' '--------',
] ],
}; };
export const lackOfBlack: Map = { export const lackOfBlack: Map = {
@ -344,8 +344,8 @@ export const lackOfBlack: Map = {
'---bw---', '---bw---',
'--------', '--------',
'--------', '--------',
'--------' '--------',
] ],
}; };
export const squareParty: Map = { export const squareParty: Map = {
@ -360,8 +360,8 @@ export const squareParty: Map = {
'-bbbwww-', '-bbbwww-',
'-b-bw-w-', '-b-bw-w-',
'-bbbwww-', '-bbbwww-',
'--------' '--------',
] ],
}; };
export const minesweeper: Map = { export const minesweeper: Map = {
@ -376,8 +376,8 @@ export const minesweeper: Map = {
'-w-bw-b-', '-w-bw-b-',
'b-w--b-w', 'b-w--b-w',
'-b-bw-w-', '-b-bw-w-',
'w-w--b-b' 'w-w--b-b',
] ],
}; };
export const tenthtenth: Map = { export const tenthtenth: Map = {
@ -393,8 +393,8 @@ export const tenthtenth: Map = {
'----------', '----------',
'----------', '----------',
'----------', '----------',
'----------' '----------',
] ],
}; };
export const hole: Map = { export const hole: Map = {
@ -411,8 +411,8 @@ export const hole: Map = {
'--wb--wb--', '--wb--wb--',
'--bw--bw--', '--bw--bw--',
'----------', '----------',
'----------' '----------',
] ],
}; };
export const grid: Map = { export const grid: Map = {
@ -429,8 +429,8 @@ export const grid: Map = {
'- - -- - -', '- - -- - -',
'----------', '----------',
'- - -- - -', '- - -- - -',
'----------' '----------',
] ],
}; };
export const cross: Map = { export const cross: Map = {
@ -447,8 +447,8 @@ export const cross: Map = {
'----------', '----------',
' ---- ', ' ---- ',
' ---- ', ' ---- ',
' ---- ' ' ---- ',
] ],
}; };
export const charX: Map = { export const charX: Map = {
@ -465,8 +465,8 @@ export const charX: Map = {
' -------- ', ' -------- ',
'----------', '----------',
'---- ----', '---- ----',
'--- ---' '--- ---',
] ],
}; };
export const charY: Map = { export const charY: Map = {
@ -483,8 +483,8 @@ export const charY: Map = {
' ------ ', ' ------ ',
' ------ ', ' ------ ',
' ------ ', ' ------ ',
' ------ ' ' ------ ',
] ],
}; };
export const walls: Map = { export const walls: Map = {
@ -501,8 +501,8 @@ export const walls: Map = {
'w--------w', 'w--------w',
'w--------w', 'w--------w',
'w--------w', 'w--------w',
' bbbbbbbb ' ' bbbbbbbb ',
] ],
}; };
export const cpu: Map = { export const cpu: Map = {
@ -519,8 +519,8 @@ export const cpu: Map = {
'w--------w', 'w--------w',
' -------- ', ' -------- ',
'w--------w', 'w--------w',
' b b b b ' ' b b b b ',
] ],
}; };
export const checker: Map = { export const checker: Map = {
@ -537,8 +537,8 @@ export const checker: Map = {
'---bwbw---', '---bwbw---',
'----------', '----------',
'----------', '----------',
'----------' '----------',
] ],
}; };
export const japaneseCurry: Map = { export const japaneseCurry: Map = {
@ -555,8 +555,8 @@ export const japaneseCurry: Map = {
'w-w-w-b-b-', 'w-w-w-b-b-',
'-w-w-w-b-b', '-w-w-w-b-b',
'w-w-w-w-b-', 'w-w-w-w-b-',
'-w-w-w-w-b' '-w-w-w-w-b',
] ],
}; };
export const mosaic: Map = { export const mosaic: Map = {
@ -574,7 +574,7 @@ export const mosaic: Map = {
' - - - - -', ' - - - - -',
'- - - - - ', '- - - - - ',
' - - - - -', ' - - - - -',
] ],
}; };
export const arena: Map = { export const arena: Map = {
@ -591,8 +591,8 @@ export const arena: Map = {
' -------- ', ' -------- ',
'- ------ -', '- ------ -',
' - - - - ', ' - - - - ',
'- - -- - -' '- - -- - -',
] ],
}; };
export const reactor: Map = { export const reactor: Map = {
@ -609,8 +609,8 @@ export const reactor: Map = {
'---w b---', '---w b---',
'- --bw-- -', '- --bw-- -',
'w- - - -b', 'w- - - -b',
'-b------w-' '-b------w-',
] ],
}; };
export const sixeight: Map = { export const sixeight: Map = {
@ -624,8 +624,8 @@ export const sixeight: Map = {
'--bw--', '--bw--',
'------', '------',
'------', '------',
'------' '------',
] ],
}; };
export const spark: Map = { export const spark: Map = {
@ -642,8 +642,8 @@ export const spark: Map = {
' -------- ', ' -------- ',
' -------- ', ' -------- ',
'----------', '----------',
' - - ' ' - - ',
] ],
}; };
export const islands: Map = { export const islands: Map = {
@ -660,8 +660,8 @@ export const islands: Map = {
' --------', ' --------',
' --------', ' --------',
' --------', ' --------',
' --------' ' --------',
] ],
}; };
export const galaxy: Map = { export const galaxy: Map = {
@ -680,8 +680,8 @@ export const galaxy: Map = {
'---w--bbb---', '---w--bbb---',
' ---w------ ', ' ---w------ ',
' ---www-- ', ' ---www-- ',
' ------ ' ' ------ ',
] ],
}; };
export const triangle: Map = { export const triangle: Map = {
@ -698,8 +698,8 @@ export const triangle: Map = {
' -------- ', ' -------- ',
' -------- ', ' -------- ',
'----------', '----------',
'----------' '----------',
] ],
}; };
export const iphonex: Map = { export const iphonex: Map = {
@ -718,8 +718,8 @@ export const iphonex: Map = {
'--------', '--------',
'--------', '--------',
'--------', '--------',
' ------ ' ' ------ ',
] ],
}; };
export const dealWithIt: Map = { export const dealWithIt: Map = {
@ -731,8 +731,8 @@ export const dealWithIt: Map = {
'--w-b-------', '--w-b-------',
' --b-w------', ' --b-w------',
' --w-b---- ', ' --w-b---- ',
' ------- ' ' ------- ',
] ],
}; };
export const experiment: Map = { export const experiment: Map = {
@ -750,8 +750,8 @@ export const experiment: Map = {
'bbbbbb wwwwww', 'bbbbbb wwwwww',
'bbbbbb wwwwww', 'bbbbbb wwwwww',
'bbbbbb wwwwww', 'bbbbbb wwwwww',
'wwwwww bbbbbb' 'wwwwww bbbbbb',
] ],
}; };
export const bigBoard: Map = { export const bigBoard: Map = {
@ -773,8 +773,8 @@ export const bigBoard: Map = {
'----------------', '----------------',
'----------------', '----------------',
'----------------', '----------------',
'----------------' '----------------',
] ],
}; };
export const twoBoard: Map = { export const twoBoard: Map = {
@ -789,8 +789,8 @@ export const twoBoard: Map = {
'---bw--- ---bw---', '---bw--- ---bw---',
'-------- --------', '-------- --------',
'-------- --------', '-------- --------',
'-------- --------' '-------- --------',
] ],
}; };
export const test1: Map = { export const test1: Map = {
@ -800,8 +800,8 @@ export const test1: Map = {
'--------', '--------',
'---wb---', '---wb---',
'---bw---', '---bw---',
'--------' '--------',
] ],
}; };
export const test2: Map = { export const test2: Map = {
@ -812,8 +812,8 @@ export const test2: Map = {
'------', '------',
'-b--w-', '-b--w-',
'-w--b-', '-w--b-',
'-w--b-' '-w--b-',
] ],
}; };
export const test3: Map = { export const test3: Map = {
@ -832,7 +832,7 @@ export const test3: Map = {
'-w-', '-w-',
'---', '---',
'b--', 'b--',
] ],
}; };
export const test4: Map = { export const test4: Map = {
@ -843,8 +843,8 @@ export const test4: Map = {
'-w--b-', '-w--b-',
'------', '------',
'-w--b-', '-w--b-',
'-w--b-' '-w--b-',
] ],
}; };
// 検証用: この盤面で藍(lv3)が黒で始めると何故か(?)A1に打ってしまう // 検証用: この盤面で藍(lv3)が黒で始めると何故か(?)A1に打ってしまう
@ -860,7 +860,7 @@ export const test6: Map = {
'wwbwbbbb', 'wwbwbbbb',
'--wbbbbb', '--wbbbbb',
'-wwwww--', '-wwwww--',
] ],
}; };
// 検証用: この盤面で藍(lv3)が黒で始めると何故か(?)G7に打ってしまう // 検証用: この盤面で藍(lv3)が黒で始めると何故か(?)G7に打ってしまう
@ -876,7 +876,7 @@ export const test7: Map = {
'-wwbbwwb', '-wwbbwwb',
'--wwww--', '--wwww--',
'--wwww--', '--wwww--',
] ],
}; };
// 検証用: この盤面で藍(lv5)が黒で始めると何故か(?)A1に打ってしまう // 検証用: この盤面で藍(lv5)が黒で始めると何故か(?)A1に打ってしまう
@ -892,5 +892,5 @@ export const test8: Map = {
'wwwwww--', 'wwwwww--',
'--www---', '--www---',
'--ww----', '--ww----',
] ],
}; };

View File

@ -144,7 +144,7 @@ export function toHtml(nodes: mfm.MfmNode[] | null, mentionedRemoteUsers: IMenti
a.href = `https://www.google.com/search?q=${node.props.query}`; a.href = `https://www.google.com/search?q=${node.props.query}`;
a.textContent = node.props.content; a.textContent = node.props.content;
return a; return a;
} },
}; };
appendChildren(nodes, doc.body); appendChildren(nodes, doc.body);

View File

@ -10,7 +10,7 @@ export class Cache<T> {
public set(key: string | null, value: T): void { public set(key: string | null, value: T): void {
this.cache.set(key, { this.cache.set(key, {
date: Date.now(), date: Date.now(),
value value,
}); });
} }

View File

@ -33,17 +33,17 @@ type CaptchaResponse = {
async function getCaptchaResponse(url: string, secret: string, response: string): Promise<CaptchaResponse> { async function getCaptchaResponse(url: string, secret: string, response: string): Promise<CaptchaResponse> {
const params = new URLSearchParams({ const params = new URLSearchParams({
secret, secret,
response response,
}); });
const res = await fetch(url, { const res = await fetch(url, {
method: 'POST', method: 'POST',
body: params, body: params,
headers: { headers: {
'User-Agent': config.userAgent 'User-Agent': config.userAgent,
}, },
timeout: 10 * 1000, timeout: 10 * 1000,
agent: getAgentByUrl agent: getAgentByUrl,
}).catch(e => { }).catch(e => {
throw `${e.message || e}`; throw `${e.message || e}`;
}); });

View File

@ -24,7 +24,7 @@ export async function checkHitAntenna(antenna: Antenna, note: (Note | Packed<'No
if (antennaUserFollowing && !antennaUserFollowing.includes(note.userId)) return false; if (antennaUserFollowing && !antennaUserFollowing.includes(note.userId)) return false;
} else if (antenna.src === 'list') { } else if (antenna.src === 'list') {
const listUsers = (await UserListJoinings.find({ const listUsers = (await UserListJoinings.find({
userListId: antenna.userListId! userListId: antenna.userListId!,
})).map(x => x.userId); })).map(x => x.userId);
if (!listUsers.includes(note.userId)) return false; if (!listUsers.includes(note.userId)) return false;
@ -32,7 +32,7 @@ export async function checkHitAntenna(antenna: Antenna, note: (Note | Packed<'No
const joining = await UserGroupJoinings.findOneOrFail(antenna.userGroupJoiningId!); const joining = await UserGroupJoinings.findOneOrFail(antenna.userGroupJoiningId!);
const groupUsers = (await UserGroupJoinings.find({ const groupUsers = (await UserGroupJoinings.find({
userGroupId: joining.userGroupId userGroupId: joining.userGroupId,
})).map(x => x.userId); })).map(x => x.userId);
if (!groupUsers.includes(note.userId)) return false; if (!groupUsers.includes(note.userId)) return false;

View File

@ -11,7 +11,7 @@ const PrivateIp = require('private-ip');
const pipeline = util.promisify(stream.pipeline); const pipeline = util.promisify(stream.pipeline);
export async function downloadUrl(url: string, path: string) { export async function downloadUrl(url: string, path: string): Promise<void> {
const logger = new Logger('download'); const logger = new Logger('download');
logger.info(`Downloading ${chalk.cyan(url)} ...`); logger.info(`Downloading ${chalk.cyan(url)} ...`);
@ -22,7 +22,7 @@ export async function downloadUrl(url: string, path: string) {
const req = got.stream(url, { const req = got.stream(url, {
headers: { headers: {
'User-Agent': config.userAgent 'User-Agent': config.userAgent,
}, },
timeout: { timeout: {
lookup: timeout, lookup: timeout,

View File

@ -10,8 +10,8 @@ export async function fetchMeta(noCache = false): Promise<Meta> {
// 過去のバグでレコードが複数出来てしまっている可能性があるので新しいIDを優先する // 過去のバグでレコードが複数出来てしまっている可能性があるので新しいIDを優先する
const meta = await transactionalEntityManager.findOne(Meta, { const meta = await transactionalEntityManager.findOne(Meta, {
order: { order: {
id: 'DESC' id: 'DESC',
} },
}); });
if (meta) { if (meta) {
@ -19,7 +19,7 @@ export async function fetchMeta(noCache = false): Promise<Meta> {
return meta; return meta;
} else { } else {
const saved = await transactionalEntityManager.save(Meta, { const saved = await transactionalEntityManager.save(Meta, {
id: 'x' id: 'x',
}) as Meta; }) as Meta;
cache = saved; cache = saved;

View File

@ -12,9 +12,9 @@ export async function getJson(url: string, accept = 'application/json, */*', tim
method: 'GET', method: 'GET',
headers: Object.assign({ headers: Object.assign({
'User-Agent': config.userAgent, 'User-Agent': config.userAgent,
Accept: accept Accept: accept,
}, headers || {}), }, headers || {}),
timeout timeout,
}); });
return await res.json(); return await res.json();
@ -26,9 +26,9 @@ export async function getHtml(url: string, accept = 'text/html, */*', timeout =
method: 'GET', method: 'GET',
headers: Object.assign({ headers: Object.assign({
'User-Agent': config.userAgent, 'User-Agent': config.userAgent,
Accept: accept Accept: accept,
}, headers || {}), }, headers || {}),
timeout timeout,
}); });
return await res.text(); return await res.text();
@ -95,7 +95,7 @@ export const httpAgent = config.proxy
maxSockets, maxSockets,
maxFreeSockets: 256, maxFreeSockets: 256,
scheduling: 'lifo', scheduling: 'lifo',
proxy: config.proxy proxy: config.proxy,
}) })
: _http; : _http;
@ -109,7 +109,7 @@ export const httpsAgent = config.proxy
maxSockets, maxSockets,
maxFreeSockets: 256, maxFreeSockets: 256,
scheduling: 'lifo', scheduling: 'lifo',
proxy: config.proxy proxy: config.proxy,
}) })
: _https; : _https;

View File

@ -8,14 +8,14 @@ export async function genRsaKeyPair(modulusLength = 2048) {
modulusLength, modulusLength,
publicKeyEncoding: { publicKeyEncoding: {
type: 'spki', type: 'spki',
format: 'pem' format: 'pem',
}, },
privateKeyEncoding: { privateKeyEncoding: {
type: 'pkcs8', type: 'pkcs8',
format: 'pem', format: 'pem',
cipher: undefined, cipher: undefined,
passphrase: undefined passphrase: undefined,
} },
}); });
} }
@ -24,13 +24,13 @@ export async function genEcKeyPair(namedCurve: 'prime256v1' | 'secp384r1' | 'sec
namedCurve, namedCurve,
publicKeyEncoding: { publicKeyEncoding: {
type: 'spki', type: 'spki',
format: 'pem' format: 'pem',
}, },
privateKeyEncoding: { privateKeyEncoding: {
type: 'pkcs8', type: 'pkcs8',
format: 'pem', format: 'pem',
cipher: undefined, cipher: undefined,
passphrase: undefined passphrase: undefined,
} },
}); });
} }

View File

@ -26,12 +26,12 @@ export type FileInfo = {
const TYPE_OCTET_STREAM = { const TYPE_OCTET_STREAM = {
mime: 'application/octet-stream', mime: 'application/octet-stream',
ext: null ext: null,
}; };
const TYPE_SVG = { const TYPE_SVG = {
mime: 'image/svg+xml', mime: 'image/svg+xml',
ext: 'svg' ext: 'svg',
}; };
/** /**
@ -116,7 +116,7 @@ export async function detectType(path: string) {
return { return {
mime: type.mime, mime: type.mime,
ext: type.ext ext: type.ext,
}; };
} }

View File

@ -0,0 +1,15 @@
import { Packed } from "./schema";
export function isInstanceMuted(note: Packed<'Note'>, mutedInstances: Set<string>): boolean {
if (mutedInstances.has(note?.user?.host ?? '')) return true;
if (mutedInstances.has(note?.reply?.user?.host ?? '')) return true;
if (mutedInstances.has(note?.renote?.user?.host ?? '')) return true;
return false;
}
export function isUserFromMutedInstance(notif: Packed<'Notification'>, mutedInstances: Set<string>): boolean {
if (mutedInstances.has(notif?.user?.host ?? '')) return true;
return false;
}

View File

@ -112,14 +112,14 @@ export function decodeReaction(str: string): DecodedReaction {
return { return {
reaction: `:${name}@${host || '.'}:`, // ローカル分は@以降を省略するのではなく.にする reaction: `:${name}@${host || '.'}:`, // ローカル分は@以降を省略するのではなく.にする
name, name,
host host,
}; };
} }
return { return {
reaction: str, reaction: str,
name: undefined, name: undefined,
host: undefined host: undefined,
}; };
} }

View File

@ -9,7 +9,7 @@ export class AbuseUserReport {
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the AbuseUserReport.' comment: 'The created date of the AbuseUserReport.',
}) })
public createdAt: Date; public createdAt: Date;
@ -18,7 +18,7 @@ export class AbuseUserReport {
public targetUserId: User['id']; public targetUserId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public targetUser: User | null; public targetUser: User | null;
@ -28,26 +28,26 @@ export class AbuseUserReport {
public reporterId: User['id']; public reporterId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public reporter: User | null; public reporter: User | null;
@Column({ @Column({
...id(), ...id(),
nullable: true nullable: true,
}) })
public assigneeId: User['id'] | null; public assigneeId: User['id'] | null;
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'SET NULL' onDelete: 'SET NULL',
}) })
@JoinColumn() @JoinColumn()
public assignee: User | null; public assignee: User | null;
@Index() @Index()
@Column('boolean', { @Column('boolean', {
default: false default: false,
}) })
public resolved: boolean; public resolved: boolean;
@ -60,14 +60,14 @@ export class AbuseUserReport {
@Index() @Index()
@Column('varchar', { @Column('varchar', {
length: 128, nullable: true, length: 128, nullable: true,
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public targetUserHost: string | null; public targetUserHost: string | null;
@Index() @Index()
@Column('varchar', { @Column('varchar', {
length: 128, nullable: true, length: 128, nullable: true,
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public reporterHost: string | null; public reporterHost: string | null;
//#endregion //#endregion

View File

@ -9,7 +9,7 @@ export class AccessToken {
public id: string; public id: string;
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the AccessToken.' comment: 'The created date of the AccessToken.',
}) })
public createdAt: Date; public createdAt: Date;
@ -21,7 +21,7 @@ export class AccessToken {
@Index() @Index()
@Column('varchar', { @Column('varchar', {
length: 128 length: 128,
}) })
public token: string; public token: string;
@ -29,13 +29,13 @@ export class AccessToken {
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
nullable: true, nullable: true,
default: null default: null,
}) })
public session: string | null; public session: string | null;
@Index() @Index()
@Column('varchar', { @Column('varchar', {
length: 128 length: 128,
}) })
public hash: string; public hash: string;
@ -44,7 +44,7 @@ export class AccessToken {
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@ -52,12 +52,12 @@ export class AccessToken {
@Column({ @Column({
...id(), ...id(),
nullable: true, nullable: true,
default: null default: null,
}) })
public appId: App['id'] | null; public appId: App['id'] | null;
@ManyToOne(type => App, { @ManyToOne(type => App, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public app: App | null; public app: App | null;
@ -65,32 +65,32 @@ export class AccessToken {
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
nullable: true, nullable: true,
default: null default: null,
}) })
public name: string | null; public name: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, length: 512,
nullable: true, nullable: true,
default: null default: null,
}) })
public description: string | null; public description: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, length: 512,
nullable: true, nullable: true,
default: null default: null,
}) })
public iconUrl: string | null; public iconUrl: string | null;
@Column('varchar', { @Column('varchar', {
length: 64, array: true, length: 64, array: true,
default: '{}' default: '{}',
}) })
public permission: string[]; public permission: string[];
@Column('boolean', { @Column('boolean', {
default: false default: false,
}) })
public fetched: boolean; public fetched: boolean;
} }

View File

@ -8,44 +8,44 @@ export class Ad {
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the Ad.' comment: 'The created date of the Ad.',
}) })
public createdAt: Date; public createdAt: Date;
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The expired date of the Ad.' comment: 'The expired date of the Ad.',
}) })
public expiresAt: Date; public expiresAt: Date;
@Column('varchar', { @Column('varchar', {
length: 32, nullable: false length: 32, nullable: false,
}) })
public place: string; public place: string;
// 今は使われていないが将来的に活用される可能性はある // 今は使われていないが将来的に活用される可能性はある
@Column('varchar', { @Column('varchar', {
length: 32, nullable: false length: 32, nullable: false,
}) })
public priority: string; public priority: string;
@Column('integer', { @Column('integer', {
default: 1, nullable: false default: 1, nullable: false,
}) })
public ratio: number; public ratio: number;
@Column('varchar', { @Column('varchar', {
length: 1024, nullable: false length: 1024, nullable: false,
}) })
public url: string; public url: string;
@Column('varchar', { @Column('varchar', {
length: 1024, nullable: false length: 1024, nullable: false,
}) })
public imageUrl: string; public imageUrl: string;
@Column('varchar', { @Column('varchar', {
length: 8192, nullable: false length: 8192, nullable: false,
}) })
public memo: string; public memo: string;

View File

@ -10,7 +10,7 @@ export class AnnouncementRead {
public id: string; public id: string;
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the AnnouncementRead.' comment: 'The created date of the AnnouncementRead.',
}) })
public createdAt: Date; public createdAt: Date;
@ -19,7 +19,7 @@ export class AnnouncementRead {
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@ -29,7 +29,7 @@ export class AnnouncementRead {
public announcementId: Announcement['id']; public announcementId: Announcement['id'];
@ManyToOne(type => Announcement, { @ManyToOne(type => Announcement, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public announcement: Announcement | null; public announcement: Announcement | null;

View File

@ -8,28 +8,28 @@ export class Announcement {
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the Announcement.' comment: 'The created date of the Announcement.',
}) })
public createdAt: Date; public createdAt: Date;
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The updated date of the Announcement.', comment: 'The updated date of the Announcement.',
nullable: true nullable: true,
}) })
public updatedAt: Date | null; public updatedAt: Date | null;
@Column('varchar', { @Column('varchar', {
length: 8192, nullable: false length: 8192, nullable: false,
}) })
public text: string; public text: string;
@Column('varchar', { @Column('varchar', {
length: 256, nullable: false length: 256, nullable: false,
}) })
public title: string; public title: string;
@Column('varchar', { @Column('varchar', {
length: 1024, nullable: true length: 1024, nullable: true,
}) })
public imageUrl: string | null; public imageUrl: string | null;

View File

@ -12,12 +12,12 @@ export class AntennaNote {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The note ID.' comment: 'The note ID.',
}) })
public noteId: Note['id']; public noteId: Note['id'];
@ManyToOne(type => Note, { @ManyToOne(type => Note, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public note: Note | null; public note: Note | null;
@ -25,19 +25,19 @@ export class AntennaNote {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The antenna ID.' comment: 'The antenna ID.',
}) })
public antennaId: Antenna['id']; public antennaId: Antenna['id'];
@ManyToOne(type => Antenna, { @ManyToOne(type => Antenna, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public antenna: Antenna | null; public antenna: Antenna | null;
@Index() @Index()
@Column('boolean', { @Column('boolean', {
default: false default: false,
}) })
public read: boolean; public read: boolean;
} }

View File

@ -10,26 +10,26 @@ export class Antenna {
public id: string; public id: string;
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the Antenna.' comment: 'The created date of the Antenna.',
}) })
public createdAt: Date; public createdAt: Date;
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The owner ID.' comment: 'The owner ID.',
}) })
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
comment: 'The name of the Antenna.' comment: 'The name of the Antenna.',
}) })
public name: string; public name: string;
@ -38,51 +38,51 @@ export class Antenna {
@Column({ @Column({
...id(), ...id(),
nullable: true nullable: true,
}) })
public userListId: UserList['id'] | null; public userListId: UserList['id'] | null;
@ManyToOne(type => UserList, { @ManyToOne(type => UserList, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public userList: UserList | null; public userList: UserList | null;
@Column({ @Column({
...id(), ...id(),
nullable: true nullable: true,
}) })
public userGroupJoiningId: UserGroupJoining['id'] | null; public userGroupJoiningId: UserGroupJoining['id'] | null;
@ManyToOne(type => UserGroupJoining, { @ManyToOne(type => UserGroupJoining, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public userGroupJoining: UserGroupJoining | null; public userGroupJoining: UserGroupJoining | null;
@Column('varchar', { @Column('varchar', {
length: 1024, array: true, length: 1024, array: true,
default: '{}' default: '{}',
}) })
public users: string[]; public users: string[];
@Column('jsonb', { @Column('jsonb', {
default: [] default: [],
}) })
public keywords: string[][]; public keywords: string[][];
@Column('jsonb', { @Column('jsonb', {
default: [] default: [],
}) })
public excludeKeywords: string[][]; public excludeKeywords: string[][];
@Column('boolean', { @Column('boolean', {
default: false default: false,
}) })
public caseSensitive: boolean; public caseSensitive: boolean;
@Column('boolean', { @Column('boolean', {
default: false default: false,
}) })
public withReplies: boolean; public withReplies: boolean;

View File

@ -9,7 +9,7 @@ export class App {
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the App.' comment: 'The created date of the App.',
}) })
public createdAt: Date; public createdAt: Date;
@ -17,7 +17,7 @@ export class App {
@Column({ @Column({
...id(), ...id(),
nullable: true, nullable: true,
comment: 'The owner ID.' comment: 'The owner ID.',
}) })
public userId: User['id'] | null; public userId: User['id'] | null;
@ -30,31 +30,31 @@ export class App {
@Index() @Index()
@Column('varchar', { @Column('varchar', {
length: 64, length: 64,
comment: 'The secret key of the App.' comment: 'The secret key of the App.',
}) })
public secret: string; public secret: string;
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
comment: 'The name of the App.' comment: 'The name of the App.',
}) })
public name: string; public name: string;
@Column('varchar', { @Column('varchar', {
length: 512, length: 512,
comment: 'The description of the App.' comment: 'The description of the App.',
}) })
public description: string; public description: string;
@Column('varchar', { @Column('varchar', {
length: 64, array: true, length: 64, array: true,
comment: 'The permission of the App.' comment: 'The permission of the App.',
}) })
public permission: string[]; public permission: string[];
@Column('varchar', { @Column('varchar', {
length: 512, nullable: true, length: 512, nullable: true,
comment: 'The callbackUrl of the App.' comment: 'The callbackUrl of the App.',
}) })
public callbackUrl: string | null; public callbackUrl: string | null;
} }

View File

@ -12,7 +12,7 @@ export class AttestationChallenge {
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@ -20,19 +20,19 @@ export class AttestationChallenge {
@Index() @Index()
@Column('varchar', { @Column('varchar', {
length: 64, length: 64,
comment: 'Hex-encoded sha256 hash of the challenge.' comment: 'Hex-encoded sha256 hash of the challenge.',
}) })
public challenge: string; public challenge: string;
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The date challenge was created for expiry purposes.' comment: 'The date challenge was created for expiry purposes.',
}) })
public createdAt: Date; public createdAt: Date;
@Column('boolean', { @Column('boolean', {
comment: comment:
'Indicates that the challenge is only for registration purposes if true to prevent the challenge for being used as authentication.', 'Indicates that the challenge is only for registration purposes if true to prevent the challenge for being used as authentication.',
default: false default: false,
}) })
public registrationChallenge: boolean; public registrationChallenge: boolean;

View File

@ -9,25 +9,25 @@ export class AuthSession {
public id: string; public id: string;
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the AuthSession.' comment: 'The created date of the AuthSession.',
}) })
public createdAt: Date; public createdAt: Date;
@Index() @Index()
@Column('varchar', { @Column('varchar', {
length: 128 length: 128,
}) })
public token: string; public token: string;
@Column({ @Column({
...id(), ...id(),
nullable: true nullable: true,
}) })
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE', onDelete: 'CASCADE',
nullable: true nullable: true,
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@ -36,7 +36,7 @@ export class AuthSession {
public appId: App['id']; public appId: App['id'];
@ManyToOne(type => App, { @ManyToOne(type => App, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public app: App | null; public app: App | null;

View File

@ -10,19 +10,19 @@ export class Blocking {
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the Blocking.' comment: 'The created date of the Blocking.',
}) })
public createdAt: Date; public createdAt: Date;
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The blockee user ID.' comment: 'The blockee user ID.',
}) })
public blockeeId: User['id']; public blockeeId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public blockee: User | null; public blockee: User | null;
@ -30,12 +30,12 @@ export class Blocking {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The blocker user ID.' comment: 'The blocker user ID.',
}) })
public blockerId: User['id']; public blockerId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public blocker: User | null; public blocker: User | null;

View File

@ -11,19 +11,19 @@ export class ChannelFollowing {
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the ChannelFollowing.' comment: 'The created date of the ChannelFollowing.',
}) })
public createdAt: Date; public createdAt: Date;
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The followee channel ID.' comment: 'The followee channel ID.',
}) })
public followeeId: Channel['id']; public followeeId: Channel['id'];
@ManyToOne(type => Channel, { @ManyToOne(type => Channel, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public followee: Channel | null; public followee: Channel | null;
@ -31,12 +31,12 @@ export class ChannelFollowing {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The follower user ID.' comment: 'The follower user ID.',
}) })
public followerId: User['id']; public followerId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public follower: User | null; public follower: User | null;

View File

@ -10,7 +10,7 @@ export class ChannelNotePining {
public id: string; public id: string;
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the ChannelNotePining.' comment: 'The created date of the ChannelNotePining.',
}) })
public createdAt: Date; public createdAt: Date;
@ -19,7 +19,7 @@ export class ChannelNotePining {
public channelId: Channel['id']; public channelId: Channel['id'];
@ManyToOne(type => Channel, { @ManyToOne(type => Channel, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public channel: Channel | null; public channel: Channel | null;
@ -28,7 +28,7 @@ export class ChannelNotePining {
public noteId: Note['id']; public noteId: Note['id'];
@ManyToOne(type => Note, { @ManyToOne(type => Note, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public note: Note | null; public note: Note | null;

View File

@ -10,13 +10,13 @@ export class Channel {
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the Channel.' comment: 'The created date of the Channel.',
}) })
public createdAt: Date; public createdAt: Date;
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
nullable: true nullable: true,
}) })
public lastNotedAt: Date | null; public lastNotedAt: Date | null;
@ -24,37 +24,37 @@ export class Channel {
@Column({ @Column({
...id(), ...id(),
nullable: true, nullable: true,
comment: 'The owner ID.' comment: 'The owner ID.',
}) })
public userId: User['id'] | null; public userId: User['id'] | null;
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'SET NULL' onDelete: 'SET NULL',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
comment: 'The name of the Channel.' comment: 'The name of the Channel.',
}) })
public name: string; public name: string;
@Column('varchar', { @Column('varchar', {
length: 2048, nullable: true, length: 2048, nullable: true,
comment: 'The description of the Channel.' comment: 'The description of the Channel.',
}) })
public description: string | null; public description: string | null;
@Column({ @Column({
...id(), ...id(),
nullable: true, nullable: true,
comment: 'The ID of banner Channel.' comment: 'The ID of banner Channel.',
}) })
public bannerId: DriveFile['id'] | null; public bannerId: DriveFile['id'] | null;
@ManyToOne(type => DriveFile, { @ManyToOne(type => DriveFile, {
onDelete: 'SET NULL' onDelete: 'SET NULL',
}) })
@JoinColumn() @JoinColumn()
public banner: DriveFile | null; public banner: DriveFile | null;
@ -62,14 +62,14 @@ export class Channel {
@Index() @Index()
@Column('integer', { @Column('integer', {
default: 0, default: 0,
comment: 'The count of notes.' comment: 'The count of notes.',
}) })
public notesCount: number; public notesCount: number;
@Index() @Index()
@Column('integer', { @Column('integer', {
default: 0, default: 0,
comment: 'The count of users.' comment: 'The count of users.',
}) })
public usersCount: number; public usersCount: number;
} }

View File

@ -12,12 +12,12 @@ export class ClipNote {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The note ID.' comment: 'The note ID.',
}) })
public noteId: Note['id']; public noteId: Note['id'];
@ManyToOne(type => Note, { @ManyToOne(type => Note, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public note: Note | null; public note: Note | null;
@ -25,12 +25,12 @@ export class ClipNote {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The clip ID.' comment: 'The clip ID.',
}) })
public clipId: Clip['id']; public clipId: Clip['id'];
@ManyToOne(type => Clip, { @ManyToOne(type => Clip, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public clip: Clip | null; public clip: Clip | null;

View File

@ -8,37 +8,37 @@ export class Clip {
public id: string; public id: string;
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the Clip.' comment: 'The created date of the Clip.',
}) })
public createdAt: Date; public createdAt: Date;
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The owner ID.' comment: 'The owner ID.',
}) })
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
comment: 'The name of the Clip.' comment: 'The name of the Clip.',
}) })
public name: string; public name: string;
@Column('boolean', { @Column('boolean', {
default: false default: false,
}) })
public isPublic: boolean; public isPublic: boolean;
@Column('varchar', { @Column('varchar', {
length: 2048, nullable: true, default: null, length: 2048, nullable: true, default: null,
comment: 'The description of the Clip.' comment: 'The description of the Clip.',
}) })
public description: string | null; public description: string | null;
} }

View File

@ -11,7 +11,7 @@ export class DriveFile {
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the DriveFile.' comment: 'The created date of the DriveFile.',
}) })
public createdAt: Date; public createdAt: Date;
@ -19,12 +19,12 @@ export class DriveFile {
@Column({ @Column({
...id(), ...id(),
nullable: true, nullable: true,
comment: 'The owner ID.' comment: 'The owner ID.',
}) })
public userId: User['id'] | null; public userId: User['id'] | null;
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'SET NULL' onDelete: 'SET NULL',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@ -32,50 +32,50 @@ export class DriveFile {
@Index() @Index()
@Column('varchar', { @Column('varchar', {
length: 128, nullable: true, length: 128, nullable: true,
comment: 'The host of owner. It will be null if the user in local.' comment: 'The host of owner. It will be null if the user in local.',
}) })
public userHost: string | null; public userHost: string | null;
@Index() @Index()
@Column('varchar', { @Column('varchar', {
length: 32, length: 32,
comment: 'The MD5 hash of the DriveFile.' comment: 'The MD5 hash of the DriveFile.',
}) })
public md5: string; public md5: string;
@Column('varchar', { @Column('varchar', {
length: 256, length: 256,
comment: 'The file name of the DriveFile.' comment: 'The file name of the DriveFile.',
}) })
public name: string; public name: string;
@Index() @Index()
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
comment: 'The content type (MIME) of the DriveFile.' comment: 'The content type (MIME) of the DriveFile.',
}) })
public type: string; public type: string;
@Column('integer', { @Column('integer', {
comment: 'The file size (bytes) of the DriveFile.' comment: 'The file size (bytes) of the DriveFile.',
}) })
public size: number; public size: number;
@Column('varchar', { @Column('varchar', {
length: 512, nullable: true, length: 512, nullable: true,
comment: 'The comment of the DriveFile.' comment: 'The comment of the DriveFile.',
}) })
public comment: string | null; public comment: string | null;
@Column('varchar', { @Column('varchar', {
length: 128, nullable: true, length: 128, nullable: true,
comment: 'The BlurHash string.' comment: 'The BlurHash string.',
}) })
public blurhash: string | null; public blurhash: string | null;
@Column('jsonb', { @Column('jsonb', {
default: {}, default: {},
comment: 'The any properties of the DriveFile. For example, it includes image width/height.' comment: 'The any properties of the DriveFile. For example, it includes image width/height.',
}) })
public properties: { width?: number; height?: number; orientation?: number; avgColor?: string }; public properties: { width?: number; height?: number; orientation?: number; avgColor?: string };
@ -85,19 +85,19 @@ export class DriveFile {
@Column('varchar', { @Column('varchar', {
length: 512, length: 512,
comment: 'The URL of the DriveFile.' comment: 'The URL of the DriveFile.',
}) })
public url: string; public url: string;
@Column('varchar', { @Column('varchar', {
length: 512, nullable: true, length: 512, nullable: true,
comment: 'The URL of the thumbnail of the DriveFile.' comment: 'The URL of the thumbnail of the DriveFile.',
}) })
public thumbnailUrl: string | null; public thumbnailUrl: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, nullable: true, length: 512, nullable: true,
comment: 'The URL of the webpublic of the DriveFile.' comment: 'The URL of the webpublic of the DriveFile.',
}) })
public webpublicUrl: string | null; public webpublicUrl: string | null;
@ -122,7 +122,7 @@ export class DriveFile {
@Index() @Index()
@Column('varchar', { @Column('varchar', {
length: 512, nullable: true, length: 512, nullable: true,
comment: 'The URI of the DriveFile. it will be null when the DriveFile is local.' comment: 'The URI of the DriveFile. it will be null when the DriveFile is local.',
}) })
public uri: string | null; public uri: string | null;
@ -135,12 +135,12 @@ export class DriveFile {
@Column({ @Column({
...id(), ...id(),
nullable: true, nullable: true,
comment: 'The parent folder ID. If null, it means the DriveFile is located in root.' comment: 'The parent folder ID. If null, it means the DriveFile is located in root.',
}) })
public folderId: DriveFolder['id'] | null; public folderId: DriveFolder['id'] | null;
@ManyToOne(type => DriveFolder, { @ManyToOne(type => DriveFolder, {
onDelete: 'SET NULL' onDelete: 'SET NULL',
}) })
@JoinColumn() @JoinColumn()
public folder: DriveFolder | null; public folder: DriveFolder | null;
@ -148,7 +148,7 @@ export class DriveFile {
@Index() @Index()
@Column('boolean', { @Column('boolean', {
default: false, default: false,
comment: 'Whether the DriveFile is NSFW.' comment: 'Whether the DriveFile is NSFW.',
}) })
public isSensitive: boolean; public isSensitive: boolean;
@ -158,7 +158,7 @@ export class DriveFile {
@Index() @Index()
@Column('boolean', { @Column('boolean', {
default: false, default: false,
comment: 'Whether the DriveFile is direct link to remote server.' comment: 'Whether the DriveFile is direct link to remote server.',
}) })
public isLink: boolean; public isLink: boolean;
} }

View File

@ -9,13 +9,13 @@ export class DriveFolder {
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the DriveFolder.' comment: 'The created date of the DriveFolder.',
}) })
public createdAt: Date; public createdAt: Date;
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
comment: 'The name of the DriveFolder.' comment: 'The name of the DriveFolder.',
}) })
public name: string; public name: string;
@ -23,12 +23,12 @@ export class DriveFolder {
@Column({ @Column({
...id(), ...id(),
nullable: true, nullable: true,
comment: 'The owner ID.' comment: 'The owner ID.',
}) })
public userId: User['id'] | null; public userId: User['id'] | null;
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@ -37,12 +37,12 @@ export class DriveFolder {
@Column({ @Column({
...id(), ...id(),
nullable: true, nullable: true,
comment: 'The parent folder ID. If null, it means the DriveFolder is located in root.' comment: 'The parent folder ID. If null, it means the DriveFolder is located in root.',
}) })
public parentId: DriveFolder['id'] | null; public parentId: DriveFolder['id'] | null;
@ManyToOne(type => DriveFolder, { @ManyToOne(type => DriveFolder, {
onDelete: 'SET NULL' onDelete: 'SET NULL',
}) })
@JoinColumn() @JoinColumn()
public parent: DriveFolder | null; public parent: DriveFolder | null;

View File

@ -8,24 +8,24 @@ export class Emoji {
public id: string; public id: string;
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
nullable: true nullable: true,
}) })
public updatedAt: Date | null; public updatedAt: Date | null;
@Index() @Index()
@Column('varchar', { @Column('varchar', {
length: 128 length: 128,
}) })
public name: string; public name: string;
@Index() @Index()
@Column('varchar', { @Column('varchar', {
length: 128, nullable: true length: 128, nullable: true,
}) })
public host: string | null; public host: string | null;
@Column('varchar', { @Column('varchar', {
length: 128, nullable: true length: 128, nullable: true,
}) })
public category: string | null; public category: string | null;
@ -35,17 +35,17 @@ export class Emoji {
public url: string; public url: string;
@Column('varchar', { @Column('varchar', {
length: 512, nullable: true length: 512, nullable: true,
}) })
public uri: string | null; public uri: string | null;
@Column('varchar', { @Column('varchar', {
length: 64, nullable: true length: 64, nullable: true,
}) })
public type: string | null; public type: string | null;
@Column('varchar', { @Column('varchar', {
array: true, length: 128, default: '{}' array: true, length: 128, default: '{}',
}) })
public aliases: string[]; public aliases: string[];
} }

View File

@ -9,19 +9,19 @@ export class FollowRequest {
public id: string; public id: string;
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the FollowRequest.' comment: 'The created date of the FollowRequest.',
}) })
public createdAt: Date; public createdAt: Date;
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The followee user ID.' comment: 'The followee user ID.',
}) })
public followeeId: User['id']; public followeeId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public followee: User | null; public followee: User | null;
@ -29,56 +29,56 @@ export class FollowRequest {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The follower user ID.' comment: 'The follower user ID.',
}) })
public followerId: User['id']; public followerId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public follower: User | null; public follower: User | null;
@Column('varchar', { @Column('varchar', {
length: 128, nullable: true, length: 128, nullable: true,
comment: 'id of Follow Activity.' comment: 'id of Follow Activity.',
}) })
public requestId: string | null; public requestId: string | null;
//#region Denormalized fields //#region Denormalized fields
@Column('varchar', { @Column('varchar', {
length: 128, nullable: true, length: 128, nullable: true,
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public followerHost: string | null; public followerHost: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, nullable: true, length: 512, nullable: true,
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public followerInbox: string | null; public followerInbox: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, nullable: true, length: 512, nullable: true,
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public followerSharedInbox: string | null; public followerSharedInbox: string | null;
@Column('varchar', { @Column('varchar', {
length: 128, nullable: true, length: 128, nullable: true,
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public followeeHost: string | null; public followeeHost: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, nullable: true, length: 512, nullable: true,
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public followeeInbox: string | null; public followeeInbox: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, nullable: true, length: 512, nullable: true,
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public followeeSharedInbox: string | null; public followeeSharedInbox: string | null;
//#endregion //#endregion

View File

@ -10,19 +10,19 @@ export class Following {
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the Following.' comment: 'The created date of the Following.',
}) })
public createdAt: Date; public createdAt: Date;
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The followee user ID.' comment: 'The followee user ID.',
}) })
public followeeId: User['id']; public followeeId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public followee: User | null; public followee: User | null;
@ -30,12 +30,12 @@ export class Following {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The follower user ID.' comment: 'The follower user ID.',
}) })
public followerId: User['id']; public followerId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public follower: User | null; public follower: User | null;
@ -43,37 +43,37 @@ export class Following {
//#region Denormalized fields //#region Denormalized fields
@Column('varchar', { @Column('varchar', {
length: 128, nullable: true, length: 128, nullable: true,
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public followerHost: string | null; public followerHost: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, nullable: true, length: 512, nullable: true,
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public followerInbox: string | null; public followerInbox: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, nullable: true, length: 512, nullable: true,
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public followerSharedInbox: string | null; public followerSharedInbox: string | null;
@Column('varchar', { @Column('varchar', {
length: 128, nullable: true, length: 128, nullable: true,
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public followeeHost: string | null; public followeeHost: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, nullable: true, length: 512, nullable: true,
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public followeeInbox: string | null; public followeeInbox: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, nullable: true, length: 512, nullable: true,
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public followeeSharedInbox: string | null; public followeeSharedInbox: string | null;
//#endregion //#endregion

View File

@ -17,7 +17,7 @@ export class GalleryLike {
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@ -26,7 +26,7 @@ export class GalleryLike {
public postId: GalleryPost['id']; public postId: GalleryPost['id'];
@ManyToOne(type => GalleryPost, { @ManyToOne(type => GalleryPost, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public post: GalleryPost | null; public post: GalleryPost | null;

View File

@ -10,13 +10,13 @@ export class GalleryPost {
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the GalleryPost.' comment: 'The created date of the GalleryPost.',
}) })
public createdAt: Date; public createdAt: Date;
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The updated date of the GalleryPost.' comment: 'The updated date of the GalleryPost.',
}) })
public updatedAt: Date; public updatedAt: Date;
@ -26,19 +26,19 @@ export class GalleryPost {
public title: string; public title: string;
@Column('varchar', { @Column('varchar', {
length: 2048, nullable: true length: 2048, nullable: true,
}) })
public description: string | null; public description: string | null;
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The ID of author.' comment: 'The ID of author.',
}) })
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@ -46,26 +46,26 @@ export class GalleryPost {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
array: true, default: '{}' array: true, default: '{}',
}) })
public fileIds: DriveFile['id'][]; public fileIds: DriveFile['id'][];
@Index() @Index()
@Column('boolean', { @Column('boolean', {
default: false, default: false,
comment: 'Whether the post is sensitive.' comment: 'Whether the post is sensitive.',
}) })
public isSensitive: boolean; public isSensitive: boolean;
@Index() @Index()
@Column('integer', { @Column('integer', {
default: 0 default: 0,
}) })
public likedCount: number; public likedCount: number;
@Index() @Index()
@Column('varchar', { @Column('varchar', {
length: 128, array: true, default: '{}' length: 128, array: true, default: '{}',
}) })
public tags: string[]; public tags: string[];

View File

@ -9,13 +9,13 @@ export class ReversiGame {
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the ReversiGame.' comment: 'The created date of the ReversiGame.',
}) })
public createdAt: Date; public createdAt: Date;
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
nullable: true, nullable: true,
comment: 'The started date of the ReversiGame.' comment: 'The started date of the ReversiGame.',
}) })
public startedAt: Date | null; public startedAt: Date | null;
@ -23,7 +23,7 @@ export class ReversiGame {
public user1Id: User['id']; public user1Id: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user1: User | null; public user1: User | null;
@ -32,7 +32,7 @@ export class ReversiGame {
public user2Id: User['id']; public user2Id: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user2: User | null; public user2: User | null;
@ -69,13 +69,13 @@ export class ReversiGame {
@Column({ @Column({
...id(), ...id(),
nullable: true nullable: true,
}) })
public winnerId: User['id'] | null; public winnerId: User['id'] | null;
@Column({ @Column({
...id(), ...id(),
nullable: true nullable: true,
}) })
public surrendered: User['id'] | null; public surrendered: User['id'] | null;
@ -94,7 +94,7 @@ export class ReversiGame {
public map: string[]; public map: string[];
@Column('varchar', { @Column('varchar', {
length: 32 length: 32,
}) })
public bw: string; public bw: string;
@ -127,7 +127,7 @@ export class ReversiGame {
* posを文字列としてすべて連結したもののCRC32値 * posを文字列としてすべて連結したもののCRC32値
*/ */
@Column('varchar', { @Column('varchar', {
length: 32, nullable: true length: 32, nullable: true,
}) })
public crc32: string | null; public crc32: string | null;
} }

View File

@ -9,7 +9,7 @@ export class ReversiMatching {
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the ReversiMatching.' comment: 'The created date of the ReversiMatching.',
}) })
public createdAt: Date; public createdAt: Date;
@ -18,7 +18,7 @@ export class ReversiMatching {
public parentId: User['id']; public parentId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public parent: User | null; public parent: User | null;
@ -28,7 +28,7 @@ export class ReversiMatching {
public childId: User['id']; public childId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public child: User | null; public child: User | null;

View File

@ -9,7 +9,7 @@ export class Hashtag {
@Index({ unique: true }) @Index({ unique: true })
@Column('varchar', { @Column('varchar', {
length: 128 length: 128,
}) })
public name: string; public name: string;
@ -21,7 +21,7 @@ export class Hashtag {
@Index() @Index()
@Column('integer', { @Column('integer', {
default: 0 default: 0,
}) })
public mentionedUsersCount: number; public mentionedUsersCount: number;
@ -33,7 +33,7 @@ export class Hashtag {
@Index() @Index()
@Column('integer', { @Column('integer', {
default: 0 default: 0,
}) })
public mentionedLocalUsersCount: number; public mentionedLocalUsersCount: number;
@ -45,7 +45,7 @@ export class Hashtag {
@Index() @Index()
@Column('integer', { @Column('integer', {
default: 0 default: 0,
}) })
public mentionedRemoteUsersCount: number; public mentionedRemoteUsersCount: number;
@ -57,7 +57,7 @@ export class Hashtag {
@Index() @Index()
@Column('integer', { @Column('integer', {
default: 0 default: 0,
}) })
public attachedUsersCount: number; public attachedUsersCount: number;
@ -69,7 +69,7 @@ export class Hashtag {
@Index() @Index()
@Column('integer', { @Column('integer', {
default: 0 default: 0,
}) })
public attachedLocalUsersCount: number; public attachedLocalUsersCount: number;
@ -81,7 +81,7 @@ export class Hashtag {
@Index() @Index()
@Column('integer', { @Column('integer', {
default: 0 default: 0,
}) })
public attachedRemoteUsersCount: number; public attachedRemoteUsersCount: number;
} }

View File

@ -11,7 +11,7 @@ export class Instance {
*/ */
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The caught date of the Instance.' comment: 'The caught date of the Instance.',
}) })
public caughtAt: Date; public caughtAt: Date;
@ -21,7 +21,7 @@ export class Instance {
@Index({ unique: true }) @Index({ unique: true })
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
comment: 'The host of the Instance.' comment: 'The host of the Instance.',
}) })
public host: string; public host: string;
@ -30,7 +30,7 @@ export class Instance {
*/ */
@Column('integer', { @Column('integer', {
default: 0, default: 0,
comment: 'The count of the users of the Instance.' comment: 'The count of the users of the Instance.',
}) })
public usersCount: number; public usersCount: number;
@ -39,7 +39,7 @@ export class Instance {
*/ */
@Column('integer', { @Column('integer', {
default: 0, default: 0,
comment: 'The count of the notes of the Instance.' comment: 'The count of the notes of the Instance.',
}) })
public notesCount: number; public notesCount: number;
@ -109,7 +109,7 @@ export class Instance {
* *
*/ */
@Column('boolean', { @Column('boolean', {
default: false default: false,
}) })
public isNotResponding: boolean; public isNotResponding: boolean;
@ -118,13 +118,13 @@ export class Instance {
*/ */
@Index() @Index()
@Column('boolean', { @Column('boolean', {
default: false default: false,
}) })
public isSuspended: boolean; public isSuspended: boolean;
@Column('varchar', { @Column('varchar', {
length: 64, nullable: true, default: null, length: 64, nullable: true, default: null,
comment: 'The software of the Instance.' comment: 'The software of the Instance.',
}) })
public softwareName: string | null; public softwareName: string | null;

View File

@ -11,19 +11,19 @@ export class MessagingMessage {
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the MessagingMessage.' comment: 'The created date of the MessagingMessage.',
}) })
public createdAt: Date; public createdAt: Date;
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The sender user ID.' comment: 'The sender user ID.',
}) })
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@ -31,12 +31,12 @@ export class MessagingMessage {
@Index() @Index()
@Column({ @Column({
...id(), nullable: true, ...id(), nullable: true,
comment: 'The recipient user ID.' comment: 'The recipient user ID.',
}) })
public recipientId: User['id'] | null; public recipientId: User['id'] | null;
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public recipient: User | null; public recipient: User | null;
@ -44,18 +44,18 @@ export class MessagingMessage {
@Index() @Index()
@Column({ @Column({
...id(), nullable: true, ...id(), nullable: true,
comment: 'The recipient group ID.' comment: 'The recipient group ID.',
}) })
public groupId: UserGroup['id'] | null; public groupId: UserGroup['id'] | null;
@ManyToOne(type => UserGroup, { @ManyToOne(type => UserGroup, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public group: UserGroup | null; public group: UserGroup | null;
@Column('varchar', { @Column('varchar', {
length: 4096, nullable: true length: 4096, nullable: true,
}) })
public text: string | null; public text: string | null;
@ -71,7 +71,7 @@ export class MessagingMessage {
@Column({ @Column({
...id(), ...id(),
array: true, default: '{}' array: true, default: '{}',
}) })
public reads: User['id'][]; public reads: User['id'][];
@ -82,7 +82,7 @@ export class MessagingMessage {
public fileId: DriveFile['id'] | null; public fileId: DriveFile['id'] | null;
@ManyToOne(type => DriveFile, { @ManyToOne(type => DriveFile, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public file: DriveFile | null; public file: DriveFile | null;

View File

@ -7,17 +7,17 @@ import { Clip } from './clip';
export class Meta { export class Meta {
@PrimaryColumn({ @PrimaryColumn({
type: 'varchar', type: 'varchar',
length: 32 length: 32,
}) })
public id: string; public id: string;
@Column('varchar', { @Column('varchar', {
length: 128, nullable: true length: 128, nullable: true,
}) })
public name: string | null; public name: string | null;
@Column('varchar', { @Column('varchar', {
length: 1024, nullable: true length: 1024, nullable: true,
}) })
public description: string | null; public description: string | null;
@ -25,7 +25,7 @@ export class Meta {
* *
*/ */
@Column('varchar', { @Column('varchar', {
length: 128, nullable: true length: 128, nullable: true,
}) })
public maintainerName: string | null; public maintainerName: string | null;
@ -33,7 +33,7 @@ export class Meta {
* *
*/ */
@Column('varchar', { @Column('varchar', {
length: 128, nullable: true length: 128, nullable: true,
}) })
public maintainerEmail: string | null; public maintainerEmail: string | null;
@ -58,27 +58,27 @@ export class Meta {
public useStarForReactionFallback: boolean; public useStarForReactionFallback: boolean;
@Column('varchar', { @Column('varchar', {
length: 64, array: true, default: '{}' length: 64, array: true, default: '{}',
}) })
public langs: string[]; public langs: string[];
@Column('varchar', { @Column('varchar', {
length: 256, array: true, default: '{}' length: 256, array: true, default: '{}',
}) })
public pinnedUsers: string[]; public pinnedUsers: string[];
@Column('varchar', { @Column('varchar', {
length: 256, array: true, default: '{}' length: 256, array: true, default: '{}',
}) })
public hiddenTags: string[]; public hiddenTags: string[];
@Column('varchar', { @Column('varchar', {
length: 256, array: true, default: '{}' length: 256, array: true, default: '{}',
}) })
public blockedHosts: string[]; public blockedHosts: string[];
@Column('varchar', { @Column('varchar', {
length: 512, array: true, default: '{"/featured", "/channels", "/explore", "/pages", "/about-misskey"}' length: 512, array: true, default: '{"/featured", "/channels", "/explore", "/pages", "/about-misskey"}',
}) })
public pinnedPages: string[]; public pinnedPages: string[];
@ -91,38 +91,38 @@ export class Meta {
@Column('varchar', { @Column('varchar', {
length: 512, length: 512,
nullable: true, nullable: true,
default: '/assets/ai.png' default: '/assets/ai.png',
}) })
public mascotImageUrl: string | null; public mascotImageUrl: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, length: 512,
nullable: true nullable: true,
}) })
public bannerUrl: string | null; public bannerUrl: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, length: 512,
nullable: true nullable: true,
}) })
public backgroundImageUrl: string | null; public backgroundImageUrl: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, length: 512,
nullable: true nullable: true,
}) })
public logoImageUrl: string | null; public logoImageUrl: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, length: 512,
nullable: true, nullable: true,
default: 'https://xn--931a.moe/aiart/yubitun.png' default: 'https://xn--931a.moe/aiart/yubitun.png',
}) })
public errorImageUrl: string | null; public errorImageUrl: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, length: 512,
nullable: true nullable: true,
}) })
public iconUrl: string | null; public iconUrl: string | null;
@ -143,7 +143,7 @@ export class Meta {
public proxyAccountId: User['id'] | null; public proxyAccountId: User['id'] | null;
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'SET NULL' onDelete: 'SET NULL',
}) })
@JoinColumn() @JoinColumn()
public proxyAccount: User | null; public proxyAccount: User | null;
@ -160,13 +160,13 @@ export class Meta {
@Column('varchar', { @Column('varchar', {
length: 64, length: 64,
nullable: true nullable: true,
}) })
public hcaptchaSiteKey: string | null; public hcaptchaSiteKey: string | null;
@Column('varchar', { @Column('varchar', {
length: 64, length: 64,
nullable: true nullable: true,
}) })
public hcaptchaSecretKey: string | null; public hcaptchaSecretKey: string | null;
@ -177,37 +177,37 @@ export class Meta {
@Column('varchar', { @Column('varchar', {
length: 64, length: 64,
nullable: true nullable: true,
}) })
public recaptchaSiteKey: string | null; public recaptchaSiteKey: string | null;
@Column('varchar', { @Column('varchar', {
length: 64, length: 64,
nullable: true nullable: true,
}) })
public recaptchaSecretKey: string | null; public recaptchaSecretKey: string | null;
@Column('integer', { @Column('integer', {
default: 1024, default: 1024,
comment: 'Drive capacity of a local user (MB)' comment: 'Drive capacity of a local user (MB)',
}) })
public localDriveCapacityMb: number; public localDriveCapacityMb: number;
@Column('integer', { @Column('integer', {
default: 32, default: 32,
comment: 'Drive capacity of a remote user (MB)' comment: 'Drive capacity of a remote user (MB)',
}) })
public remoteDriveCapacityMb: number; public remoteDriveCapacityMb: number;
@Column('integer', { @Column('integer', {
default: 500, default: 500,
comment: 'Max allowed note text length in characters' comment: 'Max allowed note text length in characters',
}) })
public maxNoteTextLength: number; public maxNoteTextLength: number;
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
nullable: true nullable: true,
}) })
public summalyProxy: string | null; public summalyProxy: string | null;
@ -218,7 +218,7 @@ export class Meta {
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
nullable: true nullable: true,
}) })
public email: string | null; public email: string | null;
@ -229,24 +229,24 @@ export class Meta {
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
nullable: true nullable: true,
}) })
public smtpHost: string | null; public smtpHost: string | null;
@Column('integer', { @Column('integer', {
nullable: true nullable: true,
}) })
public smtpPort: number | null; public smtpPort: number | null;
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
nullable: true nullable: true,
}) })
public smtpUser: string | null; public smtpUser: string | null;
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
nullable: true nullable: true,
}) })
public smtpPass: string | null; public smtpPass: string | null;
@ -257,13 +257,13 @@ export class Meta {
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
nullable: true nullable: true,
}) })
public swPublicKey: string | null; public swPublicKey: string | null;
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
nullable: true nullable: true,
}) })
public swPrivateKey: string | null; public swPrivateKey: string | null;
@ -274,13 +274,13 @@ export class Meta {
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
nullable: true nullable: true,
}) })
public twitterConsumerKey: string | null; public twitterConsumerKey: string | null;
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
nullable: true nullable: true,
}) })
public twitterConsumerSecret: string | null; public twitterConsumerSecret: string | null;
@ -291,13 +291,13 @@ export class Meta {
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
nullable: true nullable: true,
}) })
public githubClientId: string | null; public githubClientId: string | null;
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
nullable: true nullable: true,
}) })
public githubClientSecret: string | null; public githubClientSecret: string | null;
@ -308,19 +308,19 @@ export class Meta {
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
nullable: true nullable: true,
}) })
public discordClientId: string | null; public discordClientId: string | null;
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
nullable: true nullable: true,
}) })
public discordClientSecret: string | null; public discordClientSecret: string | null;
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
nullable: true nullable: true,
}) })
public deeplAuthKey: string | null; public deeplAuthKey: string | null;
@ -331,21 +331,21 @@ export class Meta {
@Column('varchar', { @Column('varchar', {
length: 512, length: 512,
nullable: true nullable: true,
}) })
public ToSUrl: string | null; public ToSUrl: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, length: 512,
default: 'https://github.com/misskey-dev/misskey', default: 'https://github.com/misskey-dev/misskey',
nullable: false nullable: false,
}) })
public repositoryUrl: string; public repositoryUrl: string;
@Column('varchar', { @Column('varchar', {
length: 512, length: 512,
default: 'https://github.com/misskey-dev/misskey/issues/new', default: 'https://github.com/misskey-dev/misskey/issues/new',
nullable: true nullable: true,
}) })
public feedbackUrl: string | null; public feedbackUrl: string | null;
@ -356,48 +356,48 @@ export class Meta {
@Column('varchar', { @Column('varchar', {
length: 512, length: 512,
nullable: true nullable: true,
}) })
public objectStorageBucket: string | null; public objectStorageBucket: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, length: 512,
nullable: true nullable: true,
}) })
public objectStoragePrefix: string | null; public objectStoragePrefix: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, length: 512,
nullable: true nullable: true,
}) })
public objectStorageBaseUrl: string | null; public objectStorageBaseUrl: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, length: 512,
nullable: true nullable: true,
}) })
public objectStorageEndpoint: string | null; public objectStorageEndpoint: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, length: 512,
nullable: true nullable: true,
}) })
public objectStorageRegion: string | null; public objectStorageRegion: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, length: 512,
nullable: true nullable: true,
}) })
public objectStorageAccessKey: string | null; public objectStorageAccessKey: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, length: 512,
nullable: true nullable: true,
}) })
public objectStorageSecretKey: string | null; public objectStorageSecretKey: string | null;
@Column('integer', { @Column('integer', {
nullable: true nullable: true,
}) })
public objectStoragePort: number | null; public objectStoragePort: number | null;

View File

@ -8,7 +8,7 @@ export class ModerationLog {
public id: string; public id: string;
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the ModerationLog.' comment: 'The created date of the ModerationLog.',
}) })
public createdAt: Date; public createdAt: Date;
@ -17,7 +17,7 @@ export class ModerationLog {
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;

View File

@ -13,12 +13,12 @@ export class MutedNote {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The note ID.' comment: 'The note ID.',
}) })
public noteId: Note['id']; public noteId: Note['id'];
@ManyToOne(type => Note, { @ManyToOne(type => Note, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public note: Note | null; public note: Note | null;
@ -26,12 +26,12 @@ export class MutedNote {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The user ID.' comment: 'The user ID.',
}) })
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@ -42,7 +42,7 @@ export class MutedNote {
@Index() @Index()
@Column('enum', { @Column('enum', {
enum: mutedNoteReasons, enum: mutedNoteReasons,
comment: 'The reason of the MutedNote.' comment: 'The reason of the MutedNote.',
}) })
public reason: typeof mutedNoteReasons[number]; public reason: typeof mutedNoteReasons[number];
} }

View File

@ -10,19 +10,19 @@ export class Muting {
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the Muting.' comment: 'The created date of the Muting.',
}) })
public createdAt: Date; public createdAt: Date;
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The mutee user ID.' comment: 'The mutee user ID.',
}) })
public muteeId: User['id']; public muteeId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public mutee: User | null; public mutee: User | null;
@ -30,12 +30,12 @@ export class Muting {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The muter user ID.' comment: 'The muter user ID.',
}) })
public muterId: User['id']; public muterId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public muter: User | null; public muter: User | null;

View File

@ -10,7 +10,7 @@ export class NoteFavorite {
public id: string; public id: string;
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the NoteFavorite.' comment: 'The created date of the NoteFavorite.',
}) })
public createdAt: Date; public createdAt: Date;
@ -19,7 +19,7 @@ export class NoteFavorite {
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@ -28,7 +28,7 @@ export class NoteFavorite {
public noteId: Note['id']; public noteId: Note['id'];
@ManyToOne(type => Note, { @ManyToOne(type => Note, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public note: Note | null; public note: Note | null;

View File

@ -11,7 +11,7 @@ export class NoteReaction {
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the NoteReaction.' comment: 'The created date of the NoteReaction.',
}) })
public createdAt: Date; public createdAt: Date;
@ -20,7 +20,7 @@ export class NoteReaction {
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user?: User | null; public user?: User | null;
@ -30,7 +30,7 @@ export class NoteReaction {
public noteId: Note['id']; public noteId: Note['id'];
@ManyToOne(type => Note, { @ManyToOne(type => Note, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public note?: Note | null; public note?: Note | null;
@ -38,7 +38,7 @@ export class NoteReaction {
// TODO: 対象noteのuserIdを非正規化したい(「受け取ったリアクション一覧」のようなものを(JOIN無しで)実装したいため) // TODO: 対象noteのuserIdを非正規化したい(「受け取ったリアクション一覧」のようなものを(JOIN無しで)実装したいため)
@Column('varchar', { @Column('varchar', {
length: 260 length: 260,
}) })
public reaction: string; public reaction: string;
} }

View File

@ -20,7 +20,7 @@ export class NoteThreadMuting {
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;

View File

@ -15,7 +15,7 @@ export class NoteUnread {
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@ -25,7 +25,7 @@ export class NoteUnread {
public noteId: Note['id']; public noteId: Note['id'];
@ManyToOne(type => Note, { @ManyToOne(type => Note, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public note: Note | null; public note: Note | null;
@ -48,7 +48,7 @@ export class NoteUnread {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public noteUserId: User['id']; public noteUserId: User['id'];
@ -56,7 +56,7 @@ export class NoteUnread {
@Column({ @Column({
...id(), ...id(),
nullable: true, nullable: true,
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public noteChannelId: Channel['id'] | null; public noteChannelId: Channel['id'] | null;
//#endregion //#endregion

View File

@ -11,19 +11,19 @@ export class NoteWatching {
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the NoteWatching.' comment: 'The created date of the NoteWatching.',
}) })
public createdAt: Date; public createdAt: Date;
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The watcher ID.' comment: 'The watcher ID.',
}) })
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@ -31,12 +31,12 @@ export class NoteWatching {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The target Note ID.' comment: 'The target Note ID.',
}) })
public noteId: Note['id']; public noteId: Note['id'];
@ManyToOne(type => Note, { @ManyToOne(type => Note, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public note: Note | null; public note: Note | null;
@ -45,7 +45,7 @@ export class NoteWatching {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public noteUserId: Note['userId']; public noteUserId: Note['userId'];
//#endregion //#endregion

View File

@ -15,7 +15,7 @@ export class Note {
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the Note.' comment: 'The created date of the Note.',
}) })
public createdAt: Date; public createdAt: Date;
@ -23,12 +23,12 @@ export class Note {
@Column({ @Column({
...id(), ...id(),
nullable: true, nullable: true,
comment: 'The ID of reply target.' comment: 'The ID of reply target.',
}) })
public replyId: Note['id'] | null; public replyId: Note['id'] | null;
@ManyToOne(type => Note, { @ManyToOne(type => Note, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public reply: Note | null; public reply: Note | null;
@ -37,67 +37,67 @@ export class Note {
@Column({ @Column({
...id(), ...id(),
nullable: true, nullable: true,
comment: 'The ID of renote target.' comment: 'The ID of renote target.',
}) })
public renoteId: Note['id'] | null; public renoteId: Note['id'] | null;
@ManyToOne(type => Note, { @ManyToOne(type => Note, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public renote: Note | null; public renote: Note | null;
@Index() @Index()
@Column('varchar', { @Column('varchar', {
length: 256, nullable: true length: 256, nullable: true,
}) })
public threadId: string | null; public threadId: string | null;
@Column('varchar', { @Column('varchar', {
length: 8192, nullable: true length: 8192, nullable: true,
}) })
public text: string | null; public text: string | null;
@Column('varchar', { @Column('varchar', {
length: 256, nullable: true length: 256, nullable: true,
}) })
public name: string | null; public name: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, nullable: true length: 512, nullable: true,
}) })
public cw: string | null; public cw: string | null;
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The ID of author.' comment: 'The ID of author.',
}) })
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@Column('boolean', { @Column('boolean', {
default: false default: false,
}) })
public localOnly: boolean; public localOnly: boolean;
@Column('smallint', { @Column('smallint', {
default: 0 default: 0,
}) })
public renoteCount: number; public renoteCount: number;
@Column('smallint', { @Column('smallint', {
default: 0 default: 0,
}) })
public repliesCount: number; public repliesCount: number;
@Column('jsonb', { @Column('jsonb', {
default: {} default: {},
}) })
public reactions: Record<string, number>; public reactions: Record<string, number>;
@ -113,66 +113,66 @@ export class Note {
@Index({ unique: true }) @Index({ unique: true })
@Column('varchar', { @Column('varchar', {
length: 512, nullable: true, length: 512, nullable: true,
comment: 'The URI of a note. it will be null when the note is local.' comment: 'The URI of a note. it will be null when the note is local.',
}) })
public uri: string | null; public uri: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, nullable: true, length: 512, nullable: true,
comment: 'The human readable url of a note. it will be null when the note is local.' comment: 'The human readable url of a note. it will be null when the note is local.',
}) })
public url: string | null; public url: string | null;
@Column('integer', { @Column('integer', {
default: 0, select: false default: 0, select: false,
}) })
public score: number; public score: number;
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
array: true, default: '{}' array: true, default: '{}',
}) })
public fileIds: DriveFile['id'][]; public fileIds: DriveFile['id'][];
@Index() @Index()
@Column('varchar', { @Column('varchar', {
length: 256, array: true, default: '{}' length: 256, array: true, default: '{}',
}) })
public attachedFileTypes: string[]; public attachedFileTypes: string[];
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
array: true, default: '{}' array: true, default: '{}',
}) })
public visibleUserIds: User['id'][]; public visibleUserIds: User['id'][];
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
array: true, default: '{}' array: true, default: '{}',
}) })
public mentions: User['id'][]; public mentions: User['id'][];
@Column('text', { @Column('text', {
default: '[]' default: '[]',
}) })
public mentionedRemoteUsers: string; public mentionedRemoteUsers: string;
@Column('varchar', { @Column('varchar', {
length: 128, array: true, default: '{}' length: 128, array: true, default: '{}',
}) })
public emojis: string[]; public emojis: string[];
@Index() @Index()
@Column('varchar', { @Column('varchar', {
length: 128, array: true, default: '{}' length: 128, array: true, default: '{}',
}) })
public tags: string[]; public tags: string[];
@Column('boolean', { @Column('boolean', {
default: false default: false,
}) })
public hasPoll: boolean; public hasPoll: boolean;
@ -180,12 +180,12 @@ export class Note {
@Column({ @Column({
...id(), ...id(),
nullable: true, default: null, nullable: true, default: null,
comment: 'The ID of source channel.' comment: 'The ID of source channel.',
}) })
public channelId: Channel['id'] | null; public channelId: Channel['id'] | null;
@ManyToOne(type => Channel, { @ManyToOne(type => Channel, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public channel: Channel | null; public channel: Channel | null;
@ -194,33 +194,33 @@ export class Note {
@Index() @Index()
@Column('varchar', { @Column('varchar', {
length: 128, nullable: true, length: 128, nullable: true,
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public userHost: string | null; public userHost: string | null;
@Column({ @Column({
...id(), ...id(),
nullable: true, nullable: true,
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public replyUserId: User['id'] | null; public replyUserId: User['id'] | null;
@Column('varchar', { @Column('varchar', {
length: 128, nullable: true, length: 128, nullable: true,
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public replyUserHost: string | null; public replyUserHost: string | null;
@Column({ @Column({
...id(), ...id(),
nullable: true, nullable: true,
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public renoteUserId: User['id'] | null; public renoteUserId: User['id'] | null;
@Column('varchar', { @Column('varchar', {
length: 128, nullable: true, length: 128, nullable: true,
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public renoteUserHost: string | null; public renoteUserHost: string | null;
//#endregion //#endregion

View File

@ -14,7 +14,7 @@ export class Notification {
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the Notification.' comment: 'The created date of the Notification.',
}) })
public createdAt: Date; public createdAt: Date;
@ -24,12 +24,12 @@ export class Notification {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The ID of recipient user of the Notification.' comment: 'The ID of recipient user of the Notification.',
}) })
public notifieeId: User['id']; public notifieeId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public notifiee: User | null; public notifiee: User | null;
@ -41,12 +41,12 @@ export class Notification {
@Column({ @Column({
...id(), ...id(),
nullable: true, nullable: true,
comment: 'The ID of sender user of the Notification.' comment: 'The ID of sender user of the Notification.',
}) })
public notifierId: User['id'] | null; public notifierId: User['id'] | null;
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public notifier: User | null; public notifier: User | null;
@ -68,7 +68,7 @@ export class Notification {
@Index() @Index()
@Column('enum', { @Column('enum', {
enum: notificationTypes, enum: notificationTypes,
comment: 'The type of the Notification.' comment: 'The type of the Notification.',
}) })
public type: typeof notificationTypes[number]; public type: typeof notificationTypes[number];
@ -78,53 +78,53 @@ export class Notification {
@Index() @Index()
@Column('boolean', { @Column('boolean', {
default: false, default: false,
comment: 'Whether the Notification is read.' comment: 'Whether the Notification is read.',
}) })
public isRead: boolean; public isRead: boolean;
@Column({ @Column({
...id(), ...id(),
nullable: true nullable: true,
}) })
public noteId: Note['id'] | null; public noteId: Note['id'] | null;
@ManyToOne(type => Note, { @ManyToOne(type => Note, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public note: Note | null; public note: Note | null;
@Column({ @Column({
...id(), ...id(),
nullable: true nullable: true,
}) })
public followRequestId: FollowRequest['id'] | null; public followRequestId: FollowRequest['id'] | null;
@ManyToOne(type => FollowRequest, { @ManyToOne(type => FollowRequest, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public followRequest: FollowRequest | null; public followRequest: FollowRequest | null;
@Column({ @Column({
...id(), ...id(),
nullable: true nullable: true,
}) })
public userGroupInvitationId: UserGroupInvitation['id'] | null; public userGroupInvitationId: UserGroupInvitation['id'] | null;
@ManyToOne(type => UserGroupInvitation, { @ManyToOne(type => UserGroupInvitation, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public userGroupInvitation: UserGroupInvitation | null; public userGroupInvitation: UserGroupInvitation | null;
@Column('varchar', { @Column('varchar', {
length: 128, nullable: true length: 128, nullable: true,
}) })
public reaction: string | null; public reaction: string | null;
@Column('integer', { @Column('integer', {
nullable: true nullable: true,
}) })
public choice: number | null; public choice: number | null;
@ -132,7 +132,7 @@ export class Notification {
* body * body
*/ */
@Column('varchar', { @Column('varchar', {
length: 2048, nullable: true length: 2048, nullable: true,
}) })
public customBody: string | null; public customBody: string | null;
@ -141,7 +141,7 @@ export class Notification {
* () * ()
*/ */
@Column('varchar', { @Column('varchar', {
length: 256, nullable: true length: 256, nullable: true,
}) })
public customHeader: string | null; public customHeader: string | null;
@ -150,7 +150,7 @@ export class Notification {
* () * ()
*/ */
@Column('varchar', { @Column('varchar', {
length: 1024, nullable: true length: 1024, nullable: true,
}) })
public customIcon: string | null; public customIcon: string | null;
@ -160,12 +160,12 @@ export class Notification {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
nullable: true nullable: true,
}) })
public appAccessTokenId: AccessToken['id'] | null; public appAccessTokenId: AccessToken['id'] | null;
@ManyToOne(type => AccessToken, { @ManyToOne(type => AccessToken, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public appAccessToken: AccessToken | null; public appAccessToken: AccessToken | null;

View File

@ -17,7 +17,7 @@ export class PageLike {
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@ -26,7 +26,7 @@ export class PageLike {
public pageId: Page['id']; public pageId: Page['id'];
@ManyToOne(type => Page, { @ManyToOne(type => Page, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public page: Page | null; public page: Page | null;

View File

@ -11,13 +11,13 @@ export class Page {
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the Page.' comment: 'The created date of the Page.',
}) })
public createdAt: Date; public createdAt: Date;
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The updated date of the Page.' comment: 'The updated date of the Page.',
}) })
public updatedAt: Date; public updatedAt: Date;
@ -33,7 +33,7 @@ export class Page {
public name: string; public name: string;
@Column('varchar', { @Column('varchar', {
length: 256, nullable: true length: 256, nullable: true,
}) })
public summary: string | null; public summary: string | null;
@ -41,7 +41,7 @@ export class Page {
public alignCenter: boolean; public alignCenter: boolean;
@Column('boolean', { @Column('boolean', {
default: false default: false,
}) })
public hideTitleWhenPinned: boolean; public hideTitleWhenPinned: boolean;
@ -53,12 +53,12 @@ export class Page {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The ID of author.' comment: 'The ID of author.',
}) })
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@ -70,24 +70,24 @@ export class Page {
public eyeCatchingImageId: DriveFile['id'] | null; public eyeCatchingImageId: DriveFile['id'] | null;
@ManyToOne(type => DriveFile, { @ManyToOne(type => DriveFile, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public eyeCatchingImage: DriveFile | null; public eyeCatchingImage: DriveFile | null;
@Column('jsonb', { @Column('jsonb', {
default: [] default: [],
}) })
public content: Record<string, any>[]; public content: Record<string, any>[];
@Column('jsonb', { @Column('jsonb', {
default: [] default: [],
}) })
public variables: Record<string, any>[]; public variables: Record<string, any>[];
@Column('varchar', { @Column('varchar', {
length: 16384, length: 16384,
default: '' default: '',
}) })
public script: string; public script: string;
@ -102,12 +102,12 @@ export class Page {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
array: true, default: '{}' array: true, default: '{}',
}) })
public visibleUserIds: User['id'][]; public visibleUserIds: User['id'][];
@Column('integer', { @Column('integer', {
default: 0 default: 0,
}) })
public likedCount: number; public likedCount: number;

View File

@ -23,7 +23,7 @@ export class PasswordResetRequest {
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;

View File

@ -11,7 +11,7 @@ export class PollVote {
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the PollVote.' comment: 'The created date of the PollVote.',
}) })
public createdAt: Date; public createdAt: Date;
@ -20,7 +20,7 @@ export class PollVote {
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@ -30,7 +30,7 @@ export class PollVote {
public noteId: Note['id']; public noteId: Note['id'];
@ManyToOne(type => Note, { @ManyToOne(type => Note, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public note: Note | null; public note: Note | null;

View File

@ -10,13 +10,13 @@ export class Poll {
public noteId: Note['id']; public noteId: Note['id'];
@OneToOne(type => Note, { @OneToOne(type => Note, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public note: Note | null; public note: Note | null;
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
nullable: true nullable: true,
}) })
public expiresAt: Date | null; public expiresAt: Date | null;
@ -24,7 +24,7 @@ export class Poll {
public multiple: boolean; public multiple: boolean;
@Column('varchar', { @Column('varchar', {
length: 128, array: true, default: '{}' length: 128, array: true, default: '{}',
}) })
public choices: string[]; public choices: string[];
@ -36,21 +36,21 @@ export class Poll {
//#region Denormalized fields //#region Denormalized fields
@Column('enum', { @Column('enum', {
enum: noteVisibilities, enum: noteVisibilities,
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public noteVisibility: typeof noteVisibilities[number]; public noteVisibility: typeof noteVisibilities[number];
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public userId: User['id']; public userId: User['id'];
@Index() @Index()
@Column('varchar', { @Column('varchar', {
length: 128, nullable: true, length: 128, nullable: true,
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public userHost: string | null; public userHost: string | null;
//#endregion //#endregion

View File

@ -9,7 +9,7 @@ export class PromoNote {
public noteId: Note['id']; public noteId: Note['id'];
@OneToOne(type => Note, { @OneToOne(type => Note, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public note: Note | null; public note: Note | null;
@ -21,7 +21,7 @@ export class PromoNote {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: '[Denormalized]' comment: '[Denormalized]',
}) })
public userId: User['id']; public userId: User['id'];
//#endregion //#endregion

View File

@ -10,7 +10,7 @@ export class PromoRead {
public id: string; public id: string;
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the PromoRead.' comment: 'The created date of the PromoRead.',
}) })
public createdAt: Date; public createdAt: Date;
@ -19,7 +19,7 @@ export class PromoRead {
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@ -28,7 +28,7 @@ export class PromoRead {
public noteId: Note['id']; public noteId: Note['id'];
@ManyToOne(type => Note, { @ManyToOne(type => Note, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public note: Note | null; public note: Note | null;

View File

@ -9,50 +9,50 @@ export class RegistryItem {
public id: string; public id: string;
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the RegistryItem.' comment: 'The created date of the RegistryItem.',
}) })
public createdAt: Date; public createdAt: Date;
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The updated date of the RegistryItem.' comment: 'The updated date of the RegistryItem.',
}) })
public updatedAt: Date; public updatedAt: Date;
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The owner ID.' comment: 'The owner ID.',
}) })
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@Column('varchar', { @Column('varchar', {
length: 1024, length: 1024,
comment: 'The key of the RegistryItem.' comment: 'The key of the RegistryItem.',
}) })
public key: string; public key: string;
@Column('jsonb', { @Column('jsonb', {
default: {}, nullable: true, default: {}, nullable: true,
comment: 'The value of the RegistryItem.' comment: 'The value of the RegistryItem.',
}) })
public value: any | null; public value: any | null;
@Index() @Index()
@Column('varchar', { @Column('varchar', {
length: 1024, array: true, default: '{}' length: 1024, array: true, default: '{}',
}) })
public scope: string[]; public scope: string[];
// サードパーティアプリに開放するときのためのカラム // サードパーティアプリに開放するときのためのカラム
@Index() @Index()
@Column('varchar', { @Column('varchar', {
length: 512, nullable: true length: 512, nullable: true,
}) })
public domain: string | null; public domain: string | null;
} }

View File

@ -8,7 +8,7 @@ export class Signin {
public id: string; public id: string;
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the Signin.' comment: 'The created date of the Signin.',
}) })
public createdAt: Date; public createdAt: Date;
@ -17,7 +17,7 @@ export class Signin {
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;

View File

@ -15,7 +15,7 @@ export class SwSubscription {
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;

View File

@ -10,19 +10,19 @@ export class UserGroupInvitation {
public id: string; public id: string;
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the UserGroupInvitation.' comment: 'The created date of the UserGroupInvitation.',
}) })
public createdAt: Date; public createdAt: Date;
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The user ID.' comment: 'The user ID.',
}) })
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@ -30,12 +30,12 @@ export class UserGroupInvitation {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The group ID.' comment: 'The group ID.',
}) })
public userGroupId: UserGroup['id']; public userGroupId: UserGroup['id'];
@ManyToOne(type => UserGroup, { @ManyToOne(type => UserGroup, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public userGroup: UserGroup | null; public userGroup: UserGroup | null;

View File

@ -10,19 +10,19 @@ export class UserGroupJoining {
public id: string; public id: string;
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the UserGroupJoining.' comment: 'The created date of the UserGroupJoining.',
}) })
public createdAt: Date; public createdAt: Date;
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The user ID.' comment: 'The user ID.',
}) })
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@ -30,12 +30,12 @@ export class UserGroupJoining {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The group ID.' comment: 'The group ID.',
}) })
public userGroupId: UserGroup['id']; public userGroupId: UserGroup['id'];
@ManyToOne(type => UserGroup, { @ManyToOne(type => UserGroup, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public userGroup: UserGroup | null; public userGroup: UserGroup | null;

View File

@ -9,7 +9,7 @@ export class UserGroup {
@Index() @Index()
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the UserGroup.' comment: 'The created date of the UserGroup.',
}) })
public createdAt: Date; public createdAt: Date;
@ -21,12 +21,12 @@ export class UserGroup {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The ID of owner.' comment: 'The ID of owner.',
}) })
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;

View File

@ -8,7 +8,7 @@ export class UserKeypair {
public userId: User['id']; public userId: User['id'];
@OneToOne(type => User, { @OneToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;

View File

@ -10,19 +10,19 @@ export class UserListJoining {
public id: string; public id: string;
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the UserListJoining.' comment: 'The created date of the UserListJoining.',
}) })
public createdAt: Date; public createdAt: Date;
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The user ID.' comment: 'The user ID.',
}) })
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@ -30,12 +30,12 @@ export class UserListJoining {
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The list ID.' comment: 'The list ID.',
}) })
public userListId: UserList['id']; public userListId: UserList['id'];
@ManyToOne(type => UserList, { @ManyToOne(type => UserList, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public userList: UserList | null; public userList: UserList | null;

View File

@ -8,26 +8,26 @@ export class UserList {
public id: string; public id: string;
@Column('timestamp with time zone', { @Column('timestamp with time zone', {
comment: 'The created date of the UserList.' comment: 'The created date of the UserList.',
}) })
public createdAt: Date; public createdAt: Date;
@Index() @Index()
@Column({ @Column({
...id(), ...id(),
comment: 'The owner ID.' comment: 'The owner ID.',
}) })
public userId: User['id']; public userId: User['id'];
@ManyToOne(type => User, { @ManyToOne(type => User, {
onDelete: 'CASCADE' onDelete: 'CASCADE',
}) })
@JoinColumn() @JoinColumn()
public user: User | null; public user: User | null;
@Column('varchar', { @Column('varchar', {
length: 128, length: 128,
comment: 'The name of the UserList.' comment: 'The name of the UserList.',
}) })
public name: string; public name: string;
} }

Some files were not shown because too many files have changed in this diff Show More