Compare commits
125 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
37628953c5 | ||
![]() |
13288e1ed8 | ||
![]() |
6d82bbef17 | ||
![]() |
a46e2f2868 | ||
![]() |
6cbc460c19 | ||
![]() |
9cd2b767a9 | ||
![]() |
60b9c467e6 | ||
![]() |
ceabd7c791 | ||
![]() |
0be4e10462 | ||
![]() |
d95fafb5b3 | ||
![]() |
ef485044ea | ||
![]() |
c599a304c8 | ||
![]() |
6d918f195a | ||
![]() |
31a3748a18 | ||
![]() |
48212e7a44 | ||
![]() |
0f7241c2c2 | ||
![]() |
bd903cdbb5 | ||
![]() |
0b038f6477 | ||
![]() |
7e26daa51b | ||
![]() |
225d7701a4 | ||
![]() |
1cae39e281 | ||
![]() |
b635b064ee | ||
![]() |
640fc337af | ||
![]() |
43f2ac56ee | ||
![]() |
d3c7c0ebe3 | ||
![]() |
d15c8afcdf | ||
![]() |
20134a5367 | ||
![]() |
46c0280764 | ||
![]() |
980a99b6c9 | ||
![]() |
c69b72e199 | ||
![]() |
0abe2dfee0 | ||
![]() |
caf0a219a6 | ||
![]() |
4341c4cccc | ||
![]() |
054417354c | ||
![]() |
b9095995eb | ||
![]() |
a60bd33cfc | ||
![]() |
7eedb9b19b | ||
![]() |
e804a299e0 | ||
![]() |
bcf7530eef | ||
![]() |
bed982e705 | ||
![]() |
d9853d9683 | ||
![]() |
fbe4869d1e | ||
![]() |
ac04c46d3b | ||
![]() |
b1bd7307bb | ||
![]() |
8a3f860213 | ||
![]() |
e42e9530cb | ||
![]() |
b65353bc3c | ||
![]() |
83a77f1064 | ||
![]() |
75c087b79f | ||
![]() |
300785923c | ||
![]() |
00982d2742 | ||
![]() |
4f208b99ff | ||
![]() |
fa36b88af4 | ||
![]() |
8223a069fe | ||
![]() |
8de8de7669 | ||
![]() |
705b46b3a0 | ||
![]() |
e46e88344c | ||
![]() |
5c8561c903 | ||
![]() |
5fe2e8a59a | ||
![]() |
c722225c80 | ||
![]() |
584ceb3714 | ||
![]() |
902bed4db3 | ||
![]() |
e617ced1d3 | ||
![]() |
22464c434e | ||
![]() |
f33ded3107 | ||
![]() |
a82ff360c6 | ||
![]() |
14fa8b177d | ||
![]() |
e46bb2f948 | ||
![]() |
3eef0a65c2 | ||
![]() |
bcd188a0e0 | ||
![]() |
f38b6a1806 | ||
![]() |
4cc2a561d5 | ||
![]() |
f3e29c4f6a | ||
![]() |
2fc58a780e | ||
![]() |
561b0fc10e | ||
![]() |
b8f42fca56 | ||
![]() |
e8005c8d3a | ||
![]() |
335e4bd213 | ||
![]() |
0d21083c9a | ||
![]() |
698e0d08a1 | ||
![]() |
8e0108a0b8 | ||
![]() |
d9775c147f | ||
![]() |
b4ebf254c8 | ||
![]() |
dec7c4f722 | ||
![]() |
aaba43e754 | ||
![]() |
9604ad3dc1 | ||
![]() |
8e04bd12cf | ||
![]() |
270df5c5b0 | ||
![]() |
f5bea67515 | ||
![]() |
1ec4156b49 | ||
![]() |
5e33ca3da0 | ||
![]() |
b9a57715e8 | ||
![]() |
99640a35a3 | ||
![]() |
24681bbe10 | ||
![]() |
88cdbc2ad6 | ||
![]() |
a0c6ae2cba | ||
![]() |
9a51ae5def | ||
![]() |
f7c21868fe | ||
![]() |
5d968afa74 | ||
![]() |
b6e3f1c490 | ||
![]() |
cb4d65b5c9 | ||
![]() |
a902576334 | ||
![]() |
1c6463e66f | ||
![]() |
1cf5198372 | ||
![]() |
a9a5673069 | ||
![]() |
9d67857a34 | ||
![]() |
25fde3b5eb | ||
![]() |
0e3ca41b3c | ||
![]() |
318759cfa4 | ||
![]() |
73b5c12927 | ||
![]() |
c850cef711 | ||
![]() |
12fad68f58 | ||
![]() |
037db7c5ef | ||
![]() |
ea9aeef9d8 | ||
![]() |
63415f1074 | ||
![]() |
dded3912f8 | ||
![]() |
d35f0247a2 | ||
![]() |
76a7b5f067 | ||
![]() |
c864d700d2 | ||
![]() |
50e1040f1e | ||
![]() |
8a40026c5c | ||
![]() |
974250da6c | ||
![]() |
7042933b3b | ||
![]() |
8b7f5be878 | ||
![]() |
01afdc410e |
4
.github/workflows/lint.yml
vendored
4
.github/workflows/lint.yml
vendored
@@ -17,5 +17,9 @@ jobs:
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 12.x
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: '**/node_modules'
|
||||
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}
|
||||
- run: yarn install
|
||||
- run: yarn lint
|
||||
|
4
.github/workflows/test.yml
vendored
4
.github/workflows/test.yml
vendored
@@ -75,6 +75,10 @@ jobs:
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: '**/node_modules'
|
||||
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}
|
||||
- name: Install dependencies
|
||||
run: yarn install
|
||||
- name: Check yarn.lock
|
||||
|
2
.vscode/extensions.json
vendored
2
.vscode/extensions.json
vendored
@@ -3,7 +3,7 @@
|
||||
"editorconfig.editorconfig",
|
||||
"eg2.vscode-npm-script",
|
||||
"ms-vscode.typescript-javascript-grammar",
|
||||
"ms-vscode.vscode-typescript-tslint-plugin",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"johnsoncodehk.volar",
|
||||
"sysoev.language-stylus"
|
||||
]
|
||||
|
51
CHANGELOG.md
51
CHANGELOG.md
@@ -7,6 +7,57 @@
|
||||
|
||||
-->
|
||||
|
||||
## 12.99.0 (2021/12/14)
|
||||
|
||||
### Improvements
|
||||
- Added a user-level instance mute in user settings
|
||||
- フォローエクスポートでミュートしているユーザーを含めないオプションを追加
|
||||
- フォローエクスポートで使われていないアカウントを含めないオプションを追加
|
||||
- カスタム絵文字エクスポート機能
|
||||
- チャートのパフォーマンスの改善
|
||||
- グループから抜けられるように
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: タッチ機能付きディスプレイを使っていてマウス操作をしている場合に一部機能が動作しない問題を修正
|
||||
- クライアント: クリップの設定を編集できない問題を修正
|
||||
- クライアント: メニューなどがウィンドウの裏に隠れる問題を修正
|
||||
|
||||
## 12.98.0 (2021/12/03)
|
||||
|
||||
### Improvements
|
||||
- API: /antennas/notes API で日付による絞り込みができるように
|
||||
- クライアント: アンケートに投票する際に確認ダイアログを出すように
|
||||
- クライアント: Renoteなノート詳細ページから元のノートページに遷移できるように
|
||||
- クライアント: 画像ポップアップでクリックで閉じられるように
|
||||
- クライアント: デザインの調整
|
||||
- フォロワーを解除できる機能
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: LTLやGTLが無効になっている場合でもUI上にタブが表示される問題を修正
|
||||
- クライアント: ログインにおいてパスワードが誤っている際のエラーメッセージが正しく表示されない問題を修正
|
||||
- クライアント: リアクションツールチップ、Renoteツールチップのユーザーの並び順を修正
|
||||
- クライアント: サウンドのマスターボリュームが正しく保存されない問題を修正
|
||||
- クライアント: 一部環境において通知が表示されると操作不能になる問題を修正
|
||||
- クライアント: モバイルでタップしたときにツールチップが表示される問題を修正
|
||||
- クライアント: リモートインスタンスのノートに返信するとき、対象のノートにそのリモートインスタンス内のユーザーへのメンションが含まれていると、返信テキスト内にローカルユーザーへのメンションとして引き継がれてしまう場合がある問題を修正
|
||||
- クライアント: 画像ビューワーで全体表示した時に上側の一部しか表示されない画像がある問題を修正
|
||||
- API: ユーザーを取得時に条件によっては内部エラーになる問題を修正
|
||||
|
||||
### Changes
|
||||
- クライアント: ノートにモデレーターバッジを表示するのを廃止
|
||||
|
||||
## 12.97.0 (2021/11/19)
|
||||
|
||||
### Improvements
|
||||
- クライアント: 返信先やRenoteに対しても自動折りたたみされるように
|
||||
- クライアント: 長いスレッドの表示を改善
|
||||
- クライアント: 翻訳にもMFMを適用し、元の文章の改行などを保持するように
|
||||
- クライアント: アカウント削除に確認ダイアログを出すように
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: ユーザー検索の「全て」が動作しない問題を修正
|
||||
- クライアント: リアクション一覧、Renote一覧ツールチップのスタイルを修正
|
||||
|
||||
## 12.96.1 (2021/11/13)
|
||||
### Improvements
|
||||
- npm scriptの互換性を向上
|
||||
|
@@ -49,6 +49,11 @@ If your language is not listed in Crowdin, please open an issue.
|
||||
|
||||

|
||||
|
||||
## Development
|
||||
During development, it is useful to use the `npm run dev` command.
|
||||
This command monitors the server-side and client-side source files and automatically builds them if they are modified.
|
||||
In addition, it will also automatically start the Misskey server process.
|
||||
|
||||
## Testing
|
||||
- Test codes are located in [`/test`](/test).
|
||||
|
||||
@@ -80,6 +85,11 @@ TODO
|
||||
Misskey uses GitHub Actions for executing automated tests.
|
||||
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
|
||||
* Use English for material, object and texture names.
|
||||
* Use meter for unit of length.
|
||||
|
@@ -29,7 +29,6 @@ COPY --from=builder /misskey/built ./built
|
||||
COPY --from=builder /misskey/packages/backend/node_modules ./packages/backend/node_modules
|
||||
COPY --from=builder /misskey/packages/backend/built ./packages/backend/built
|
||||
COPY --from=builder /misskey/packages/client/node_modules ./packages/client/node_modules
|
||||
COPY --from=builder /misskey/packages/client/built ./packages/client/built
|
||||
COPY . ./
|
||||
|
||||
CMD ["npm", "run", "migrateandstart"]
|
||||
|
129
README.md
129
README.md
@@ -1,116 +1,57 @@
|
||||
[](https://join.misskey.page/)
|
||||
|
||||
<h1 align="center">Misskey</h1>
|
||||
[](https://join.misskey.page/)
|
||||
|
||||
<div align="center">
|
||||
|
||||
[](https://david-dm.org/misskey-dev/misskey)
|
||||
[](http://makeapullrequest.com)
|
||||
[](https://github.com/humanetech-community/awesome-humane-tech)
|
||||
**🌎 A forever evolving, interplanetary microblogging platform. 🚀**
|
||||
|
||||
**A forever evolving, interplanetary microblogging platform.**
|
||||
**Misskey** is a distributed microblogging platform with advanced features such as Reactions and a highly customizable UI.
|
||||
|
||||
<a href="https://join.misskey.page/">Misskey</a> is a decentralized microblogging platform born on Earth.
|
||||
Since it exists within the Fediverse (a universe where various social media platforms are organized),
|
||||
it is mutually linked with other social media platforms.
|
||||
Why don't you take a short break from the hustle and bustle of the city, and dive into a new Internet? <a href="https://join.misskey.page/">Find an instance!</a>
|
||||
[Learn more](https://misskey-hub.net/)
|
||||
|
||||
---
|
||||
|
||||
[✨ Find an instance](https://misskey-hub.net/instances.html)
|
||||
•
|
||||
[📦 Create your own instance](https://misskey-hub.net/docs/install.html)
|
||||
•
|
||||
[🛠️ Contribute](./CONTRIBUTING.md)
|
||||
•
|
||||
[🚀 Join the community](https://discord.gg/Wp8gVStHW3)
|
||||
|
||||
---
|
||||
|
||||
<a href="https://www.patreon.com/syuilo"><img src="https://c5.patreon.com/external/logo/become_a_patron_button@2x.png" alt="Become a Patron!" width="160" /></a>
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
<div>
|
||||
|
||||
Do you have a question? Or are you experiencing trouble?
|
||||
Visit [our forum](https://forum.misskey.io/)!
|
||||
<a href="https://xn--931a.moe/"><img src="https://github.com/misskey-dev/misskey/blob/develop/assets/ai.png?raw=true" align="right" height="320px"/></a>
|
||||
|
||||
---
|
||||
## ✨ Features
|
||||
- **ActivityPub support**\
|
||||
It is possible to interact with other software.
|
||||
- **Reactions**\
|
||||
You can add "reactions" to each post, making it easy for you to express your feelings.
|
||||
- **Drive**\
|
||||
An interface to manage uploaded files such as images, videos, sounds, etc.
|
||||
You can also organize your favorite content into folders, making it easy to share again.
|
||||
- **Rich Web UI**\
|
||||
Misskey has a rich WebUI by default.
|
||||
It is highly customizable by flexibly changing the layout and installing various widgets and themes.
|
||||
Furthermore, plug-ins can be created using AiScript, a original programming language.
|
||||
- and more...
|
||||
|
||||

|
||||
</div>
|
||||
|
||||
:sparkles: Features
|
||||
----------------------------------------------------------------
|
||||
<a href="https://xn--931a.moe/"><img src="https://github.com/misskey-dev/misskey/blob/develop/assets/ai-orig.png?raw=true" align="right" height="320px"/></a>
|
||||
<div style="clear: both;"></div>
|
||||
|
||||
<h3>Posting</h3>
|
||||
<p>
|
||||
Post your ideas, discussion topics, fun moments, or anything else you want to share! Misskey supports text, emoji, pictures, videos, and polls!
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
<h3 >Reactions</h3>
|
||||
<p>
|
||||
Reactions are the simplest way to respond to others' posts. Simply pick a reaction emote from the list! Reactions on Misskey are much more expressive than other social media services which only allow “liking”.
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
<h3>Interface</h3>
|
||||
<p>
|
||||
Customize the UI to your own tastes! No UI will work for everyone, so Misskey is completely customizable. Make Misskey *yours* by editing the style, adjusting timeline layouts, and placing widgets.
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
<h3>Misskey Drive</h3>
|
||||
<p>
|
||||
Organize and store your files! Want to post a picture you have already uploaded? Wish you could organize your files into folders? Misskey Drive is a solution!
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
...and more!
|
||||
|
||||
:package: Create your own instance
|
||||
----------------------------------------------------------------
|
||||
Please see the [Setup and Installation Guide](https://misskey-hub.net/docs/install/install.html).
|
||||
|
||||
:wrench: Contribution
|
||||
----------------------------------------------------------------
|
||||
Please see the [Contribution Guide](./CONTRIBUTING.md).
|
||||
|
||||
### Collaborators
|
||||
<table>
|
||||
<tr>
|
||||
<td><img src="https://avatars3.githubusercontent.com/u/4439005?s=460&v=4" alt="syuilo" width="100"></td>
|
||||
<td><img src="https://avatars0.githubusercontent.com/u/10798641?s=460&v=4" alt="AyaMorisawa" width="100"></td>
|
||||
<td><img src="https://avatars1.githubusercontent.com/u/30769358?s=460&v=4" alt="mei23" width="100"></td>
|
||||
<td><img src="https://avatars2.githubusercontent.com/u/20679825?s=460&v=4" alt="acid-chicken" width="100"></td>
|
||||
<td><img src="https://avatars2.githubusercontent.com/u/6533808?s=460&v=4" alt="rinsuki" width="100"></td>
|
||||
<td><img src="https://avatars0.githubusercontent.com/u/7973572?s=460&v=4" alt="tamaina" width="100"></td>
|
||||
<td><img src="https://avatars1.githubusercontent.com/u/7106976?s=460&v=4" alt="Xeltica" width="100"></td>
|
||||
<td><img src="https://avatars1.githubusercontent.com/u/17376330?s=460&v=4" alt="u1-liquid" width="100"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/syuilo">@syuilo</a></td>
|
||||
<td align="center"><a href="https://github.com/AyaMorisawa">@AyaMorisawa</a></td>
|
||||
<td align="center"><a href="https://github.com/mei23">@mei23</a></td>
|
||||
<td align="center"><a href="https://github.com/acid-chicken">@acid-chicken</a></td>
|
||||
<td align="center"><a href="https://github.com/rinsuki">@rinsuki</a></td>
|
||||
<td align="center"><a href="https://github.com/tamaina">@tamaina</a></td>
|
||||
<td align="center"><a href="https://github.com/Xeltica">@Xeltica</a></td>
|
||||
<td align="center"><a href="https://github.com/u1-liquid">@u1-liquid</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
---
|
||||
|
||||
To receive updates of this repo, follow [@repo@misskey.io](https://misskey.io/@repo) on fediverse.
|
||||
|
||||
Related projects
|
||||
----------------------------------------------------------------
|
||||
- [misskey.js](https://github.com/misskey-dev/misskey.js) - Misskey SDK for JavaScript
|
||||
- [mfm.js](https://github.com/misskey-dev/mfm.js) - MFM parser
|
||||
|
||||
Sponsors
|
||||
----------------------------------------------------------------
|
||||
## Sponsors
|
||||
<div align="center">
|
||||
<a class="rss3" title="RSS3" href="https://rss3.io/" target="_blank" style="display: inline-block;"><img src="https://rss3.io/assets/images/Logo.svg" alt="RSS3" style="display: inline-block; height: 60px;"></a>
|
||||
</div>
|
||||
|
||||
:heart: Backers
|
||||
----------------------------------------------------------------
|
||||
## Backers
|
||||
<!-- PATREON_START -->
|
||||
<table><tr>
|
||||
<td><img src="https://c8.patreon.com/2/200/20832595" alt="Roujo " width="100"></td>
|
||||
|
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 38 KiB |
@@ -57,6 +57,6 @@ gulp.task('default', gulp.task('build'));
|
||||
|
||||
gulp.task('watch', () => {
|
||||
gulp.watch([
|
||||
'./packages/**/*',
|
||||
'./packages/*/src/**/*',
|
||||
], { ignoreInitial: false }, gulp.task('build'));
|
||||
});
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -52,6 +52,7 @@ searchUser: "Vyhledat uživatele"
|
||||
reply: "Odpovědět"
|
||||
loadMore: "Zobrazit více"
|
||||
showMore: "Zobrazit více"
|
||||
youGotNewFollower: "Máte nového následovníka"
|
||||
mention: "Zmínění"
|
||||
mentions: "Zmínění"
|
||||
importAndExport: "Import a export"
|
||||
@@ -163,6 +164,7 @@ clearQueue: "Vyčistit frontu"
|
||||
clearQueueConfirmTitle: "Jste si jisti že zrušit všechny úlohy ve frontě?"
|
||||
clearCachedFiles: "Vyprázdnit mezipaměť"
|
||||
blockedInstances: "Blokované instance"
|
||||
noUsers: "Žádní uživatelé"
|
||||
editProfile: "Upravit můj profil"
|
||||
pinLimitExceeded: "Nemůžete připnout další poznámky."
|
||||
intro: "Instalace Misskey byla dokončena! Prosím vytvořte admina."
|
||||
@@ -170,6 +172,7 @@ done: "Hotovo"
|
||||
processing: "Zpracovávám"
|
||||
preview: "Náhled"
|
||||
default: "Výchozí"
|
||||
noCustomEmojis: "Bez Emoji"
|
||||
blocked: "Blokováno"
|
||||
suspended: "Suspendováno"
|
||||
all: "Vše"
|
||||
@@ -402,6 +405,9 @@ smtpPass: "Heslo"
|
||||
clearCache: "Vyprázdnit mezipaměť"
|
||||
info: "Informace"
|
||||
user: "Uživatelé"
|
||||
_email:
|
||||
_follow:
|
||||
title: "Máte nového následovníka"
|
||||
_mfm:
|
||||
mention: "Zmínění"
|
||||
quote: "Citovat"
|
||||
@@ -464,6 +470,7 @@ _pages:
|
||||
types:
|
||||
array: "Seznamy"
|
||||
_notification:
|
||||
youWereFollowed: "Máte nového následovníka"
|
||||
youWereInvitedToGroup: "Pozvat do skupiny"
|
||||
_types:
|
||||
follow: "Sledovaní"
|
||||
|
@@ -592,6 +592,7 @@ smtpSecure: "Für SMTP-Verbindungen implizit SSL/TLS verwenden"
|
||||
smtpSecureInfo: "Schalte dies aus, falls du STARTTLS verwendest"
|
||||
testEmail: "Email-Versand testen"
|
||||
wordMute: "Wort-Stummschaltung"
|
||||
instanceMute: "Instanzstummschaltungen"
|
||||
userSaysSomething: "{name} hat etwas gesagt"
|
||||
makeActive: "Aktivieren"
|
||||
display: "Anzeigeart"
|
||||
@@ -620,6 +621,8 @@ reportAbuse: "Melden"
|
||||
reportAbuseOf: "{name} melden"
|
||||
fillAbuseReportDescription: "Bitte gib zusätzliche Informationen zu dieser Meldung an. Falls es sich um eine spezielle Notiz handelt, bitte gib dessen URL an."
|
||||
abuseReported: "Die Meldung wurde versendet. Vielen Dank."
|
||||
reporteeOrigin: "Herkunft des Gemeldeten"
|
||||
reporterOrigin: "Herkunft des Meldenden"
|
||||
send: "Senden"
|
||||
abuseMarkAsResolved: "Meldung als gelöst markieren"
|
||||
openInNewTab: "In neuem Tab öffnen"
|
||||
@@ -790,17 +793,36 @@ pubSub: "Pub/Sub Benutzerkonten"
|
||||
lastCommunication: "Letzte Kommunikation"
|
||||
resolved: "Gelöst"
|
||||
unresolved: "Ungelöst"
|
||||
breakFollow: "Follower entfernen"
|
||||
itsOn: "Eingeschaltet"
|
||||
itsOff: "Ausgeschaltet"
|
||||
emailRequiredForSignup: "Angaben einer Email-Adresse als benötigt markieren"
|
||||
unread: "Ungelesen"
|
||||
filter: "Filter"
|
||||
controlPanel: "Systemsteuerung"
|
||||
manageAccounts: "Benutzerkonten verwalten"
|
||||
makeReactionsPublic: "Reaktionsverlauf veröffentlichen"
|
||||
makeReactionsPublicDescription: "Jeder wird die Liste deiner gesendeten Reaktionen einsehen können."
|
||||
classic: "Classic"
|
||||
muteThread: "Thread stummschalten"
|
||||
unmuteThread: "Threadstummschaltung aufheben"
|
||||
ffVisibility: "Sichtbarkeit von Gefolgten/Followern"
|
||||
ffVisibilityDescription: "Konfiguriere wer sehen kann, wem du folgst sowie wer dir folgt."
|
||||
continueThread: "Weiteren Threadverlauf anzeigen"
|
||||
deleteAccountConfirm: "Dein Benutzerkonto wird unwiderruflich gelöscht. Trotzdem fortfahren?"
|
||||
incorrectPassword: "Falsches Passwort."
|
||||
voteConfirm: "Wirklich für \"{choice}\" abstimmen?"
|
||||
hide: "Inhalt verbergen"
|
||||
_emailUnavailable:
|
||||
used: "Diese Email-Adresse wird bereits verwendet"
|
||||
format: "Das Format dieser Email-Adresse ist ungültig"
|
||||
disposable: "Wegwerf-Email-Adressen können nicht verwendet werden"
|
||||
mx: "Dieser Email-Server ist ungültig"
|
||||
smtp: "Dieser Email-Server antwortet nicht"
|
||||
_ffVisibility:
|
||||
public: "Öffentlich"
|
||||
followers: "Nur für Follower sichtbar"
|
||||
private: "Privat"
|
||||
_signup:
|
||||
almostThere: "Fast geschafft"
|
||||
emailAddressInfo: "Bitte gib deine Email-Adresse ein."
|
||||
@@ -812,13 +834,6 @@ _accountDelete:
|
||||
requestAccountDelete: "Löschung des Benutzerkontos anfordern"
|
||||
started: "Löschung wurde eingeleitet."
|
||||
inProgress: "Löschung in Bearbeitung"
|
||||
_docs:
|
||||
continueReading: "Mehr lesen"
|
||||
features: "Funktionen"
|
||||
generalTopics: "Allgemeine Themen"
|
||||
advancedTopics: "Erweiterte Themen"
|
||||
admin: "Administration"
|
||||
translateWarn: "Dies ist ein übersetztes Dokument. Es kann zu Unterschieden mit dem Original kommen."
|
||||
_ad:
|
||||
back: "Zurück"
|
||||
reduceFrequencyOfThisAd: "Diese Werbung weniger anzeigen"
|
||||
@@ -921,6 +936,8 @@ _mfm:
|
||||
rainbowDescription: "Lässt den Inhalt in Regenbogenfarben erscheinen."
|
||||
sparkle: "Glitzer"
|
||||
sparkleDescription: "Verleiht Inhalt einen glitzernden Partikeleffekt."
|
||||
rotate: "Drehen"
|
||||
rotateDescription: "Dreht den Inhalt um einen angegebenen Winkel"
|
||||
_reversi:
|
||||
reversi: "Reversi"
|
||||
gameSettings: "Spieleinstellungen"
|
||||
@@ -986,6 +1003,11 @@ _wordMute:
|
||||
soft: "Leicht"
|
||||
hard: "Schwer"
|
||||
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:
|
||||
explore: "Themen erforschen"
|
||||
install: "Thema installieren"
|
||||
@@ -1259,6 +1281,8 @@ _exportOrImport:
|
||||
muteList: "Stummschaltungen"
|
||||
blockingList: "Blockierungen"
|
||||
userLists: "Listen"
|
||||
excludeMutingUsers: "Stummgeschaltete Benutzer aussortieren"
|
||||
excludeInactiveUsers: "Inaktive Benutzer aussortieren"
|
||||
_charts:
|
||||
federationInstancesIncDec: "Unterschied in der Anzahl von förderierenden Instanzen"
|
||||
federationInstancesTotal: "Anzahl aller föderierenden Instanzen"
|
||||
|
@@ -137,7 +137,7 @@ addEmoji: "Add an emoji"
|
||||
settingGuide: "Recommended settings"
|
||||
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."
|
||||
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."
|
||||
flagAsCat: "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"
|
||||
testEmail: "Test email delivery"
|
||||
wordMute: "Word mute"
|
||||
instanceMute: "Instance mutes"
|
||||
userSaysSomething: "{name} said something"
|
||||
makeActive: "Activate"
|
||||
display: "Display"
|
||||
@@ -620,6 +621,8 @@ reportAbuse: "Report"
|
||||
reportAbuseOf: "Report {name}"
|
||||
fillAbuseReportDescription: "Please fill in details regarding this report. If it is about a specific note, please include its URL."
|
||||
abuseReported: "Your report has been sent. Thank you very much."
|
||||
reporteeOrigin: "Reportee Origin"
|
||||
reporterOrigin: "Reporter Origin"
|
||||
send: "Send"
|
||||
abuseMarkAsResolved: "Mark report as resolved"
|
||||
openInNewTab: "Open in new tab"
|
||||
@@ -802,6 +805,23 @@ makeReactionsPublicDescription: "This will make the list of all your past reacti
|
||||
classic: "Classic"
|
||||
muteThread: "Mute thread"
|
||||
unmuteThread: "Unmute thread"
|
||||
ffVisibility: "Follows/Followers Visibility"
|
||||
ffVisibilityDescription: "Allows you to configure who can see who you follow and who follows you."
|
||||
continueThread: "View thread continuation"
|
||||
deleteAccountConfirm: "This will irreversibly delete your account. Proceed?"
|
||||
incorrectPassword: "Incorrect password."
|
||||
voteConfirm: "Confirm your vote for \"{choice}\"?"
|
||||
hide: "Hide"
|
||||
_emailUnavailable:
|
||||
used: "This email address is already being used"
|
||||
format: "The format of this email address is invalid"
|
||||
disposable: "Disposable email addresses may not be used"
|
||||
mx: "This email server is invalid"
|
||||
smtp: "This email server is not responding"
|
||||
_ffVisibility:
|
||||
public: "Public"
|
||||
followers: "Visible to followers only"
|
||||
private: "Private"
|
||||
_signup:
|
||||
almostThere: "Almost there"
|
||||
emailAddressInfo: "Please enter your email address."
|
||||
@@ -813,13 +833,6 @@ _accountDelete:
|
||||
requestAccountDelete: "Request account deletion"
|
||||
started: "Deletion has been started."
|
||||
inProgress: "Deletion is currently in progress"
|
||||
_docs:
|
||||
continueReading: "Read more"
|
||||
features: "Features"
|
||||
generalTopics: "General topics"
|
||||
advancedTopics: "Advanced Topics"
|
||||
admin: "Administration"
|
||||
translateWarn: "This is a translated document. Its contents may differ from the original."
|
||||
_ad:
|
||||
back: "Back"
|
||||
reduceFrequencyOfThisAd: "Show this ad less"
|
||||
@@ -922,6 +935,8 @@ _mfm:
|
||||
rainbowDescription: "Makes the content appear in rainbow colors."
|
||||
sparkle: "Sparkle"
|
||||
sparkleDescription: "Gives content a sparkling particle effect."
|
||||
rotate: "Rotate"
|
||||
rotateDescription: "Turns content by a specified angle."
|
||||
_reversi:
|
||||
reversi: "Reversi"
|
||||
gameSettings: "Game settings"
|
||||
@@ -987,6 +1002,11 @@ _wordMute:
|
||||
soft: "Soft"
|
||||
hard: "Hard"
|
||||
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:
|
||||
explore: "Explore Themes"
|
||||
install: "Install a theme"
|
||||
@@ -1260,6 +1280,8 @@ _exportOrImport:
|
||||
muteList: "Muted users"
|
||||
blockingList: "Blocked users"
|
||||
userLists: "User lists"
|
||||
excludeMutingUsers: "Exclude muted users"
|
||||
excludeInactiveUsers: "Exclude inactive users"
|
||||
_charts:
|
||||
federationInstancesIncDec: "Difference in # of federating instances"
|
||||
federationInstancesTotal: "Total # of federating instances"
|
||||
|
@@ -1,32 +1,32 @@
|
||||
---
|
||||
_lang_: "Esperanto"
|
||||
headlineMisskey: "Jen la reto konektata de 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. 🚀"
|
||||
monthAndDay: "{{day}}/{{month}}"
|
||||
headlineMisskey: "Reto konektita per notoj"
|
||||
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 monato"
|
||||
search: "Serĉi"
|
||||
notifications: "Sciigoj"
|
||||
username: "Uzantnomo"
|
||||
password: "Pasvorto"
|
||||
forgotPassword: "Ĉu vi forgesis pasvorton?"
|
||||
fetchingAsApObject: "Informpetado de kunfederaĵo…"
|
||||
ok: "Akcepteble"
|
||||
gotIt: "Mi komprenas"
|
||||
fetchingAsApObject: "Informpetado de la Fediverso…"
|
||||
ok: "OK"
|
||||
gotIt: "Kompreni"
|
||||
cancel: "Nuligi"
|
||||
enterUsername: "Entajpu uzantnomon"
|
||||
renotedBy: "Noto plusendita de {user}"
|
||||
renotedBy: "Plusendita de {user}"
|
||||
noNotes: "Neniu noto!"
|
||||
noNotifications: "Vi ne havas sciigojn."
|
||||
instance: "Nodo"
|
||||
settings: "Agordoj"
|
||||
basicSettings: "Ĝeneralaj agordoj"
|
||||
otherSettings: "Aliaj agordoj"
|
||||
openInWindow: "Malfermi en fenestro"
|
||||
openInWindow: "Malfermi en nova fenestro"
|
||||
profile: "Profilo"
|
||||
timeline: "Templinio"
|
||||
noAccountDescription: "Neniu priskribo"
|
||||
login: "Ensaluti"
|
||||
loggingIn: "Ensalutado…"
|
||||
logout: "Elsaluti"
|
||||
login: "Saluti"
|
||||
loggingIn: "Salutado…"
|
||||
logout: "Adiaŭi"
|
||||
signup: "Registriĝi"
|
||||
uploading: "Alŝutado…"
|
||||
save: "Konservi"
|
||||
@@ -35,36 +35,36 @@ addUser: "Aldoni uzanton"
|
||||
favorite: "Preferi"
|
||||
favorites: "Preferaĵoj"
|
||||
unfavorite: "Malpreferi"
|
||||
favorited: "Aldonita al via listo de preferaĵoj."
|
||||
alreadyFavorited: "Ĝi jam estis aldonita al via listo de preferaĵoj."
|
||||
cantFavorite: "Ne aldonita al via listo de preferaĵoj."
|
||||
favorited: "Aldonita al viaj preferaĵoj."
|
||||
alreadyFavorited: "Jam aldonita al viaj preferaĵoj."
|
||||
cantFavorite: "Oni ne povis aldoni al viaj preferaĵoj."
|
||||
pin: "Alpingli"
|
||||
unpin: "Depingli"
|
||||
copyContent: "Kopii enhavon"
|
||||
copyLink: "Kopii ligilon"
|
||||
delete: "Forviŝi"
|
||||
deleteAndEdit: "Redakti foriginte"
|
||||
deleteAndEditConfirm: "Ĉu vi certas, ke vi volas forigi kaj redakti la noton? Tio forviŝos reagojn, plusendojn, kaj respondojn ĉiujn de ĝi."
|
||||
deleteAndEdit: "Forviŝi kaj redakti"
|
||||
deleteAndEditConfirm: "Ĉu vi certas ke vi volas redakti foriginte la noton? Tio forviŝos reagojn, plusendojn, kaj respondojn ĉiujn apartenantajn al ĝi."
|
||||
addToList: "Aldoni al listo"
|
||||
sendMessage: "Sendi mesaĝon"
|
||||
copyUsername: "Kopii uzantnomon"
|
||||
searchUser: "Serĉi uzanton"
|
||||
reply: "Respondi"
|
||||
loadMore: "Vidu pli"
|
||||
loadMore: "Vidi pli"
|
||||
showMore: "Vidi pli"
|
||||
youGotNewFollower: "eksekvis vin"
|
||||
receiveFollowRequest: "Peto de sekvado estas ricevita"
|
||||
followRequestAccepted: "La peto de sekvado akceptita"
|
||||
mention: "Mencioj"
|
||||
mentions: "Al vi"
|
||||
mentions: "Mencioj"
|
||||
directNotes: "Rekte senditaj"
|
||||
importAndExport: "Importi/eksporti"
|
||||
import: "Importi"
|
||||
export: "Eksporti"
|
||||
importAndExport: "Enporti kaj elporti"
|
||||
import: "Enporti"
|
||||
export: "Elporti"
|
||||
files: "Dosieroj"
|
||||
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."
|
||||
unfollowConfirm: "Ĉu vi certas, ke vi volas ĉesi sekvi {name}'(o)n?"
|
||||
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}?"
|
||||
lists: "Listoj"
|
||||
noLists: "Neniu listo"
|
||||
note: "Sendi"
|
||||
@@ -77,19 +77,22 @@ manageLists: "Administri liston"
|
||||
error: "Eraro"
|
||||
somethingHappened: "Problemo okazis"
|
||||
retry: "Provi denove"
|
||||
serverIsDead: "La servilo ne respondas. Vole atendu iom kaj penu denove."
|
||||
enterListName: "Entajpu nomon de la listo"
|
||||
privacy: "Privateco"
|
||||
defaultNoteVisibility: "Implicitaĵo de videbleco"
|
||||
makeFollowManuallyApprove: "Eksekvi vin devas peti al vi"
|
||||
defaultNoteVisibility: "Implicita videbleco de la noto"
|
||||
follow: "Sekvi"
|
||||
followRequest: "Peti de sekvado"
|
||||
followRequests: "Petoj de sekvado"
|
||||
unfollow: "Ne plu sekvi"
|
||||
followRequestPending: "Atendado akcepti vian peton de eksekvado"
|
||||
enterEmoji: "Entajpu emoĵion"
|
||||
renote: "Plusendi la noton"
|
||||
unrenote: "Malfari plusendadon"
|
||||
unrenote: "Malfari plusendon"
|
||||
renoted: "Sukcese plusendita"
|
||||
cantRenote: "Oni ne povas plusendi la noton."
|
||||
cantReRenote: "Plusendo de noto ne estas plusendebla."
|
||||
cantReRenote: "Plusendo ne estas plusendebla."
|
||||
quote: "Citi"
|
||||
pinnedNote: "Alpinglita noto"
|
||||
pinned: "Alpingli"
|
||||
@@ -98,11 +101,12 @@ clickToShow: "Klaku por malkaŝu"
|
||||
sensitive: "Enhavo ne estas deca por laborejo (NSFW)"
|
||||
add: "Aldoni"
|
||||
reaction: "Reagoj"
|
||||
rememberNoteVisibility: "Rememoru videblecon de la noto laste sendita "
|
||||
reactionSettingDescription: "Agordi la reagojn kiujn vi volas montrigi prefere ĉe la elektilo de reagoj"
|
||||
rememberNoteVisibility: "Rememori la agordon de videbleco de la laste sendita"
|
||||
attachCancel: "Deigi aldonaĵon"
|
||||
markAsSensitive: "Troviĝi NSFW"
|
||||
unmarkAsSensitive: "Ne troviĝi NSFW"
|
||||
enterFileName: "Entajpu nomon de dosiero"
|
||||
enterFileName: "Entajpu nomon de la dosiero"
|
||||
mute: "Silentigi"
|
||||
unmute: "Malsilentigi"
|
||||
block: "Bloki"
|
||||
@@ -118,16 +122,17 @@ selectAntenna: "Elekti antenon"
|
||||
selectWidget: "Elekti enestraĵon"
|
||||
editWidgets: "Redakti fenestraĵon"
|
||||
editWidgetsExit: "Fini la redaktadon"
|
||||
customEmojis: "Personecigitaj emoĵioj"
|
||||
emoji: "Emoĵio"
|
||||
emojis: "Emoĵio"
|
||||
emojiName: "Nomo de emoĵio"
|
||||
emojiName: "Nomo de la emoĵio"
|
||||
emojiUrl: "URL de la emoĵio"
|
||||
addEmoji: "Aldoni emoĵion"
|
||||
settingGuide: "Agordaj rekomendoj"
|
||||
cacheRemoteFiles: "Stapli transajn dosierojn"
|
||||
flagAsBot: "Agordo por robota uzanto"
|
||||
flagAsCat: "Agordo de katiĝa uzanto"
|
||||
cacheRemoteFiles: "Stapli forajn dosierojn"
|
||||
flagAsBot: "Agordi por robota uzanto"
|
||||
flagAsCat: "Agordi por kata uzanto"
|
||||
flagAsCatDescription: "Se vi estas kato, ebligu la agordon."
|
||||
autoAcceptFollowed: "Aŭtomate akcepti la peton de sekvado far uzantoj kiujn vi sekvas"
|
||||
addAccount: "Aldoni konton"
|
||||
showOnRemote: "Vidi ĉe la surloka nodo"
|
||||
general: "Ĝenerala"
|
||||
@@ -136,95 +141,109 @@ setWallpaper: "Apliki ekranfonon"
|
||||
removeWallpaper: "Forviŝi ekranfonon. "
|
||||
searchWith: "Serĉi: {q}"
|
||||
youHaveNoLists: "Vi ne havas listojn."
|
||||
followConfirm: "Ĉu vi certas ke vi volas sekvi {name}'(o)n?"
|
||||
host: "Gastigo"
|
||||
followConfirm: "Ĉu vi certas ke vi volas sekvi {name}?"
|
||||
proxyAccount: "Retperanta konto"
|
||||
host: "Nodo"
|
||||
selectUser: "Elekti uzanton"
|
||||
recipient: "Ricevonto"
|
||||
recipient: "Ricevonton"
|
||||
annotation: "Komentarioj"
|
||||
federation: "Kunfederaĵo"
|
||||
federation: "Federaĵo"
|
||||
instances: "Nodoj"
|
||||
latestRequestSentAt: "Lastatempa sendo"
|
||||
latestRequestReceivedAt: "Lastatempa ricevo"
|
||||
latestRequestSentAt: "La laste sendita peto"
|
||||
latestRequestReceivedAt: "La laste ricevita peto "
|
||||
latestStatus: "Laŭstato"
|
||||
perHour: "Po horo"
|
||||
perDay: "Po tago"
|
||||
charts: "Diagramoj"
|
||||
perHour: "por horo"
|
||||
perDay: "por tago"
|
||||
blockThisInstance: "Bloki la nodon"
|
||||
operations: "Agoj"
|
||||
software: "Programaro"
|
||||
version: "Versio"
|
||||
metadata: "Metadatumoj"
|
||||
metadata: "Pridatumoj"
|
||||
withNFiles: "{n} dosiero(j)"
|
||||
monitor: "Monitoro"
|
||||
network: "Reto"
|
||||
disk: "Diskilo"
|
||||
disk: "Disko"
|
||||
instanceInfo: "Informoj pri la nodo"
|
||||
statistics: "Statistikoj"
|
||||
clearCachedFiles: "Malplenigi la staplon"
|
||||
clearCachedFilesConfirm: "Ĉu vi certas, ke vi volas forviŝi ĉiujn transajn dosierojn en la staplo?"
|
||||
clearCachedFilesConfirm: "Ĉu vi certas, ke vi volas forviŝi ĉiujn forajn dosierojn en la staplo?"
|
||||
blockedInstances: "Blokitaj nodoj"
|
||||
muteAndBlock: "Silentigitoj kaj blokitoj"
|
||||
muteAndBlock: "Silentigi / Bloki"
|
||||
mutedUsers: "Silentigitaj uzantoj"
|
||||
blockedUsers: "Blokitaj uzantoj"
|
||||
noUsers: "Sen uzantoj"
|
||||
noUsers: "Neniu uzanto"
|
||||
editProfile: "Redakti profilon"
|
||||
noteDeleteConfirm: "Ĉu vi certas ke vi volas forviŝi la noton?"
|
||||
pinLimitExceeded: "Vi povas alpingli ne pli noton."
|
||||
pinLimitExceeded: "Vi ne povas alpingli pli"
|
||||
done: "Fini"
|
||||
processing: "Prilaborado…"
|
||||
preview: "Antaŭmontro"
|
||||
default: "Implicitaĵo"
|
||||
noCustomEmojis: "Neniu emoĵio"
|
||||
federating: "Nun kunfederanta"
|
||||
blocked: "Blokita"
|
||||
suspended: "Suspendita"
|
||||
noJobs: "Neniu laboro"
|
||||
federating: "Federantaj"
|
||||
blocked: "Blokitaj"
|
||||
suspended: "Suspenditaj"
|
||||
all: "Ĉiuj"
|
||||
subscribing: "Abonata"
|
||||
publishing: "Al kiu dissendas"
|
||||
subscribing: "Abonitaj"
|
||||
publishing: "Abonintaj"
|
||||
notResponding: "Alvokato ne disponeblas"
|
||||
instanceFollowing: "Sekvatoj en la nodo"
|
||||
instanceFollowers: "Sekvantoj el la nodo"
|
||||
instanceUsers: "Uzantoj de tiu ĉi nodo"
|
||||
instanceUsers: "Uzantoj de la nodo"
|
||||
changePassword: "Ŝanĝi pasvorton"
|
||||
security: "Sekureco"
|
||||
retypedNotMatch: "Enigitoj ne estas konformaj."
|
||||
retypedNotMatch: "La enigitoj ne estas konformaj."
|
||||
currentPassword: "Aktuala pasvorto"
|
||||
newPassword: "Nova pasvorto"
|
||||
newPasswordRetype: "Reentajpu la novan pasvorton"
|
||||
attachFile: "Aldoni dosieron"
|
||||
more: "Plu!"
|
||||
more: "Pli!"
|
||||
featured: "Maksimumi"
|
||||
usernameOrUserId: "Uzantnomo aŭ identigilo de uzanto"
|
||||
noSuchUser: "Neniuj uzantoj trovitaj."
|
||||
noSuchUser: "Neniuj uzantoj trovitaj"
|
||||
lookup: "Informpeti"
|
||||
announcements: "Novaĵoj"
|
||||
imageUrl: "URL de bildo"
|
||||
imageUrl: "URL de la bildo"
|
||||
remove: "Forigi"
|
||||
removed: "Forviŝis"
|
||||
removeAreYouSure: "Ĉu vi certas ke vi volas forigi \"{x}\"'(o)n?"
|
||||
deleteAreYouSure: "Ĉu vi certas ke vi volas forviŝi \"{x}\"'(o)n?"
|
||||
removed: "Forigita"
|
||||
removeAreYouSure: "Ĉu vi certas ke vi volas forigi \"{x}\"n?"
|
||||
deleteAreYouSure: "Ĉu vi certas ke vi volas forviŝi \"{x}\"'?"
|
||||
resetAreYouSure: "Ĉu vi certas restarigi?"
|
||||
saved: "Konservita"
|
||||
messaging: "Retbabili"
|
||||
upload: "Alŝuti"
|
||||
fromDrive: "De la disko"
|
||||
fromUrl: "De URL"
|
||||
uploadFromUrl: "Alŝuti de URL"
|
||||
uploadFromUrlDescription: "URL de dosiero kiun vi volas alŝuti"
|
||||
uploadFromUrlDescription: "URL de la dosiero kiun vi volas alŝuti"
|
||||
uploadFromUrlRequested: "La alŝutado estis patita"
|
||||
explore: "Esplori"
|
||||
games: "Miskiaj Ludoj"
|
||||
messageRead: "Legita"
|
||||
noMoreHistory: "Ne plu de la historio"
|
||||
startMessaging: "Komenci babiladon"
|
||||
nUsersRead: "Legita de {n} homoj"
|
||||
agreeTo: "Mi akceptas {0}"
|
||||
tos: "Kondiĉoj de uzado"
|
||||
start: "Komenciĝi"
|
||||
home: "Hejma"
|
||||
remoteUserCaution: "Ĉi tiuj infomoj ne estas tute ekzaktaj pro transa uzanto."
|
||||
remoteUserCaution: "Ĉi tiuj infomoj ne estas kompletaj, ĉar ili estas pri uzanto el la fora."
|
||||
activity: "Aktiveco"
|
||||
images: "Bildoj"
|
||||
birthday: "Naskiĝdato"
|
||||
yearsOld: "{age} jaroj aĝa"
|
||||
registeredDate: "Dato de registriĝo"
|
||||
location: "Loko"
|
||||
location: "Kie"
|
||||
theme: "Koloraro"
|
||||
themeForLightMode: "Koloraro uzita en la luma modo"
|
||||
themeForDarkMode: "Koloraro uzita en la malluma modo"
|
||||
light: "Luma"
|
||||
dark: "Malluma"
|
||||
lightThemes: "Luma koloraro"
|
||||
darkThemes: "Malluma koloraro"
|
||||
syncDeviceDarkMode: "Speguli la luman modon de via aparato"
|
||||
drive: "Disko"
|
||||
fileName: "Dosiernomo"
|
||||
selectFile: "Elekti dosieron"
|
||||
@@ -239,24 +258,29 @@ deleteFolder: "Forviŝi dosierujon"
|
||||
addFile: "Aldoni dosieron"
|
||||
emptyDrive: "La disko malplenas"
|
||||
emptyFolder: "La dosierujo malplenas"
|
||||
unableToDelete: "Ne forigebla"
|
||||
inputNewFileName: "Entajpu nova nomon de la dosiero"
|
||||
inputNewFolderName: "Entajpu nova nomon de la dosierujo"
|
||||
unableToDelete: "Ne forviŝebla"
|
||||
inputNewFileName: "Entajpu novan nomon de la dosiero"
|
||||
inputNewDescription: "Entajpu novan priskribon"
|
||||
inputNewFolderName: "Entajpu novan nomon de la dosierujo"
|
||||
hasChildFilesOrFolders: "La dosierujo ne estas forviŝebla, ĉar ĝi ne malplenas."
|
||||
copyUrl: "Kopii URL"
|
||||
rename: "Alinomi"
|
||||
avatar: "Ikono"
|
||||
avatar: "Bildsimbolo"
|
||||
banner: "Standardo"
|
||||
nsfw: "Enhavo ne estas deca por laborejo (NSFW)"
|
||||
disconnectedFromServer: "Malkonektita de servilo"
|
||||
reload: "Reŝargi"
|
||||
doNothing: "Ignori"
|
||||
reloadConfirm: "Ĉu vi volas reŝargi?"
|
||||
watch: "Observi"
|
||||
unwatch: "Malobservi"
|
||||
accept: "Permesi"
|
||||
reject: "Malakcepti"
|
||||
normal: "Normala"
|
||||
instanceName: "Nomo de la nodo"
|
||||
instanceDescription: "Priskribo de la nodo "
|
||||
maintainerName: "Nomo de la administranto"
|
||||
maintainerEmail: "Retpoŝto de la administranto"
|
||||
maintainerEmail: "Retpoŝtadreso de la administranto"
|
||||
tosUrl: "URL de kondiĉoj de uzado"
|
||||
thisYear: "Ĉi-jare"
|
||||
thisMonth: "Ĉi-monate"
|
||||
@@ -265,6 +289,7 @@ dayX: "{day}a"
|
||||
monthX: "La {month}a monato"
|
||||
yearX: "La jaro {year}"
|
||||
pages: "Paĝoj"
|
||||
integration: "Integri"
|
||||
connectService: "Konekti"
|
||||
disconnectService: "Farkonektiĝi"
|
||||
enableLocalTimeline: "Ebligi lokan templinion"
|
||||
@@ -273,23 +298,28 @@ registration: "Registri"
|
||||
enableRegistration: "Ebligi novan uzanton registriĝon"
|
||||
invite: "Inviti"
|
||||
driveCapacityPerLocalAccount: "Volumo de disko po unu loka uzanto"
|
||||
driveCapacityPerRemoteAccount: "Volumo de disko po unu transa uzanto"
|
||||
iconUrl: "URL de la ikono (retpaĝsimbolo, ktp)"
|
||||
driveCapacityPerRemoteAccount: "Volumo de disko po unu fora uzanto"
|
||||
iconUrl: "URL de la bildsimbolo (retpaĝsimbolo, ktp.)"
|
||||
bannerUrl: "URL de standardo"
|
||||
backgroundImageUrl: "URL de fona bildo"
|
||||
backgroundImageUrl: "URL de la fona bildo"
|
||||
basicInfo: "Baza informo"
|
||||
pinnedUsers: "Alpinglita uzanto"
|
||||
pinnedUsersDescription: "Listigu uzantnomojn apartige en ĉiu linio por alpingli al la paĝoj ekz \"Esplori\"."
|
||||
pinnedPages: "Alpinglitaj paĝoj"
|
||||
pinnedPagesDescription: "Listigu dosierindiko apartige en ĉiu linio por alpingli al la ĉefpaĝo de la nodo."
|
||||
pinnedNotes: "Alpinglita noto"
|
||||
hcaptcha: "hCaptcha"
|
||||
enableHcaptcha: "Ebligi hCaptcha"
|
||||
hcaptchaSiteKey: "Reteja ŝlosilo"
|
||||
hcaptchaSecretKey: "Sekreta ŝlosilo"
|
||||
recaptcha: "reCAPTCHA"
|
||||
enableRecaptcha: "Ebligi reCAPTCHA'on"
|
||||
enableRecaptcha: "Ebligi reCAPTCHA"
|
||||
recaptchaSiteKey: "Reteja ŝlosilo"
|
||||
recaptchaSecretKey: "Sekreta ŝlosilo"
|
||||
antennas: "Antenoj"
|
||||
manageAntennas: "Administri antenojn"
|
||||
name: "Nomo"
|
||||
antennaSource: "Fonto de la anteno"
|
||||
notifyAntenna: "Oni sciigos novajn notojn"
|
||||
withFileAntenna: "Nur kun aldonaĵo"
|
||||
withReplies: "Inkluzive respondoj"
|
||||
@@ -311,29 +341,36 @@ userList: "Listoj"
|
||||
about: "Informoj"
|
||||
aboutMisskey: "Pri Misskey"
|
||||
administrator: "Administranto"
|
||||
token: "Peco"
|
||||
twoStepAuthentication: "Dua-faktora aŭtentiko"
|
||||
moderator: "Kontrolisto"
|
||||
nUsersMentioned: "{n} uzanto(j) menciis"
|
||||
securityKey: "Sekureca ŝlosilo"
|
||||
securityKeyName: "Nomo de la ŝlosilo"
|
||||
registerSecurityKey: "Registri ŝlosilon de sekureco"
|
||||
lastUsed: "Plej malnove uzita"
|
||||
unregister: "Malregistriĝi"
|
||||
passwordLessLogin: "Ensaluti sen pasvorto"
|
||||
passwordLessLogin: "Saluti sen pasvorto"
|
||||
resetPassword: "Restarigi pasvorton"
|
||||
newPasswordIs: "La nova pasvorto estas {password}."
|
||||
share: "Diskonigi"
|
||||
reduceUiAnimation: "Redukti la animaciojn de la fasado"
|
||||
share: "Kundividi"
|
||||
notFound: "Ne trovita"
|
||||
uploadFolder: "Dosierujo implicita por alŝuto"
|
||||
cacheClear: "Malplenigi staplon"
|
||||
markAsReadAllNotifications: "Marki ĉiujn sciigojn kiel legito"
|
||||
markAsReadAllNotifications: "Marki ĉiujn sciigojn kiel legita"
|
||||
help: "Manlibro de uzado"
|
||||
inputMessageHere: "Entajpu masaĝo tie ĉi"
|
||||
close: "Fermi"
|
||||
group: "Grupo"
|
||||
groups: "Grupoj"
|
||||
createGroup: "Krei grupon"
|
||||
ownedGroups: "Administrataj grupoj"
|
||||
joinedGroups: "Grupoj al kiuj vi aliĝis"
|
||||
invites: "Inviti"
|
||||
groupName: "Grupa nomo"
|
||||
members: "Membroj"
|
||||
transfer: "Movi"
|
||||
messagingWithUser: "Babili private"
|
||||
messagingWithGroup: "Babili grupe"
|
||||
title: "Titolo"
|
||||
@@ -342,35 +379,48 @@ enable: "Ebligi"
|
||||
next: "Sekve"
|
||||
retype: "Retajpu"
|
||||
noteOf: "Noto de {user}"
|
||||
inviteToGroup: "Inviti al grupo"
|
||||
quoteAttached: "Kun citaĵo"
|
||||
quoteQuestion: "Ĉu vi aldonas citaĵon?"
|
||||
noMessagesYet: "Ankoraŭ neniu mesaĝo"
|
||||
newMessageExists: "Vi ricevis novan mesaĝon."
|
||||
onlyOneFileCanBeAttached: "Oni povas aldoni nur unu dosieron po mesaĝo."
|
||||
signinRequired: "Bonvolu ensaluti"
|
||||
signinRequired: "Bonvolu saluti"
|
||||
invitations: "Inviti"
|
||||
invitationCode: "Invita kodo"
|
||||
invitationCode: "Kodo de invito"
|
||||
available: "Disposabla"
|
||||
unavailable: "Ne disponebla"
|
||||
usernameInvalidFormat: "La uzantnomo povas enhavi minusklajn kaj majusklajn literojn, numerojn, nur kaj '_'."
|
||||
tooShort: "Tro mallonga"
|
||||
tooLong: "Tro longa"
|
||||
weakPassword: "Malforta pasvorto"
|
||||
normalPassword: "Normala pasvorto"
|
||||
strongPassword: "Forta pasvorto"
|
||||
passwordMatched: "Konforma"
|
||||
passwordNotMatched: "Nekonforma"
|
||||
signinWith: "Saluti kun {x}"
|
||||
or: "Aŭ"
|
||||
language: "Lingvo"
|
||||
uiLanguage: "Lingvo de fasado"
|
||||
groupInvited: "Invitita al grupo"
|
||||
aboutX: "Pri {x}"
|
||||
useOsNativeEmojis: "Oni uzas la emoĵioj de la denaska sistemo"
|
||||
useOsNativeEmojis: "Uzi la emoĵiojn implicitan de la operaciumo"
|
||||
youHaveNoGroups: "Neniuj grupoj"
|
||||
noHistory: "Neniom historio"
|
||||
signinHistory: "Historio de aliroj al la konto"
|
||||
doing: "Traktado..."
|
||||
category: "Kategorio"
|
||||
tags: "Etikedoj"
|
||||
docSource: "Fonto de la dokumento"
|
||||
createAccount: "Krei konton"
|
||||
existingAccount: "Ekzista konto"
|
||||
existingAccount: "Ekzistan konton"
|
||||
regenerate: "Regeneri"
|
||||
fontSize: "Tipara grando"
|
||||
noFollowRequests: "Vi ne havas peto de sekvado"
|
||||
openImageInNewTab: "Fermi la bildon en nova tablo"
|
||||
openImageInNewTab: "Malfermi la bildojn en nova tablo"
|
||||
dashboard: "Stirpanelo"
|
||||
local: "Loka"
|
||||
remote: "Transa"
|
||||
remote: "Fora"
|
||||
total: "Entute"
|
||||
appearance: "Eksteraĵo"
|
||||
clientSettings: "Agordoj de kliento"
|
||||
@@ -378,11 +428,13 @@ accountSettings: "Agordoj de konto"
|
||||
numberOfDays: "Nombro de tagoj"
|
||||
hideThisNote: "Kaŝi la noton"
|
||||
objectStorageBaseUrl: "Baza URL"
|
||||
objectStoragePrefix: "Prefix"
|
||||
objectStorageRegion: "Regiono"
|
||||
objectStorageUseSSL: "Oni uzas SSL"
|
||||
objectStorageUseProxy: "Uzi retperilon"
|
||||
serverLogs: "Servila protokolo"
|
||||
deleteAll: "Forviŝi ĉiujn"
|
||||
newNoteRecived: "Jen estas novaj notoj"
|
||||
newNoteRecived: "Jen novaj notoj"
|
||||
sounds: "Sonoj"
|
||||
listen: "Aŭdi"
|
||||
none: "Neniu"
|
||||
@@ -390,8 +442,9 @@ showInPage: "Vidi en paĝo"
|
||||
popout: "Superigi"
|
||||
volume: "Laŭteco"
|
||||
masterVolume: "Baza laŭteco"
|
||||
details: "Detaloj"
|
||||
chooseEmoji: "Elekti emoĵion"
|
||||
recentUsed: "Lastatempaj uzitaj"
|
||||
recentUsed: "Lastatempe uzitaj"
|
||||
install: "Instali"
|
||||
uninstall: "Malinstali"
|
||||
installedApps: "Instalita programo"
|
||||
@@ -400,23 +453,28 @@ installedDate: "Dato de instalado"
|
||||
lastUsedDate: "Lastfoje uzita je"
|
||||
state: "Stato"
|
||||
sort: "Ordigado"
|
||||
ascendingOrder: "Kreski"
|
||||
descendingOrder: "Malkreski"
|
||||
scratchpad: "Malneta redaktilo"
|
||||
output: "Elmeto"
|
||||
script: "Skripto"
|
||||
disablePagesScript: "Malebligi AiScripto en la paĝoj"
|
||||
disablePagesScript: "Malebligi AiScript en la paĝoj"
|
||||
deleteAllFiles: "Forviŝi ĉiujn dosierojn"
|
||||
deleteAllFilesConfirm: "Ĉu vi certas, ke vi volas forviŝi ĉiujn dosierojn?"
|
||||
removeAllFollowing: "Ĉesi sekvi ĉiujn sekvatojn"
|
||||
userSuspended: "Ĉi tiu uzanto estas flostigita."
|
||||
userSilenced: "Ĉi tiu uzanto estas mutigita."
|
||||
menu: "Menuo"
|
||||
addItem: "Aldoni novaĵon"
|
||||
rooms: "Ĉambro"
|
||||
deletedNote: "Forviŝita noto"
|
||||
invisibleNote: "Malpublika noto"
|
||||
invisibleNote: "Malpublikigita noto"
|
||||
enableInfiniteScroll: "Ebligi infinitan rulumon"
|
||||
visibility: "Videbleco"
|
||||
poll: "Balotujo"
|
||||
useCw: "Kaŝi enhavo"
|
||||
enablePlayer: "Vidi videon"
|
||||
disablePlayer: "Fermi videon"
|
||||
enablePlayer: "Vidigi la filmeton"
|
||||
disablePlayer: "Malfermi la filmeton"
|
||||
expandTweet: "Disvolvi pepon"
|
||||
themeEditor: "Redaktilo de koloraroj"
|
||||
description: "Priskribo"
|
||||
@@ -426,16 +484,24 @@ author: "Aŭtoro"
|
||||
manage: "Administro"
|
||||
plugins: "Kromaĵoj"
|
||||
deck: "Kartaro"
|
||||
useFullReactionPicker: "Uzi la tuton de la elektilon de reagoj"
|
||||
width: "Larĝeco"
|
||||
height: "Alteco"
|
||||
large: "Granda"
|
||||
medium: "Meza"
|
||||
small: "Malgranda"
|
||||
generateAccessToken: "Generi aŭtentikigan pecon"
|
||||
permission: "Permesoj"
|
||||
enableAll: "Ebligi ĉiujn"
|
||||
disableAll: "Malebligi ĉiujn"
|
||||
notificationType: "Tipo de sciigoj"
|
||||
edit: "Redakti"
|
||||
emailServer: "Retpoŝta servilo"
|
||||
enableEmail: "Ebligi dissendon el retpoŝto"
|
||||
email: "Retpoŝto"
|
||||
emailAddress: "Retpoŝta adreso"
|
||||
emailAddress: "Retpoŝtadreso"
|
||||
smtpConfig: "Agordoj de SMTP servilo"
|
||||
smtpHost: "Gastigo"
|
||||
smtpHost: "Transa servilo"
|
||||
smtpPort: "Pordo"
|
||||
smtpUser: "Uzantnomo"
|
||||
smtpPass: "Pasvorto"
|
||||
@@ -444,34 +510,43 @@ userSaysSomething: "{name} parolis ion"
|
||||
makeActive: "Aktivigi"
|
||||
display: "Vidi"
|
||||
copy: "Kopii"
|
||||
metrics: "mezurciferoj"
|
||||
overview: "Resumo"
|
||||
logs: "Protokoloj"
|
||||
delayed: "Prokrasto "
|
||||
database: "Datumbazo"
|
||||
channel: "Kanalo"
|
||||
create: "Krei"
|
||||
notificationSetting: "Agordoj de sciigoj"
|
||||
useGlobalSetting: "Oni uzas malloka agordo"
|
||||
other: "Aliaj"
|
||||
regenerateLoginToken: "Regeneri la aŭtentikigan pecon"
|
||||
fileIdOrUrl: "Dosiera identigilo aŭ URL"
|
||||
chatOpenBehavior: "Konduto por malfermi la fenestron de babilejo"
|
||||
behavior: "Konduto"
|
||||
sample: "Ekzemplo"
|
||||
abuseReports: "Signaloj"
|
||||
reportAbuse: "Signalo"
|
||||
reportAbuseOf: "Signali kontraŭ {name}'(o)"
|
||||
reportAbuseOf: "Signali kontraŭ {name}"
|
||||
send: "Sendi"
|
||||
openInNewTab: "Malfermi en nova langeto"
|
||||
editTheseSettingsMayBreakAccount: "Redakti ĉi tiujn agordojn povas damaĝi vian konton."
|
||||
instanceTicker: "Informoj pri la nodo kiu dissendas la noton"
|
||||
instanceTicker: "Nomo de la nodo sendinta notojn"
|
||||
waitingFor: "Atendado pro {x}"
|
||||
random: "Hazarde"
|
||||
system: "Sistemo"
|
||||
switchUi: "Modifi la aspektigon"
|
||||
desktop: "Labortablo"
|
||||
createNew: "Krei novan"
|
||||
optional: "Opciaj"
|
||||
public: "Publika"
|
||||
i18nInfo: "Misskey estas tradukata en diversaj lingvoj far volontuloj. Oni povas kontribui por la tradukado ĉe {link}."
|
||||
i18nInfo: "Misskey estas tradukata en diversaj lingvoj de volontuloj. Oni povas kontribui ĉe {link}."
|
||||
accountInfo: "Kontaj Informoj"
|
||||
notesCount: "La nombro de notoj"
|
||||
repliesCount: "La nombro de respondoj senditaj"
|
||||
renotesCount: "La nombro de notoj kiujn la uzanto plusendis"
|
||||
renotesCount: "La nombro de notoj plusenditaj de la uzanto"
|
||||
repliedCount: "La nombro de respondoj ricevitaj"
|
||||
renotedCount: "La nombro de uzantulaj notoj plusenditaj"
|
||||
renotedCount: "La nombro de plusendoj de la notoj skribitaj de la uzanto"
|
||||
followingCount: "La nombro de sekvatoj"
|
||||
followersCount: "La nombro de sekvantoj"
|
||||
sentReactionsCount: "La nombro de la reagoj senditaj"
|
||||
@@ -485,22 +560,29 @@ noteFavoritesCount: "La nombro de notoj preferataj"
|
||||
pageLikesCount: "La nombro de paĝoj kiun la uzanto preferas"
|
||||
pageLikedCount: "La nombro de uzantoj, kiuj preferas paĝon de ĉi tiu uzanto"
|
||||
contact: "Kontakto"
|
||||
useSystemFont: "Uzi la tiparon implicitan de la sistemo"
|
||||
developer: "Evoluiganto"
|
||||
makeExplorable: "Videbligi konton sur la paĝo \"Esplori\""
|
||||
makeExplorableDescription: "Se vi elŝaltas tiun, via konto ne montros en la paĝo \"Esplori\"."
|
||||
duplicate: "Duobligi"
|
||||
left: "Maldekstra"
|
||||
center: "Centra"
|
||||
wide: "Vasta"
|
||||
narrow: "Malvasta"
|
||||
showTitlebar: "Videbligi titolan stangon"
|
||||
clearCache: "Malplenigi staplon"
|
||||
onlineUsersCount: "{n} uzanto(j) estas surlinea"
|
||||
onlineUsersCount: "{n} uzantoj estas surlineaj"
|
||||
nUsers: "{n} uzanto(j)"
|
||||
nNotes: "{n} notoj"
|
||||
myTheme: "Miaj koloraroj"
|
||||
backgroundColor: "Fona koloro"
|
||||
textColor: "Teksto"
|
||||
saveAs: "Konservi kiel…"
|
||||
advanced: "Altnivela"
|
||||
value: "Valoro"
|
||||
createdAt: "Kreita je"
|
||||
updatedAt: "Laste ĝisdatigita"
|
||||
saveConfirm: "Ĉu vi konservas la ŝanĝon?"
|
||||
deleteConfirm: "Ĉu certas forviŝi?"
|
||||
closeAccount: "Forigi konton"
|
||||
currentVersion: "Nuna versio"
|
||||
@@ -509,11 +591,13 @@ youAreRunningUpToDateClient: "Vi uzas la plej novan version de via kliento."
|
||||
newVersionOfClientAvailable: "Nova versio de via kliento estas disponebla."
|
||||
inUse: "Uzata"
|
||||
editCode: "Redakti kodon"
|
||||
receiveAnnouncementFromInstance: "Ricevi informojn sciigintajn de la nodo"
|
||||
emailNotification: "Sciigoj per retpoŝto"
|
||||
inChannelSearch: "Serĉi en kanalo"
|
||||
useReactionPickerForContextMenu: "Malfermi reago-elektilon per dekstro-klaki"
|
||||
typingUsers: "{users} nun entajpas…"
|
||||
useReactionPickerForContextMenu: "Dekstre-klaki por malfermi la elektilon de reagoj"
|
||||
typingUsers: "{users} nun skribas…"
|
||||
clear: "Vakigi"
|
||||
markAllAsRead: "Marki ĉiujn kiel legito"
|
||||
goBack: "Reiri antaŭ"
|
||||
addDescription: "Priskribi"
|
||||
info: "Informoj"
|
||||
@@ -532,7 +616,7 @@ memo: "Memorigilo"
|
||||
high: "Alta"
|
||||
middle: "Meza"
|
||||
low: "Malalta"
|
||||
customCss: "Uzantula CSS"
|
||||
customCss: "Personecigita CSS"
|
||||
global: "Malloka"
|
||||
sent: "Sendi"
|
||||
received: "Ricevita"
|
||||
@@ -542,20 +626,38 @@ troubleshooting: "Problemsolvi"
|
||||
learnMore: "Lernu pli"
|
||||
translate: "Traduki"
|
||||
translatedFrom: "Tradukita el {x}"
|
||||
breakFollow: "Ĉesigi la sekvadon al vi"
|
||||
itsOn: "Ŝaltita"
|
||||
unread: "Nelegita"
|
||||
controlPanel: "Ŝaltpodio"
|
||||
classic: "Klasika"
|
||||
_docs:
|
||||
continueReading: "Legi plu"
|
||||
features: "Funkcioj"
|
||||
admin: "Administro"
|
||||
ffVisibility: "Videbleco pri viaj sekvataro/sekvantaro\n"
|
||||
ffVisibilityDescription: "Agordi la videblecon kiu povas vidi tiujn kiujn vi sekvas kaj tiujn kiuj sekvas vin."
|
||||
continueThread: "Vidi pli mesaĝarojn"
|
||||
incorrectPassword: "Nevalida pasvorto"
|
||||
_emailUnavailable:
|
||||
used: "La retpoŝto jam estas uzita."
|
||||
format: "Nevalida formato."
|
||||
disposable: "Dumtempa retpoŝto ne estas uzebla."
|
||||
smtp: "Tiu retpoŝta servilo ne respondas"
|
||||
_ffVisibility:
|
||||
public: "Publika"
|
||||
followers: "Afiŝi nur al sekvantoj"
|
||||
private: "Malpublikigita"
|
||||
_signup:
|
||||
emailAddressInfo: "Entajpu vian retpoŝton"
|
||||
_accountDelete:
|
||||
accountDelete: "Forigi konton"
|
||||
_ad:
|
||||
back: "Nuligi"
|
||||
_forgotPassword:
|
||||
enterEmail: "Entajpu la retpoŝton kiun vi registrigis al via konto. Ligilo por restarigi pasvorton estos sendita al la retpoŝto."
|
||||
_gallery:
|
||||
liked: "Ŝatitaj notoj"
|
||||
like: "Ŝati"
|
||||
_email:
|
||||
_follow:
|
||||
title: "Vi estas eksekvita"
|
||||
title: "Eksekvis vin"
|
||||
_receiveFollowRequest:
|
||||
title: "Vi ricevis peton de sekvado"
|
||||
_plugin:
|
||||
@@ -571,7 +673,7 @@ _aboutMisskey:
|
||||
contributors: "Precipaj kontribuantoj"
|
||||
allContributors: "Ĉiuj kontribuantoj"
|
||||
source: "Fontkodo"
|
||||
translation: "Traduki Misskey'on"
|
||||
translation: "Traduki Misskey"
|
||||
patrons: "Mecenatoj"
|
||||
_mfm:
|
||||
dummy: "Misskey evoluigas la mondon de Fediverso"
|
||||
@@ -587,19 +689,21 @@ _mfm:
|
||||
inlineMath: "Formulo (en linio)"
|
||||
blockMath: "Formulo (bloko)"
|
||||
quote: "Citi"
|
||||
emoji: "Personecigitaj emoĵioj"
|
||||
search: "Serĉi"
|
||||
flip: "Inversa"
|
||||
x2: "Granda"
|
||||
x3: "Grandega"
|
||||
x4: "Pli grandega"
|
||||
font: "Presliteraro"
|
||||
rotate: "Orientiĝo"
|
||||
_reversi:
|
||||
total: "Entute"
|
||||
_instanceTicker:
|
||||
none: "Ne montri"
|
||||
remote: "Montri al transaj uzantoj"
|
||||
remote: "Montri al foraj uzantoj"
|
||||
always: "Ĉiam montri"
|
||||
_serverDisconnectedBehavior:
|
||||
reload: "Aŭtomate reŝargi"
|
||||
_channel:
|
||||
create: "Krei kanalon"
|
||||
edit: "Redakti kanalon"
|
||||
@@ -613,13 +717,14 @@ _menuDisplay:
|
||||
hide: "Kaŝi"
|
||||
_wordMute:
|
||||
muteWords: "Silentigitaj vortoj"
|
||||
soft: "En kliento"
|
||||
hard: "En servilo"
|
||||
soft: "Per la kliento"
|
||||
hard: "Per la servilo"
|
||||
mutedNotes: "Silentigitaj notoj"
|
||||
_theme:
|
||||
manage: "Administri kolorarojn"
|
||||
code: "Kolorara kodo"
|
||||
description: "Priskribo"
|
||||
defaultValue: "Implicitaĵa valoro"
|
||||
color: "Koloro"
|
||||
darken: "Malbrileco"
|
||||
lighten: "Brileco"
|
||||
@@ -630,7 +735,7 @@ _theme:
|
||||
hashtag: "Kradvorto"
|
||||
mention: "Mencioj"
|
||||
mentionMe: "Mencio al vi"
|
||||
renote: "Noto plusendita"
|
||||
renote: "Plusendita"
|
||||
buttonBg: "Fono de butono"
|
||||
driveFolderBg: "Fono de dosierujo de la disko"
|
||||
messageBg: "Fono de retbabilejo"
|
||||
@@ -640,15 +745,15 @@ _sfx:
|
||||
notification: "Sciigoj"
|
||||
chat: "Retbabili"
|
||||
chatBg: "Retbabili (BG)"
|
||||
antenna: "Ricevo de anteno"
|
||||
antenna: "Ricevo de la anteno"
|
||||
channel: "Sciigoj de kanalo"
|
||||
_ago:
|
||||
future: "Futuro"
|
||||
justNow: "Ĵus"
|
||||
secondsAgo: "Antaŭ {n} sekundo(j)"
|
||||
secondsAgo: "Antaŭ {n} sekundoj"
|
||||
minutesAgo: "Antaŭ {n} minutoj"
|
||||
hoursAgo: "Antaŭ {n} horo(j)"
|
||||
daysAgo: "Antaŭ {n} tagoj"
|
||||
daysAgo: "Antaŭ {n} tago(j)"
|
||||
weeksAgo: "Antaŭ {n} semajnoj"
|
||||
monthsAgo: "Antaŭ {n} monatoj"
|
||||
yearsAgo: "Antaŭ {n} jaroj"
|
||||
@@ -661,7 +766,7 @@ _tutorial:
|
||||
title: "Uzado de Misskey"
|
||||
step1_1: "Bonvenon."
|
||||
step7_2: "Se vi volas scii pli pri Misskey, rigardu la fakon {help}."
|
||||
step7_3: "Do, bonvolu amuziĝi Misskey'on🚀"
|
||||
step7_3: "Do, bonvolu amuziĝi sur Misskey🚀"
|
||||
_2fa:
|
||||
registerKey: "Nove registri ŝlosilon"
|
||||
_permissions:
|
||||
@@ -685,6 +790,7 @@ _permissions:
|
||||
"read:reactions": "Vidi reagojn"
|
||||
"write:reactions": "Redakti viajn reagojn"
|
||||
"read:page-likes": "Vidi ŝatojn de paĝo"
|
||||
"read:user-groups": "Vidi viajn grupojn de uzantoj"
|
||||
"read:channels": "Vidi kanalojn"
|
||||
_antennaSources:
|
||||
all: "Ĉiuj notoj"
|
||||
@@ -702,13 +808,13 @@ _widgets:
|
||||
timeline: "Templinio"
|
||||
clock: "Horloĝo"
|
||||
activity: "Aktiveco"
|
||||
federation: "Kunfederaĵo"
|
||||
federation: "Federaĵo"
|
||||
slideshow: "Bildoprezento"
|
||||
button: "Butono"
|
||||
onlineUsers: "Surkonektita uzanto"
|
||||
onlineUsers: "Surkonektitaj uzantoj"
|
||||
aichan: "Ai"
|
||||
_cw:
|
||||
show: "Vidu pli"
|
||||
show: "Vidi pli"
|
||||
files: "{count} dosiero(j)"
|
||||
_poll:
|
||||
choiceN: "Balotilo {n}"
|
||||
@@ -720,35 +826,35 @@ _poll:
|
||||
closed: "Oni jam balotis ĝin"
|
||||
_visibility:
|
||||
public: "Publika"
|
||||
publicDescription: "Via noto estos videbla de ĉiuj uzantoj"
|
||||
publicDescription: "Afiŝi al ĉiuj en la Fediverso"
|
||||
home: "Hejma"
|
||||
homeDescription: "Dissendi nur sur hejma templinio"
|
||||
followers: "Nur al sekvantoj"
|
||||
followersDescription: "Publiki nur al viaj sekvantoj"
|
||||
followersDescription: "Afiŝi nur al sekvantoj"
|
||||
specified: "Rekte"
|
||||
specifiedDescription: "Montri nur al specifaj uzantoj"
|
||||
specifiedDescription: "Afiŝi nur al specifaj uzantoj"
|
||||
localOnly: "Nur loka"
|
||||
localOnlyDescription: "Ne montri al transaj uzantoj"
|
||||
localOnlyDescription: "Ne afiŝi al foraj uzantoj"
|
||||
_postForm:
|
||||
replyPlaceholder: "Respondi la noton…"
|
||||
quotePlaceholder: "Citi la noton…"
|
||||
channelPlaceholder: "Mencii en kanalo…"
|
||||
channelPlaceholder: "Mencii en la kanalo…"
|
||||
_profile:
|
||||
name: "Nomo"
|
||||
username: "Uzantnomo"
|
||||
description: "Sinprezento"
|
||||
metadata: "Kromaj informoj"
|
||||
metadataEdit: "Redakti kromaj informoj"
|
||||
metadataEdit: "Redakti kromajn informojn"
|
||||
changeAvatar: "Ŝanĝi profilbildon"
|
||||
changeBanner: "Ŝanĝi standardon"
|
||||
_exportOrImport:
|
||||
allNotes: "Ĉiuj notoj"
|
||||
followingList: "Sekvataj uzantoj"
|
||||
followingList: "Sekvatoj"
|
||||
muteList: "Silentigoj"
|
||||
blockingList: "Blokitoj"
|
||||
userLists: "Listoj"
|
||||
_charts:
|
||||
federationInstancesTotal: "La totala nombro de nodoj kunfederantaj"
|
||||
federationInstancesTotal: "La totala nombro de nodoj federantaj"
|
||||
usersTotal: "La totala nombro de la uzantoj"
|
||||
activeUsers: "La nombro de la uzantoj aktivaj"
|
||||
notesTotal: "La totala nombro de notoj"
|
||||
@@ -761,6 +867,8 @@ _timelines:
|
||||
_rooms:
|
||||
translate: "Movi"
|
||||
chooseImage: "Elekti bildon"
|
||||
_roomType:
|
||||
default: "Implicitaĵo"
|
||||
_furnitures:
|
||||
bed: "Lito"
|
||||
low-table: "Malaltotablo"
|
||||
@@ -790,10 +898,12 @@ _pages:
|
||||
featured: "Ravaĵoj"
|
||||
contents: "Enhavo"
|
||||
content: "Paĝo en bloko"
|
||||
title: "Temlinio"
|
||||
url: "URL de paĝo"
|
||||
alignCenter: "Centrigi"
|
||||
chooseBlock: "Aldoni blokon"
|
||||
contentBlocks: "Enhavo"
|
||||
inputBlocks: "Enigo"
|
||||
blocks:
|
||||
text: "Teksto"
|
||||
textarea: "Areo de teksto"
|
||||
@@ -802,21 +912,38 @@ _pages:
|
||||
_post:
|
||||
canvasId: "Kanvasa identigilo"
|
||||
textInput: "Enmeto el teksto"
|
||||
_textInput:
|
||||
text: "Titolo"
|
||||
default: "Implicitaĵa valoro"
|
||||
textareaInput: "Enmeto el teksto en multaj linioj"
|
||||
_textareaInput:
|
||||
text: "Titolo"
|
||||
default: "Implicitaĵa valoro"
|
||||
numberInput: "Nombra enmeto"
|
||||
_numberInput:
|
||||
text: "Titolo"
|
||||
default: "Implicitaĵa valoro"
|
||||
_canvas:
|
||||
id: "Kanvasa identigilo"
|
||||
width: "Larĝeco"
|
||||
_note:
|
||||
id: "Identigilo de noto"
|
||||
_switch:
|
||||
text: "Titolo"
|
||||
default: "Implicitaĵa valoro"
|
||||
_counter:
|
||||
text: "Titolo"
|
||||
_button:
|
||||
text: "Titolo"
|
||||
_action:
|
||||
_dialog:
|
||||
content: "Enhavo"
|
||||
_pushEvent:
|
||||
event: "Nomo de la evento"
|
||||
no-variable: "Neniu"
|
||||
_radioButton:
|
||||
title: "Titolo"
|
||||
default: "Implicitaĵa valoro"
|
||||
script:
|
||||
categories:
|
||||
text: "Manipulo de teksto"
|
||||
@@ -835,6 +962,7 @@ _pages:
|
||||
arg1: "Teksto"
|
||||
_join:
|
||||
arg1: "Listoj"
|
||||
arg2: "apartigilo"
|
||||
_randomPick:
|
||||
arg1: "Listoj"
|
||||
_dailyRandomPick:
|
||||
@@ -862,6 +990,10 @@ _pages:
|
||||
stringArray: "List de teksto"
|
||||
emptySlot: "Malplena junto"
|
||||
argVariables: "Eniga junto"
|
||||
_relayStatus:
|
||||
requesting: "Atendado de aprobon"
|
||||
accepted: "Konfirmita"
|
||||
rejected: "Malakceptita"
|
||||
_notification:
|
||||
fileUploaded: "La dosiero sukcese alŝutiĝis."
|
||||
youGotMention: "{name} mencis"
|
||||
@@ -874,16 +1006,18 @@ _notification:
|
||||
youWereFollowed: "eksekvis vin"
|
||||
youReceivedFollowRequest: "Vi ricevis peton de sekvado"
|
||||
yourFollowRequestAccepted: "Via peto de sekvado estis akceptita."
|
||||
youWereInvitedToGroup: "Invitita al grupo"
|
||||
_types:
|
||||
all: "Ĉio"
|
||||
follow: "Nova sekvatoj"
|
||||
follow: "Novaj sekvatoj"
|
||||
mention: "Mencioj"
|
||||
reply: "Respondoj"
|
||||
renote: "Notoj plusenditaj"
|
||||
renote: "Plusendoj"
|
||||
quote: "Citi"
|
||||
reaction: "Reagoj"
|
||||
receiveFollowRequest: "Ricevita peton de sekvado"
|
||||
receiveFollowRequest: "Ricevi peton de sekvado"
|
||||
followRequestAccepted: "Akceptita peto por sekvado"
|
||||
groupInvited: "Invitita al grupo"
|
||||
_deck:
|
||||
profile: "Agordaro"
|
||||
_columns:
|
||||
@@ -891,5 +1025,5 @@ _deck:
|
||||
tl: "Templinio"
|
||||
antenna: "Antenoj"
|
||||
list: "Listoj"
|
||||
mentions: "Al vi"
|
||||
mentions: "Mencioj"
|
||||
direct: "Rekte"
|
||||
|
@@ -737,10 +737,10 @@ pubSub: "Cuentas Pub/Sub"
|
||||
lastCommunication: "Última comunicación"
|
||||
resolved: "Resuelto"
|
||||
unresolved: "Sin resolver"
|
||||
controlPanel: "Panel de control"
|
||||
hide: "Ocultar"
|
||||
_accountDelete:
|
||||
accountDelete: "Eliminar Cuenta"
|
||||
_docs:
|
||||
admin: "Administrar"
|
||||
_ad:
|
||||
back: "Deseleccionar"
|
||||
_gallery:
|
||||
@@ -769,6 +769,7 @@ _mfm:
|
||||
flip: "Echar de un capirotazo"
|
||||
flipDescription: "Voltea el contenido hacia arriba / abajo o hacia la izquierda / derecha."
|
||||
font: "Fuente"
|
||||
rotate: "Rotar"
|
||||
_reversi:
|
||||
reversi: "Reversi"
|
||||
gameSettings: "Configuración del juego"
|
||||
|
@@ -798,6 +798,7 @@ filter: "Filtre"
|
||||
controlPanel: "Panneau de contrôle"
|
||||
manageAccounts: "Gérer les comptes"
|
||||
classic: "Classique"
|
||||
hide: "Masquer"
|
||||
_emailUnavailable:
|
||||
format: "Le format de cette adresse de courriel est invalide"
|
||||
mx: "Ce serveur de courriels est invalide"
|
||||
@@ -919,6 +920,7 @@ _mfm:
|
||||
rainbowDescription: "Permet d'afficher le contenu en couleurs arc-en-ciel."
|
||||
sparkle: "Paillettes"
|
||||
sparkleDescription: "Ajoute un effet scintillant au contenu."
|
||||
rotate: "Pivoter"
|
||||
_reversi:
|
||||
reversi: "Reversi"
|
||||
gameSettings: "Réglages de la partie"
|
||||
|
@@ -806,6 +806,11 @@ muteThread: "Bisukan thread"
|
||||
unmuteThread: "Suarakan thread"
|
||||
ffVisibility: "Visibilitas Mengikuti/Pengikut"
|
||||
ffVisibilityDescription: "Mengatur siapa yang dapat melihat pengikutmu dan yang kamu ikuti."
|
||||
continueThread: "Lihat lanjutan thread"
|
||||
deleteAccountConfirm: "Akun akan dihapus. Apakah kamu yakin?"
|
||||
incorrectPassword: "Kata sandi salah."
|
||||
voteConfirm: "Konfirmasi suara kamu untuk ({choice})?"
|
||||
hide: "Sembunyikan"
|
||||
_emailUnavailable:
|
||||
used: "Alamat surel ini telah digunakan"
|
||||
format: "Format tidak valid."
|
||||
@@ -929,6 +934,8 @@ _mfm:
|
||||
rainbowDescription: "Membuat konten muncul dalam warna pelangi."
|
||||
sparkle: "Kelap-kelip"
|
||||
sparkleDescription: "Memberikan konten efek partikel kelap-kelip."
|
||||
rotate: "Putar"
|
||||
rotateDescription: "Putar konten sesuai sudut yang ditentukan."
|
||||
_reversi:
|
||||
reversi: "Reversi"
|
||||
gameSettings: "Pengaturan permainan"
|
||||
|
@@ -745,10 +745,9 @@ global: "Federata"
|
||||
sent: "Inviare"
|
||||
hashtags: "Hashtag"
|
||||
troubleshooting: "Risoluzione problemi"
|
||||
_docs:
|
||||
continueReading: "Leggi di più"
|
||||
features: "Funzionalità"
|
||||
admin: "Gestione"
|
||||
hide: "Nascondere"
|
||||
_ffVisibility:
|
||||
public: "Pubblico"
|
||||
_ad:
|
||||
back: "Indietro"
|
||||
reduceFrequencyOfThisAd: "Visualizza questa pubblicità meno spesso"
|
||||
@@ -808,6 +807,7 @@ _mfm:
|
||||
font: "Tipo di carattere"
|
||||
fontDescription: "Puoi scegliere il tipo di carattere per il contenuto."
|
||||
rainbow: "Arcobaleno"
|
||||
rotate: "Ruota"
|
||||
_reversi:
|
||||
reversi: "Reversi"
|
||||
gameSettings: "Impostazioni di gioco"
|
||||
|
@@ -592,6 +592,7 @@ smtpSecure: "SMTP 接続に暗黙的なSSL/TLSを使用する"
|
||||
smtpSecureInfo: "STARTTLS使用時はオフにします。"
|
||||
testEmail: "配信テスト"
|
||||
wordMute: "ワードミュート"
|
||||
instanceMute: "インスタンスミュート"
|
||||
userSaysSomething: "{name}が何かを言いました"
|
||||
makeActive: "アクティブにする"
|
||||
display: "表示"
|
||||
@@ -792,6 +793,7 @@ pubSub: "Pub/Subのアカウント"
|
||||
lastCommunication: "直近の通信"
|
||||
resolved: "解決済み"
|
||||
unresolved: "未解決"
|
||||
breakFollow: "フォロワーを解除"
|
||||
itsOn: "オンになっています"
|
||||
itsOff: "オフになっています"
|
||||
emailRequiredForSignup: "アカウント登録にメールアドレスを必須にする"
|
||||
@@ -806,6 +808,13 @@ muteThread: "スレッドをミュート"
|
||||
unmuteThread: "スレッドのミュートを解除"
|
||||
ffVisibility: "つながりの公開範囲"
|
||||
ffVisibilityDescription: "自分のフォロー/フォロワー情報の公開範囲を設定できます。"
|
||||
continueThread: "さらにスレッドを見る"
|
||||
deleteAccountConfirm: "アカウントが削除されます。よろしいですか?"
|
||||
incorrectPassword: "パスワードが間違っています。"
|
||||
voteConfirm: "「{choice}」に投票しますか?"
|
||||
hide: "隠す"
|
||||
leaveGroup: "グループから抜ける"
|
||||
leaveGroupConfirm: "「{name}」から抜けますか?"
|
||||
|
||||
_emailUnavailable:
|
||||
used: "既に使用されています"
|
||||
@@ -821,7 +830,7 @@ _ffVisibility:
|
||||
|
||||
_signup:
|
||||
almostThere: "ほとんど完了です"
|
||||
emailAddressInfo: "あなたが使っているメールアドレスを入力してください。"
|
||||
emailAddressInfo: "あなたが使っているメールアドレスを入力してください。メールアドレスが公開されることはありません。"
|
||||
emailSent: "入力されたメールアドレス({email})宛に確認のメールが送信されました。メールに記載されたリンクにアクセスすると、アカウントの作成が完了します。"
|
||||
|
||||
_accountDelete:
|
||||
@@ -942,6 +951,8 @@ _mfm:
|
||||
rainbowDescription: "内容をレインボーにします。"
|
||||
sparkle: "キラキラ"
|
||||
sparkleDescription: "キラキラしたパーティクルのエフェクトを追加します。"
|
||||
rotate: "回転"
|
||||
rotateDescription: "指定した角度で回転させます。"
|
||||
|
||||
_reversi:
|
||||
reversi: "リバーシ"
|
||||
@@ -1014,6 +1025,12 @@ _wordMute:
|
||||
hard: "ハード"
|
||||
mutedNotes: "ミュートされたノート"
|
||||
|
||||
_instanceMute:
|
||||
instanceMuteDescription: "ミュートしたインスタンスのユーザーへの返信を含めて、設定したインスタンスの全てのノートとRenoteをミュートします。"
|
||||
instanceMuteDescription2: "改行で区切って設定します"
|
||||
title: "設定したインスタンスのノートを隠します。"
|
||||
heading: "ミュートするインスタンス"
|
||||
|
||||
_theme:
|
||||
explore: "テーマを探す"
|
||||
install: "テーマのインストール"
|
||||
@@ -1304,6 +1321,8 @@ _exportOrImport:
|
||||
muteList: "ミュート"
|
||||
blockingList: "ブロック"
|
||||
userLists: "リスト"
|
||||
excludeMutingUsers: "ミュートしているユーザーを除外"
|
||||
excludeInactiveUsers: "使われていないアカウントを除外"
|
||||
|
||||
_charts:
|
||||
federationInstancesIncDec: "連合の増減"
|
||||
|
@@ -653,8 +653,7 @@ low: "低い"
|
||||
global: "グローバル"
|
||||
sent: "送信"
|
||||
hashtags: "ハッシュタグ"
|
||||
_docs:
|
||||
admin: "管理"
|
||||
hide: "隠す"
|
||||
_ad:
|
||||
back: "戻る"
|
||||
_gallery:
|
||||
@@ -702,6 +701,7 @@ _mfm:
|
||||
spin: "アニメーション(回転)"
|
||||
blur: "ぼかし"
|
||||
font: "フォント"
|
||||
rotate: "回転"
|
||||
_reversi:
|
||||
reversi: "リバーシ"
|
||||
gameSettings: "対局の設定"
|
||||
|
@@ -81,6 +81,8 @@ somethingHappened: "오류가 발생했습니다"
|
||||
retry: "다시 시도"
|
||||
pageLoadError: "페이지를 불러오지 못했습니다."
|
||||
pageLoadErrorDescription: "네트워크 연결 또는 브라우저 캐시로 인해 발생했을 가능성이 높습니다. 캐시를 삭제하거나, 잠시 후 다시 시도해 주세요."
|
||||
serverIsDead: "서버로부터 응답이 없습니다. 잠시 후 다시 시도해주세요."
|
||||
youShouldUpgradeClient: "이 페이지를 표시하려면 새로고침하여 새로운 버전의 클라이언트를 이용해 주십시오."
|
||||
enterListName: "리스트 이름을 입력"
|
||||
privacy: "프라이버시"
|
||||
makeFollowManuallyApprove: "팔로우를 수동으로 승인"
|
||||
@@ -590,6 +592,7 @@ smtpSecure: "SMTP 연결에 Implicit SSL/TTS 사용"
|
||||
smtpSecureInfo: "STARTTLS 사용 시에는 해제합니다."
|
||||
testEmail: "이메일 전송 테스트"
|
||||
wordMute: "단어 뮤트"
|
||||
instanceMute: "인스턴스 뮤트"
|
||||
userSaysSomething: "{name}님이 무언가를 말했습니다"
|
||||
makeActive: "활성화"
|
||||
display: "표시"
|
||||
@@ -618,6 +621,8 @@ reportAbuse: "신고"
|
||||
reportAbuseOf: "{name}을 신고하기"
|
||||
fillAbuseReportDescription: "신고하려는 이유를 자세히 알려주세요. 특정 게시물을 신고할 때에는 게시물의 URL도 포함해 주세요."
|
||||
abuseReported: "신고를 보냈습니다. 신고해 주셔서 감사합니다."
|
||||
reporteeOrigin: "피신고자"
|
||||
reporterOrigin: "신고자"
|
||||
send: "전송"
|
||||
abuseMarkAsResolved: "해결됨으로 표시"
|
||||
openInNewTab: "새 탭에서 열기"
|
||||
@@ -764,6 +769,7 @@ middle: "보통"
|
||||
low: "낮음"
|
||||
emailNotConfiguredWarning: "메일 주소가 설정되어 있지 않습니다."
|
||||
ratio: "비율"
|
||||
previewNoteText: "본문 미리보기"
|
||||
customCss: "CSS 사용자화"
|
||||
customCssWarn: "이 설정은 기능을 알고 있는 경우에만 사용해야 합니다. 잘못된 값을 입력하면 클라이언트가 정상적으로 작동하지 않을 수 있습니다."
|
||||
global: "글로벌"
|
||||
@@ -787,7 +793,40 @@ pubSub: "Pub/Sub 계정"
|
||||
lastCommunication: "마지막 통신"
|
||||
resolved: "해결됨"
|
||||
unresolved: "해결되지 않음"
|
||||
breakFollow: "팔로워 해제"
|
||||
itsOn: "켜짐"
|
||||
itsOff: "꺼짐"
|
||||
emailRequiredForSignup: "가입할 때 이메일 주소 입력을 필수로 하기"
|
||||
unread: "읽지 않음"
|
||||
filter: "필터"
|
||||
controlPanel: "제어판"
|
||||
manageAccounts: "계정 관리"
|
||||
makeReactionsPublic: "리액션 목록을 공개하기"
|
||||
makeReactionsPublicDescription: "나의 리액션을 누구나 볼 수 있게 합니다."
|
||||
classic: "클래식"
|
||||
muteThread: "이 글타래를 뮤트"
|
||||
unmuteThread: "글타래 뮤트 해제"
|
||||
ffVisibility: "내 인맥의 공개 범위"
|
||||
ffVisibilityDescription: "나의 팔로우와 팔로워 정보에 대한 공개 범위를 설정할 수 있습니다."
|
||||
continueThread: "이 글타래 이어서 보기"
|
||||
deleteAccountConfirm: "계정이 삭제되고 되돌릴 수 없게 됩니다. 계속하시겠습니까? "
|
||||
incorrectPassword: "비밀번호가 올바르지 않습니다."
|
||||
voteConfirm: "\"{choice}\"에 투표하시겠습니까?"
|
||||
hide: "숨기기"
|
||||
_emailUnavailable:
|
||||
used: "이 메일 주소는 사용중입니다"
|
||||
format: "형식이 올바르지 않습니다"
|
||||
disposable: "임시 이메일 주소는 사용할 수 없습니다"
|
||||
mx: "메일 서버가 올바르지 않습니다"
|
||||
smtp: "메일 서버가 응답하지 않습니다"
|
||||
_ffVisibility:
|
||||
public: "공개"
|
||||
followers: "팔로워에게만 공개"
|
||||
private: "비공개"
|
||||
_signup:
|
||||
almostThere: "거의 다 끝났습니다"
|
||||
emailAddressInfo: "당신이 사용하고 있는 이메일 주소를 입력해 주세요. 이메일 주소는 다른 유저에게 공개되지 않습니다."
|
||||
emailSent: "입력하신 메일 주소({email})로 확인 메일을 보내드렸습니다. 가입을 완료하시려면 보내드린 메일에 있는 링크로 접속해 주세요."
|
||||
_accountDelete:
|
||||
accountDelete: "계정 삭제"
|
||||
mayTakeTime: "계정 삭제는 서버에 부하를 가하기 때문에, 작성한 콘텐츠나 업로드한 파일의 수가 많으면 완료까지 시간이 걸릴 수 있습니다."
|
||||
@@ -795,13 +834,6 @@ _accountDelete:
|
||||
requestAccountDelete: "계정 삭제 요청"
|
||||
started: "삭제 작업이 시작되었습니다."
|
||||
inProgress: "삭제 진행 중"
|
||||
_docs:
|
||||
continueReading: "계속 읽기"
|
||||
features: "기능"
|
||||
generalTopics: "일반 주제"
|
||||
advancedTopics: "심화 주제"
|
||||
admin: "관리"
|
||||
translateWarn: "이 문서는 번역되었기 때문에 원본과는 내용이 다를 수 있습니다."
|
||||
_ad:
|
||||
back: "뒤로"
|
||||
reduceFrequencyOfThisAd: "이 광고의 표시 빈도 낮추기"
|
||||
@@ -904,6 +936,8 @@ _mfm:
|
||||
rainbowDescription: "내용을 무지개로 표시합니다."
|
||||
sparkle: "반짝반짝"
|
||||
sparkleDescription: "반짝이는 파티클 효과를 추가합니다."
|
||||
rotate: "회전"
|
||||
rotateDescription: "지정한 각도로 회전시킵니다."
|
||||
_reversi:
|
||||
reversi: "리버시"
|
||||
gameSettings: "대국 설정"
|
||||
@@ -969,6 +1003,11 @@ _wordMute:
|
||||
soft: "보통"
|
||||
hard: "보다 높은 수준"
|
||||
mutedNotes: "뮤트된 노트"
|
||||
_instanceMute:
|
||||
instanceMuteDescription: "뮤트한 인스턴스에서 오는 답글을 포함한 모든 노트와 Renote를 뮤트합니다."
|
||||
instanceMuteDescription2: "한 줄에 하나씩 입력해 주세요"
|
||||
title: "지정한 인스턴스의 노트를 숨깁니다."
|
||||
heading: "뮤트할 인스턴스"
|
||||
_theme:
|
||||
explore: "테마 찾아보기"
|
||||
install: "테마 설치"
|
||||
@@ -1242,6 +1281,8 @@ _exportOrImport:
|
||||
muteList: "뮤트"
|
||||
blockingList: "차단"
|
||||
userLists: "리스트"
|
||||
excludeMutingUsers: "뮤트한 유저 제외하기"
|
||||
excludeInactiveUsers: "휴면 중인 계정 제외하기"
|
||||
_charts:
|
||||
federationInstancesIncDec: "연합 인스턴스 수 증감"
|
||||
federationInstancesTotal: "연합 인스턴스 수 합계"
|
||||
|
@@ -1,3 +1,337 @@
|
||||
---
|
||||
_lang_: "Nederlands"
|
||||
headlineMisskey: "Netwerk verbonden door notities"
|
||||
introMisskey: "Welkom! Misskey is een open source, gedecentraliseerde microblogdienst.\nMaak \"notities\" om je gedachten te delen met iedereen om je heen. 📡\nMet \"reacties\" kun je ook snel je mening geven over berichten van anderen. 👍\nLaten we een nieuwe wereld verkennen! 🚀"
|
||||
monthAndDay: "{day} {month}"
|
||||
search: "Zoeken"
|
||||
notifications: "Meldingen"
|
||||
username: "Gebruikersnaam"
|
||||
password: "Wachtwoord"
|
||||
forgotPassword: "Wachtwoord vergeten"
|
||||
fetchingAsApObject: "Ophalen vanuit de Fediverse"
|
||||
ok: "Ok"
|
||||
gotIt: "Begrepen"
|
||||
cancel: "Annuleren"
|
||||
enterUsername: "Voer een gebruikersnaam in"
|
||||
renotedBy: "Hergedeeld door {user}"
|
||||
noNotes: "Geen notities"
|
||||
noNotifications: "Geen meldingen"
|
||||
instance: "Server"
|
||||
settings: "Instellingen"
|
||||
basicSettings: "Basisinstellingen"
|
||||
otherSettings: "Overige instellingen"
|
||||
openInWindow: "In een venster openen"
|
||||
profile: "Profiel"
|
||||
timeline: "Tijdlijn"
|
||||
noAccountDescription: "Deze gebruiker heeft nog geen bio geschreven"
|
||||
login: "Inloggen"
|
||||
loggingIn: "Aan het inloggen"
|
||||
logout: "Afmelden"
|
||||
signup: "Registreren"
|
||||
uploading: "Bezig met uploaden"
|
||||
save: "Opslaan"
|
||||
users: "Gebruikers"
|
||||
addUser: "Toevoegen gebruiker"
|
||||
favorite: "Favorieten"
|
||||
favorites: "Toevoegen aan favorieten"
|
||||
unfavorite: "Verwijderen uit favorieten"
|
||||
favorited: "Toegevoegd aan favorieten."
|
||||
alreadyFavorited: "Al toegevoegd aan favorieten"
|
||||
cantFavorite: "Kon niet toevoegen aan favorieten"
|
||||
pin: "Vastmaken aan profielpagina"
|
||||
unpin: "Losmaken van profielpagina"
|
||||
copyContent: "Kopiëren inhoud"
|
||||
copyLink: "Kopiëren link"
|
||||
delete: "Verwijderen"
|
||||
deleteAndEdit: "Verwijderen en bewerken"
|
||||
deleteAndEditConfirm: "Weet je zeker dat je deze notitie wilt verwijderen en dan bewerken? Je verliest alle reacties, herdelingen en antwoorden erop."
|
||||
addToList: "Aan lijst toevoegen"
|
||||
sendMessage: "Verstuur bericht"
|
||||
copyUsername: "Kopiëren gebruikersnaam "
|
||||
searchUser: "Zoeken een gebruiker"
|
||||
reply: "Antwoord"
|
||||
loadMore: "Laad meer"
|
||||
showMore: "Toon meer"
|
||||
youGotNewFollower: "volgde jou"
|
||||
receiveFollowRequest: "Volgverzoek ontvangen"
|
||||
followRequestAccepted: "Volgverzoek geaccepteerd"
|
||||
mention: "Vermelding"
|
||||
mentions: "Vermeldingen"
|
||||
directNotes: "Directe notities"
|
||||
importAndExport: "Import / export"
|
||||
import: "Import"
|
||||
export: "Export"
|
||||
files: "Bestanden"
|
||||
download: "Downloaden"
|
||||
driveFileDeleteConfirm: "Weet je zeker dat je het bestand \"{name}\" wilt verwijderen? Notities met dit bestand als bijlage worden ook verwijderd."
|
||||
unfollowConfirm: "Weet je zeker dat je {name} wilt ontvolgen?"
|
||||
exportRequested: "Je hebt een export aangevraagd. Dit kan een tijdje duren. Het wordt toegevoegd aan je Drive zodra het is voltooid."
|
||||
importRequested: "Je hebt een import aangevraagd. Dit kan even duren."
|
||||
lists: "Lijsten"
|
||||
noLists: "Je hebt geen lijsten"
|
||||
note: "Notitie"
|
||||
notes: "Notities"
|
||||
following: "Volgend"
|
||||
followers: "Volgers"
|
||||
followsYou: "Volgt jou"
|
||||
createList: "Creëer lijst"
|
||||
manageLists: "Beheren lijsten"
|
||||
error: "Fout"
|
||||
somethingHappened: "Er is iets misgegaan."
|
||||
retry: "Probeer opnieuw"
|
||||
pageLoadError: "Pagina laden mislukt"
|
||||
pageLoadErrorDescription: "Dit wordt normaal gesproken veroorzaakt door netwerkfouten of door de cache van de browser. Probeer de cache te wissen en probeer het na een tijdje wachten opnieuw."
|
||||
serverIsDead: "De server reageert niet. Wacht even en probeer het opnieuw."
|
||||
youShouldUpgradeClient: "Werk je client bij om deze pagina te zien."
|
||||
enterListName: "Voer de naam van de lijst in"
|
||||
privacy: "Privacy"
|
||||
makeFollowManuallyApprove: "Volgverzoeken vergen een goedkeuring"
|
||||
defaultNoteVisibility: "Standaard zichtbaarheid"
|
||||
follow: "Volgen"
|
||||
followRequest: "Verzoek om te mogen volgen"
|
||||
followRequests: "Volgverzoeken"
|
||||
unfollow: "Ontvolgen"
|
||||
followRequestPending: "Wachten op goedkeuring volgverzoek"
|
||||
enterEmoji: "Voer een emoji in"
|
||||
renote: "Herdelen"
|
||||
unrenote: "Stop herdelen"
|
||||
renoted: "Herdeeld"
|
||||
cantRenote: "Dit bericht kan niet worden herdeeld"
|
||||
cantReRenote: "Een herdeling kan niet worden herdeeld"
|
||||
quote: "Quote"
|
||||
pinnedNote: "Vastgemaakte notitie"
|
||||
pinned: "Vastmaken aan profielpagina"
|
||||
you: "Jij"
|
||||
clickToShow: "Klik om te bekijken"
|
||||
sensitive: "NSFW"
|
||||
add: "Toevoegen"
|
||||
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"
|
||||
rememberNoteVisibility: "Vergeet niet de notitie zichtbaarheidsinstellingen"
|
||||
attachCancel: "Verwijder bijlage"
|
||||
markAsSensitive: "Markeren als NSFW"
|
||||
unmarkAsSensitive: "Geen NSFW"
|
||||
enterFileName: "Invoeren bestandsnaam"
|
||||
mute: "Dempen"
|
||||
unmute: "Stop dempen"
|
||||
block: "Blokkeren"
|
||||
unblock: "Deblokkeren"
|
||||
suspend: "Opschorten"
|
||||
unsuspend: "Heractiveren"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
pinnedNotes: "Vastgemaakte notitie"
|
||||
userList: "Lijsten"
|
||||
smtpHost: "Server"
|
||||
smtpUser: "Gebruikersnaam"
|
||||
smtpPass: "Wachtwoord"
|
||||
clearCache: "Cache opschonen"
|
||||
user: "Gebruikers"
|
||||
muteThread: "Discussies dempen "
|
||||
unmuteThread: "Dempen van discussie ongedaan maken"
|
||||
hide: "Verbergen"
|
||||
_email:
|
||||
_follow:
|
||||
title: "volgde jou"
|
||||
_mfm:
|
||||
mention: "Vermelding"
|
||||
quote: "Quote"
|
||||
search: "Zoeken"
|
||||
_theme:
|
||||
keys:
|
||||
mention: "Vermelding"
|
||||
renote: "Herdelen"
|
||||
_sfx:
|
||||
note: "Notities"
|
||||
notification: "Meldingen"
|
||||
chat: "Chat"
|
||||
_widgets:
|
||||
notifications: "Meldingen"
|
||||
timeline: "Tijdlijn"
|
||||
activity: "Activiteit"
|
||||
federation: "Federatie"
|
||||
jobQueue: "Job Queue"
|
||||
_cw:
|
||||
show: "Laad meer"
|
||||
_visibility:
|
||||
home: "Startpagina"
|
||||
followers: "Volgers"
|
||||
_profile:
|
||||
username: "Gebruikersnaam"
|
||||
_exportOrImport:
|
||||
followingList: "Volgend"
|
||||
muteList: "Dempen"
|
||||
blockingList: "Blokkeren"
|
||||
userLists: "Lijsten"
|
||||
excludeMutingUsers: "Negeer gedempte gebruikers"
|
||||
excludeInactiveUsers: "Negeer inactieve gebruikers"
|
||||
_timelines:
|
||||
home: "Startpagina"
|
||||
_rooms:
|
||||
_roomType:
|
||||
default: "Standaard"
|
||||
_furnitures:
|
||||
monitor: "Monitor"
|
||||
_pages:
|
||||
blocks:
|
||||
image: "Afbeeldingen"
|
||||
script:
|
||||
categories:
|
||||
list: "Lijsten"
|
||||
blocks:
|
||||
_join:
|
||||
arg1: "Lijsten"
|
||||
_randomPick:
|
||||
arg1: "Lijsten"
|
||||
_dailyRandomPick:
|
||||
arg1: "Lijsten"
|
||||
_seedRandomPick:
|
||||
arg2: "Lijsten"
|
||||
_pick:
|
||||
arg1: "Lijsten"
|
||||
_listLen:
|
||||
arg1: "Lijsten"
|
||||
types:
|
||||
array: "Lijsten"
|
||||
_notification:
|
||||
youWereFollowed: "volgde jou"
|
||||
_types:
|
||||
follow: "Volgend"
|
||||
mention: "Vermelding"
|
||||
renote: "Herdelen"
|
||||
quote: "Quote"
|
||||
reaction: "Reacties"
|
||||
_deck:
|
||||
_columns:
|
||||
notifications: "Meldingen"
|
||||
tl: "Tijdlijn"
|
||||
list: "Lijsten"
|
||||
mentions: "Vermeldingen"
|
||||
|
@@ -738,8 +738,9 @@ ratio: "Stosunek"
|
||||
global: "Globalna"
|
||||
sent: "Wyślij"
|
||||
hashtags: "Hashtag"
|
||||
_docs:
|
||||
admin: "Zarządzanie"
|
||||
hide: "Ukryj"
|
||||
_ffVisibility:
|
||||
public: "Publikuj"
|
||||
_ad:
|
||||
back: "Wróć"
|
||||
reduceFrequencyOfThisAd: "Pokazuj tę reklamę rzadziej"
|
||||
@@ -815,6 +816,7 @@ _mfm:
|
||||
blur: "Rozmycie"
|
||||
font: "Czcionka"
|
||||
fontDescription: "Wybiera czcionkę do wyświetlania treści."
|
||||
rotate: "Obróć"
|
||||
_reversi:
|
||||
reversi: "Reversi"
|
||||
gameSettings: "Ustawienia gry"
|
||||
|
@@ -1,22 +1,33 @@
|
||||
---
|
||||
_lang_: "Português"
|
||||
headlineMisskey: "Rede conectada por notas"
|
||||
monthAndDay: "{day}/{month}"
|
||||
search: "Pesquisar"
|
||||
notifications: "Notificações"
|
||||
username: "Nome de usuário"
|
||||
password: "Senha"
|
||||
forgotPassword: "Esqueci a senha"
|
||||
fetchingAsApObject: "Buscando no Fediverso"
|
||||
ok: "OK"
|
||||
gotIt: "Entendi"
|
||||
cancel: "Cancelar"
|
||||
enterUsername: "Digite o nome de usuário"
|
||||
renotedBy: "Repostado por {user}"
|
||||
noNotes: "Sem posts"
|
||||
noNotifications: "Sem notificações"
|
||||
instance: "Instância"
|
||||
settings: "Configurações"
|
||||
basicSettings: "Configurações básicas"
|
||||
otherSettings: "Outras configurações"
|
||||
openInWindow: "Abrir numa janela"
|
||||
profile: "Perfil"
|
||||
timeline: "Timeline"
|
||||
login: "Iniciar sessão"
|
||||
loggingIn: "Iniciando sessão…"
|
||||
logout: "Sair"
|
||||
signup: "Registrar-se"
|
||||
uploading: "Enviando…"
|
||||
save: "Guardar"
|
||||
users: "Usuários"
|
||||
favorite: "Favoritar"
|
||||
favorites: "Favoritar"
|
||||
|
@@ -620,6 +620,8 @@ reportAbuse: "Жалоба"
|
||||
reportAbuseOf: "Пожаловаться на пользователя {name}"
|
||||
fillAbuseReportDescription: "Опишите, пожалуйста, причину жалобы подробнее. Если речь о конкретной заметке, будьте добры приложить ссылку на неё."
|
||||
abuseReported: "Жалоба отправлена. Большое спасибо за информацию."
|
||||
reporteeOrigin: "Куда сообщать"
|
||||
reporterOrigin: "Сообщено"
|
||||
send: "Отправить"
|
||||
abuseMarkAsResolved: "Отметить жалобу как решённую"
|
||||
openInNewTab: "Открыть в новой вкладке"
|
||||
@@ -766,6 +768,7 @@ middle: "Средне"
|
||||
low: "Низкий"
|
||||
emailNotConfiguredWarning: "Не указан адрес электронной почты"
|
||||
ratio: "Соотношение"
|
||||
previewNoteText: "Предварительный просмотр текста"
|
||||
customCss: "Индивидуальный CSS"
|
||||
customCssWarn: "Используйте эту настройку только если знаете, что делаете. Ошибки здесь чреваты тем, что сайт перестанет нормально работать у вас."
|
||||
global: "Всеобщая"
|
||||
@@ -780,19 +783,44 @@ learnMore: "Подробнее"
|
||||
misskeyUpdated: "Misskey обновился!"
|
||||
whatIsNew: "Что новенького?"
|
||||
translate: "Перевод"
|
||||
translatedFrom: "{x}Перевод с английского"
|
||||
accountDeletionInProgress: "В настоящее время выполняется удаление учетной записи"
|
||||
usernameInfo: "Имя, которое отличает вашу учетную запись от других на этом сервере. Вы можете использовать алфавит (a~z, A~Z), цифры (0~9) или символы подчеркивания (_). Имена пользователей не могут быть изменены позже."
|
||||
aiChanMode: "ИИ режим"
|
||||
keepCw: "Сохраняйте Предупреждения о содержимом"
|
||||
lastCommunication: "Последнее сообщение"
|
||||
resolved: "Решен"
|
||||
unresolved: "Неразрешенные"
|
||||
itsOff: "Он выключен!"
|
||||
emailRequiredForSignup: "Требуется адрес электронной почты для регистрации аккаунта"
|
||||
unread: "Непрочитанное"
|
||||
filter: "Фильтры"
|
||||
controlPanel: "Панель управления"
|
||||
manageAccounts: "Управление аккаунтом"
|
||||
_docs:
|
||||
continueReading: "Читать подробнее"
|
||||
features: "Возможности"
|
||||
generalTopics: "Основные темы"
|
||||
advancedTopics: "Дополнительные темы"
|
||||
admin: "Управление"
|
||||
translateWarn: "Это перевод документа. Он может неточно отражать содержимое оригинала."
|
||||
makeReactionsPublic: "Опубликовать список реакций"
|
||||
makeReactionsPublicDescription: "Список сделанных вами реакций доступен для просмотра всем желающим."
|
||||
classic: "Классика"
|
||||
unmuteThread: "Отключить звук"
|
||||
ffVisibilityDescription: "Вы можете установить объем вашей следующей/последней информации."
|
||||
hide: "Спрятать"
|
||||
_emailUnavailable:
|
||||
used: "Уже используется"
|
||||
format: "Неправильный формат"
|
||||
smtp: "Почтовый сервер не отвечает"
|
||||
_ffVisibility:
|
||||
public: "Опубликовать"
|
||||
private: "Частный"
|
||||
_signup:
|
||||
almostThere: "Почти готово!"
|
||||
emailAddressInfo: "Пожалуйста, введите адрес электронной почты, который вы используете."
|
||||
emailSent: "На указанный вами адрес электронной почты ({email}) было отправлено письмо с подтверждением. Перейдите по ссылке в электронном письме, чтобы завершить создание учетной записи."
|
||||
_accountDelete:
|
||||
accountDelete: "Удалить свой аккаунт"
|
||||
mayTakeTime: "Удаление учетной записи - это тяжелый процесс, который может занять много времени, если у вас создано много контента или загружено много файлов."
|
||||
sendEmail: "Мы отправим уведомление на зарегистрированный вами адрес электронной почты, когда ваша учетная запись будет удалена."
|
||||
requestAccountDelete: "Запросить удаление вашей учетной записи"
|
||||
started: "Процесс удаления начался."
|
||||
inProgress: "Удаление в процессе"
|
||||
_ad:
|
||||
back: "Выход"
|
||||
reduceFrequencyOfThisAd: "Реже показывать эту рекламу"
|
||||
@@ -893,6 +921,10 @@ _mfm:
|
||||
fontDescription: "Так можно писать произвольным шрифтом."
|
||||
rainbow: "Радуга"
|
||||
rainbowDescription: "Заставлять содержимое отображаться в цветах радуги."
|
||||
sparkle: "Блеск"
|
||||
sparkleDescription: "Добавьте эффект искрящихся частиц."
|
||||
rotate: "Повернуть"
|
||||
rotateDescription: "Повернуть на указанный угол."
|
||||
_reversi:
|
||||
reversi: "Реверси"
|
||||
gameSettings: "Настройки игры"
|
||||
@@ -1119,6 +1151,10 @@ _permissions:
|
||||
"write:user-groups": "Изменять и удалять группы пользователей"
|
||||
"read:channels": "Смотреть каналы"
|
||||
"write:channels": "Изменять каналы"
|
||||
"read:gallery": "Смотреть галерею"
|
||||
"write:gallery": "Работа с галереей"
|
||||
"read:gallery-likes": "Посмотреть галерею лайков"
|
||||
"write:gallery-likes": "Манипулируйте понравившейся галереей"
|
||||
_auth:
|
||||
shareAccess: "Дать доступ для «{name}» к вашей учётной записи?"
|
||||
shareAccessAsk: "Уверены, что хотите дать приложению доступ к своей учётной записи?"
|
||||
|
@@ -692,8 +692,7 @@ middle: "Середній"
|
||||
global: "Глобальна"
|
||||
sent: "Відправити"
|
||||
hashtags: "Хештеґ"
|
||||
_docs:
|
||||
admin: "Управління"
|
||||
hide: "Сховати"
|
||||
_ad:
|
||||
back: "Назад"
|
||||
_gallery:
|
||||
@@ -773,6 +772,7 @@ _mfm:
|
||||
blurDescription: "Цей ефект зробить контент розмитим. Контент можна зробити чітким, якщо навести на нього вказівник миші."
|
||||
font: "Шрифт"
|
||||
fontDescription: "Встановлює шрифт для контенту."
|
||||
rotate: "Обертати"
|
||||
_reversi:
|
||||
reversi: "Реверсі"
|
||||
gameSettings: "Налаштування гри"
|
||||
|
@@ -1,20 +1,20 @@
|
||||
---
|
||||
_lang_: "中文(简体)"
|
||||
headlineMisskey: "通过帖子连接在一起的网络"
|
||||
introMisskey: "欢迎!Misskey是一个开源的、去中心化的“微博客”服务。\n通过编写「帖子」来和大家分享你的以及你周围的事情吧!📡\n通过「回应」功能,可以让你快速地对大家的帖子表达反馈👍\n来探索新的世界吧!🚀"
|
||||
introMisskey: "欢迎!Misskey是一个开源的、去中心化的“微博客”服务。\n通过编写「帖文」来和大家分享你的以及你周围的事情吧!📡\n通过「回应」功能,可以让你快速地对大家的帖文表达反馈👍\n来探索新的世界吧!🚀"
|
||||
monthAndDay: "{month}月 {day}日"
|
||||
search: "搜索"
|
||||
notifications: "通知"
|
||||
username: "用户名"
|
||||
password: "密码"
|
||||
forgotPassword: "重置密码"
|
||||
fetchingAsApObject: "联合查询中"
|
||||
forgotPassword: "忘记密码"
|
||||
fetchingAsApObject: "联合查询"
|
||||
ok: "OK"
|
||||
gotIt: "我明白了"
|
||||
cancel: "取消"
|
||||
enterUsername: "输入用户名"
|
||||
renotedBy: "{user} 转发了"
|
||||
noNotes: "没有帖子"
|
||||
renotedBy: "由 {user} 转推"
|
||||
noNotes: "没有帖文"
|
||||
noNotifications: "无通知"
|
||||
instance: "实例"
|
||||
settings: "设置"
|
||||
@@ -124,9 +124,9 @@ unblockConfirm: "确定要解除拉黑吗?"
|
||||
suspendConfirm: "要冻结吗?"
|
||||
unsuspendConfirm: "要解除冻结吗?"
|
||||
selectList: "选择列表"
|
||||
selectAntenna: "天线选择"
|
||||
selectAntenna: "选择天线"
|
||||
selectWidget: "选择小工具"
|
||||
editWidgets: "编辑小工具"
|
||||
editWidgets: "编辑部件"
|
||||
editWidgetsExit: "完成编辑"
|
||||
customEmojis: "自定义表情符号"
|
||||
emoji: "表情符号"
|
||||
@@ -139,9 +139,9 @@ cacheRemoteFiles: "远程文件缓存"
|
||||
cacheRemoteFilesDescription: "当禁用此设定时远程文件将直接从远程实例载入。禁用后会减小储存空间需求,但是会增加流量,因为缩略图不会被生成。"
|
||||
flagAsBot: "这是一个机器人账号"
|
||||
flagAsBotDescription: "如果此帐户由程序控制,请启用此项。启用后,此标志可以帮助其他开发人员防止机器人之间产生无限互动的行为,并让Misskey的内部系统将此帐户识别为机器人。"
|
||||
flagAsCat: "这个账户是一只猫"
|
||||
flagAsCatDescription: "如果您想表明此帐户是一只猫,请打开此标志。\n开启后,会在您的头像上出现猫耳朵,并将你的帖子中的「na」替换为「nya」,日文同理。"
|
||||
autoAcceptFollowed: "自动允许关注者的关注"
|
||||
flagAsCat: "将这个账户设定为一只猫"
|
||||
flagAsCatDescription: "如果您想表明此帐户是一只猫,请打开此标志。"
|
||||
autoAcceptFollowed: "自动允许关注"
|
||||
addAccount: "添加账户"
|
||||
loginFailed: "登录失败"
|
||||
showOnRemote: "转到所在实例显示"
|
||||
@@ -592,6 +592,7 @@ smtpSecure: "在 SMTP 连接中使用隐式 SSL / TLS"
|
||||
smtpSecureInfo: "使用STARTTLS时关闭。"
|
||||
testEmail: "邮件发送测试"
|
||||
wordMute: "文字屏蔽"
|
||||
instanceMute: "实例的屏蔽"
|
||||
userSaysSomething: "{name}说了什么"
|
||||
makeActive: "启用"
|
||||
display: "显示"
|
||||
@@ -620,6 +621,8 @@ reportAbuse: "举报"
|
||||
reportAbuseOf: "举报{name}"
|
||||
fillAbuseReportDescription: "请填写举报的详细原因。如果有对方发的帖子,请同时填写URL地址。"
|
||||
abuseReported: "内容已发送。感谢您的报告。"
|
||||
reporteeOrigin: "举报来源"
|
||||
reporterOrigin: "举报者来源"
|
||||
send: "发送"
|
||||
abuseMarkAsResolved: "处理完毕"
|
||||
openInNewTab: "在新标签页中打开"
|
||||
@@ -790,6 +793,7 @@ pubSub: "Pub/Sub账户"
|
||||
lastCommunication: "最近通信"
|
||||
resolved: "已解决"
|
||||
unresolved: "未解决"
|
||||
breakFollow: "移除关注者"
|
||||
itsOn: "已开启"
|
||||
itsOff: "已关闭"
|
||||
emailRequiredForSignup: "注册账户需要电子邮件地址"
|
||||
@@ -797,7 +801,28 @@ unread: "未读"
|
||||
filter: "筛选"
|
||||
controlPanel: "控制面板"
|
||||
manageAccounts: "管理账户"
|
||||
makeReactionsPublic: "将回应设置为公开"
|
||||
makeReactionsPublicDescription: "将您发表过的回应设置成公开可见。"
|
||||
classic: "经典"
|
||||
muteThread: "屏蔽帖子列表"
|
||||
unmuteThread: "取消屏蔽帖子列表"
|
||||
ffVisibility: "连接的可见范围"
|
||||
ffVisibilityDescription: "您可以设置您的关注/关注者信息的公开范围"
|
||||
continueThread: "查看更多帖子"
|
||||
deleteAccountConfirm: "将要删除账户。是否确认?"
|
||||
incorrectPassword: "密码错误"
|
||||
voteConfirm: "确定投给“{choice}” ?"
|
||||
hide: "隐藏"
|
||||
_emailUnavailable:
|
||||
used: "已经被使用过"
|
||||
format: "无效的格式"
|
||||
disposable: "不是永久可用的地址"
|
||||
mx: "邮件服务器不正确"
|
||||
smtp: "邮件服务器没有响应"
|
||||
_ffVisibility:
|
||||
public: "发布"
|
||||
followers: "只有关注你的用户能看到"
|
||||
private: "私密"
|
||||
_signup:
|
||||
almostThere: "即将完成"
|
||||
emailAddressInfo: "请输入您所使用的电子邮件地址"
|
||||
@@ -809,13 +834,6 @@ _accountDelete:
|
||||
requestAccountDelete: "请求删除账户"
|
||||
started: "账户删除过程已开始。"
|
||||
inProgress: "正在删除"
|
||||
_docs:
|
||||
continueReading: "继续阅读"
|
||||
features: "特性"
|
||||
generalTopics: "通常提示"
|
||||
advancedTopics: "进阶提示"
|
||||
admin: "管理"
|
||||
translateWarn: "本文档是翻译后的文档。内容可能与原文有所不同。"
|
||||
_ad:
|
||||
back: "返回"
|
||||
reduceFrequencyOfThisAd: "减少此广告的频率"
|
||||
@@ -918,6 +936,8 @@ _mfm:
|
||||
rainbowDescription: "用彩虹色来显示内容。"
|
||||
sparkle: "闪光"
|
||||
sparkleDescription: "添加发光粒子效果。"
|
||||
rotate: "旋转"
|
||||
rotateDescription: "旋转指定的角度。"
|
||||
_reversi:
|
||||
reversi: "黑白棋"
|
||||
gameSettings: "对局设置"
|
||||
@@ -983,6 +1003,11 @@ _wordMute:
|
||||
soft: "软屏蔽"
|
||||
hard: "硬屏蔽"
|
||||
mutedNotes: "被屏蔽的帖子"
|
||||
_instanceMute:
|
||||
instanceMuteDescription: "屏蔽配置实例中的所有帖子和转帖,包括实例的用户回复。"
|
||||
instanceMuteDescription2: "设置时用换行符来分隔"
|
||||
title: "隐藏实例已设置的帖子。"
|
||||
heading: "屏蔽实例"
|
||||
_theme:
|
||||
explore: "寻找主题"
|
||||
install: "安装主题"
|
||||
@@ -1256,6 +1281,8 @@ _exportOrImport:
|
||||
muteList: "屏蔽"
|
||||
blockingList: "拉黑"
|
||||
userLists: "列表"
|
||||
excludeMutingUsers: "排除屏蔽用户"
|
||||
excludeInactiveUsers: "排除不活跃用户"
|
||||
_charts:
|
||||
federationInstancesIncDec: "联合:增加/减少"
|
||||
federationInstancesTotal: "联合总数"
|
||||
|
@@ -754,8 +754,9 @@ ratio: "%"
|
||||
global: "公開"
|
||||
sent: "發送"
|
||||
hashtags: "#tag"
|
||||
_docs:
|
||||
admin: "管理"
|
||||
hide: "隱藏"
|
||||
_ffVisibility:
|
||||
public: "發佈"
|
||||
_ad:
|
||||
back: "返回"
|
||||
reduceFrequencyOfThisAd: "降低此廣告的頻率 "
|
||||
@@ -840,6 +841,7 @@ _mfm:
|
||||
blur: "模糊"
|
||||
font: "字型"
|
||||
fontDescription: "您可以設定顯示內容的字型"
|
||||
rotate: "旋轉"
|
||||
_reversi:
|
||||
reversi: "黑白棋"
|
||||
gameSettings: "對弈設定"
|
||||
|
17
package.json
17
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "misskey",
|
||||
"version": "12.96.1",
|
||||
"version": "12.99.0",
|
||||
"codename": "indigo",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -17,10 +17,8 @@
|
||||
"migrate": "cd packages/backend && npx typeorm migration:run",
|
||||
"migrateandstart": "npm run migrate && npm run start",
|
||||
"gulp": "gulp build",
|
||||
"watch": "concurrently \"npm:watch-*\"",
|
||||
"watch-webpack": "webpack --watch",
|
||||
"watch-ts": "tsc -w -p packages/tsconfig.json && tsc-alias -w -p packages/tsconfig.json",
|
||||
"watch-gulp": "gulp watch",
|
||||
"watch": "npm run dev",
|
||||
"dev": "node ./scripts/dev.js",
|
||||
"lint": "node ./scripts/lint.js",
|
||||
"cy:open": "cypress open",
|
||||
"cy:run": "cypress run",
|
||||
@@ -40,13 +38,16 @@
|
||||
"gulp-cssnano": "2.1.3",
|
||||
"gulp-rename": "2.0.0",
|
||||
"gulp-replace": "1.1.3",
|
||||
"gulp-terser": "2.1.0"
|
||||
"gulp-terser": "2.1.0",
|
||||
"js-yaml": "4.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@redocly/openapi-core": "1.0.0-beta.54",
|
||||
"@types/fluent-ffmpeg": "2.1.17",
|
||||
"@typescript-eslint/parser": "5.4.0",
|
||||
"cross-env": "7.0.3",
|
||||
"cypress": "9.0.0",
|
||||
"start-server-and-test": "1.14.0"
|
||||
"cypress": "9.1.0",
|
||||
"start-server-and-test": "1.14.0",
|
||||
"typescript": "4.5.2"
|
||||
}
|
||||
}
|
||||
|
@@ -1,64 +1,9 @@
|
||||
module.exports = {
|
||||
root: true,
|
||||
parser: '@typescript-eslint/parser',
|
||||
parserOptions: {
|
||||
tsconfigRootDir: __dirname,
|
||||
project: ['./tsconfig.json'],
|
||||
},
|
||||
plugins: [
|
||||
'@typescript-eslint',
|
||||
'import'
|
||||
],
|
||||
extends: [
|
||||
'eslint:recommended',
|
||||
'plugin:@typescript-eslint/recommended',
|
||||
'plugin:import/recommended',
|
||||
'plugin:import/typescript'
|
||||
'../shared/.eslintrc.js',
|
||||
],
|
||||
rules: {
|
||||
'indent': ['warn', 'tab', {
|
||||
'SwitchCase': 1,
|
||||
'MemberExpression': 'off',
|
||||
'flatTernaryExpressions': true,
|
||||
'ArrayExpression': 'first',
|
||||
'ObjectExpression': 'first',
|
||||
}],
|
||||
'eol-last': ['error', 'always'],
|
||||
'semi': ['error', 'always'],
|
||||
'quotes': ['warn', 'single'],
|
||||
'comma-dangle': ['warn', 'always-multiline'],
|
||||
'keyword-spacing': ['error', {
|
||||
'before': true,
|
||||
'after': true,
|
||||
}],
|
||||
/* TODO: path aliasを使わないとwarnする
|
||||
'no-restricted-imports': ['warn', {
|
||||
'patterns': [
|
||||
]
|
||||
}],
|
||||
*/
|
||||
'no-multi-spaces': ['error'],
|
||||
'no-var': ['error'],
|
||||
'prefer-arrow-callback': ['error'],
|
||||
'no-throw-literal': ['warn'],
|
||||
'no-param-reassign': ['warn'],
|
||||
'no-constant-condition': ['warn'],
|
||||
'no-empty-pattern': ['warn'],
|
||||
'no-async-promise-executor': ['off'],
|
||||
'no-useless-escape': ['off'],
|
||||
'no-multi-spaces': ['warn'],
|
||||
'no-control-regex': ['warn'],
|
||||
'no-empty': ['warn'],
|
||||
'no-inner-declarations': ['off'],
|
||||
'no-sparse-arrays': ['off'],
|
||||
'@typescript-eslint/no-var-requires': ['warn'],
|
||||
'@typescript-eslint/no-inferrable-types': ['warn'],
|
||||
'@typescript-eslint/no-empty-function': ['off'],
|
||||
'@typescript-eslint/no-non-null-assertion': ['off'],
|
||||
'@typescript-eslint/no-misused-promises': ['error', {
|
||||
'checksVoidReturn': false,
|
||||
}],
|
||||
'import/no-unresolved': ['off'],
|
||||
'import/no-default-export': ['warn'],
|
||||
},
|
||||
};
|
||||
|
6
packages/backend/.vscode/settings.json
vendored
Normal file
6
packages/backend/.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"typescript.tsdk": "node_modules\\typescript\\lib",
|
||||
"path-intellisense.mappings": {
|
||||
"@": "${workspaceRoot}/packages/backend/src/"
|
||||
}
|
||||
}
|
@@ -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;
|
187
packages/backend/migration/1639325650583-chart-v3.js
Normal file
187
packages/backend/migration/1639325650583-chart-v3.js
Normal file
@@ -0,0 +1,187 @@
|
||||
const { MigrationInterface, QueryRunner } = require("typeorm");
|
||||
|
||||
module.exports = class chartV31639325650583 {
|
||||
name = 'chartV31639325650583'
|
||||
|
||||
async up(queryRunner) {
|
||||
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") `);
|
||||
}
|
||||
}
|
@@ -4,7 +4,7 @@
|
||||
"scripts": {
|
||||
"init": "npm run migrate",
|
||||
"build": "tsc -p tsconfig.json || echo done. && tsc-alias -p tsconfig.json",
|
||||
"watch": "tsc -w -p tsconfig.json && tsc-alias -w -p tsconfig.json",
|
||||
"watch": "node watch.mjs",
|
||||
"lint": "eslint --quiet src/**/*.ts",
|
||||
"mocha": "cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT=\"./test/tsconfig.json\" mocha",
|
||||
"test": "npm run mocha"
|
||||
@@ -46,10 +46,8 @@
|
||||
"@types/node": "16.11.7",
|
||||
"@types/node-fetch": "2.5.12",
|
||||
"@types/nodemailer": "6.4.4",
|
||||
"@types/nprogress": "0.2.0",
|
||||
"@types/oauth": "0.9.1",
|
||||
"@types/parse5": "6.0.2",
|
||||
"@types/parsimmon": "1.10.6",
|
||||
"@types/parse5": "6.0.3",
|
||||
"@types/portscanner": "2.1.1",
|
||||
"@types/pug": "2.0.5",
|
||||
"@types/punycode": "2.1.0",
|
||||
@@ -76,6 +74,7 @@
|
||||
"@typescript-eslint/eslint-plugin": "5.3.1",
|
||||
"@typescript-eslint/parser": "5.1.0",
|
||||
"abort-controller": "3.0.0",
|
||||
"archiver": "5.3.0",
|
||||
"autobind-decorator": "2.4.0",
|
||||
"autosize": "4.0.4",
|
||||
"autwh": "0.1.0",
|
||||
@@ -93,7 +92,6 @@
|
||||
"chartjs-plugin-zoom": "1.1.1",
|
||||
"cli-highlight": "2.1.11",
|
||||
"compare-versions": "3.6.0",
|
||||
"concurrently": "6.3.0",
|
||||
"content-disposition": "0.5.3",
|
||||
"crc-32": "1.2.0",
|
||||
"css-loader": "6.5.1",
|
||||
@@ -134,6 +132,7 @@
|
||||
"koa-views": "7.0.2",
|
||||
"langmap": "0.0.16",
|
||||
"mfm-js": "0.20.0",
|
||||
"mime-types": "2.1.34",
|
||||
"misskey-js": "0.0.8",
|
||||
"mocha": "8.4.0",
|
||||
"ms": "3.0.0-canary.1",
|
||||
@@ -179,7 +178,7 @@
|
||||
"tmp": "0.2.1",
|
||||
"ts-loader": "9.2.6",
|
||||
"ts-node": "10.4.0",
|
||||
"tsc-alias": "1.3.10",
|
||||
"tsc-alias": "1.4.1",
|
||||
"tsconfig-paths": "3.11.0",
|
||||
"twemoji-parser": "13.1.0",
|
||||
"typeorm": "0.2.39",
|
||||
@@ -194,6 +193,7 @@
|
||||
"devDependencies": {
|
||||
"@redocly/openapi-core": "1.0.0-beta.54",
|
||||
"@types/fluent-ffmpeg": "2.1.17",
|
||||
"cross-env": "7.0.3"
|
||||
"cross-env": "7.0.3",
|
||||
"execa": "6.0.0"
|
||||
}
|
||||
}
|
||||
|
@@ -10,7 +10,7 @@ import { LessThan } from 'typeorm';
|
||||
export default function() {
|
||||
async function tick() {
|
||||
await AttestationChallenges.delete({
|
||||
createdAt: LessThan(new Date(new Date().getTime() - 5 * 60 * 1000))
|
||||
createdAt: LessThan(new Date(new Date().getTime() - 5 * 60 * 1000)),
|
||||
});
|
||||
}
|
||||
|
||||
|
@@ -35,13 +35,13 @@ export default function() {
|
||||
activeSincePrevTick: activeDeliverJobs,
|
||||
active: deliverJobCounts.active,
|
||||
waiting: deliverJobCounts.waiting,
|
||||
delayed: deliverJobCounts.delayed
|
||||
delayed: deliverJobCounts.delayed,
|
||||
},
|
||||
inbox: {
|
||||
activeSincePrevTick: activeInboxJobs,
|
||||
active: inboxJobCounts.active,
|
||||
waiting: inboxJobCounts.waiting,
|
||||
delayed: inboxJobCounts.delayed
|
||||
delayed: inboxJobCounts.delayed,
|
||||
},
|
||||
};
|
||||
|
||||
|
@@ -38,7 +38,7 @@ export default function() {
|
||||
fs: {
|
||||
r: round(Math.max(0, fsStats.rIO_sec)),
|
||||
w: round(Math.max(0, fsStats.wIO_sec)),
|
||||
}
|
||||
},
|
||||
};
|
||||
ev.emit('serverStats', stats);
|
||||
log.unshift(stats);
|
||||
|
@@ -6,10 +6,10 @@ const index = {
|
||||
analysis: {
|
||||
analyzer: {
|
||||
ngram: {
|
||||
tokenizer: 'ngram'
|
||||
}
|
||||
}
|
||||
}
|
||||
tokenizer: 'ngram',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
mappings: {
|
||||
properties: {
|
||||
@@ -25,9 +25,9 @@ const index = {
|
||||
userHost: {
|
||||
type: 'keyword',
|
||||
index: true,
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
// 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}`,
|
||||
auth: (config.elasticsearch.user && config.elasticsearch.pass) ? {
|
||||
username: config.elasticsearch.user,
|
||||
password: config.elasticsearch.pass
|
||||
password: config.elasticsearch.pass,
|
||||
} : undefined,
|
||||
pingTimeout: 30000
|
||||
pingTimeout: 30000,
|
||||
}) : null;
|
||||
|
||||
if (client) {
|
||||
@@ -47,7 +47,7 @@ if (client) {
|
||||
if (!exist.body) {
|
||||
client.indices.create({
|
||||
index: config.elasticsearch.index || 'misskey_note',
|
||||
body: index
|
||||
body: index,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
@@ -3,10 +3,10 @@ const types = require('pg').types;
|
||||
types.setTypeParser(20, Number);
|
||||
|
||||
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 config from '@/config/index';
|
||||
|
||||
import { dbLogger } from './logger';
|
||||
|
||||
import { User } from '@/models/entities/user';
|
||||
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 { UserPending } from '@/models/entities/user-pending';
|
||||
|
||||
import { entities as charts } from '@/services/chart/entities';
|
||||
|
||||
const sqlLogger = dbLogger.createSubLogger('sql', 'white', false);
|
||||
|
||||
class MyCustomLogger implements Logger {
|
||||
@@ -175,7 +177,7 @@ export const entities = [
|
||||
Ad,
|
||||
PasswordResetRequest,
|
||||
UserPending,
|
||||
...charts as any
|
||||
...charts,
|
||||
];
|
||||
|
||||
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,
|
||||
password: config.redis.pass,
|
||||
prefix: `${config.redis.prefix}:query:`,
|
||||
db: config.redis.db || 0
|
||||
}
|
||||
db: config.redis.db || 0,
|
||||
},
|
||||
} : false,
|
||||
logging: log,
|
||||
logger: log ? new MyCustomLogger() : undefined,
|
||||
entities: entities
|
||||
entities: entities,
|
||||
});
|
||||
}
|
||||
|
||||
|
@@ -8,7 +8,7 @@ export function createConnection() {
|
||||
{
|
||||
password: config.redis.pass,
|
||||
prefix: config.redis.prefix,
|
||||
db: config.redis.db || 0
|
||||
db: config.redis.db || 0,
|
||||
}
|
||||
);
|
||||
}
|
||||
|
@@ -82,8 +82,7 @@ export default class Reversi {
|
||||
//#endregion
|
||||
|
||||
// ゲームが始まった時点で片方の色の石しかないか、始まった時点で勝敗が決定するようなマップの場合がある
|
||||
if (!this.canPutSomewhere(BLACK))
|
||||
this.turn = this.canPutSomewhere(WHITE) ? WHITE : null;
|
||||
if (!this.canPutSomewhere(BLACK)) this.turn = this.canPutSomewhere(WHITE) ? WHITE : null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -135,7 +134,7 @@ export default class Reversi {
|
||||
color,
|
||||
pos,
|
||||
effects,
|
||||
turn
|
||||
turn,
|
||||
});
|
||||
|
||||
this.calcTurn();
|
||||
@@ -212,7 +211,7 @@ export default class Reversi {
|
||||
[ 0, +1], // 下
|
||||
[ -1, +1], // 左下
|
||||
[ -1, 0], // 左
|
||||
[ -1, -1] // 左上
|
||||
[ -1, -1], // 左上
|
||||
];
|
||||
|
||||
const effectsInLine = ([dx, dy]: [number, number]): number[] => {
|
||||
@@ -226,11 +225,12 @@ export default class Reversi {
|
||||
// 座標が指し示す位置がボード外に出たとき
|
||||
if (this.opts.loopedBoard && this.transformXyToPos(
|
||||
(x = ((x % this.mapWidth) + this.mapWidth) % this.mapWidth),
|
||||
(y = ((y % this.mapHeight) + this.mapHeight) % this.mapHeight)) === initPos)
|
||||
(y = ((y % this.mapHeight) + this.mapHeight) % this.mapHeight)) === initPos) {
|
||||
// 盤面の境界でループし、自分が石を置く位置に戻ってきたとき、挟めるようにしている (ref: Test4のマップ)
|
||||
return found;
|
||||
else if (x === -1 || y === -1 || x === this.mapWidth || y === this.mapHeight)
|
||||
} else if (x === -1 || y === -1 || x === this.mapWidth || y === this.mapHeight) {
|
||||
return []; // 挟めないことが確定 (盤面外に到達)
|
||||
}
|
||||
|
||||
const pos = this.transformXyToPos(x, y);
|
||||
if (this.mapDataGet(pos) === 'null') return []; // 挟めないことが確定 (配置不可能なマスに到達)
|
||||
|
@@ -22,8 +22,8 @@ export const fourfour: Map = {
|
||||
'----',
|
||||
'-wb-',
|
||||
'-bw-',
|
||||
'----'
|
||||
]
|
||||
'----',
|
||||
],
|
||||
};
|
||||
|
||||
export const sixsix: Map = {
|
||||
@@ -35,8 +35,8 @@ export const sixsix: Map = {
|
||||
'--wb--',
|
||||
'--bw--',
|
||||
'------',
|
||||
'------'
|
||||
]
|
||||
'------',
|
||||
],
|
||||
};
|
||||
|
||||
export const roundedSixsix: Map = {
|
||||
@@ -49,8 +49,8 @@ export const roundedSixsix: Map = {
|
||||
'--wb--',
|
||||
'--bw--',
|
||||
'------',
|
||||
' ---- '
|
||||
]
|
||||
' ---- ',
|
||||
],
|
||||
};
|
||||
|
||||
export const roundedSixsix2: Map = {
|
||||
@@ -63,8 +63,8 @@ export const roundedSixsix2: Map = {
|
||||
'--wb--',
|
||||
'--bw--',
|
||||
' ---- ',
|
||||
' -- '
|
||||
]
|
||||
' -- ',
|
||||
],
|
||||
};
|
||||
|
||||
export const eighteight: Map = {
|
||||
@@ -78,8 +78,8 @@ export const eighteight: Map = {
|
||||
'---bw---',
|
||||
'--------',
|
||||
'--------',
|
||||
'--------'
|
||||
]
|
||||
'--------',
|
||||
],
|
||||
};
|
||||
|
||||
export const eighteightH1: Map = {
|
||||
@@ -93,8 +93,8 @@ export const eighteightH1: Map = {
|
||||
'---bw---',
|
||||
'--------',
|
||||
'--------',
|
||||
'--------'
|
||||
]
|
||||
'--------',
|
||||
],
|
||||
};
|
||||
|
||||
export const eighteightH2: Map = {
|
||||
@@ -108,8 +108,8 @@ export const eighteightH2: Map = {
|
||||
'---bw---',
|
||||
'--------',
|
||||
'--------',
|
||||
'-------b'
|
||||
]
|
||||
'-------b',
|
||||
],
|
||||
};
|
||||
|
||||
export const eighteightH3: Map = {
|
||||
@@ -123,8 +123,8 @@ export const eighteightH3: Map = {
|
||||
'---bw---',
|
||||
'--------',
|
||||
'--------',
|
||||
'-------b'
|
||||
]
|
||||
'-------b',
|
||||
],
|
||||
};
|
||||
|
||||
export const eighteightH4: Map = {
|
||||
@@ -138,8 +138,8 @@ export const eighteightH4: Map = {
|
||||
'---bw---',
|
||||
'--------',
|
||||
'--------',
|
||||
'b------b'
|
||||
]
|
||||
'b------b',
|
||||
],
|
||||
};
|
||||
|
||||
export const eighteightH28: Map = {
|
||||
@@ -153,8 +153,8 @@ export const eighteightH28: Map = {
|
||||
'b--bw--b',
|
||||
'b------b',
|
||||
'b------b',
|
||||
'bbbbbbbb'
|
||||
]
|
||||
'bbbbbbbb',
|
||||
],
|
||||
};
|
||||
|
||||
export const roundedEighteight: Map = {
|
||||
@@ -169,8 +169,8 @@ export const roundedEighteight: Map = {
|
||||
'---bw---',
|
||||
'--------',
|
||||
'--------',
|
||||
' ------ '
|
||||
]
|
||||
' ------ ',
|
||||
],
|
||||
};
|
||||
|
||||
export const roundedEighteight2: Map = {
|
||||
@@ -185,8 +185,8 @@ export const roundedEighteight2: Map = {
|
||||
'---bw---',
|
||||
'--------',
|
||||
' ------ ',
|
||||
' ---- '
|
||||
]
|
||||
' ---- ',
|
||||
],
|
||||
};
|
||||
|
||||
export const roundedEighteight3: Map = {
|
||||
@@ -201,8 +201,8 @@ export const roundedEighteight3: Map = {
|
||||
'---bw---',
|
||||
' ------ ',
|
||||
' ---- ',
|
||||
' -- '
|
||||
]
|
||||
' -- ',
|
||||
],
|
||||
};
|
||||
|
||||
export const eighteightWithNotch: Map = {
|
||||
@@ -217,8 +217,8 @@ export const eighteightWithNotch: Map = {
|
||||
' --bw-- ',
|
||||
'--------',
|
||||
'--------',
|
||||
'--- ---'
|
||||
]
|
||||
'--- ---',
|
||||
],
|
||||
};
|
||||
|
||||
export const eighteightWithSomeHoles: Map = {
|
||||
@@ -233,8 +233,8 @@ export const eighteightWithSomeHoles: Map = {
|
||||
'---bw- -',
|
||||
' -------',
|
||||
'--- ----',
|
||||
'--------'
|
||||
]
|
||||
'--------',
|
||||
],
|
||||
};
|
||||
|
||||
export const circle: Map = {
|
||||
@@ -249,8 +249,8 @@ export const circle: Map = {
|
||||
'---bw---',
|
||||
' ------ ',
|
||||
' ------ ',
|
||||
' -- '
|
||||
]
|
||||
' -- ',
|
||||
],
|
||||
};
|
||||
|
||||
export const smile: Map = {
|
||||
@@ -265,8 +265,8 @@ export const smile: Map = {
|
||||
'-- bw --',
|
||||
'--- ---',
|
||||
'--------',
|
||||
' ------ '
|
||||
]
|
||||
' ------ ',
|
||||
],
|
||||
};
|
||||
|
||||
export const window: Map = {
|
||||
@@ -281,8 +281,8 @@ export const window: Map = {
|
||||
'---bw---',
|
||||
'- -- -',
|
||||
'- -- -',
|
||||
'--------'
|
||||
]
|
||||
'--------',
|
||||
],
|
||||
};
|
||||
|
||||
export const reserved: Map = {
|
||||
@@ -297,8 +297,8 @@ export const reserved: Map = {
|
||||
'---bw---',
|
||||
'--------',
|
||||
'--------',
|
||||
'b------w'
|
||||
]
|
||||
'b------w',
|
||||
],
|
||||
};
|
||||
|
||||
export const x: Map = {
|
||||
@@ -313,8 +313,8 @@ export const x: Map = {
|
||||
'---bw---',
|
||||
'--b--w--',
|
||||
'-b----w-',
|
||||
'b------w'
|
||||
]
|
||||
'b------w',
|
||||
],
|
||||
};
|
||||
|
||||
export const parallel: Map = {
|
||||
@@ -329,8 +329,8 @@ export const parallel: Map = {
|
||||
'---ww---',
|
||||
'--------',
|
||||
'--------',
|
||||
'--------'
|
||||
]
|
||||
'--------',
|
||||
],
|
||||
};
|
||||
|
||||
export const lackOfBlack: Map = {
|
||||
@@ -344,8 +344,8 @@ export const lackOfBlack: Map = {
|
||||
'---bw---',
|
||||
'--------',
|
||||
'--------',
|
||||
'--------'
|
||||
]
|
||||
'--------',
|
||||
],
|
||||
};
|
||||
|
||||
export const squareParty: Map = {
|
||||
@@ -360,8 +360,8 @@ export const squareParty: Map = {
|
||||
'-bbbwww-',
|
||||
'-b-bw-w-',
|
||||
'-bbbwww-',
|
||||
'--------'
|
||||
]
|
||||
'--------',
|
||||
],
|
||||
};
|
||||
|
||||
export const minesweeper: Map = {
|
||||
@@ -376,8 +376,8 @@ export const minesweeper: Map = {
|
||||
'-w-bw-b-',
|
||||
'b-w--b-w',
|
||||
'-b-bw-w-',
|
||||
'w-w--b-b'
|
||||
]
|
||||
'w-w--b-b',
|
||||
],
|
||||
};
|
||||
|
||||
export const tenthtenth: Map = {
|
||||
@@ -393,8 +393,8 @@ export const tenthtenth: Map = {
|
||||
'----------',
|
||||
'----------',
|
||||
'----------',
|
||||
'----------'
|
||||
]
|
||||
'----------',
|
||||
],
|
||||
};
|
||||
|
||||
export const hole: Map = {
|
||||
@@ -411,8 +411,8 @@ export const hole: Map = {
|
||||
'--wb--wb--',
|
||||
'--bw--bw--',
|
||||
'----------',
|
||||
'----------'
|
||||
]
|
||||
'----------',
|
||||
],
|
||||
};
|
||||
|
||||
export const grid: Map = {
|
||||
@@ -429,8 +429,8 @@ export const grid: Map = {
|
||||
'- - -- - -',
|
||||
'----------',
|
||||
'- - -- - -',
|
||||
'----------'
|
||||
]
|
||||
'----------',
|
||||
],
|
||||
};
|
||||
|
||||
export const cross: Map = {
|
||||
@@ -447,8 +447,8 @@ export const cross: Map = {
|
||||
'----------',
|
||||
' ---- ',
|
||||
' ---- ',
|
||||
' ---- '
|
||||
]
|
||||
' ---- ',
|
||||
],
|
||||
};
|
||||
|
||||
export const charX: Map = {
|
||||
@@ -465,8 +465,8 @@ export const charX: Map = {
|
||||
' -------- ',
|
||||
'----------',
|
||||
'---- ----',
|
||||
'--- ---'
|
||||
]
|
||||
'--- ---',
|
||||
],
|
||||
};
|
||||
|
||||
export const charY: Map = {
|
||||
@@ -483,8 +483,8 @@ export const charY: Map = {
|
||||
' ------ ',
|
||||
' ------ ',
|
||||
' ------ ',
|
||||
' ------ '
|
||||
]
|
||||
' ------ ',
|
||||
],
|
||||
};
|
||||
|
||||
export const walls: Map = {
|
||||
@@ -501,8 +501,8 @@ export const walls: Map = {
|
||||
'w--------w',
|
||||
'w--------w',
|
||||
'w--------w',
|
||||
' bbbbbbbb '
|
||||
]
|
||||
' bbbbbbbb ',
|
||||
],
|
||||
};
|
||||
|
||||
export const cpu: Map = {
|
||||
@@ -519,8 +519,8 @@ export const cpu: Map = {
|
||||
'w--------w',
|
||||
' -------- ',
|
||||
'w--------w',
|
||||
' b b b b '
|
||||
]
|
||||
' b b b b ',
|
||||
],
|
||||
};
|
||||
|
||||
export const checker: Map = {
|
||||
@@ -537,8 +537,8 @@ export const checker: Map = {
|
||||
'---bwbw---',
|
||||
'----------',
|
||||
'----------',
|
||||
'----------'
|
||||
]
|
||||
'----------',
|
||||
],
|
||||
};
|
||||
|
||||
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-w-b-',
|
||||
'-w-w-w-w-b'
|
||||
]
|
||||
'-w-w-w-w-b',
|
||||
],
|
||||
};
|
||||
|
||||
export const mosaic: Map = {
|
||||
@@ -574,7 +574,7 @@ export const mosaic: Map = {
|
||||
' - - - - -',
|
||||
'- - - - - ',
|
||||
' - - - - -',
|
||||
]
|
||||
],
|
||||
};
|
||||
|
||||
export const arena: Map = {
|
||||
@@ -591,8 +591,8 @@ export const arena: Map = {
|
||||
' -------- ',
|
||||
'- ------ -',
|
||||
' - - - - ',
|
||||
'- - -- - -'
|
||||
]
|
||||
'- - -- - -',
|
||||
],
|
||||
};
|
||||
|
||||
export const reactor: Map = {
|
||||
@@ -609,8 +609,8 @@ export const reactor: Map = {
|
||||
'---w b---',
|
||||
'- --bw-- -',
|
||||
'w- - - -b',
|
||||
'-b------w-'
|
||||
]
|
||||
'-b------w-',
|
||||
],
|
||||
};
|
||||
|
||||
export const sixeight: Map = {
|
||||
@@ -624,8 +624,8 @@ export const sixeight: Map = {
|
||||
'--bw--',
|
||||
'------',
|
||||
'------',
|
||||
'------'
|
||||
]
|
||||
'------',
|
||||
],
|
||||
};
|
||||
|
||||
export const spark: Map = {
|
||||
@@ -642,8 +642,8 @@ export const spark: Map = {
|
||||
' -------- ',
|
||||
' -------- ',
|
||||
'----------',
|
||||
' - - '
|
||||
]
|
||||
' - - ',
|
||||
],
|
||||
};
|
||||
|
||||
export const islands: Map = {
|
||||
@@ -660,8 +660,8 @@ export const islands: Map = {
|
||||
' --------',
|
||||
' --------',
|
||||
' --------',
|
||||
' --------'
|
||||
]
|
||||
' --------',
|
||||
],
|
||||
};
|
||||
|
||||
export const galaxy: Map = {
|
||||
@@ -680,8 +680,8 @@ export const galaxy: Map = {
|
||||
'---w--bbb---',
|
||||
' ---w------ ',
|
||||
' ---www-- ',
|
||||
' ------ '
|
||||
]
|
||||
' ------ ',
|
||||
],
|
||||
};
|
||||
|
||||
export const triangle: Map = {
|
||||
@@ -698,8 +698,8 @@ export const triangle: Map = {
|
||||
' -------- ',
|
||||
' -------- ',
|
||||
'----------',
|
||||
'----------'
|
||||
]
|
||||
'----------',
|
||||
],
|
||||
};
|
||||
|
||||
export const iphonex: Map = {
|
||||
@@ -718,8 +718,8 @@ export const iphonex: Map = {
|
||||
'--------',
|
||||
'--------',
|
||||
'--------',
|
||||
' ------ '
|
||||
]
|
||||
' ------ ',
|
||||
],
|
||||
};
|
||||
|
||||
export const dealWithIt: Map = {
|
||||
@@ -731,8 +731,8 @@ export const dealWithIt: Map = {
|
||||
'--w-b-------',
|
||||
' --b-w------',
|
||||
' --w-b---- ',
|
||||
' ------- '
|
||||
]
|
||||
' ------- ',
|
||||
],
|
||||
};
|
||||
|
||||
export const experiment: Map = {
|
||||
@@ -750,8 +750,8 @@ export const experiment: Map = {
|
||||
'bbbbbb wwwwww',
|
||||
'bbbbbb wwwwww',
|
||||
'bbbbbb wwwwww',
|
||||
'wwwwww bbbbbb'
|
||||
]
|
||||
'wwwwww bbbbbb',
|
||||
],
|
||||
};
|
||||
|
||||
export const bigBoard: Map = {
|
||||
@@ -773,8 +773,8 @@ export const bigBoard: Map = {
|
||||
'----------------',
|
||||
'----------------',
|
||||
'----------------',
|
||||
'----------------'
|
||||
]
|
||||
'----------------',
|
||||
],
|
||||
};
|
||||
|
||||
export const twoBoard: Map = {
|
||||
@@ -789,8 +789,8 @@ export const twoBoard: Map = {
|
||||
'---bw--- ---bw---',
|
||||
'-------- --------',
|
||||
'-------- --------',
|
||||
'-------- --------'
|
||||
]
|
||||
'-------- --------',
|
||||
],
|
||||
};
|
||||
|
||||
export const test1: Map = {
|
||||
@@ -800,8 +800,8 @@ export const test1: Map = {
|
||||
'--------',
|
||||
'---wb---',
|
||||
'---bw---',
|
||||
'--------'
|
||||
]
|
||||
'--------',
|
||||
],
|
||||
};
|
||||
|
||||
export const test2: Map = {
|
||||
@@ -812,8 +812,8 @@ export const test2: Map = {
|
||||
'------',
|
||||
'-b--w-',
|
||||
'-w--b-',
|
||||
'-w--b-'
|
||||
]
|
||||
'-w--b-',
|
||||
],
|
||||
};
|
||||
|
||||
export const test3: Map = {
|
||||
@@ -832,7 +832,7 @@ export const test3: Map = {
|
||||
'-w-',
|
||||
'---',
|
||||
'b--',
|
||||
]
|
||||
],
|
||||
};
|
||||
|
||||
export const test4: Map = {
|
||||
@@ -843,8 +843,8 @@ export const test4: Map = {
|
||||
'-w--b-',
|
||||
'------',
|
||||
'-w--b-',
|
||||
'-w--b-'
|
||||
]
|
||||
'-w--b-',
|
||||
],
|
||||
};
|
||||
|
||||
// 検証用: この盤面で藍(lv3)が黒で始めると何故か(?)A1に打ってしまう
|
||||
@@ -860,7 +860,7 @@ export const test6: Map = {
|
||||
'wwbwbbbb',
|
||||
'--wbbbbb',
|
||||
'-wwwww--',
|
||||
]
|
||||
],
|
||||
};
|
||||
|
||||
// 検証用: この盤面で藍(lv3)が黒で始めると何故か(?)G7に打ってしまう
|
||||
@@ -876,7 +876,7 @@ export const test7: Map = {
|
||||
'-wwbbwwb',
|
||||
'--wwww--',
|
||||
'--wwww--',
|
||||
]
|
||||
],
|
||||
};
|
||||
|
||||
// 検証用: この盤面で藍(lv5)が黒で始めると何故か(?)A1に打ってしまう
|
||||
@@ -892,5 +892,5 @@ export const test8: Map = {
|
||||
'wwwwww--',
|
||||
'--www---',
|
||||
'--ww----',
|
||||
]
|
||||
],
|
||||
};
|
||||
|
@@ -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.textContent = node.props.content;
|
||||
return a;
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
appendChildren(nodes, doc.body);
|
||||
|
@@ -10,7 +10,7 @@ export class Cache<T> {
|
||||
public set(key: string | null, value: T): void {
|
||||
this.cache.set(key, {
|
||||
date: Date.now(),
|
||||
value
|
||||
value,
|
||||
});
|
||||
}
|
||||
|
||||
|
@@ -33,17 +33,17 @@ type CaptchaResponse = {
|
||||
async function getCaptchaResponse(url: string, secret: string, response: string): Promise<CaptchaResponse> {
|
||||
const params = new URLSearchParams({
|
||||
secret,
|
||||
response
|
||||
response,
|
||||
});
|
||||
|
||||
const res = await fetch(url, {
|
||||
method: 'POST',
|
||||
body: params,
|
||||
headers: {
|
||||
'User-Agent': config.userAgent
|
||||
'User-Agent': config.userAgent,
|
||||
},
|
||||
timeout: 10 * 1000,
|
||||
agent: getAgentByUrl
|
||||
agent: getAgentByUrl,
|
||||
}).catch(e => {
|
||||
throw `${e.message || e}`;
|
||||
});
|
||||
|
@@ -24,7 +24,7 @@ export async function checkHitAntenna(antenna: Antenna, note: (Note | Packed<'No
|
||||
if (antennaUserFollowing && !antennaUserFollowing.includes(note.userId)) return false;
|
||||
} else if (antenna.src === 'list') {
|
||||
const listUsers = (await UserListJoinings.find({
|
||||
userListId: antenna.userListId!
|
||||
userListId: antenna.userListId!,
|
||||
})).map(x => x.userId);
|
||||
|
||||
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 groupUsers = (await UserGroupJoinings.find({
|
||||
userGroupId: joining.userGroupId
|
||||
userGroupId: joining.userGroupId,
|
||||
})).map(x => x.userId);
|
||||
|
||||
if (!groupUsers.includes(note.userId)) return false;
|
||||
|
@@ -11,7 +11,7 @@ const PrivateIp = require('private-ip');
|
||||
|
||||
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');
|
||||
|
||||
logger.info(`Downloading ${chalk.cyan(url)} ...`);
|
||||
@@ -22,7 +22,7 @@ export async function downloadUrl(url: string, path: string) {
|
||||
|
||||
const req = got.stream(url, {
|
||||
headers: {
|
||||
'User-Agent': config.userAgent
|
||||
'User-Agent': config.userAgent,
|
||||
},
|
||||
timeout: {
|
||||
lookup: timeout,
|
||||
|
@@ -10,8 +10,8 @@ export async function fetchMeta(noCache = false): Promise<Meta> {
|
||||
// 過去のバグでレコードが複数出来てしまっている可能性があるので新しいIDを優先する
|
||||
const meta = await transactionalEntityManager.findOne(Meta, {
|
||||
order: {
|
||||
id: 'DESC'
|
||||
}
|
||||
id: 'DESC',
|
||||
},
|
||||
});
|
||||
|
||||
if (meta) {
|
||||
@@ -19,7 +19,7 @@ export async function fetchMeta(noCache = false): Promise<Meta> {
|
||||
return meta;
|
||||
} else {
|
||||
const saved = await transactionalEntityManager.save(Meta, {
|
||||
id: 'x'
|
||||
id: 'x',
|
||||
}) as Meta;
|
||||
|
||||
cache = saved;
|
||||
|
@@ -12,9 +12,9 @@ export async function getJson(url: string, accept = 'application/json, */*', tim
|
||||
method: 'GET',
|
||||
headers: Object.assign({
|
||||
'User-Agent': config.userAgent,
|
||||
Accept: accept
|
||||
Accept: accept,
|
||||
}, headers || {}),
|
||||
timeout
|
||||
timeout,
|
||||
});
|
||||
|
||||
return await res.json();
|
||||
@@ -26,9 +26,9 @@ export async function getHtml(url: string, accept = 'text/html, */*', timeout =
|
||||
method: 'GET',
|
||||
headers: Object.assign({
|
||||
'User-Agent': config.userAgent,
|
||||
Accept: accept
|
||||
Accept: accept,
|
||||
}, headers || {}),
|
||||
timeout
|
||||
timeout,
|
||||
});
|
||||
|
||||
return await res.text();
|
||||
@@ -95,7 +95,7 @@ export const httpAgent = config.proxy
|
||||
maxSockets,
|
||||
maxFreeSockets: 256,
|
||||
scheduling: 'lifo',
|
||||
proxy: config.proxy
|
||||
proxy: config.proxy,
|
||||
})
|
||||
: _http;
|
||||
|
||||
@@ -109,7 +109,7 @@ export const httpsAgent = config.proxy
|
||||
maxSockets,
|
||||
maxFreeSockets: 256,
|
||||
scheduling: 'lifo',
|
||||
proxy: config.proxy
|
||||
proxy: config.proxy,
|
||||
})
|
||||
: _https;
|
||||
|
||||
|
@@ -8,14 +8,14 @@ export async function genRsaKeyPair(modulusLength = 2048) {
|
||||
modulusLength,
|
||||
publicKeyEncoding: {
|
||||
type: 'spki',
|
||||
format: 'pem'
|
||||
format: 'pem',
|
||||
},
|
||||
privateKeyEncoding: {
|
||||
type: 'pkcs8',
|
||||
format: 'pem',
|
||||
cipher: undefined,
|
||||
passphrase: undefined
|
||||
}
|
||||
passphrase: undefined,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
@@ -24,13 +24,13 @@ export async function genEcKeyPair(namedCurve: 'prime256v1' | 'secp384r1' | 'sec
|
||||
namedCurve,
|
||||
publicKeyEncoding: {
|
||||
type: 'spki',
|
||||
format: 'pem'
|
||||
format: 'pem',
|
||||
},
|
||||
privateKeyEncoding: {
|
||||
type: 'pkcs8',
|
||||
format: 'pem',
|
||||
cipher: undefined,
|
||||
passphrase: undefined
|
||||
}
|
||||
passphrase: undefined,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
@@ -19,18 +19,19 @@ export type FileInfo = {
|
||||
};
|
||||
width?: number;
|
||||
height?: number;
|
||||
orientation?: number;
|
||||
blurhash?: string;
|
||||
warnings: string[];
|
||||
};
|
||||
|
||||
const TYPE_OCTET_STREAM = {
|
||||
mime: 'application/octet-stream',
|
||||
ext: null
|
||||
ext: null,
|
||||
};
|
||||
|
||||
const TYPE_SVG = {
|
||||
mime: 'image/svg+xml',
|
||||
ext: 'svg'
|
||||
ext: 'svg',
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -47,6 +48,7 @@ export async function getFileInfo(path: string): Promise<FileInfo> {
|
||||
// image dimensions
|
||||
let width: number | undefined;
|
||||
let height: number | undefined;
|
||||
let orientation: number | undefined;
|
||||
|
||||
if (['image/jpeg', 'image/gif', 'image/png', 'image/apng', 'image/webp', 'image/bmp', 'image/tiff', 'image/svg+xml', 'image/vnd.adobe.photoshop'].includes(type.mime)) {
|
||||
const imageSize = await detectImageSize(path).catch(e => {
|
||||
@@ -61,6 +63,7 @@ export async function getFileInfo(path: string): Promise<FileInfo> {
|
||||
} else if (imageSize.wUnits === 'px') {
|
||||
width = imageSize.width;
|
||||
height = imageSize.height;
|
||||
orientation = imageSize.orientation;
|
||||
|
||||
// 制限を超えている画像は octet-stream にする
|
||||
if (imageSize.width > 16383 || imageSize.height > 16383) {
|
||||
@@ -87,6 +90,7 @@ export async function getFileInfo(path: string): Promise<FileInfo> {
|
||||
type,
|
||||
width,
|
||||
height,
|
||||
orientation,
|
||||
blurhash,
|
||||
warnings,
|
||||
};
|
||||
@@ -112,7 +116,7 @@ export async function detectType(path: string) {
|
||||
|
||||
return {
|
||||
mime: type.mime,
|
||||
ext: type.ext
|
||||
ext: type.ext,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -163,6 +167,7 @@ async function detectImageSize(path: string): Promise<{
|
||||
height: number;
|
||||
wUnits: string;
|
||||
hUnits: string;
|
||||
orientation?: number;
|
||||
}> {
|
||||
const readable = fs.createReadStream(path);
|
||||
const imageSize = await probeImageSize(readable);
|
||||
|
15
packages/backend/src/misc/is-instance-muted.ts
Normal file
15
packages/backend/src/misc/is-instance-muted.ts
Normal 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;
|
||||
}
|
@@ -54,7 +54,7 @@ export async function populateEmoji(emojiName: string, noteUserHost: string | nu
|
||||
|
||||
const queryOrNull = async () => (await Emojis.findOne({
|
||||
name,
|
||||
host
|
||||
host,
|
||||
})) || null;
|
||||
|
||||
const emoji = await cache.fetch(`${name} ${host}`, queryOrNull);
|
||||
@@ -62,7 +62,7 @@ export async function populateEmoji(emojiName: string, noteUserHost: string | nu
|
||||
if (emoji == null) return null;
|
||||
|
||||
const isLocal = emoji.host == null;
|
||||
const url = isLocal ? emoji.url : `${config.url}/proxy/image.png?${query({url: emoji.url})}`;
|
||||
const url = isLocal ? emoji.url : `${config.url}/proxy/image.png?${query({ url: emoji.url })}`;
|
||||
|
||||
return {
|
||||
name: emojiName,
|
||||
@@ -111,12 +111,12 @@ export async function prefetchEmojis(emojis: { name: string; host: string | null
|
||||
for (const host of hosts) {
|
||||
emojisQuery.push({
|
||||
name: In(notCachedEmojis.filter(e => e.host === host).map(e => e.name)),
|
||||
host: host
|
||||
host: host,
|
||||
});
|
||||
}
|
||||
const _emojis = emojisQuery.length > 0 ? await Emojis.find({
|
||||
where: emojisQuery,
|
||||
select: ['name', 'host', 'url']
|
||||
select: ['name', 'host', 'url'],
|
||||
}) : [];
|
||||
for (const emoji of _emojis) {
|
||||
cache.set(`${emoji.name} ${emoji.host}`, emoji);
|
||||
|
@@ -1,3 +1,4 @@
|
||||
/* eslint-disable key-spacing */
|
||||
import { emojiRegex } from './emoji-regex';
|
||||
import { fetchMeta } from './fetch-meta';
|
||||
import { Emojis } from '@/models/index';
|
||||
@@ -111,14 +112,14 @@ export function decodeReaction(str: string): DecodedReaction {
|
||||
return {
|
||||
reaction: `:${name}@${host || '.'}:`, // ローカル分は@以降を省略するのではなく.にする
|
||||
name,
|
||||
host
|
||||
host,
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
reaction: str,
|
||||
name: undefined,
|
||||
host: undefined
|
||||
host: undefined,
|
||||
};
|
||||
}
|
||||
|
||||
|
@@ -9,7 +9,7 @@ export class AbuseUserReport {
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the AbuseUserReport.'
|
||||
comment: 'The created date of the AbuseUserReport.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@@ -18,7 +18,7 @@ export class AbuseUserReport {
|
||||
public targetUserId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public targetUser: User | null;
|
||||
@@ -28,26 +28,26 @@ export class AbuseUserReport {
|
||||
public reporterId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public reporter: User | null;
|
||||
|
||||
@Column({
|
||||
...id(),
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public assigneeId: User['id'] | null;
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'SET NULL'
|
||||
onDelete: 'SET NULL',
|
||||
})
|
||||
@JoinColumn()
|
||||
public assignee: User | null;
|
||||
|
||||
@Index()
|
||||
@Column('boolean', {
|
||||
default: false
|
||||
default: false,
|
||||
})
|
||||
public resolved: boolean;
|
||||
|
||||
@@ -60,14 +60,14 @@ export class AbuseUserReport {
|
||||
@Index()
|
||||
@Column('varchar', {
|
||||
length: 128, nullable: true,
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public targetUserHost: string | null;
|
||||
|
||||
@Index()
|
||||
@Column('varchar', {
|
||||
length: 128, nullable: true,
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public reporterHost: string | null;
|
||||
//#endregion
|
||||
|
@@ -9,7 +9,7 @@ export class AccessToken {
|
||||
public id: string;
|
||||
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the AccessToken.'
|
||||
comment: 'The created date of the AccessToken.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@@ -21,7 +21,7 @@ export class AccessToken {
|
||||
|
||||
@Index()
|
||||
@Column('varchar', {
|
||||
length: 128
|
||||
length: 128,
|
||||
})
|
||||
public token: string;
|
||||
|
||||
@@ -29,13 +29,13 @@ export class AccessToken {
|
||||
@Column('varchar', {
|
||||
length: 128,
|
||||
nullable: true,
|
||||
default: null
|
||||
default: null,
|
||||
})
|
||||
public session: string | null;
|
||||
|
||||
@Index()
|
||||
@Column('varchar', {
|
||||
length: 128
|
||||
length: 128,
|
||||
})
|
||||
public hash: string;
|
||||
|
||||
@@ -44,7 +44,7 @@ export class AccessToken {
|
||||
public userId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
@@ -52,12 +52,12 @@ export class AccessToken {
|
||||
@Column({
|
||||
...id(),
|
||||
nullable: true,
|
||||
default: null
|
||||
default: null,
|
||||
})
|
||||
public appId: App['id'] | null;
|
||||
|
||||
@ManyToOne(type => App, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public app: App | null;
|
||||
@@ -65,32 +65,32 @@ export class AccessToken {
|
||||
@Column('varchar', {
|
||||
length: 128,
|
||||
nullable: true,
|
||||
default: null
|
||||
default: null,
|
||||
})
|
||||
public name: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512,
|
||||
nullable: true,
|
||||
default: null
|
||||
default: null,
|
||||
})
|
||||
public description: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512,
|
||||
nullable: true,
|
||||
default: null
|
||||
default: null,
|
||||
})
|
||||
public iconUrl: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 64, array: true,
|
||||
default: '{}'
|
||||
default: '{}',
|
||||
})
|
||||
public permission: string[];
|
||||
|
||||
@Column('boolean', {
|
||||
default: false
|
||||
default: false,
|
||||
})
|
||||
public fetched: boolean;
|
||||
}
|
||||
|
@@ -8,44 +8,44 @@ export class Ad {
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the Ad.'
|
||||
comment: 'The created date of the Ad.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The expired date of the Ad.'
|
||||
comment: 'The expired date of the Ad.',
|
||||
})
|
||||
public expiresAt: Date;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 32, nullable: false
|
||||
length: 32, nullable: false,
|
||||
})
|
||||
public place: string;
|
||||
|
||||
// 今は使われていないが将来的に活用される可能性はある
|
||||
@Column('varchar', {
|
||||
length: 32, nullable: false
|
||||
length: 32, nullable: false,
|
||||
})
|
||||
public priority: string;
|
||||
|
||||
@Column('integer', {
|
||||
default: 1, nullable: false
|
||||
default: 1, nullable: false,
|
||||
})
|
||||
public ratio: number;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 1024, nullable: false
|
||||
length: 1024, nullable: false,
|
||||
})
|
||||
public url: string;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 1024, nullable: false
|
||||
length: 1024, nullable: false,
|
||||
})
|
||||
public imageUrl: string;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 8192, nullable: false
|
||||
length: 8192, nullable: false,
|
||||
})
|
||||
public memo: string;
|
||||
|
||||
|
@@ -10,7 +10,7 @@ export class AnnouncementRead {
|
||||
public id: string;
|
||||
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the AnnouncementRead.'
|
||||
comment: 'The created date of the AnnouncementRead.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@@ -19,7 +19,7 @@ export class AnnouncementRead {
|
||||
public userId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
@@ -29,7 +29,7 @@ export class AnnouncementRead {
|
||||
public announcementId: Announcement['id'];
|
||||
|
||||
@ManyToOne(type => Announcement, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public announcement: Announcement | null;
|
||||
|
@@ -8,28 +8,28 @@ export class Announcement {
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the Announcement.'
|
||||
comment: 'The created date of the Announcement.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The updated date of the Announcement.',
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public updatedAt: Date | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 8192, nullable: false
|
||||
length: 8192, nullable: false,
|
||||
})
|
||||
public text: string;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 256, nullable: false
|
||||
length: 256, nullable: false,
|
||||
})
|
||||
public title: string;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 1024, nullable: true
|
||||
length: 1024, nullable: true,
|
||||
})
|
||||
public imageUrl: string | null;
|
||||
|
||||
|
@@ -12,12 +12,12 @@ export class AntennaNote {
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The note ID.'
|
||||
comment: 'The note ID.',
|
||||
})
|
||||
public noteId: Note['id'];
|
||||
|
||||
@ManyToOne(type => Note, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public note: Note | null;
|
||||
@@ -25,19 +25,19 @@ export class AntennaNote {
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The antenna ID.'
|
||||
comment: 'The antenna ID.',
|
||||
})
|
||||
public antennaId: Antenna['id'];
|
||||
|
||||
@ManyToOne(type => Antenna, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public antenna: Antenna | null;
|
||||
|
||||
@Index()
|
||||
@Column('boolean', {
|
||||
default: false
|
||||
default: false,
|
||||
})
|
||||
public read: boolean;
|
||||
}
|
||||
|
@@ -10,26 +10,26 @@ export class Antenna {
|
||||
public id: string;
|
||||
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the Antenna.'
|
||||
comment: 'The created date of the Antenna.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The owner ID.'
|
||||
comment: 'The owner ID.',
|
||||
})
|
||||
public userId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128,
|
||||
comment: 'The name of the Antenna.'
|
||||
comment: 'The name of the Antenna.',
|
||||
})
|
||||
public name: string;
|
||||
|
||||
@@ -38,51 +38,51 @@ export class Antenna {
|
||||
|
||||
@Column({
|
||||
...id(),
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public userListId: UserList['id'] | null;
|
||||
|
||||
@ManyToOne(type => UserList, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public userList: UserList | null;
|
||||
|
||||
@Column({
|
||||
...id(),
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public userGroupJoiningId: UserGroupJoining['id'] | null;
|
||||
|
||||
@ManyToOne(type => UserGroupJoining, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public userGroupJoining: UserGroupJoining | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 1024, array: true,
|
||||
default: '{}'
|
||||
default: '{}',
|
||||
})
|
||||
public users: string[];
|
||||
|
||||
@Column('jsonb', {
|
||||
default: []
|
||||
default: [],
|
||||
})
|
||||
public keywords: string[][];
|
||||
|
||||
@Column('jsonb', {
|
||||
default: []
|
||||
default: [],
|
||||
})
|
||||
public excludeKeywords: string[][];
|
||||
|
||||
@Column('boolean', {
|
||||
default: false
|
||||
default: false,
|
||||
})
|
||||
public caseSensitive: boolean;
|
||||
|
||||
@Column('boolean', {
|
||||
default: false
|
||||
default: false,
|
||||
})
|
||||
public withReplies: boolean;
|
||||
|
||||
|
@@ -9,7 +9,7 @@ export class App {
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the App.'
|
||||
comment: 'The created date of the App.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@@ -17,7 +17,7 @@ export class App {
|
||||
@Column({
|
||||
...id(),
|
||||
nullable: true,
|
||||
comment: 'The owner ID.'
|
||||
comment: 'The owner ID.',
|
||||
})
|
||||
public userId: User['id'] | null;
|
||||
|
||||
@@ -30,31 +30,31 @@ export class App {
|
||||
@Index()
|
||||
@Column('varchar', {
|
||||
length: 64,
|
||||
comment: 'The secret key of the App.'
|
||||
comment: 'The secret key of the App.',
|
||||
})
|
||||
public secret: string;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128,
|
||||
comment: 'The name of the App.'
|
||||
comment: 'The name of the App.',
|
||||
})
|
||||
public name: string;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512,
|
||||
comment: 'The description of the App.'
|
||||
comment: 'The description of the App.',
|
||||
})
|
||||
public description: string;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 64, array: true,
|
||||
comment: 'The permission of the App.'
|
||||
comment: 'The permission of the App.',
|
||||
})
|
||||
public permission: string[];
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512, nullable: true,
|
||||
comment: 'The callbackUrl of the App.'
|
||||
comment: 'The callbackUrl of the App.',
|
||||
})
|
||||
public callbackUrl: string | null;
|
||||
}
|
||||
|
@@ -12,7 +12,7 @@ export class AttestationChallenge {
|
||||
public userId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
@@ -20,19 +20,19 @@ export class AttestationChallenge {
|
||||
@Index()
|
||||
@Column('varchar', {
|
||||
length: 64,
|
||||
comment: 'Hex-encoded sha256 hash of the challenge.'
|
||||
comment: 'Hex-encoded sha256 hash of the challenge.',
|
||||
})
|
||||
public challenge: string;
|
||||
|
||||
@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;
|
||||
|
||||
@Column('boolean', {
|
||||
comment:
|
||||
'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;
|
||||
|
||||
|
@@ -9,25 +9,25 @@ export class AuthSession {
|
||||
public id: string;
|
||||
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the AuthSession.'
|
||||
comment: 'The created date of the AuthSession.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@Index()
|
||||
@Column('varchar', {
|
||||
length: 128
|
||||
length: 128,
|
||||
})
|
||||
public token: string;
|
||||
|
||||
@Column({
|
||||
...id(),
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public userId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE',
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
@@ -36,7 +36,7 @@ export class AuthSession {
|
||||
public appId: App['id'];
|
||||
|
||||
@ManyToOne(type => App, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public app: App | null;
|
||||
|
@@ -10,19 +10,19 @@ export class Blocking {
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the Blocking.'
|
||||
comment: 'The created date of the Blocking.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The blockee user ID.'
|
||||
comment: 'The blockee user ID.',
|
||||
})
|
||||
public blockeeId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public blockee: User | null;
|
||||
@@ -30,12 +30,12 @@ export class Blocking {
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The blocker user ID.'
|
||||
comment: 'The blocker user ID.',
|
||||
})
|
||||
public blockerId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public blocker: User | null;
|
||||
|
@@ -11,19 +11,19 @@ export class ChannelFollowing {
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the ChannelFollowing.'
|
||||
comment: 'The created date of the ChannelFollowing.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The followee channel ID.'
|
||||
comment: 'The followee channel ID.',
|
||||
})
|
||||
public followeeId: Channel['id'];
|
||||
|
||||
@ManyToOne(type => Channel, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public followee: Channel | null;
|
||||
@@ -31,12 +31,12 @@ export class ChannelFollowing {
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The follower user ID.'
|
||||
comment: 'The follower user ID.',
|
||||
})
|
||||
public followerId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public follower: User | null;
|
||||
|
@@ -10,7 +10,7 @@ export class ChannelNotePining {
|
||||
public id: string;
|
||||
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the ChannelNotePining.'
|
||||
comment: 'The created date of the ChannelNotePining.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@@ -19,7 +19,7 @@ export class ChannelNotePining {
|
||||
public channelId: Channel['id'];
|
||||
|
||||
@ManyToOne(type => Channel, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public channel: Channel | null;
|
||||
@@ -28,7 +28,7 @@ export class ChannelNotePining {
|
||||
public noteId: Note['id'];
|
||||
|
||||
@ManyToOne(type => Note, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public note: Note | null;
|
||||
|
@@ -10,13 +10,13 @@ export class Channel {
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the Channel.'
|
||||
comment: 'The created date of the Channel.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public lastNotedAt: Date | null;
|
||||
|
||||
@@ -24,37 +24,37 @@ export class Channel {
|
||||
@Column({
|
||||
...id(),
|
||||
nullable: true,
|
||||
comment: 'The owner ID.'
|
||||
comment: 'The owner ID.',
|
||||
})
|
||||
public userId: User['id'] | null;
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'SET NULL'
|
||||
onDelete: 'SET NULL',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128,
|
||||
comment: 'The name of the Channel.'
|
||||
comment: 'The name of the Channel.',
|
||||
})
|
||||
public name: string;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 2048, nullable: true,
|
||||
comment: 'The description of the Channel.'
|
||||
comment: 'The description of the Channel.',
|
||||
})
|
||||
public description: string | null;
|
||||
|
||||
@Column({
|
||||
...id(),
|
||||
nullable: true,
|
||||
comment: 'The ID of banner Channel.'
|
||||
comment: 'The ID of banner Channel.',
|
||||
})
|
||||
public bannerId: DriveFile['id'] | null;
|
||||
|
||||
@ManyToOne(type => DriveFile, {
|
||||
onDelete: 'SET NULL'
|
||||
onDelete: 'SET NULL',
|
||||
})
|
||||
@JoinColumn()
|
||||
public banner: DriveFile | null;
|
||||
@@ -62,14 +62,14 @@ export class Channel {
|
||||
@Index()
|
||||
@Column('integer', {
|
||||
default: 0,
|
||||
comment: 'The count of notes.'
|
||||
comment: 'The count of notes.',
|
||||
})
|
||||
public notesCount: number;
|
||||
|
||||
@Index()
|
||||
@Column('integer', {
|
||||
default: 0,
|
||||
comment: 'The count of users.'
|
||||
comment: 'The count of users.',
|
||||
})
|
||||
public usersCount: number;
|
||||
}
|
||||
|
@@ -12,12 +12,12 @@ export class ClipNote {
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The note ID.'
|
||||
comment: 'The note ID.',
|
||||
})
|
||||
public noteId: Note['id'];
|
||||
|
||||
@ManyToOne(type => Note, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public note: Note | null;
|
||||
@@ -25,12 +25,12 @@ export class ClipNote {
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The clip ID.'
|
||||
comment: 'The clip ID.',
|
||||
})
|
||||
public clipId: Clip['id'];
|
||||
|
||||
@ManyToOne(type => Clip, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public clip: Clip | null;
|
||||
|
@@ -8,37 +8,37 @@ export class Clip {
|
||||
public id: string;
|
||||
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the Clip.'
|
||||
comment: 'The created date of the Clip.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The owner ID.'
|
||||
comment: 'The owner ID.',
|
||||
})
|
||||
public userId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128,
|
||||
comment: 'The name of the Clip.'
|
||||
comment: 'The name of the Clip.',
|
||||
})
|
||||
public name: string;
|
||||
|
||||
@Column('boolean', {
|
||||
default: false
|
||||
default: false,
|
||||
})
|
||||
public isPublic: boolean;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 2048, nullable: true, default: null,
|
||||
comment: 'The description of the Clip.'
|
||||
comment: 'The description of the Clip.',
|
||||
})
|
||||
public description: string | null;
|
||||
}
|
||||
|
@@ -11,7 +11,7 @@ export class DriveFile {
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the DriveFile.'
|
||||
comment: 'The created date of the DriveFile.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@@ -19,12 +19,12 @@ export class DriveFile {
|
||||
@Column({
|
||||
...id(),
|
||||
nullable: true,
|
||||
comment: 'The owner ID.'
|
||||
comment: 'The owner ID.',
|
||||
})
|
||||
public userId: User['id'] | null;
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'SET NULL'
|
||||
onDelete: 'SET NULL',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
@@ -32,52 +32,52 @@ export class DriveFile {
|
||||
@Index()
|
||||
@Column('varchar', {
|
||||
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;
|
||||
|
||||
@Index()
|
||||
@Column('varchar', {
|
||||
length: 32,
|
||||
comment: 'The MD5 hash of the DriveFile.'
|
||||
comment: 'The MD5 hash of the DriveFile.',
|
||||
})
|
||||
public md5: string;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 256,
|
||||
comment: 'The file name of the DriveFile.'
|
||||
comment: 'The file name of the DriveFile.',
|
||||
})
|
||||
public name: string;
|
||||
|
||||
@Index()
|
||||
@Column('varchar', {
|
||||
length: 128,
|
||||
comment: 'The content type (MIME) of the DriveFile.'
|
||||
comment: 'The content type (MIME) of the DriveFile.',
|
||||
})
|
||||
public type: string;
|
||||
|
||||
@Column('integer', {
|
||||
comment: 'The file size (bytes) of the DriveFile.'
|
||||
comment: 'The file size (bytes) of the DriveFile.',
|
||||
})
|
||||
public size: number;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512, nullable: true,
|
||||
comment: 'The comment of the DriveFile.'
|
||||
comment: 'The comment of the DriveFile.',
|
||||
})
|
||||
public comment: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128, nullable: true,
|
||||
comment: 'The BlurHash string.'
|
||||
comment: 'The BlurHash string.',
|
||||
})
|
||||
public blurhash: string | null;
|
||||
|
||||
@Column('jsonb', {
|
||||
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; avgColor?: string };
|
||||
public properties: { width?: number; height?: number; orientation?: number; avgColor?: string };
|
||||
|
||||
@Index()
|
||||
@Column('boolean')
|
||||
@@ -85,19 +85,19 @@ export class DriveFile {
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512,
|
||||
comment: 'The URL of the DriveFile.'
|
||||
comment: 'The URL of the DriveFile.',
|
||||
})
|
||||
public url: string;
|
||||
|
||||
@Column('varchar', {
|
||||
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;
|
||||
|
||||
@Column('varchar', {
|
||||
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;
|
||||
|
||||
@@ -122,7 +122,7 @@ export class DriveFile {
|
||||
@Index()
|
||||
@Column('varchar', {
|
||||
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;
|
||||
|
||||
@@ -135,12 +135,12 @@ export class DriveFile {
|
||||
@Column({
|
||||
...id(),
|
||||
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;
|
||||
|
||||
@ManyToOne(type => DriveFolder, {
|
||||
onDelete: 'SET NULL'
|
||||
onDelete: 'SET NULL',
|
||||
})
|
||||
@JoinColumn()
|
||||
public folder: DriveFolder | null;
|
||||
@@ -148,7 +148,7 @@ export class DriveFile {
|
||||
@Index()
|
||||
@Column('boolean', {
|
||||
default: false,
|
||||
comment: 'Whether the DriveFile is NSFW.'
|
||||
comment: 'Whether the DriveFile is NSFW.',
|
||||
})
|
||||
public isSensitive: boolean;
|
||||
|
||||
@@ -158,7 +158,7 @@ export class DriveFile {
|
||||
@Index()
|
||||
@Column('boolean', {
|
||||
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;
|
||||
}
|
||||
|
@@ -9,13 +9,13 @@ export class DriveFolder {
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the DriveFolder.'
|
||||
comment: 'The created date of the DriveFolder.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128,
|
||||
comment: 'The name of the DriveFolder.'
|
||||
comment: 'The name of the DriveFolder.',
|
||||
})
|
||||
public name: string;
|
||||
|
||||
@@ -23,12 +23,12 @@ export class DriveFolder {
|
||||
@Column({
|
||||
...id(),
|
||||
nullable: true,
|
||||
comment: 'The owner ID.'
|
||||
comment: 'The owner ID.',
|
||||
})
|
||||
public userId: User['id'] | null;
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
@@ -37,12 +37,12 @@ export class DriveFolder {
|
||||
@Column({
|
||||
...id(),
|
||||
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;
|
||||
|
||||
@ManyToOne(type => DriveFolder, {
|
||||
onDelete: 'SET NULL'
|
||||
onDelete: 'SET NULL',
|
||||
})
|
||||
@JoinColumn()
|
||||
public parent: DriveFolder | null;
|
||||
|
@@ -8,24 +8,24 @@ export class Emoji {
|
||||
public id: string;
|
||||
|
||||
@Column('timestamp with time zone', {
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public updatedAt: Date | null;
|
||||
|
||||
@Index()
|
||||
@Column('varchar', {
|
||||
length: 128
|
||||
length: 128,
|
||||
})
|
||||
public name: string;
|
||||
|
||||
@Index()
|
||||
@Column('varchar', {
|
||||
length: 128, nullable: true
|
||||
length: 128, nullable: true,
|
||||
})
|
||||
public host: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128, nullable: true
|
||||
length: 128, nullable: true,
|
||||
})
|
||||
public category: string | null;
|
||||
|
||||
@@ -35,17 +35,17 @@ export class Emoji {
|
||||
public url: string;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512, nullable: true
|
||||
length: 512, nullable: true,
|
||||
})
|
||||
public uri: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 64, nullable: true
|
||||
length: 64, nullable: true,
|
||||
})
|
||||
public type: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
array: true, length: 128, default: '{}'
|
||||
array: true, length: 128, default: '{}',
|
||||
})
|
||||
public aliases: string[];
|
||||
}
|
||||
|
@@ -9,19 +9,19 @@ export class FollowRequest {
|
||||
public id: string;
|
||||
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the FollowRequest.'
|
||||
comment: 'The created date of the FollowRequest.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The followee user ID.'
|
||||
comment: 'The followee user ID.',
|
||||
})
|
||||
public followeeId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public followee: User | null;
|
||||
@@ -29,56 +29,56 @@ export class FollowRequest {
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The follower user ID.'
|
||||
comment: 'The follower user ID.',
|
||||
})
|
||||
public followerId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public follower: User | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128, nullable: true,
|
||||
comment: 'id of Follow Activity.'
|
||||
comment: 'id of Follow Activity.',
|
||||
})
|
||||
public requestId: string | null;
|
||||
|
||||
//#region Denormalized fields
|
||||
@Column('varchar', {
|
||||
length: 128, nullable: true,
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public followerHost: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512, nullable: true,
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public followerInbox: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512, nullable: true,
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public followerSharedInbox: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128, nullable: true,
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public followeeHost: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512, nullable: true,
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public followeeInbox: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512, nullable: true,
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public followeeSharedInbox: string | null;
|
||||
//#endregion
|
||||
|
@@ -10,19 +10,19 @@ export class Following {
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the Following.'
|
||||
comment: 'The created date of the Following.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The followee user ID.'
|
||||
comment: 'The followee user ID.',
|
||||
})
|
||||
public followeeId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public followee: User | null;
|
||||
@@ -30,12 +30,12 @@ export class Following {
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The follower user ID.'
|
||||
comment: 'The follower user ID.',
|
||||
})
|
||||
public followerId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public follower: User | null;
|
||||
@@ -43,37 +43,37 @@ export class Following {
|
||||
//#region Denormalized fields
|
||||
@Column('varchar', {
|
||||
length: 128, nullable: true,
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public followerHost: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512, nullable: true,
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public followerInbox: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512, nullable: true,
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public followerSharedInbox: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128, nullable: true,
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public followeeHost: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512, nullable: true,
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public followeeInbox: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512, nullable: true,
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public followeeSharedInbox: string | null;
|
||||
//#endregion
|
||||
|
@@ -17,7 +17,7 @@ export class GalleryLike {
|
||||
public userId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
@@ -26,7 +26,7 @@ export class GalleryLike {
|
||||
public postId: GalleryPost['id'];
|
||||
|
||||
@ManyToOne(type => GalleryPost, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public post: GalleryPost | null;
|
||||
|
@@ -10,13 +10,13 @@ export class GalleryPost {
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the GalleryPost.'
|
||||
comment: 'The created date of the GalleryPost.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The updated date of the GalleryPost.'
|
||||
comment: 'The updated date of the GalleryPost.',
|
||||
})
|
||||
public updatedAt: Date;
|
||||
|
||||
@@ -26,19 +26,19 @@ export class GalleryPost {
|
||||
public title: string;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 2048, nullable: true
|
||||
length: 2048, nullable: true,
|
||||
})
|
||||
public description: string | null;
|
||||
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The ID of author.'
|
||||
comment: 'The ID of author.',
|
||||
})
|
||||
public userId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
@@ -46,26 +46,26 @@ export class GalleryPost {
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
array: true, default: '{}'
|
||||
array: true, default: '{}',
|
||||
})
|
||||
public fileIds: DriveFile['id'][];
|
||||
|
||||
@Index()
|
||||
@Column('boolean', {
|
||||
default: false,
|
||||
comment: 'Whether the post is sensitive.'
|
||||
comment: 'Whether the post is sensitive.',
|
||||
})
|
||||
public isSensitive: boolean;
|
||||
|
||||
@Index()
|
||||
@Column('integer', {
|
||||
default: 0
|
||||
default: 0,
|
||||
})
|
||||
public likedCount: number;
|
||||
|
||||
@Index()
|
||||
@Column('varchar', {
|
||||
length: 128, array: true, default: '{}'
|
||||
length: 128, array: true, default: '{}',
|
||||
})
|
||||
public tags: string[];
|
||||
|
||||
|
@@ -9,13 +9,13 @@ export class ReversiGame {
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the ReversiGame.'
|
||||
comment: 'The created date of the ReversiGame.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@Column('timestamp with time zone', {
|
||||
nullable: true,
|
||||
comment: 'The started date of the ReversiGame.'
|
||||
comment: 'The started date of the ReversiGame.',
|
||||
})
|
||||
public startedAt: Date | null;
|
||||
|
||||
@@ -23,7 +23,7 @@ export class ReversiGame {
|
||||
public user1Id: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user1: User | null;
|
||||
@@ -32,7 +32,7 @@ export class ReversiGame {
|
||||
public user2Id: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user2: User | null;
|
||||
@@ -69,13 +69,13 @@ export class ReversiGame {
|
||||
|
||||
@Column({
|
||||
...id(),
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public winnerId: User['id'] | null;
|
||||
|
||||
@Column({
|
||||
...id(),
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public surrendered: User['id'] | null;
|
||||
|
||||
@@ -94,7 +94,7 @@ export class ReversiGame {
|
||||
public map: string[];
|
||||
|
||||
@Column('varchar', {
|
||||
length: 32
|
||||
length: 32,
|
||||
})
|
||||
public bw: string;
|
||||
|
||||
@@ -127,7 +127,7 @@ export class ReversiGame {
|
||||
* ログのposを文字列としてすべて連結したもののCRC32値
|
||||
*/
|
||||
@Column('varchar', {
|
||||
length: 32, nullable: true
|
||||
length: 32, nullable: true,
|
||||
})
|
||||
public crc32: string | null;
|
||||
}
|
||||
|
@@ -9,7 +9,7 @@ export class ReversiMatching {
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the ReversiMatching.'
|
||||
comment: 'The created date of the ReversiMatching.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@@ -18,7 +18,7 @@ export class ReversiMatching {
|
||||
public parentId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public parent: User | null;
|
||||
@@ -28,7 +28,7 @@ export class ReversiMatching {
|
||||
public childId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public child: User | null;
|
||||
|
@@ -9,7 +9,7 @@ export class Hashtag {
|
||||
|
||||
@Index({ unique: true })
|
||||
@Column('varchar', {
|
||||
length: 128
|
||||
length: 128,
|
||||
})
|
||||
public name: string;
|
||||
|
||||
@@ -21,7 +21,7 @@ export class Hashtag {
|
||||
|
||||
@Index()
|
||||
@Column('integer', {
|
||||
default: 0
|
||||
default: 0,
|
||||
})
|
||||
public mentionedUsersCount: number;
|
||||
|
||||
@@ -33,7 +33,7 @@ export class Hashtag {
|
||||
|
||||
@Index()
|
||||
@Column('integer', {
|
||||
default: 0
|
||||
default: 0,
|
||||
})
|
||||
public mentionedLocalUsersCount: number;
|
||||
|
||||
@@ -45,7 +45,7 @@ export class Hashtag {
|
||||
|
||||
@Index()
|
||||
@Column('integer', {
|
||||
default: 0
|
||||
default: 0,
|
||||
})
|
||||
public mentionedRemoteUsersCount: number;
|
||||
|
||||
@@ -57,7 +57,7 @@ export class Hashtag {
|
||||
|
||||
@Index()
|
||||
@Column('integer', {
|
||||
default: 0
|
||||
default: 0,
|
||||
})
|
||||
public attachedUsersCount: number;
|
||||
|
||||
@@ -69,7 +69,7 @@ export class Hashtag {
|
||||
|
||||
@Index()
|
||||
@Column('integer', {
|
||||
default: 0
|
||||
default: 0,
|
||||
})
|
||||
public attachedLocalUsersCount: number;
|
||||
|
||||
@@ -81,7 +81,7 @@ export class Hashtag {
|
||||
|
||||
@Index()
|
||||
@Column('integer', {
|
||||
default: 0
|
||||
default: 0,
|
||||
})
|
||||
public attachedRemoteUsersCount: number;
|
||||
}
|
||||
|
@@ -11,7 +11,7 @@ export class Instance {
|
||||
*/
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The caught date of the Instance.'
|
||||
comment: 'The caught date of the Instance.',
|
||||
})
|
||||
public caughtAt: Date;
|
||||
|
||||
@@ -21,7 +21,7 @@ export class Instance {
|
||||
@Index({ unique: true })
|
||||
@Column('varchar', {
|
||||
length: 128,
|
||||
comment: 'The host of the Instance.'
|
||||
comment: 'The host of the Instance.',
|
||||
})
|
||||
public host: string;
|
||||
|
||||
@@ -30,7 +30,7 @@ export class Instance {
|
||||
*/
|
||||
@Column('integer', {
|
||||
default: 0,
|
||||
comment: 'The count of the users of the Instance.'
|
||||
comment: 'The count of the users of the Instance.',
|
||||
})
|
||||
public usersCount: number;
|
||||
|
||||
@@ -39,7 +39,7 @@ export class Instance {
|
||||
*/
|
||||
@Column('integer', {
|
||||
default: 0,
|
||||
comment: 'The count of the notes of the Instance.'
|
||||
comment: 'The count of the notes of the Instance.',
|
||||
})
|
||||
public notesCount: number;
|
||||
|
||||
@@ -109,7 +109,7 @@ export class Instance {
|
||||
* このインスタンスと不通かどうか
|
||||
*/
|
||||
@Column('boolean', {
|
||||
default: false
|
||||
default: false,
|
||||
})
|
||||
public isNotResponding: boolean;
|
||||
|
||||
@@ -118,13 +118,13 @@ export class Instance {
|
||||
*/
|
||||
@Index()
|
||||
@Column('boolean', {
|
||||
default: false
|
||||
default: false,
|
||||
})
|
||||
public isSuspended: boolean;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 64, nullable: true, default: null,
|
||||
comment: 'The software of the Instance.'
|
||||
comment: 'The software of the Instance.',
|
||||
})
|
||||
public softwareName: string | null;
|
||||
|
||||
|
@@ -11,19 +11,19 @@ export class MessagingMessage {
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the MessagingMessage.'
|
||||
comment: 'The created date of the MessagingMessage.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The sender user ID.'
|
||||
comment: 'The sender user ID.',
|
||||
})
|
||||
public userId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
@@ -31,12 +31,12 @@ export class MessagingMessage {
|
||||
@Index()
|
||||
@Column({
|
||||
...id(), nullable: true,
|
||||
comment: 'The recipient user ID.'
|
||||
comment: 'The recipient user ID.',
|
||||
})
|
||||
public recipientId: User['id'] | null;
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public recipient: User | null;
|
||||
@@ -44,18 +44,18 @@ export class MessagingMessage {
|
||||
@Index()
|
||||
@Column({
|
||||
...id(), nullable: true,
|
||||
comment: 'The recipient group ID.'
|
||||
comment: 'The recipient group ID.',
|
||||
})
|
||||
public groupId: UserGroup['id'] | null;
|
||||
|
||||
@ManyToOne(type => UserGroup, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public group: UserGroup | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 4096, nullable: true
|
||||
length: 4096, nullable: true,
|
||||
})
|
||||
public text: string | null;
|
||||
|
||||
@@ -71,7 +71,7 @@ export class MessagingMessage {
|
||||
|
||||
@Column({
|
||||
...id(),
|
||||
array: true, default: '{}'
|
||||
array: true, default: '{}',
|
||||
})
|
||||
public reads: User['id'][];
|
||||
|
||||
@@ -82,7 +82,7 @@ export class MessagingMessage {
|
||||
public fileId: DriveFile['id'] | null;
|
||||
|
||||
@ManyToOne(type => DriveFile, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public file: DriveFile | null;
|
||||
|
@@ -7,17 +7,17 @@ import { Clip } from './clip';
|
||||
export class Meta {
|
||||
@PrimaryColumn({
|
||||
type: 'varchar',
|
||||
length: 32
|
||||
length: 32,
|
||||
})
|
||||
public id: string;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128, nullable: true
|
||||
length: 128, nullable: true,
|
||||
})
|
||||
public name: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 1024, nullable: true
|
||||
length: 1024, nullable: true,
|
||||
})
|
||||
public description: string | null;
|
||||
|
||||
@@ -25,7 +25,7 @@ export class Meta {
|
||||
* メンテナの名前
|
||||
*/
|
||||
@Column('varchar', {
|
||||
length: 128, nullable: true
|
||||
length: 128, nullable: true,
|
||||
})
|
||||
public maintainerName: string | null;
|
||||
|
||||
@@ -33,7 +33,7 @@ export class Meta {
|
||||
* メンテナの連絡先
|
||||
*/
|
||||
@Column('varchar', {
|
||||
length: 128, nullable: true
|
||||
length: 128, nullable: true,
|
||||
})
|
||||
public maintainerEmail: string | null;
|
||||
|
||||
@@ -58,27 +58,27 @@ export class Meta {
|
||||
public useStarForReactionFallback: boolean;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 64, array: true, default: '{}'
|
||||
length: 64, array: true, default: '{}',
|
||||
})
|
||||
public langs: string[];
|
||||
|
||||
@Column('varchar', {
|
||||
length: 256, array: true, default: '{}'
|
||||
length: 256, array: true, default: '{}',
|
||||
})
|
||||
public pinnedUsers: string[];
|
||||
|
||||
@Column('varchar', {
|
||||
length: 256, array: true, default: '{}'
|
||||
length: 256, array: true, default: '{}',
|
||||
})
|
||||
public hiddenTags: string[];
|
||||
|
||||
@Column('varchar', {
|
||||
length: 256, array: true, default: '{}'
|
||||
length: 256, array: true, default: '{}',
|
||||
})
|
||||
public blockedHosts: string[];
|
||||
|
||||
@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[];
|
||||
|
||||
@@ -91,38 +91,38 @@ export class Meta {
|
||||
@Column('varchar', {
|
||||
length: 512,
|
||||
nullable: true,
|
||||
default: '/assets/ai.png'
|
||||
default: '/assets/ai.png',
|
||||
})
|
||||
public mascotImageUrl: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public bannerUrl: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public backgroundImageUrl: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public logoImageUrl: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512,
|
||||
nullable: true,
|
||||
default: 'https://xn--931a.moe/aiart/yubitun.png'
|
||||
default: 'https://xn--931a.moe/aiart/yubitun.png',
|
||||
})
|
||||
public errorImageUrl: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public iconUrl: string | null;
|
||||
|
||||
@@ -143,7 +143,7 @@ export class Meta {
|
||||
public proxyAccountId: User['id'] | null;
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'SET NULL'
|
||||
onDelete: 'SET NULL',
|
||||
})
|
||||
@JoinColumn()
|
||||
public proxyAccount: User | null;
|
||||
@@ -160,13 +160,13 @@ export class Meta {
|
||||
|
||||
@Column('varchar', {
|
||||
length: 64,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public hcaptchaSiteKey: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 64,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public hcaptchaSecretKey: string | null;
|
||||
|
||||
@@ -177,37 +177,37 @@ export class Meta {
|
||||
|
||||
@Column('varchar', {
|
||||
length: 64,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public recaptchaSiteKey: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 64,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public recaptchaSecretKey: string | null;
|
||||
|
||||
@Column('integer', {
|
||||
default: 1024,
|
||||
comment: 'Drive capacity of a local user (MB)'
|
||||
comment: 'Drive capacity of a local user (MB)',
|
||||
})
|
||||
public localDriveCapacityMb: number;
|
||||
|
||||
@Column('integer', {
|
||||
default: 32,
|
||||
comment: 'Drive capacity of a remote user (MB)'
|
||||
comment: 'Drive capacity of a remote user (MB)',
|
||||
})
|
||||
public remoteDriveCapacityMb: number;
|
||||
|
||||
@Column('integer', {
|
||||
default: 500,
|
||||
comment: 'Max allowed note text length in characters'
|
||||
comment: 'Max allowed note text length in characters',
|
||||
})
|
||||
public maxNoteTextLength: number;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public summalyProxy: string | null;
|
||||
|
||||
@@ -218,7 +218,7 @@ export class Meta {
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public email: string | null;
|
||||
|
||||
@@ -229,24 +229,24 @@ export class Meta {
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public smtpHost: string | null;
|
||||
|
||||
@Column('integer', {
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public smtpPort: number | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public smtpUser: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public smtpPass: string | null;
|
||||
|
||||
@@ -257,13 +257,13 @@ export class Meta {
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public swPublicKey: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public swPrivateKey: string | null;
|
||||
|
||||
@@ -274,13 +274,13 @@ export class Meta {
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public twitterConsumerKey: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public twitterConsumerSecret: string | null;
|
||||
|
||||
@@ -291,13 +291,13 @@ export class Meta {
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public githubClientId: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public githubClientSecret: string | null;
|
||||
|
||||
@@ -308,19 +308,19 @@ export class Meta {
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public discordClientId: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public discordClientSecret: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public deeplAuthKey: string | null;
|
||||
|
||||
@@ -331,21 +331,21 @@ export class Meta {
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public ToSUrl: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512,
|
||||
default: 'https://github.com/misskey-dev/misskey',
|
||||
nullable: false
|
||||
nullable: false,
|
||||
})
|
||||
public repositoryUrl: string;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512,
|
||||
default: 'https://github.com/misskey-dev/misskey/issues/new',
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public feedbackUrl: string | null;
|
||||
|
||||
@@ -356,48 +356,48 @@ export class Meta {
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public objectStorageBucket: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public objectStoragePrefix: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public objectStorageBaseUrl: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public objectStorageEndpoint: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public objectStorageRegion: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public objectStorageAccessKey: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512,
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public objectStorageSecretKey: string | null;
|
||||
|
||||
@Column('integer', {
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public objectStoragePort: number | null;
|
||||
|
||||
|
@@ -8,7 +8,7 @@ export class ModerationLog {
|
||||
public id: string;
|
||||
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the ModerationLog.'
|
||||
comment: 'The created date of the ModerationLog.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@@ -17,7 +17,7 @@ export class ModerationLog {
|
||||
public userId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
|
@@ -13,12 +13,12 @@ export class MutedNote {
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The note ID.'
|
||||
comment: 'The note ID.',
|
||||
})
|
||||
public noteId: Note['id'];
|
||||
|
||||
@ManyToOne(type => Note, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public note: Note | null;
|
||||
@@ -26,12 +26,12 @@ export class MutedNote {
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The user ID.'
|
||||
comment: 'The user ID.',
|
||||
})
|
||||
public userId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
@@ -42,7 +42,7 @@ export class MutedNote {
|
||||
@Index()
|
||||
@Column('enum', {
|
||||
enum: mutedNoteReasons,
|
||||
comment: 'The reason of the MutedNote.'
|
||||
comment: 'The reason of the MutedNote.',
|
||||
})
|
||||
public reason: typeof mutedNoteReasons[number];
|
||||
}
|
||||
|
@@ -10,19 +10,19 @@ export class Muting {
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the Muting.'
|
||||
comment: 'The created date of the Muting.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The mutee user ID.'
|
||||
comment: 'The mutee user ID.',
|
||||
})
|
||||
public muteeId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public mutee: User | null;
|
||||
@@ -30,12 +30,12 @@ export class Muting {
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The muter user ID.'
|
||||
comment: 'The muter user ID.',
|
||||
})
|
||||
public muterId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public muter: User | null;
|
||||
|
@@ -10,7 +10,7 @@ export class NoteFavorite {
|
||||
public id: string;
|
||||
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the NoteFavorite.'
|
||||
comment: 'The created date of the NoteFavorite.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@@ -19,7 +19,7 @@ export class NoteFavorite {
|
||||
public userId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
@@ -28,7 +28,7 @@ export class NoteFavorite {
|
||||
public noteId: Note['id'];
|
||||
|
||||
@ManyToOne(type => Note, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public note: Note | null;
|
||||
|
@@ -11,7 +11,7 @@ export class NoteReaction {
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the NoteReaction.'
|
||||
comment: 'The created date of the NoteReaction.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@@ -20,7 +20,7 @@ export class NoteReaction {
|
||||
public userId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user?: User | null;
|
||||
@@ -30,7 +30,7 @@ export class NoteReaction {
|
||||
public noteId: Note['id'];
|
||||
|
||||
@ManyToOne(type => Note, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public note?: Note | null;
|
||||
@@ -38,7 +38,7 @@ export class NoteReaction {
|
||||
// TODO: 対象noteのuserIdを非正規化したい(「受け取ったリアクション一覧」のようなものを(JOIN無しで)実装したいため)
|
||||
|
||||
@Column('varchar', {
|
||||
length: 260
|
||||
length: 260,
|
||||
})
|
||||
public reaction: string;
|
||||
}
|
||||
|
@@ -20,7 +20,7 @@ export class NoteThreadMuting {
|
||||
public userId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
|
@@ -15,7 +15,7 @@ export class NoteUnread {
|
||||
public userId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
@@ -25,7 +25,7 @@ export class NoteUnread {
|
||||
public noteId: Note['id'];
|
||||
|
||||
@ManyToOne(type => Note, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public note: Note | null;
|
||||
@@ -48,7 +48,7 @@ export class NoteUnread {
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public noteUserId: User['id'];
|
||||
|
||||
@@ -56,7 +56,7 @@ export class NoteUnread {
|
||||
@Column({
|
||||
...id(),
|
||||
nullable: true,
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public noteChannelId: Channel['id'] | null;
|
||||
//#endregion
|
||||
|
@@ -11,19 +11,19 @@ export class NoteWatching {
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the NoteWatching.'
|
||||
comment: 'The created date of the NoteWatching.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The watcher ID.'
|
||||
comment: 'The watcher ID.',
|
||||
})
|
||||
public userId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
@@ -31,12 +31,12 @@ export class NoteWatching {
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The target Note ID.'
|
||||
comment: 'The target Note ID.',
|
||||
})
|
||||
public noteId: Note['id'];
|
||||
|
||||
@ManyToOne(type => Note, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public note: Note | null;
|
||||
@@ -45,7 +45,7 @@ export class NoteWatching {
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public noteUserId: Note['userId'];
|
||||
//#endregion
|
||||
|
@@ -15,7 +15,7 @@ export class Note {
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the Note.'
|
||||
comment: 'The created date of the Note.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@@ -23,12 +23,12 @@ export class Note {
|
||||
@Column({
|
||||
...id(),
|
||||
nullable: true,
|
||||
comment: 'The ID of reply target.'
|
||||
comment: 'The ID of reply target.',
|
||||
})
|
||||
public replyId: Note['id'] | null;
|
||||
|
||||
@ManyToOne(type => Note, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public reply: Note | null;
|
||||
@@ -37,67 +37,67 @@ export class Note {
|
||||
@Column({
|
||||
...id(),
|
||||
nullable: true,
|
||||
comment: 'The ID of renote target.'
|
||||
comment: 'The ID of renote target.',
|
||||
})
|
||||
public renoteId: Note['id'] | null;
|
||||
|
||||
@ManyToOne(type => Note, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public renote: Note | null;
|
||||
|
||||
@Index()
|
||||
@Column('varchar', {
|
||||
length: 256, nullable: true
|
||||
length: 256, nullable: true,
|
||||
})
|
||||
public threadId: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 8192, nullable: true
|
||||
length: 8192, nullable: true,
|
||||
})
|
||||
public text: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 256, nullable: true
|
||||
length: 256, nullable: true,
|
||||
})
|
||||
public name: string | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 512, nullable: true
|
||||
length: 512, nullable: true,
|
||||
})
|
||||
public cw: string | null;
|
||||
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The ID of author.'
|
||||
comment: 'The ID of author.',
|
||||
})
|
||||
public userId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
|
||||
@Column('boolean', {
|
||||
default: false
|
||||
default: false,
|
||||
})
|
||||
public localOnly: boolean;
|
||||
|
||||
@Column('smallint', {
|
||||
default: 0
|
||||
default: 0,
|
||||
})
|
||||
public renoteCount: number;
|
||||
|
||||
@Column('smallint', {
|
||||
default: 0
|
||||
default: 0,
|
||||
})
|
||||
public repliesCount: number;
|
||||
|
||||
@Column('jsonb', {
|
||||
default: {}
|
||||
default: {},
|
||||
})
|
||||
public reactions: Record<string, number>;
|
||||
|
||||
@@ -113,66 +113,66 @@ export class Note {
|
||||
@Index({ unique: true })
|
||||
@Column('varchar', {
|
||||
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;
|
||||
|
||||
@Column('varchar', {
|
||||
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;
|
||||
|
||||
@Column('integer', {
|
||||
default: 0, select: false
|
||||
default: 0, select: false,
|
||||
})
|
||||
public score: number;
|
||||
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
array: true, default: '{}'
|
||||
array: true, default: '{}',
|
||||
})
|
||||
public fileIds: DriveFile['id'][];
|
||||
|
||||
@Index()
|
||||
@Column('varchar', {
|
||||
length: 256, array: true, default: '{}'
|
||||
length: 256, array: true, default: '{}',
|
||||
})
|
||||
public attachedFileTypes: string[];
|
||||
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
array: true, default: '{}'
|
||||
array: true, default: '{}',
|
||||
})
|
||||
public visibleUserIds: User['id'][];
|
||||
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
array: true, default: '{}'
|
||||
array: true, default: '{}',
|
||||
})
|
||||
public mentions: User['id'][];
|
||||
|
||||
@Column('text', {
|
||||
default: '[]'
|
||||
default: '[]',
|
||||
})
|
||||
public mentionedRemoteUsers: string;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128, array: true, default: '{}'
|
||||
length: 128, array: true, default: '{}',
|
||||
})
|
||||
public emojis: string[];
|
||||
|
||||
@Index()
|
||||
@Column('varchar', {
|
||||
length: 128, array: true, default: '{}'
|
||||
length: 128, array: true, default: '{}',
|
||||
})
|
||||
public tags: string[];
|
||||
|
||||
@Column('boolean', {
|
||||
default: false
|
||||
default: false,
|
||||
})
|
||||
public hasPoll: boolean;
|
||||
|
||||
@@ -180,12 +180,12 @@ export class Note {
|
||||
@Column({
|
||||
...id(),
|
||||
nullable: true, default: null,
|
||||
comment: 'The ID of source channel.'
|
||||
comment: 'The ID of source channel.',
|
||||
})
|
||||
public channelId: Channel['id'] | null;
|
||||
|
||||
@ManyToOne(type => Channel, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public channel: Channel | null;
|
||||
@@ -194,33 +194,33 @@ export class Note {
|
||||
@Index()
|
||||
@Column('varchar', {
|
||||
length: 128, nullable: true,
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public userHost: string | null;
|
||||
|
||||
@Column({
|
||||
...id(),
|
||||
nullable: true,
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public replyUserId: User['id'] | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128, nullable: true,
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public replyUserHost: string | null;
|
||||
|
||||
@Column({
|
||||
...id(),
|
||||
nullable: true,
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public renoteUserId: User['id'] | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128, nullable: true,
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public renoteUserHost: string | null;
|
||||
//#endregion
|
||||
|
@@ -14,7 +14,7 @@ export class Notification {
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the Notification.'
|
||||
comment: 'The created date of the Notification.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@@ -24,12 +24,12 @@ export class Notification {
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The ID of recipient user of the Notification.'
|
||||
comment: 'The ID of recipient user of the Notification.',
|
||||
})
|
||||
public notifieeId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public notifiee: User | null;
|
||||
@@ -41,12 +41,12 @@ export class Notification {
|
||||
@Column({
|
||||
...id(),
|
||||
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;
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public notifier: User | null;
|
||||
@@ -68,7 +68,7 @@ export class Notification {
|
||||
@Index()
|
||||
@Column('enum', {
|
||||
enum: notificationTypes,
|
||||
comment: 'The type of the Notification.'
|
||||
comment: 'The type of the Notification.',
|
||||
})
|
||||
public type: typeof notificationTypes[number];
|
||||
|
||||
@@ -78,53 +78,53 @@ export class Notification {
|
||||
@Index()
|
||||
@Column('boolean', {
|
||||
default: false,
|
||||
comment: 'Whether the Notification is read.'
|
||||
comment: 'Whether the Notification is read.',
|
||||
})
|
||||
public isRead: boolean;
|
||||
|
||||
@Column({
|
||||
...id(),
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public noteId: Note['id'] | null;
|
||||
|
||||
@ManyToOne(type => Note, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public note: Note | null;
|
||||
|
||||
@Column({
|
||||
...id(),
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public followRequestId: FollowRequest['id'] | null;
|
||||
|
||||
@ManyToOne(type => FollowRequest, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public followRequest: FollowRequest | null;
|
||||
|
||||
@Column({
|
||||
...id(),
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public userGroupInvitationId: UserGroupInvitation['id'] | null;
|
||||
|
||||
@ManyToOne(type => UserGroupInvitation, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public userGroupInvitation: UserGroupInvitation | null;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128, nullable: true
|
||||
length: 128, nullable: true,
|
||||
})
|
||||
public reaction: string | null;
|
||||
|
||||
@Column('integer', {
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public choice: number | null;
|
||||
|
||||
@@ -132,7 +132,7 @@ export class Notification {
|
||||
* アプリ通知のbody
|
||||
*/
|
||||
@Column('varchar', {
|
||||
length: 2048, nullable: true
|
||||
length: 2048, nullable: true,
|
||||
})
|
||||
public customBody: string | null;
|
||||
|
||||
@@ -141,7 +141,7 @@ export class Notification {
|
||||
* (省略時はアプリ名で表示されることを期待)
|
||||
*/
|
||||
@Column('varchar', {
|
||||
length: 256, nullable: true
|
||||
length: 256, nullable: true,
|
||||
})
|
||||
public customHeader: string | null;
|
||||
|
||||
@@ -150,7 +150,7 @@ export class Notification {
|
||||
* (省略時はアプリアイコンで表示されることを期待)
|
||||
*/
|
||||
@Column('varchar', {
|
||||
length: 1024, nullable: true
|
||||
length: 1024, nullable: true,
|
||||
})
|
||||
public customIcon: string | null;
|
||||
|
||||
@@ -160,12 +160,12 @@ export class Notification {
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public appAccessTokenId: AccessToken['id'] | null;
|
||||
|
||||
@ManyToOne(type => AccessToken, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public appAccessToken: AccessToken | null;
|
||||
|
@@ -17,7 +17,7 @@ export class PageLike {
|
||||
public userId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
@@ -26,7 +26,7 @@ export class PageLike {
|
||||
public pageId: Page['id'];
|
||||
|
||||
@ManyToOne(type => Page, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public page: Page | null;
|
||||
|
@@ -11,13 +11,13 @@ export class Page {
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the Page.'
|
||||
comment: 'The created date of the Page.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The updated date of the Page.'
|
||||
comment: 'The updated date of the Page.',
|
||||
})
|
||||
public updatedAt: Date;
|
||||
|
||||
@@ -33,7 +33,7 @@ export class Page {
|
||||
public name: string;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 256, nullable: true
|
||||
length: 256, nullable: true,
|
||||
})
|
||||
public summary: string | null;
|
||||
|
||||
@@ -41,7 +41,7 @@ export class Page {
|
||||
public alignCenter: boolean;
|
||||
|
||||
@Column('boolean', {
|
||||
default: false
|
||||
default: false,
|
||||
})
|
||||
public hideTitleWhenPinned: boolean;
|
||||
|
||||
@@ -53,12 +53,12 @@ export class Page {
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: 'The ID of author.'
|
||||
comment: 'The ID of author.',
|
||||
})
|
||||
public userId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
@@ -70,24 +70,24 @@ export class Page {
|
||||
public eyeCatchingImageId: DriveFile['id'] | null;
|
||||
|
||||
@ManyToOne(type => DriveFile, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public eyeCatchingImage: DriveFile | null;
|
||||
|
||||
@Column('jsonb', {
|
||||
default: []
|
||||
default: [],
|
||||
})
|
||||
public content: Record<string, any>[];
|
||||
|
||||
@Column('jsonb', {
|
||||
default: []
|
||||
default: [],
|
||||
})
|
||||
public variables: Record<string, any>[];
|
||||
|
||||
@Column('varchar', {
|
||||
length: 16384,
|
||||
default: ''
|
||||
default: '',
|
||||
})
|
||||
public script: string;
|
||||
|
||||
@@ -102,12 +102,12 @@ export class Page {
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
array: true, default: '{}'
|
||||
array: true, default: '{}',
|
||||
})
|
||||
public visibleUserIds: User['id'][];
|
||||
|
||||
@Column('integer', {
|
||||
default: 0
|
||||
default: 0,
|
||||
})
|
||||
public likedCount: number;
|
||||
|
||||
|
@@ -23,7 +23,7 @@ export class PasswordResetRequest {
|
||||
public userId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
|
@@ -11,7 +11,7 @@ export class PollVote {
|
||||
|
||||
@Index()
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the PollVote.'
|
||||
comment: 'The created date of the PollVote.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@@ -20,7 +20,7 @@ export class PollVote {
|
||||
public userId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
@@ -30,7 +30,7 @@ export class PollVote {
|
||||
public noteId: Note['id'];
|
||||
|
||||
@ManyToOne(type => Note, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public note: Note | null;
|
||||
|
@@ -10,13 +10,13 @@ export class Poll {
|
||||
public noteId: Note['id'];
|
||||
|
||||
@OneToOne(type => Note, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public note: Note | null;
|
||||
|
||||
@Column('timestamp with time zone', {
|
||||
nullable: true
|
||||
nullable: true,
|
||||
})
|
||||
public expiresAt: Date | null;
|
||||
|
||||
@@ -24,7 +24,7 @@ export class Poll {
|
||||
public multiple: boolean;
|
||||
|
||||
@Column('varchar', {
|
||||
length: 128, array: true, default: '{}'
|
||||
length: 128, array: true, default: '{}',
|
||||
})
|
||||
public choices: string[];
|
||||
|
||||
@@ -36,21 +36,21 @@ export class Poll {
|
||||
//#region Denormalized fields
|
||||
@Column('enum', {
|
||||
enum: noteVisibilities,
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public noteVisibility: typeof noteVisibilities[number];
|
||||
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public userId: User['id'];
|
||||
|
||||
@Index()
|
||||
@Column('varchar', {
|
||||
length: 128, nullable: true,
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public userHost: string | null;
|
||||
//#endregion
|
||||
|
@@ -9,7 +9,7 @@ export class PromoNote {
|
||||
public noteId: Note['id'];
|
||||
|
||||
@OneToOne(type => Note, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public note: Note | null;
|
||||
@@ -21,7 +21,7 @@ export class PromoNote {
|
||||
@Index()
|
||||
@Column({
|
||||
...id(),
|
||||
comment: '[Denormalized]'
|
||||
comment: '[Denormalized]',
|
||||
})
|
||||
public userId: User['id'];
|
||||
//#endregion
|
||||
|
@@ -10,7 +10,7 @@ export class PromoRead {
|
||||
public id: string;
|
||||
|
||||
@Column('timestamp with time zone', {
|
||||
comment: 'The created date of the PromoRead.'
|
||||
comment: 'The created date of the PromoRead.',
|
||||
})
|
||||
public createdAt: Date;
|
||||
|
||||
@@ -19,7 +19,7 @@ export class PromoRead {
|
||||
public userId: User['id'];
|
||||
|
||||
@ManyToOne(type => User, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public user: User | null;
|
||||
@@ -28,7 +28,7 @@ export class PromoRead {
|
||||
public noteId: Note['id'];
|
||||
|
||||
@ManyToOne(type => Note, {
|
||||
onDelete: 'CASCADE'
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
@JoinColumn()
|
||||
public note: Note | null;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user