Compare commits
1738 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
52c1d87fa2 | ||
![]() |
dccafca58d | ||
![]() |
52c12f96d5 | ||
![]() |
114a9fbdb2 | ||
![]() |
20e67e7edd | ||
![]() |
889b52e813 | ||
![]() |
6c975275f8 | ||
![]() |
1286dee1ab | ||
![]() |
fee953b0df | ||
![]() |
26e7454f0e | ||
![]() |
edbaa07867 | ||
![]() |
f7ebf14501 | ||
![]() |
d00928cf3f | ||
![]() |
b3a198cae6 | ||
![]() |
8b87d56a5a | ||
![]() |
62ac3400da | ||
![]() |
d54f71774e | ||
![]() |
a47358f590 | ||
![]() |
8f2cf066b6 | ||
![]() |
e3e5a4272b | ||
![]() |
2dcb3af70f | ||
![]() |
3a19e9f80e | ||
![]() |
c6fe798092 | ||
![]() |
e74a47916d | ||
![]() |
761071e1ce | ||
![]() |
9e3610d513 | ||
![]() |
393ac6c203 | ||
![]() |
b7a79d25b0 | ||
![]() |
486f045751 | ||
![]() |
d6e3ec3218 | ||
![]() |
078b043cae | ||
![]() |
296cbc2e5a | ||
![]() |
a74beaac36 | ||
![]() |
79f8eb910f | ||
![]() |
c91eef0030 | ||
![]() |
7bf9d726d0 | ||
![]() |
1946ff8ed4 | ||
![]() |
b4d85d4f69 | ||
![]() |
a03702d2bd | ||
![]() |
71d7de4989 | ||
![]() |
35d9e13dbb | ||
![]() |
b427842679 | ||
![]() |
4ae172be57 | ||
![]() |
e6705b1a65 | ||
![]() |
bc22cabdb5 | ||
![]() |
7128b9f16a | ||
![]() |
8c0490fef1 | ||
![]() |
882a81636d | ||
![]() |
24b9be76ba | ||
![]() |
e763c6e661 | ||
![]() |
899e2c73d7 | ||
![]() |
10cb15b000 | ||
![]() |
873d4bd707 | ||
![]() |
97dea72c94 | ||
![]() |
7d49f260b8 | ||
![]() |
3055e6d8c7 | ||
![]() |
2c93246860 | ||
![]() |
360c820b9d | ||
![]() |
87847c6ed5 | ||
![]() |
4874f54d4d | ||
![]() |
ff73efcc08 | ||
![]() |
4ee64cbd9e | ||
![]() |
0c40a86fca | ||
![]() |
f92eed0549 | ||
![]() |
69ed8cc409 | ||
![]() |
4fff1279db | ||
![]() |
d80699e454 | ||
![]() |
deee1dbf53 | ||
![]() |
067588845b | ||
![]() |
b177b0cafc | ||
![]() |
5679777010 | ||
![]() |
a70c24cd1e | ||
![]() |
357f3dd258 | ||
![]() |
d815838762 | ||
![]() |
4ceef78599 | ||
![]() |
d5811633ea | ||
![]() |
32265da72c | ||
![]() |
ef94236e7f | ||
![]() |
2924f0e434 | ||
![]() |
1e419a9e1f | ||
![]() |
097ece9dc9 | ||
![]() |
6b6483c9fc | ||
![]() |
22049b10ff | ||
![]() |
de86644cb6 | ||
![]() |
657aac5bc5 | ||
![]() |
7ae3640d1a | ||
![]() |
6fb42857c6 | ||
![]() |
abf21349cd | ||
![]() |
ed17af8339 | ||
![]() |
67f391f6d4 | ||
![]() |
c6b25f317e | ||
![]() |
d91fa1a37a | ||
![]() |
6c3f052996 | ||
![]() |
33b0c87fb1 | ||
![]() |
5c490e7521 | ||
![]() |
54961235a4 | ||
![]() |
17eca2a18f | ||
![]() |
137f3ee609 | ||
![]() |
498f6e9be2 | ||
![]() |
a5e841f59c | ||
![]() |
9adab1e85e | ||
![]() |
4288a843cb | ||
![]() |
1669f5b265 | ||
![]() |
1157298eb8 | ||
![]() |
948a65bf39 | ||
![]() |
20c076b369 | ||
![]() |
b67ed64116 | ||
![]() |
1da3777bfb | ||
![]() |
ea6aa40b09 | ||
![]() |
b002651194 | ||
![]() |
1452512daf | ||
![]() |
0e7778bebf | ||
![]() |
698fbdf88b | ||
![]() |
7b738deabf | ||
![]() |
3c65e7b76e | ||
![]() |
3fc427b699 | ||
![]() |
03667e1fe6 | ||
![]() |
5cfd000a7d | ||
![]() |
fa66eac096 | ||
![]() |
70eb75b7e6 | ||
![]() |
2f6187a26a | ||
![]() |
167da988da | ||
![]() |
6935e647a6 | ||
![]() |
743eca4a95 | ||
![]() |
78598a92f9 | ||
![]() |
94598ab555 | ||
![]() |
c5bdee086d | ||
![]() |
c6cfc3f908 | ||
![]() |
84b488a912 | ||
![]() |
ec4d5857d8 | ||
![]() |
4576641105 | ||
![]() |
572e475b39 | ||
![]() |
882a30fabe | ||
![]() |
feec35bf4f | ||
![]() |
c9fea5a7a0 | ||
![]() |
00f3a1e1ec | ||
![]() |
5a8cc7851b | ||
![]() |
9d81d06853 | ||
![]() |
4fce5d8066 | ||
![]() |
329e367bda | ||
![]() |
ce056bf936 | ||
![]() |
c6ab5faba6 | ||
![]() |
6ce0804b43 | ||
![]() |
a7a6563281 | ||
![]() |
0a084a3363 | ||
![]() |
beeb8de6da | ||
![]() |
e73297f260 | ||
![]() |
b408ef5ba5 | ||
![]() |
50539099ab | ||
![]() |
9a3a77cff0 | ||
![]() |
cdc07945af | ||
![]() |
9f9194ab5c | ||
![]() |
136a087ae7 | ||
![]() |
b9e91afa26 | ||
![]() |
f943e39c89 | ||
![]() |
75bdbff36d | ||
![]() |
43930e6a84 | ||
![]() |
57d0c19a98 | ||
![]() |
66a11378d2 | ||
![]() |
62b680cadd | ||
![]() |
1e1ac13999 | ||
![]() |
d27c454674 | ||
![]() |
3263eaec32 | ||
![]() |
de4e9a857c | ||
![]() |
d838876ab1 | ||
![]() |
03336f01b5 | ||
![]() |
d212d693a4 | ||
![]() |
d17fcd8e48 | ||
![]() |
49b3ee36bd | ||
![]() |
100d7adc3d | ||
![]() |
68b1fea6bb | ||
![]() |
4de6e1e28a | ||
![]() |
84f8c34e90 | ||
![]() |
77567cf114 | ||
![]() |
3cf8e1917c | ||
![]() |
84cbabec29 | ||
![]() |
b88c65ab67 | ||
![]() |
10782822de | ||
![]() |
5457172aa5 | ||
![]() |
d20a2c7080 | ||
![]() |
c01098de16 | ||
![]() |
0b14a57d55 | ||
![]() |
405d104208 | ||
![]() |
83e3316f06 | ||
![]() |
2037d4c21d | ||
![]() |
6cabf052b1 | ||
![]() |
359e1b2e6e | ||
![]() |
7b553b13ac | ||
![]() |
79872ec3e8 | ||
![]() |
e9df7265fa | ||
![]() |
1ade89be35 | ||
![]() |
3356f7113f | ||
![]() |
e6495ea6e2 | ||
![]() |
629991443a | ||
![]() |
6848f05ea5 | ||
![]() |
e58dd71829 | ||
![]() |
1afa2f1202 | ||
![]() |
f322cb444a | ||
![]() |
69c3c4e3dc | ||
![]() |
488e6feed9 | ||
![]() |
40891aca48 | ||
![]() |
cd0e557991 | ||
![]() |
679f8ad614 | ||
![]() |
00c647c736 | ||
![]() |
1ac6af6ad1 | ||
![]() |
a5d7099a3c | ||
![]() |
e9c8a0f5d5 | ||
![]() |
adcda0889e | ||
![]() |
95cbcdd379 | ||
![]() |
a5e8eb4b7b | ||
![]() |
ed440f80f3 | ||
![]() |
4e2ef94107 | ||
![]() |
de690e0622 | ||
![]() |
062e1a4940 | ||
![]() |
cc3779b197 | ||
![]() |
92dc34b51a | ||
![]() |
f8ee615640 | ||
![]() |
5dde8b4bdc | ||
![]() |
2c70055a87 | ||
![]() |
db8ab8b890 | ||
![]() |
28da5c5a31 | ||
![]() |
b345aad52c | ||
![]() |
aa5af89dfc | ||
![]() |
9a3a74db34 | ||
![]() |
328619f1fc | ||
![]() |
121e12785f | ||
![]() |
cc3f0737a2 | ||
![]() |
bc3714139f | ||
![]() |
9200379997 | ||
![]() |
0ee664db2b | ||
![]() |
86487e6f66 | ||
![]() |
adc2bcc59b | ||
![]() |
21a54f559a | ||
![]() |
145e16c266 | ||
![]() |
68f4edd0ee | ||
![]() |
7fd6a134d1 | ||
![]() |
0db8d566e2 | ||
![]() |
c6f6291fc0 | ||
![]() |
c2d79450ea | ||
![]() |
d58ae601f7 | ||
![]() |
3ad73ad7d9 | ||
![]() |
f0c4df1cc5 | ||
![]() |
839784bc8c | ||
![]() |
b758ec96ef | ||
![]() |
2f8ceb9d22 | ||
![]() |
e05ae5ebc2 | ||
![]() |
ebc43be4b3 | ||
![]() |
8543278ce3 | ||
![]() |
9a98de7bd8 | ||
![]() |
e1d69fb4ad | ||
![]() |
946f9b4a2b | ||
![]() |
9a270e59a4 | ||
![]() |
2112fb3896 | ||
![]() |
d1bd9fa552 | ||
![]() |
393bd76959 | ||
![]() |
97165fbaf5 | ||
![]() |
feca9940bc | ||
![]() |
fbbc7d005d | ||
![]() |
af5b4749b0 | ||
![]() |
b4e5fe7e71 | ||
![]() |
1671aef0bd | ||
![]() |
ffe5a12773 | ||
![]() |
9ca01b65de | ||
![]() |
f50ed905a8 | ||
![]() |
d7156b8cdd | ||
![]() |
14442ffa18 | ||
![]() |
d454596c33 | ||
![]() |
7d510cf780 | ||
![]() |
8121cbf10c | ||
![]() |
d34d20c393 | ||
![]() |
e773c272be | ||
![]() |
0c072249d8 | ||
![]() |
d0b7b662b4 | ||
![]() |
4b5aa286a0 | ||
![]() |
2310c74d0b | ||
![]() |
af251bf0c4 | ||
![]() |
16204ac13b | ||
![]() |
7c8645fe29 | ||
![]() |
bd82173caa | ||
![]() |
2e8a0b0fac | ||
![]() |
38b7f4364c | ||
![]() |
3a33e406c7 | ||
![]() |
8d0c5268d1 | ||
![]() |
08bec5abd9 | ||
![]() |
cc4b6e5eea | ||
![]() |
e6cb07bef4 | ||
![]() |
249bfcc5f0 | ||
![]() |
108c4b4342 | ||
![]() |
38befa51ac | ||
![]() |
6a76118710 | ||
![]() |
f049694fa1 | ||
![]() |
515a6b74a2 | ||
![]() |
d1291b3b4c | ||
![]() |
d2abc28a2b | ||
![]() |
12142f8c5e | ||
![]() |
41d7a8de66 | ||
![]() |
c7a65c13aa | ||
![]() |
fbf0baadba | ||
![]() |
ea31e62795 | ||
![]() |
910b145f42 | ||
![]() |
952a793f80 | ||
![]() |
46f2ffaa5c | ||
![]() |
45ba7989c1 | ||
![]() |
c4cf3331e9 | ||
![]() |
6d75ca0bcb | ||
![]() |
050fb55326 | ||
![]() |
9d1d9c3540 | ||
![]() |
fdde966808 | ||
![]() |
c6ce7b1045 | ||
![]() |
ce743054d6 | ||
![]() |
99970b6864 | ||
![]() |
42110bcd33 | ||
![]() |
9677b0bfb1 | ||
![]() |
a7762972fa | ||
![]() |
dda3b4152e | ||
![]() |
b7aa6d6c1f | ||
![]() |
909a3b805f | ||
![]() |
848d2e00e7 | ||
![]() |
642662941f | ||
![]() |
0028a529a8 | ||
![]() |
62131e864b | ||
![]() |
0c58b43831 | ||
![]() |
5a3d6c4fba | ||
![]() |
a031fa3875 | ||
![]() |
721ed97a83 | ||
![]() |
944927ac2d | ||
![]() |
7705749d28 | ||
![]() |
cf7f42ebc4 | ||
![]() |
f195968b6d | ||
![]() |
4d6bffdc8a | ||
![]() |
f62c6a05a9 | ||
![]() |
fa550a2a78 | ||
![]() |
960c27375c | ||
![]() |
e87b3e2933 | ||
![]() |
133766bf8c | ||
![]() |
aa6b25e9e7 | ||
![]() |
abde13221f | ||
![]() |
cb17be5e2b | ||
![]() |
17d62b689d | ||
![]() |
9bf5dc67f5 | ||
![]() |
4eab9b4354 | ||
![]() |
d39c153c57 | ||
![]() |
e5992742d4 | ||
![]() |
72ed803c2a | ||
![]() |
9ec0e59431 | ||
![]() |
5328ed64f3 | ||
![]() |
33e8d61d65 | ||
![]() |
3584786387 | ||
![]() |
34f662ead5 | ||
![]() |
2d53481cf5 | ||
![]() |
10fb029609 | ||
![]() |
0281961f15 | ||
![]() |
fede4eeb89 | ||
![]() |
ab50d5ef20 | ||
![]() |
f4e02d4a4c | ||
![]() |
167640df8d | ||
![]() |
fe01437aa4 | ||
![]() |
037fce4d6a | ||
![]() |
db8b824b84 | ||
![]() |
b71f62535d | ||
![]() |
e9a1e281b9 | ||
![]() |
0144408500 | ||
![]() |
7660839e40 | ||
![]() |
d1ca851ebe | ||
![]() |
35a281d443 | ||
![]() |
c2690fff47 | ||
![]() |
c3a73a41d1 | ||
![]() |
b72baa3295 | ||
![]() |
73ce22c8a4 | ||
![]() |
c4f7e6659f | ||
![]() |
0739ae006d | ||
![]() |
eaa92e784d | ||
![]() |
48589e0da1 | ||
![]() |
0044d83801 | ||
![]() |
50e917d232 | ||
![]() |
ccd14e0462 | ||
![]() |
d0c0104546 | ||
![]() |
cd34ade638 | ||
![]() |
3f91e33a8c | ||
![]() |
17cc996288 | ||
![]() |
385776dc0f | ||
![]() |
e52278c371 | ||
![]() |
7ffc8c1eda | ||
![]() |
1359615c82 | ||
![]() |
7a7a56940c | ||
![]() |
bcbe83cb38 | ||
![]() |
37f983aee3 | ||
![]() |
77de3f2b9d | ||
![]() |
f655b54937 | ||
![]() |
cac99ebdd4 | ||
![]() |
f0d0a1546a | ||
![]() |
8e8459fa55 | ||
![]() |
d53c55ecb5 | ||
![]() |
ea33d61a90 | ||
![]() |
2fcc3388dd | ||
![]() |
ef7f033c32 | ||
![]() |
7aa54dc92e | ||
![]() |
d10ad1b413 | ||
![]() |
34063a0b84 | ||
![]() |
8c9d975d69 | ||
![]() |
03b072b894 | ||
![]() |
d1bed49808 | ||
![]() |
6c3417d9b5 | ||
![]() |
ba65226460 | ||
![]() |
9c9cd168ee | ||
![]() |
abb3d2a8d9 | ||
![]() |
637fe8a04b | ||
![]() |
be321e95e5 | ||
![]() |
ed46c1486c | ||
![]() |
c9fcfc6862 | ||
![]() |
8495e37566 | ||
![]() |
247bd43ae2 | ||
![]() |
a6685b1559 | ||
![]() |
66c4e8064b | ||
![]() |
9d1fa3f202 | ||
![]() |
a6985d7dc7 | ||
![]() |
027c021ac9 | ||
![]() |
604205ec09 | ||
![]() |
77db016866 | ||
![]() |
c6a009dbae | ||
![]() |
4299e3f90c | ||
![]() |
19f4812c03 | ||
![]() |
d01c465a8d | ||
![]() |
4f1409601e | ||
![]() |
52cffe0864 | ||
![]() |
0866d5c055 | ||
![]() |
78c08f6503 | ||
![]() |
27d0ac3d75 | ||
![]() |
a8776002f3 | ||
![]() |
31aa008566 | ||
![]() |
9d405b4581 | ||
![]() |
80c490a18b | ||
![]() |
30c9c3739f | ||
![]() |
ee0e7a09e0 | ||
![]() |
bfd9577f0d | ||
![]() |
0cada4ca76 | ||
![]() |
a718ccc0b6 | ||
![]() |
1fcfd8e645 | ||
![]() |
c6dd932a0b | ||
![]() |
b79eed01e0 | ||
![]() |
3a7dbe9764 | ||
![]() |
bef2534fa8 | ||
![]() |
888dcd2559 | ||
![]() |
2b69fca6bd | ||
![]() |
7d088d42b4 | ||
![]() |
f8ad303b13 | ||
![]() |
3c59c6fc9b | ||
![]() |
7353d729d7 | ||
![]() |
62591e0e7a | ||
![]() |
012f15d84b | ||
![]() |
e57c6f94d2 | ||
![]() |
40b27e8ad8 | ||
![]() |
055e9f21b7 | ||
![]() |
d7085b17fe | ||
![]() |
0d4d7c9c0c | ||
![]() |
99209d36e1 | ||
![]() |
e2a9a0ff3d | ||
![]() |
ab166959a4 | ||
![]() |
ab692cfa3d | ||
![]() |
c3ae6f3a4a | ||
![]() |
5ef4a52bbd | ||
![]() |
582768a5e4 | ||
![]() |
1852d1cc6f | ||
![]() |
7a5a541a4e | ||
![]() |
72b03e009c | ||
![]() |
1b113c1045 | ||
![]() |
54959557ea | ||
![]() |
d44cb7f256 | ||
![]() |
3d063c95d1 | ||
![]() |
09cab605fc | ||
![]() |
666c8c0498 | ||
![]() |
d3e764d7f9 | ||
![]() |
7060625adf | ||
![]() |
21b6e23e98 | ||
![]() |
a0f794e372 | ||
![]() |
9195504329 | ||
![]() |
8c5d9dd549 | ||
![]() |
580f6a5b6c | ||
![]() |
74e76b460b | ||
![]() |
c4570b37b7 | ||
![]() |
cd0b0012d9 | ||
![]() |
c055b4d32d | ||
![]() |
75a9ff832a | ||
![]() |
b64d3af1f3 | ||
![]() |
fb6605bb40 | ||
![]() |
3bfae80fa7 | ||
![]() |
cb16cb0610 | ||
![]() |
0baed1a275 | ||
![]() |
42162c8015 | ||
![]() |
0fab0c416d | ||
![]() |
e2e262c8ce | ||
![]() |
cf6596203b | ||
![]() |
471911a54f | ||
![]() |
9394f4f540 | ||
![]() |
4e968216ad | ||
![]() |
84a7a9555f | ||
![]() |
8d12fd152b | ||
![]() |
629b765abc | ||
![]() |
63a89fa84a | ||
![]() |
a3f89236a0 | ||
![]() |
01560abafb | ||
![]() |
b5698026ba | ||
![]() |
6258ce75b7 | ||
![]() |
6f34c74027 | ||
![]() |
8add4f359b | ||
![]() |
d8933c135f | ||
![]() |
eb350e8d6c | ||
![]() |
615fedd64d | ||
![]() |
25bd82ecaa | ||
![]() |
e0938e5e3a | ||
![]() |
ec5e6c8443 | ||
![]() |
25d8077474 | ||
![]() |
06083f40d9 | ||
![]() |
ec203f7f79 | ||
![]() |
1b30d7d47a | ||
![]() |
d9be9c958f | ||
![]() |
ed09796e0d | ||
![]() |
4bfa29c0ab | ||
![]() |
4804bbb211 | ||
![]() |
749102f9c2 | ||
![]() |
0bcb1434b0 | ||
![]() |
2e537e618c | ||
![]() |
fe3b7a2ad3 | ||
![]() |
90db793fd0 | ||
![]() |
7bd2a6ad61 | ||
![]() |
745f4d2439 | ||
![]() |
254cfaea28 | ||
![]() |
d4da5a1eea | ||
![]() |
c0f8297414 | ||
![]() |
834cb2ea1a | ||
![]() |
d82769abd4 | ||
![]() |
adf01ed4a4 | ||
![]() |
09c007b3aa | ||
![]() |
526ff177aa | ||
![]() |
0e40d4e796 | ||
![]() |
172ebab7bd | ||
![]() |
aa4493fe5c | ||
![]() |
a68a88f79e | ||
![]() |
1de7dc94e1 | ||
![]() |
59cb7992e2 | ||
![]() |
87b15df47b | ||
![]() |
6932d86240 | ||
![]() |
87f61e714a | ||
![]() |
5762e2d9ba | ||
![]() |
f0691c8a4f | ||
![]() |
6d7e4fe2a1 | ||
![]() |
7dc789f470 | ||
![]() |
190d1bbf3c | ||
![]() |
a755dd5f9e | ||
![]() |
0846a7b94e | ||
![]() |
d8be0511f1 | ||
![]() |
fb07116a4c | ||
![]() |
fe453c15e3 | ||
![]() |
059aeef6a0 | ||
![]() |
30e25451d6 | ||
![]() |
7f0fd55c9a | ||
![]() |
0e9b496deb | ||
![]() |
8294c18e70 | ||
![]() |
39575b4696 | ||
![]() |
29e9801d5c | ||
![]() |
eaf83bffb0 | ||
![]() |
bb25ece745 | ||
![]() |
754b5629e4 | ||
![]() |
ee63403548 | ||
![]() |
87edeb41da | ||
![]() |
41fe804587 | ||
![]() |
02466acc4b | ||
![]() |
8470a64e6b | ||
![]() |
9939e0f9a9 | ||
![]() |
ce5f552d0c | ||
![]() |
7d4c535233 | ||
![]() |
57cd0fb93f | ||
![]() |
a15299ae53 | ||
![]() |
1df7abfbb9 | ||
![]() |
85a0f696bc | ||
![]() |
ba3c62bf9c | ||
![]() |
c17e97b6a6 | ||
![]() |
2d80cd0e7b | ||
![]() |
eedc572f0c | ||
![]() |
2de1df3514 | ||
![]() |
2d96af1255 | ||
![]() |
163325ef89 | ||
![]() |
23979bf09a | ||
![]() |
7199e6f4e0 | ||
![]() |
a40f38b2b5 | ||
![]() |
00a17ed5d4 | ||
![]() |
b594366f06 | ||
![]() |
e9284930df | ||
![]() |
ea7504f564 | ||
![]() |
c1f6d996f6 | ||
![]() |
df71dbb024 | ||
![]() |
f104e9b6cc | ||
![]() |
e29b5c2326 | ||
![]() |
925868dcdb | ||
![]() |
d7df26d92b | ||
![]() |
42d1c67d56 | ||
![]() |
c2d7929391 | ||
![]() |
5864b52a81 | ||
![]() |
493d32b3dc | ||
![]() |
ed141338fb | ||
![]() |
95db488c48 | ||
![]() |
d5e1e523b6 | ||
![]() |
cd0f8a4ef9 | ||
![]() |
6dac505af9 | ||
![]() |
9d398040cb | ||
![]() |
aa55acedc9 | ||
![]() |
eb70d6f226 | ||
![]() |
36f0963d78 | ||
![]() |
c3c111529e | ||
![]() |
2dbab66cfe | ||
![]() |
01238d6b1a | ||
![]() |
c34f302b1c | ||
![]() |
6870262f8d | ||
![]() |
c54d5e7040 | ||
![]() |
0ace009a54 | ||
![]() |
48e8ee440b | ||
![]() |
9855405b89 | ||
![]() |
122076e8ea | ||
![]() |
7c5ac2cbb4 | ||
![]() |
ccda2181c1 | ||
![]() |
b5fe4ba9be | ||
![]() |
fd9c7d525a | ||
![]() |
080574e13d | ||
![]() |
ee0a445590 | ||
![]() |
bb342c7601 | ||
![]() |
ed17636fb9 | ||
![]() |
c59d7d941a | ||
![]() |
377377595a | ||
![]() |
d63aef9963 | ||
![]() |
e9b28fa3c0 | ||
![]() |
be255dc583 | ||
![]() |
18eb7c6087 | ||
![]() |
cf29e69813 | ||
![]() |
132da7e3c0 | ||
![]() |
26df23bb64 | ||
![]() |
76389ad619 | ||
![]() |
7cde8cfbf2 | ||
![]() |
4eb2ddac4e | ||
![]() |
dc51eef27c | ||
![]() |
bff8a23cbc | ||
![]() |
9c5efb9da0 | ||
![]() |
48b8320e5e | ||
![]() |
9b2ed96c1c | ||
![]() |
69d9aa71f2 | ||
![]() |
13683780cd | ||
![]() |
d780e5b251 | ||
![]() |
917d3d0bd3 | ||
![]() |
4b19c53697 | ||
![]() |
2d40a15d2b | ||
![]() |
2bdcd22ad4 | ||
![]() |
f73a4e1304 | ||
![]() |
b265cdbd84 | ||
![]() |
a04d8b95c2 | ||
![]() |
0e9a8c0cd4 | ||
![]() |
5ae8a3c7e8 | ||
![]() |
70ee172128 | ||
![]() |
b9febc00f9 | ||
![]() |
0112e2f7ec | ||
![]() |
60736bab2a | ||
![]() |
fb7c4ee21a | ||
![]() |
e93c06cd00 | ||
![]() |
0a99345909 | ||
![]() |
3d08ff7cb4 | ||
![]() |
057ce73ba1 | ||
![]() |
66b07578c5 | ||
![]() |
de3b365563 | ||
![]() |
7bb8d8b27e | ||
![]() |
9008664606 | ||
![]() |
7374905c28 | ||
![]() |
718e20de60 | ||
![]() |
73d166323d | ||
![]() |
3589fc6f4f | ||
![]() |
feed6c7acc | ||
![]() |
2522e7388d | ||
![]() |
09cfd620bb | ||
![]() |
362e95263d | ||
![]() |
c6837b9fdf | ||
![]() |
71878f93e4 | ||
![]() |
f5d43b1f25 | ||
![]() |
770e7378be | ||
![]() |
b9a8620d2f | ||
![]() |
d1c8b2993e | ||
![]() |
01e9b3c2f6 | ||
![]() |
57203de4cb | ||
![]() |
74d0e83a8a | ||
![]() |
9eee5644b9 | ||
![]() |
9fe6f9417e | ||
![]() |
e7de5f6051 | ||
![]() |
60d81d74e3 | ||
![]() |
2701a7e85f | ||
![]() |
31a0afdaab | ||
![]() |
9f87545901 | ||
![]() |
9f94f60ede | ||
![]() |
0ca3c0bca1 | ||
![]() |
27611cef77 | ||
![]() |
30df8ea121 | ||
![]() |
595ad04ddb | ||
![]() |
6b8354ccbf | ||
![]() |
1b9d316e7c | ||
![]() |
a8adc46f3b | ||
![]() |
0efa969a15 | ||
![]() |
14b7f05af4 | ||
![]() |
cf43dd6ec5 | ||
![]() |
b5a1fdd4c7 | ||
![]() |
b32737cdff | ||
![]() |
8e9717a5fc | ||
![]() |
3e28b296e3 | ||
![]() |
056fef70da | ||
![]() |
55be9cc9d1 | ||
![]() |
3f2ffcea97 | ||
![]() |
b07d037cb5 | ||
![]() |
4feccdfd92 | ||
![]() |
f1ef85b636 | ||
![]() |
cf9266eab9 | ||
![]() |
4a1552fb3c | ||
![]() |
e5863c2867 | ||
![]() |
58211fc6a7 | ||
![]() |
bd54e44b35 | ||
![]() |
e1f2e364a4 | ||
![]() |
186b26e103 | ||
![]() |
74706a8d2c | ||
![]() |
7e2b6b6369 | ||
![]() |
1a2de1a051 | ||
![]() |
83900cbca6 | ||
![]() |
166bc19131 | ||
![]() |
da874f3383 | ||
![]() |
9c30b23358 | ||
![]() |
b8350d5093 | ||
![]() |
58f7af8927 | ||
![]() |
c3b9c7b74b | ||
![]() |
9415618992 | ||
![]() |
1c200c9b94 | ||
![]() |
ce8fa8e423 | ||
![]() |
a4b7a9db03 | ||
![]() |
280eeb9d75 | ||
![]() |
3f71b14637 | ||
![]() |
705d40ab37 | ||
![]() |
b39850de01 | ||
![]() |
b9c5e95b85 | ||
![]() |
0c1de7b1b6 | ||
![]() |
0a4499fd03 | ||
![]() |
b663a47331 | ||
![]() |
eb275a62a6 | ||
![]() |
e18caa3396 | ||
![]() |
eb15d31ebf | ||
![]() |
e7f1ab2d01 | ||
![]() |
9d3beb3174 | ||
![]() |
b6c3399abe | ||
![]() |
b505874613 | ||
![]() |
0a28573845 | ||
![]() |
937df577f1 | ||
![]() |
e54fd6c2cb | ||
![]() |
3caea9d33e | ||
![]() |
b9e9631195 | ||
![]() |
76bded455a | ||
![]() |
c94d9210ed | ||
![]() |
0f5db9558c | ||
![]() |
35a8c37922 | ||
![]() |
6ff84a1061 | ||
![]() |
aae9bc4cf4 | ||
![]() |
426c2fa5d1 | ||
![]() |
dab728278c | ||
![]() |
7555ab097a | ||
![]() |
5b5b64d251 | ||
![]() |
eb84445796 | ||
![]() |
364bd9ae74 | ||
![]() |
d4b0761549 | ||
![]() |
f8e06f12fd | ||
![]() |
320352bf4b | ||
![]() |
3c66990263 | ||
![]() |
7cbe95a1cf | ||
![]() |
c89abda3fb | ||
![]() |
90348f4ac7 | ||
![]() |
08293f368f | ||
![]() |
d5378dab27 | ||
![]() |
91648d1bd4 | ||
![]() |
66d6e71f06 | ||
![]() |
a0ea5776ab | ||
![]() |
9b73e897df | ||
![]() |
debc0086fa | ||
![]() |
065ec8e170 | ||
![]() |
11f8d742eb | ||
![]() |
adf4f5410a | ||
![]() |
8ff2694cad | ||
![]() |
191c064611 | ||
![]() |
d327bb8ff1 | ||
![]() |
80bebea9e6 | ||
![]() |
cf3fc97202 | ||
![]() |
5b28d7bf90 | ||
![]() |
5f8fb43cc9 | ||
![]() |
6eff6ee451 | ||
![]() |
c2ab3a15f4 | ||
![]() |
a100e13a18 | ||
![]() |
a591a334ed | ||
![]() |
ca2e53bd6e | ||
![]() |
d4b4b61535 | ||
![]() |
440deb4624 | ||
![]() |
bbb0130522 | ||
![]() |
b6a4061097 | ||
![]() |
48c94907c2 | ||
![]() |
4fd06369d3 | ||
![]() |
27a17b467d | ||
![]() |
c25cf7f89a | ||
![]() |
ade11aa447 | ||
![]() |
3799708daf | ||
![]() |
462204e204 | ||
![]() |
752669bf5e | ||
![]() |
b08e3f59d3 | ||
![]() |
443b45e509 | ||
![]() |
b2bed61088 | ||
![]() |
be516d3c1e | ||
![]() |
f5b41e1fbf | ||
![]() |
e9afc1d867 | ||
![]() |
a891f7e862 | ||
![]() |
b715ea4621 | ||
![]() |
ea13efe495 | ||
![]() |
37f862947b | ||
![]() |
ecb0861be4 | ||
![]() |
624c9f3418 | ||
![]() |
1b75984046 | ||
![]() |
157f1c66dc | ||
![]() |
cb41391bae | ||
![]() |
acc88825fc | ||
![]() |
233a837e35 | ||
![]() |
9e4456ac1b | ||
![]() |
83e1068da3 | ||
![]() |
1fd345f563 | ||
![]() |
37c16e5b45 | ||
![]() |
ca25b9acc1 | ||
![]() |
c3022d38f7 | ||
![]() |
3599f16d22 | ||
![]() |
3f78f6f6bb | ||
![]() |
41f66e4299 | ||
![]() |
0d36b144cf | ||
![]() |
aa652aac8a | ||
![]() |
8dbdab4a47 | ||
![]() |
90c07a220f | ||
![]() |
23e2a870cc | ||
![]() |
dc8eb7d4fe | ||
![]() |
fd363f5617 | ||
![]() |
1726ff3977 | ||
![]() |
93aba74463 | ||
![]() |
99955f0af9 | ||
![]() |
30cf154542 | ||
![]() |
f2c33b06cf | ||
![]() |
f12473e677 | ||
![]() |
e845db01bf | ||
![]() |
7f76a73eee | ||
![]() |
3c2d94ace3 | ||
![]() |
1e2239f527 | ||
![]() |
1851daf9fd | ||
![]() |
f378f26e5e | ||
![]() |
cda6bc3404 | ||
![]() |
071c7e6a58 | ||
![]() |
010e1b3ba4 | ||
![]() |
66de51c1ca | ||
![]() |
265d6bda15 | ||
![]() |
fecb12bae1 | ||
![]() |
83ec906ee7 | ||
![]() |
d44fbf58c9 | ||
![]() |
9c4a789a4e | ||
![]() |
bfa1705bad | ||
![]() |
2876f2188c | ||
![]() |
579c0043c3 | ||
![]() |
0fa57957a4 | ||
![]() |
05cb0b0ec5 | ||
![]() |
4b24e96dfb | ||
![]() |
c7eab37177 | ||
![]() |
c7d0b6cb29 | ||
![]() |
22ee087bb9 | ||
![]() |
2480fcdc53 | ||
![]() |
7e093aee5e | ||
![]() |
dd8413a485 | ||
![]() |
925f2912a9 | ||
![]() |
ed00ea0865 | ||
![]() |
3f19d221b7 | ||
![]() |
808271838b | ||
![]() |
ac0950fdef | ||
![]() |
38f306ba73 | ||
![]() |
5c1748d63d | ||
![]() |
c00cddf5b0 | ||
![]() |
baf3274748 | ||
![]() |
9e0515e563 | ||
![]() |
9c0404c407 | ||
![]() |
0b85177690 | ||
![]() |
7ec28ced40 | ||
![]() |
19ae3b66ec | ||
![]() |
0118dee3e5 | ||
![]() |
9201714313 | ||
![]() |
8b9c1efd7e | ||
![]() |
111eb43fd9 | ||
![]() |
f2964101d1 | ||
![]() |
6b2c289029 | ||
![]() |
fd2573c068 | ||
![]() |
df0e9d75fe | ||
![]() |
2bc86756c8 | ||
![]() |
fb91ab4080 | ||
![]() |
0b4d29ed1e | ||
![]() |
2a8c65e2c3 | ||
![]() |
ffc7f42efc | ||
![]() |
7c38cda8ee | ||
![]() |
d3f5001679 | ||
![]() |
83d9a4b6d9 | ||
![]() |
9760e08af4 | ||
![]() |
8d48e4c76e | ||
![]() |
a1e0c866aa | ||
![]() |
8380222baf | ||
![]() |
eda7d60c26 | ||
![]() |
ddf92c3e2c | ||
![]() |
9bb528eb6e | ||
![]() |
9756957ac1 | ||
![]() |
af0205b77d | ||
![]() |
3f0da5453d | ||
![]() |
923c3071f0 | ||
![]() |
a8584973e2 | ||
![]() |
886766cca5 | ||
![]() |
974abbe826 | ||
![]() |
61bdf51e90 | ||
![]() |
9bee9d20f7 | ||
![]() |
7aee3b88eb | ||
![]() |
d08184f5fe | ||
![]() |
ae08232bfb | ||
![]() |
2b5e4b57bd | ||
![]() |
35ae13a490 | ||
![]() |
74f55b4d3f | ||
![]() |
abe9440021 | ||
![]() |
6a95b94aaa | ||
![]() |
21ee38d813 | ||
![]() |
9681a906d5 | ||
![]() |
2ca760bee6 | ||
![]() |
da9f916daa | ||
![]() |
bc05b83a24 | ||
![]() |
620e0a9df6 | ||
![]() |
38ad4f7098 | ||
![]() |
05c7cacdd1 | ||
![]() |
baa49271df | ||
![]() |
e2cbe70966 | ||
![]() |
6a98301cc9 | ||
![]() |
81f1df7472 | ||
![]() |
abc296cdcc | ||
![]() |
4df5ec82ce | ||
![]() |
3963ed8ff7 | ||
![]() |
11141c878c | ||
![]() |
b1a2046a7f | ||
![]() |
e44322c9bf | ||
![]() |
2e6462bf1b | ||
![]() |
667d9c2be3 | ||
![]() |
34a86229db | ||
![]() |
7dd8dbeb5b | ||
![]() |
b5fb98f01a | ||
![]() |
f6cfa5cbb4 | ||
![]() |
c1b95838f6 | ||
![]() |
6cee608c91 | ||
![]() |
d979fb6dc0 | ||
![]() |
ca2a33edc9 | ||
![]() |
ea80d5eac2 | ||
![]() |
51cf0970b3 | ||
![]() |
9c8eb93446 | ||
![]() |
3ac3a45aa5 | ||
![]() |
36fcc0d5f6 | ||
![]() |
6667b86650 | ||
![]() |
9244efe351 | ||
![]() |
538ca2a7c7 | ||
![]() |
c5dd9439d5 | ||
![]() |
2170c27b62 | ||
![]() |
61582a0a33 | ||
![]() |
65efe1f42c | ||
![]() |
b2d3d43c97 | ||
![]() |
4ce330c59e | ||
![]() |
4ea60d36e5 | ||
![]() |
95111ef8a1 | ||
![]() |
145389768d | ||
![]() |
be183206e6 | ||
![]() |
8b853b7970 | ||
![]() |
5450b78f71 | ||
![]() |
a3283c71ef | ||
![]() |
7231f5ff0b | ||
![]() |
38a68ea946 | ||
![]() |
bf9486edc2 | ||
![]() |
aadfafaef9 | ||
![]() |
c102978dd5 | ||
![]() |
9784ade84f | ||
![]() |
677f06961a | ||
![]() |
57c3ea3dbe | ||
![]() |
c01210d4fe | ||
![]() |
64bbfed432 | ||
![]() |
a482d9b078 | ||
![]() |
08456dbb89 | ||
![]() |
ea662b5c49 | ||
![]() |
58a8fff895 | ||
![]() |
bb302a90a6 | ||
![]() |
99e34e9ee2 | ||
![]() |
f1417c6bb1 | ||
![]() |
729db347a2 | ||
![]() |
f2465ca11f | ||
![]() |
0294061c00 | ||
![]() |
71e5892308 | ||
![]() |
a1597047b4 | ||
![]() |
d6a8889d84 | ||
![]() |
070f1f3c6e | ||
![]() |
234294d564 | ||
![]() |
d1be8b43f6 | ||
![]() |
0ed94ee52e | ||
![]() |
f07564a452 | ||
![]() |
37419886a1 | ||
![]() |
b9f0a9ed88 | ||
![]() |
d0f68bb5d1 | ||
![]() |
11a350a114 | ||
![]() |
778ac79c44 | ||
![]() |
766c00c305 | ||
![]() |
97cdfa662e | ||
![]() |
4a08d5295e | ||
![]() |
b77788b947 | ||
![]() |
729116c9e5 | ||
![]() |
d57d55a226 | ||
![]() |
4cccdb8a98 | ||
![]() |
54045f95ca | ||
![]() |
ee6c7cbc59 | ||
![]() |
00508dc778 | ||
![]() |
a3ff1bfda7 | ||
![]() |
f57888eb4b | ||
![]() |
b2c703c173 | ||
![]() |
9053b9635e | ||
![]() |
b5e87a46b0 | ||
![]() |
ddbdb94ba6 | ||
![]() |
304e3d58ea | ||
![]() |
ca6a70e555 | ||
![]() |
9a611b24f3 | ||
![]() |
77adf26236 | ||
![]() |
805472482e | ||
![]() |
01411327b8 | ||
![]() |
9daa900793 | ||
![]() |
b862c055ae | ||
![]() |
7860839220 | ||
![]() |
e17e8bbb6f | ||
![]() |
136d0683b0 | ||
![]() |
0eded8f5a9 | ||
![]() |
f62eb0fee9 | ||
![]() |
077bf11e45 | ||
![]() |
ebdbd6a84a | ||
![]() |
69975c2fdd | ||
![]() |
9aac6a65c6 | ||
![]() |
7d7c206f24 | ||
![]() |
15690d853c | ||
![]() |
14ddca3875 | ||
![]() |
a8b4df6eae | ||
![]() |
0683fa6b97 | ||
![]() |
808c680184 | ||
![]() |
2bb0a61a89 | ||
![]() |
dfa129febf | ||
![]() |
3b49d233f8 | ||
![]() |
f08d7df419 | ||
![]() |
cd94d79cbb | ||
![]() |
2314133112 | ||
![]() |
06a47a7bd3 | ||
![]() |
05a785ebd0 | ||
![]() |
2ee5835186 | ||
![]() |
19e1abe110 | ||
![]() |
d19441f3ae | ||
![]() |
6e3ee05cb6 | ||
![]() |
51476ad06f | ||
![]() |
1f998168e2 | ||
![]() |
e72011f1da | ||
![]() |
0df3e22e51 | ||
![]() |
5a9530ccd4 | ||
![]() |
0a4d119d86 | ||
![]() |
2ee0e07bb6 | ||
![]() |
533c9a4fe1 | ||
![]() |
30c000116f | ||
![]() |
dc649fe420 | ||
![]() |
4a8ec173ae | ||
![]() |
26d6fe9a4e | ||
![]() |
46f5175a0d | ||
![]() |
f704e7a602 | ||
![]() |
8cefcaa55f | ||
![]() |
164c6505f2 | ||
![]() |
0a1b83c70f | ||
![]() |
e60048eb96 | ||
![]() |
8957eec475 | ||
![]() |
e790af566c | ||
![]() |
43fe0cd62e | ||
![]() |
e22a296dc7 | ||
![]() |
ac19ebc850 | ||
![]() |
1e0060193a | ||
![]() |
72271d905d | ||
![]() |
8d39283d46 | ||
![]() |
4364122804 | ||
![]() |
3b6dbd6dc3 | ||
![]() |
7c61fc37c5 | ||
![]() |
f530b5237d | ||
![]() |
9b9b6ade64 | ||
![]() |
e184c1cdfb | ||
![]() |
e0e4b43707 | ||
![]() |
1d70b33894 | ||
![]() |
44ea1be930 | ||
![]() |
a1bf54fe16 | ||
![]() |
88c57359b3 | ||
![]() |
050564f717 | ||
![]() |
75d59a9c9b | ||
![]() |
9139c863bf | ||
![]() |
84a1ec01bc | ||
![]() |
36e59c5b5f | ||
![]() |
5389b16c59 | ||
![]() |
da3008af1c | ||
![]() |
6637766554 | ||
![]() |
2bc63631a4 | ||
![]() |
5215721942 | ||
![]() |
d02e14cb94 | ||
![]() |
fa75b40dfd | ||
![]() |
f32d8b7069 | ||
![]() |
90e8527556 | ||
![]() |
66377d3f27 | ||
![]() |
c6ae93df80 | ||
![]() |
55e9099091 | ||
![]() |
c6ace29446 | ||
![]() |
b0b885aacd | ||
![]() |
3615b5d353 | ||
![]() |
74c71e6283 | ||
![]() |
9b07c5af05 | ||
![]() |
cda1803e59 | ||
![]() |
96eab7e12b | ||
![]() |
916512fd47 | ||
![]() |
58d3a37908 | ||
![]() |
a19e252c9e | ||
![]() |
63225ed0fd | ||
![]() |
11cc9cbc7c | ||
![]() |
36b9a0d42f | ||
![]() |
e7da10ae58 | ||
![]() |
f07047d1e8 | ||
![]() |
c62aff76af | ||
![]() |
1c20de4e9c | ||
![]() |
4903eb4a4a | ||
![]() |
b5981ab544 | ||
![]() |
00e1dbfdfb | ||
![]() |
df69ca4d56 | ||
![]() |
cb631d4abb | ||
![]() |
3c351d8300 | ||
![]() |
ca66acac2b | ||
![]() |
9fcf94b197 | ||
![]() |
aa34000f0b | ||
![]() |
d3c0f3c251 | ||
![]() |
bb7edfee04 | ||
![]() |
caa14c70ef | ||
![]() |
3a0f72867f | ||
![]() |
10d72742f5 | ||
![]() |
1b9f8a87d3 | ||
![]() |
d4a630902d | ||
![]() |
fef5ec874b | ||
![]() |
f2e347fec1 | ||
![]() |
cd3c2484ee | ||
![]() |
6a396ef5e3 | ||
![]() |
eec1af1f52 | ||
![]() |
99fc77b678 | ||
![]() |
8bb311df51 | ||
![]() |
a77df249c2 | ||
![]() |
2883bca257 | ||
![]() |
dd3af6886b | ||
![]() |
33bcf2d1ea | ||
![]() |
795fb0eb60 | ||
![]() |
9e9d378bf1 | ||
![]() |
4a6b0edce6 | ||
![]() |
356225af14 | ||
![]() |
331305e6c7 | ||
![]() |
917b9475a5 | ||
![]() |
e895fc954b | ||
![]() |
6d3e18a6a1 | ||
![]() |
79354f4faf | ||
![]() |
28f8933c3c | ||
![]() |
10356b4041 | ||
![]() |
6a732ab1cd | ||
![]() |
47322b35ff | ||
![]() |
4c6d0386b9 | ||
![]() |
a448172952 | ||
![]() |
244ef0cb8f | ||
![]() |
cc66a1f9c7 | ||
![]() |
e2183400e5 | ||
![]() |
afc531bd26 | ||
![]() |
02cc1891f2 | ||
![]() |
09e3ddbd57 | ||
![]() |
d0fff562ea | ||
![]() |
8ce5366e80 | ||
![]() |
bfcda7cc02 | ||
![]() |
c52aeb6618 | ||
![]() |
f5ebfdca61 | ||
![]() |
db93838729 | ||
![]() |
bb835a6e8a | ||
![]() |
52feba0e3a | ||
![]() |
a1076c3108 | ||
![]() |
bad068b20e | ||
![]() |
ec41d461c0 | ||
![]() |
a826cd6845 | ||
![]() |
a950b6193a | ||
![]() |
2cc4de2b23 | ||
![]() |
03ef6996ff | ||
![]() |
d1e5def30e | ||
![]() |
02fbda2154 | ||
![]() |
c21694a24a | ||
![]() |
cb98336b0a | ||
![]() |
97d25bc6a3 | ||
![]() |
b36a1a9d0e | ||
![]() |
cd44ff0aaa | ||
![]() |
032571c326 | ||
![]() |
6b890e3f82 | ||
![]() |
9998845b21 | ||
![]() |
7ee4385deb | ||
![]() |
695277c9eb | ||
![]() |
f014a79f8d | ||
![]() |
1a6d47a633 | ||
![]() |
12eed8f859 | ||
![]() |
549092d9aa | ||
![]() |
b245393bc4 | ||
![]() |
dcd43a17ba | ||
![]() |
b8088dc01a | ||
![]() |
8e1b90ab43 | ||
![]() |
614a1d74dd | ||
![]() |
9ea1ed8559 | ||
![]() |
3e1e234799 | ||
![]() |
62f5ecd278 | ||
![]() |
27733e2119 | ||
![]() |
6be127e18b | ||
![]() |
4bf1c23b3c | ||
![]() |
608b8bb741 | ||
![]() |
ef01eec36e | ||
![]() |
5dbdd0e685 | ||
![]() |
5273050ab3 | ||
![]() |
fae3b02e5a | ||
![]() |
3489e4af1e | ||
![]() |
8e9bd0bbd5 | ||
![]() |
3725b5bc34 | ||
![]() |
998a59aa5e | ||
![]() |
86c017674a | ||
![]() |
cbae87cd11 | ||
![]() |
5bc1f8d468 | ||
![]() |
d3a355e164 | ||
![]() |
45413c9d28 | ||
![]() |
082ee8836f | ||
![]() |
2f5bd5e6d7 | ||
![]() |
639e0137cc | ||
![]() |
2f898aa037 | ||
![]() |
a43a225740 | ||
![]() |
833c39969b | ||
![]() |
e25dea27e7 | ||
![]() |
dac962580b | ||
![]() |
b12bf78c6d | ||
![]() |
a44b005f7c | ||
![]() |
4ea65dbe41 | ||
![]() |
90ba51ee9c | ||
![]() |
ecf44084dc | ||
![]() |
9f49c663f8 | ||
![]() |
c8c9a67485 | ||
![]() |
837358df66 | ||
![]() |
498bc7cebe | ||
![]() |
9c3a4eb947 | ||
![]() |
de1ecbaef4 | ||
![]() |
4eb05efa7c | ||
![]() |
ffa40227ec | ||
![]() |
b44e1820a2 | ||
![]() |
eb461481ed | ||
![]() |
92f47cc9cb | ||
![]() |
f82c6f7ab4 | ||
![]() |
9f32e46921 | ||
![]() |
eba96282d6 | ||
![]() |
dd8423fbb5 | ||
![]() |
76f992906d | ||
![]() |
402d6de02d | ||
![]() |
43e3ce1ed5 | ||
![]() |
15050018f2 | ||
![]() |
71d6394bc8 | ||
![]() |
1d6791e4c2 | ||
![]() |
7f0084a7ed | ||
![]() |
1374a12f89 | ||
![]() |
92937b8b3c | ||
![]() |
d0ed5a8b59 | ||
![]() |
2b318a1021 | ||
![]() |
903e93ae01 | ||
![]() |
06c7fe669c | ||
![]() |
e2c0ee66e4 | ||
![]() |
c6c62f956b | ||
![]() |
8fa27fea6c | ||
![]() |
03c56f388c | ||
![]() |
4090922e7e | ||
![]() |
8061dedba1 | ||
![]() |
da2112b659 | ||
![]() |
ed5386771a | ||
![]() |
d248828523 | ||
![]() |
fc0b86fe19 | ||
![]() |
346036ec88 | ||
![]() |
a5e1ce0e0b | ||
![]() |
67b39b1a98 | ||
![]() |
6fb7721798 | ||
![]() |
0018fd469e | ||
![]() |
019f7480e8 | ||
![]() |
8e0b088deb | ||
![]() |
452005381f | ||
![]() |
9722ed99a3 | ||
![]() |
ee6311e83d | ||
![]() |
1471e52307 | ||
![]() |
f1fc12d9cc | ||
![]() |
ebbc42bebc | ||
![]() |
4785ee8c32 | ||
![]() |
ab40756c1a | ||
![]() |
c88e737a84 | ||
![]() |
def5ea7978 | ||
![]() |
e69ab45044 | ||
![]() |
25d0b4bbf1 | ||
![]() |
f86f5ac6cc | ||
![]() |
07ce365bfd | ||
![]() |
f31c94e2ea | ||
![]() |
933638d035 | ||
![]() |
b0151afa9a | ||
![]() |
5bbd4ae703 | ||
![]() |
f2f7f532a0 | ||
![]() |
80eedf7449 | ||
![]() |
1b48e0d6e0 | ||
![]() |
0420c548da | ||
![]() |
6e98b75d13 | ||
![]() |
e772cb00d1 | ||
![]() |
b5d5275e9b | ||
![]() |
a2d3d22b6e | ||
![]() |
1ad8603cc2 | ||
![]() |
aeaf535ea2 | ||
![]() |
917726fecc | ||
![]() |
49a5b4eb14 | ||
![]() |
8946f3ea18 | ||
![]() |
1947835c51 | ||
![]() |
c7c537c8b8 | ||
![]() |
4e2f954683 | ||
![]() |
abb0184329 | ||
![]() |
ee483ecfd3 | ||
![]() |
99384b4c22 | ||
![]() |
65503bc68d | ||
![]() |
ec6aadb5ce | ||
![]() |
5f642886d9 | ||
![]() |
4c26e3c54d | ||
![]() |
3ca3712bae | ||
![]() |
a471e4b783 | ||
![]() |
20ac7e62e9 | ||
![]() |
3e61aa0835 | ||
![]() |
c18f6fde80 | ||
![]() |
8b9397a0ce | ||
![]() |
678ff17d0f | ||
![]() |
ea2016c208 | ||
![]() |
b5bdf266d3 | ||
![]() |
2309680c38 | ||
![]() |
e99bf569c5 | ||
![]() |
d3fd0f810a | ||
![]() |
484dc9b08a | ||
![]() |
3bd827d7da | ||
![]() |
d425c72134 | ||
![]() |
969cd16638 | ||
![]() |
569be15705 | ||
![]() |
03f54c5b02 | ||
![]() |
06ddc8ec50 | ||
![]() |
1528935008 | ||
![]() |
7121bdef6b | ||
![]() |
f6c376f20d | ||
![]() |
241769d6fc | ||
![]() |
7727651871 | ||
![]() |
ce331826ac | ||
![]() |
ae92c52d61 | ||
![]() |
54aef5fe6f | ||
![]() |
d22148b418 | ||
![]() |
5dc75c9cea | ||
![]() |
200e82decb | ||
![]() |
50359dbaf4 | ||
![]() |
7165f21a62 | ||
![]() |
8aab828c65 | ||
![]() |
c9f8c12f5b | ||
![]() |
a347f8fa49 | ||
![]() |
2d76bdd0f8 | ||
![]() |
c5cdd56edb | ||
![]() |
6901ab39ed | ||
![]() |
b851b7f431 | ||
![]() |
ccaa99115c | ||
![]() |
813de15e85 | ||
![]() |
fa33181fa9 | ||
![]() |
d4324dc0cb | ||
![]() |
ccc27bcc14 | ||
![]() |
014c1673c6 | ||
![]() |
3a3319ff52 | ||
![]() |
5b54ec8fb5 | ||
![]() |
e690556286 | ||
![]() |
660956917f | ||
![]() |
3a5201747b | ||
![]() |
b338e8a83f | ||
![]() |
5584d56b6a | ||
![]() |
c925498120 | ||
![]() |
75615cf503 | ||
![]() |
39f708b0fc | ||
![]() |
ac32077221 | ||
![]() |
a5902acacd | ||
![]() |
c7c08b7511 | ||
![]() |
7de915d47b | ||
![]() |
9107547501 | ||
![]() |
95dc76ca19 | ||
![]() |
49c2a9b372 | ||
![]() |
b378cabfc7 | ||
![]() |
4263dbef31 | ||
![]() |
32fc6ae2eb | ||
![]() |
238cb0077f | ||
![]() |
f5a06b6494 | ||
![]() |
2c01329085 | ||
![]() |
502de89ab1 | ||
![]() |
128de6750c | ||
![]() |
e59e2d9f0b | ||
![]() |
2504b8391b | ||
![]() |
330ea7d210 | ||
![]() |
1edd173a29 | ||
![]() |
98d873a7f9 | ||
![]() |
09175b84df | ||
![]() |
177e19632a | ||
![]() |
8e6207f3e9 | ||
![]() |
ff3a97f6cf | ||
![]() |
b8e155ab40 | ||
![]() |
b8e7df198d | ||
![]() |
34311e3181 | ||
![]() |
46115d3f04 | ||
![]() |
c1d25d2394 | ||
![]() |
880cea5a56 | ||
![]() |
e7205d9cc2 | ||
![]() |
f456feb3ff | ||
![]() |
3f83beedb7 | ||
![]() |
e6c9b1d9bd | ||
![]() |
b46114f4fa | ||
![]() |
8d77e2ba22 | ||
![]() |
cb3900921f | ||
![]() |
ae2021583d | ||
![]() |
36cd88e6b7 | ||
![]() |
517b0908da | ||
![]() |
b23b3e4d21 | ||
![]() |
883fc5dde0 | ||
![]() |
9d044329f6 | ||
![]() |
d1e9e74cb8 | ||
![]() |
98a87ee75f | ||
![]() |
331491077d | ||
![]() |
913c3a6636 | ||
![]() |
fbaf5fe355 | ||
![]() |
804c932f60 | ||
![]() |
cef6d1d1b6 | ||
![]() |
e4e7ab1135 | ||
![]() |
6ca30df8c4 | ||
![]() |
a340d4ed8e | ||
![]() |
ca7cb94358 | ||
![]() |
54779b25f5 | ||
![]() |
44d7652171 | ||
![]() |
c9ed15b682 | ||
![]() |
8faad646ae | ||
![]() |
1d50bc3382 | ||
![]() |
da4af041af | ||
![]() |
e2ff408f2f | ||
![]() |
50d1500dfc | ||
![]() |
94441f93a5 | ||
![]() |
5f712fbf3c | ||
![]() |
1c757f10e0 | ||
![]() |
0508d5f643 | ||
![]() |
d9986b7a2f | ||
![]() |
3d79e7a136 | ||
![]() |
52fb1237ec | ||
![]() |
8a7197726e | ||
![]() |
b7f5458684 | ||
![]() |
52710f3810 | ||
![]() |
a54de07260 | ||
![]() |
aa2c8d101e | ||
![]() |
1441fd93b9 | ||
![]() |
4a585e8920 | ||
![]() |
8c4245a09d | ||
![]() |
e4af16989a | ||
![]() |
5dc0944fe8 | ||
![]() |
b4d24f4377 | ||
![]() |
67be47b8db | ||
![]() |
e382982d32 | ||
![]() |
b09b74b5da | ||
![]() |
c628bdb7a6 | ||
![]() |
2fcf6fb0fd | ||
![]() |
4f3fc9ffd0 | ||
![]() |
15839a7399 | ||
![]() |
26b3a14a63 | ||
![]() |
f2f0799df1 | ||
![]() |
6c99c32100 | ||
![]() |
93d25a2a34 | ||
![]() |
88f5ec59d7 | ||
![]() |
586d3c4db7 | ||
![]() |
f45fb56e15 | ||
![]() |
8fe153c7c1 | ||
![]() |
36a8720fbb | ||
![]() |
9cbfdc94d9 | ||
![]() |
091923764d | ||
![]() |
dc39caed1e | ||
![]() |
bcd7d1f007 | ||
![]() |
40d4dc0474 | ||
![]() |
02ac30c0d0 | ||
![]() |
518bc92673 | ||
![]() |
a5b92e316c | ||
![]() |
828c7b66a0 | ||
![]() |
93474eaa06 | ||
![]() |
237f366aa2 | ||
![]() |
714bcf28d5 | ||
![]() |
420eeb4d68 | ||
![]() |
bc6daf4a2e | ||
![]() |
6f7832c09b | ||
![]() |
bef67fa275 | ||
![]() |
05d7198667 | ||
![]() |
df0bfc14e5 | ||
![]() |
3f28f7451f | ||
![]() |
dbb9199d6f | ||
![]() |
72cb3b03af | ||
![]() |
d0085f00ed | ||
![]() |
43734f027b | ||
![]() |
f799375635 | ||
![]() |
65704bbf01 | ||
![]() |
9cb3882efa | ||
![]() |
a0833ca691 | ||
![]() |
a4f197f608 | ||
![]() |
bb903cab40 | ||
![]() |
92f765bc47 | ||
![]() |
742889a035 | ||
![]() |
24453ebcc3 | ||
![]() |
8b8ab1bf5c | ||
![]() |
e9bc9b8675 | ||
![]() |
eeaa27c7ca | ||
![]() |
ccea1755fc | ||
![]() |
c32a5d602b | ||
![]() |
2a04f2ca4d | ||
![]() |
37c80e8ef5 | ||
![]() |
1dce62e42a | ||
![]() |
ec222378c4 | ||
![]() |
ac930a1c6a | ||
![]() |
5ccd5ad56e | ||
![]() |
67da90530b | ||
![]() |
b7f3753615 | ||
![]() |
d21d38509c | ||
![]() |
a59e1c0345 | ||
![]() |
7ab613b394 | ||
![]() |
c00ab0fbe2 | ||
![]() |
87451b1223 | ||
![]() |
d2b61229a3 | ||
![]() |
980584020a | ||
![]() |
a43d0dafa5 | ||
![]() |
d5c1e7e579 | ||
![]() |
55bdf0d618 | ||
![]() |
44f7c13ad4 | ||
![]() |
7bd1a3c8ac | ||
![]() |
4f1981df03 | ||
![]() |
8689a998aa | ||
![]() |
079bb8d722 | ||
![]() |
65c0b6c7da | ||
![]() |
84958af4ce | ||
![]() |
c53b59914b | ||
![]() |
8ffd9ab2d9 | ||
![]() |
0305caf504 | ||
![]() |
3012e4ffe0 | ||
![]() |
585f3c3d3e | ||
![]() |
f1d07dfbed | ||
![]() |
cddfc55110 | ||
![]() |
a2ce072ae7 | ||
![]() |
439563c5d6 | ||
![]() |
962617b4f4 | ||
![]() |
4a202f0f7e | ||
![]() |
6e6b12519a | ||
![]() |
f5f7654f4b | ||
![]() |
5ac4c48ad1 | ||
![]() |
7e18fd18b0 | ||
![]() |
fb30c479ea | ||
![]() |
f40dcbfe13 | ||
![]() |
8755b5f353 | ||
![]() |
691482bb28 | ||
![]() |
4248bb8ce0 | ||
![]() |
a5653e33d3 | ||
![]() |
072dc1c7e6 | ||
![]() |
d76fceae85 | ||
![]() |
86107b2710 | ||
![]() |
a473768bef | ||
![]() |
f7fe13a177 | ||
![]() |
acd29d22eb | ||
![]() |
c228155514 | ||
![]() |
b601b98d5c | ||
![]() |
1cd3419688 | ||
![]() |
6f5f233bb5 | ||
![]() |
d33492cd49 | ||
![]() |
83ad9f369f | ||
![]() |
3a78b62520 | ||
![]() |
2479f75d8a | ||
![]() |
f0d187f71e | ||
![]() |
056942391a | ||
![]() |
2feef81516 | ||
![]() |
037d4b581b | ||
![]() |
da4cf6fdb4 | ||
![]() |
848bcd5a63 | ||
![]() |
7b60b6c6dc | ||
![]() |
fbc801d1da | ||
![]() |
2f18f82e3d | ||
![]() |
c2d5a96bb6 | ||
![]() |
46575d4f04 | ||
![]() |
5e7be93980 | ||
![]() |
3f749c6540 | ||
![]() |
2a7d4ee866 | ||
![]() |
083095ded6 | ||
![]() |
7207663f37 | ||
![]() |
66b49c909a | ||
![]() |
ab469aa243 | ||
![]() |
afa4563e1e | ||
![]() |
320b3d8617 | ||
![]() |
7493429b4d | ||
![]() |
d70f7a717b | ||
![]() |
4ab38b7894 | ||
![]() |
2068407be0 | ||
![]() |
10a7369fec | ||
![]() |
9fb5579701 | ||
![]() |
b3cf883a44 | ||
![]() |
f65e27c07c | ||
![]() |
b587fefe44 | ||
![]() |
2511114c28 | ||
![]() |
9cd267fee5 | ||
![]() |
aeac96a4f7 | ||
![]() |
88a75e2a99 | ||
![]() |
e14760775b | ||
![]() |
9e7e464ba5 | ||
![]() |
060d4fd27f | ||
![]() |
940578d062 | ||
![]() |
9cf42d8b33 | ||
![]() |
1d62d2924e | ||
![]() |
e23bac47ba | ||
![]() |
b5d38adfcc | ||
![]() |
f30513b20b | ||
![]() |
ade1e40395 | ||
![]() |
c93b8677e4 | ||
![]() |
62683d8878 | ||
![]() |
3d1239c1b4 | ||
![]() |
5268bade66 | ||
![]() |
514eb39a14 | ||
![]() |
18628b821e | ||
![]() |
344fbe6bcd | ||
![]() |
afb8cd2dc1 | ||
![]() |
1a5f385eb5 | ||
![]() |
8df7864064 | ||
![]() |
9ca60bad7f | ||
![]() |
bd828bb072 | ||
![]() |
892cb44d84 | ||
![]() |
517ea6a119 | ||
![]() |
ba8ffda32a | ||
![]() |
90a9cf376e | ||
![]() |
16d6c55407 | ||
![]() |
f3508d15a3 | ||
![]() |
0add490097 | ||
![]() |
2d2d1bd58d | ||
![]() |
7813c8a942 | ||
![]() |
ac5453232f | ||
![]() |
e78e5274d3 | ||
![]() |
982520bcef | ||
![]() |
7abd91f031 | ||
![]() |
b93bfb7e5c | ||
![]() |
2b20c34c1e | ||
![]() |
0f63acea5b | ||
![]() |
e600fb7096 | ||
![]() |
b63fc71865 | ||
![]() |
23e7650983 | ||
![]() |
01b5ccfdc6 | ||
![]() |
cc72f91465 | ||
![]() |
45cb5ff4ef | ||
![]() |
390279a4a8 | ||
![]() |
851dececab | ||
![]() |
482afa93a2 | ||
![]() |
25bdbd7ae0 | ||
![]() |
527a639242 | ||
![]() |
0d5e000ad3 | ||
![]() |
f4cb467e7a | ||
![]() |
2f6b0b142a | ||
![]() |
78c2535c3c | ||
![]() |
26260392a8 | ||
![]() |
aa573c0063 | ||
![]() |
b2859bcd2a | ||
![]() |
b58dd8c704 | ||
![]() |
09c96286f9 | ||
![]() |
f2d2089c21 | ||
![]() |
79c366d1f2 | ||
![]() |
c97ce5255f | ||
![]() |
1fb66254a4 | ||
![]() |
2d74f0507b | ||
![]() |
9c06544c46 | ||
![]() |
641dad586f | ||
![]() |
016144b960 | ||
![]() |
4d6c8efe44 | ||
![]() |
860a7d1eeb | ||
![]() |
2389857be8 | ||
![]() |
18458f418f | ||
![]() |
e812d054bc | ||
![]() |
44d2c0195a | ||
![]() |
42b4949b7f | ||
![]() |
d915ae0807 | ||
![]() |
8eec8ea35f | ||
![]() |
023e0ba7aa | ||
![]() |
d0d3b70c73 | ||
![]() |
a509045b25 | ||
![]() |
7be6501571 | ||
![]() |
bb4c35d481 | ||
![]() |
47ea84957d | ||
![]() |
fc76f7874e | ||
![]() |
77a778acf1 | ||
![]() |
ff059d1268 | ||
![]() |
53bb5012b9 | ||
![]() |
09a3a977d7 | ||
![]() |
04db5944d1 | ||
![]() |
9c97bb431c | ||
![]() |
38215f2cf9 | ||
![]() |
01e7a01daf | ||
![]() |
c2a8e29ef9 | ||
![]() |
15a41e31b0 | ||
![]() |
294c9840de | ||
![]() |
568ecd9477 | ||
![]() |
169f3ed541 | ||
![]() |
ff7ae427fd | ||
![]() |
1597415340 | ||
![]() |
47f3261b9f | ||
![]() |
9e68eefbb7 | ||
![]() |
630c531d99 | ||
![]() |
c7da2a4b5f | ||
![]() |
692078f490 | ||
![]() |
0e29e864c8 | ||
![]() |
1b7a601d27 | ||
![]() |
a96076ee5b | ||
![]() |
d580622d1b | ||
![]() |
6edccad4dd | ||
![]() |
8fa47dbcb1 | ||
![]() |
157f4bbc21 | ||
![]() |
3b0d0df068 | ||
![]() |
69802a9f00 | ||
![]() |
b940da45af | ||
![]() |
bd6de0e204 | ||
![]() |
958074e347 | ||
![]() |
988ac80087 | ||
![]() |
1c7c72181e | ||
![]() |
6857153367 | ||
![]() |
0a3a0f3beb | ||
![]() |
e92e83746d | ||
![]() |
3b34b3e9ea | ||
![]() |
9506f53691 | ||
![]() |
92dc6db134 | ||
![]() |
1b88a7bc03 |
13
.babelrc
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"plugins": [
|
||||||
|
[
|
||||||
|
"@babel/plugin-transform-runtime",
|
||||||
|
{
|
||||||
|
"corejs": {
|
||||||
|
"version": 3,
|
||||||
|
"proposals": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
@@ -15,7 +15,8 @@ jobs:
|
|||||||
executor: docker
|
executor: docker
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
- setup_remote_docker
|
- setup_remote_docker:
|
||||||
|
version: 19.03.13
|
||||||
- run:
|
- run:
|
||||||
name: Build
|
name: Build
|
||||||
command: |
|
command: |
|
||||||
@@ -31,7 +32,7 @@ jobs:
|
|||||||
apk update && apk add jq
|
apk update && apk add jq
|
||||||
docker tag misskey/misskey misskey/misskey:$(cat package.json | jq -r .version)
|
docker tag misskey/misskey misskey/misskey:$(cat package.json | jq -r .version)
|
||||||
docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD
|
docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD
|
||||||
docker push misskey/misskey
|
docker push -a misskey/misskey
|
||||||
else
|
else
|
||||||
echo -e '\033[0;33mAborted deploying to Docker Hub\033[0;39m'
|
echo -e '\033[0;33mAborted deploying to Docker Hub\033[0;39m'
|
||||||
fi
|
fi
|
||||||
|
@@ -88,7 +88,9 @@ redis:
|
|||||||
#elasticsearch:
|
#elasticsearch:
|
||||||
# host: localhost
|
# host: localhost
|
||||||
# port: 9200
|
# port: 9200
|
||||||
# pass: null
|
# ssl: false
|
||||||
|
# user:
|
||||||
|
# pass:
|
||||||
|
|
||||||
# ┌───────────────┐
|
# ┌───────────────┐
|
||||||
#───┘ ID generation └───────────────────────────────────────────
|
#───┘ ID generation └───────────────────────────────────────────
|
||||||
@@ -140,6 +142,11 @@ id: 'aid'
|
|||||||
# Proxy for HTTP/HTTPS
|
# Proxy for HTTP/HTTPS
|
||||||
#proxy: http://127.0.0.1:3128
|
#proxy: http://127.0.0.1:3128
|
||||||
|
|
||||||
|
#proxyBypassHosts: [
|
||||||
|
# 'example.com',
|
||||||
|
# '192.0.2.8'
|
||||||
|
#]
|
||||||
|
|
||||||
# Proxy for SMTP/SMTPS
|
# Proxy for SMTP/SMTPS
|
||||||
#proxySmtp: http://127.0.0.1:3128 # use HTTP/1.1 CONNECT
|
#proxySmtp: http://127.0.0.1:3128 # use HTTP/1.1 CONNECT
|
||||||
#proxySmtp: socks4://127.0.0.1:1080 # use SOCKS4
|
#proxySmtp: socks4://127.0.0.1:1080 # use SOCKS4
|
||||||
@@ -147,3 +154,6 @@ id: 'aid'
|
|||||||
|
|
||||||
# Media Proxy
|
# Media Proxy
|
||||||
#mediaProxy: https://example.com/proxy
|
#mediaProxy: https://example.com/proxy
|
||||||
|
|
||||||
|
# Sign to ActivityPub GET request (default: false)
|
||||||
|
#signToActivityPubGet: true
|
||||||
|
@@ -5,8 +5,10 @@
|
|||||||
.vscode
|
.vscode
|
||||||
Dockerfile
|
Dockerfile
|
||||||
build/
|
build/
|
||||||
|
built/
|
||||||
db/
|
db/
|
||||||
docker-compose.yml
|
docker-compose.yml
|
||||||
elasticsearch/
|
elasticsearch/
|
||||||
node_modules/
|
node_modules/
|
||||||
redis/
|
redis/
|
||||||
|
files/
|
||||||
|
2
.github/workflows/docker.yml
vendored
@@ -11,7 +11,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v2
|
||||||
- name: Pull previous build result (for cache)
|
- name: Pull previous build result (for cache)
|
||||||
run: docker pull misskey/misskey:latest
|
run: docker pull misskey/misskey:latest
|
||||||
- name: Build docker container
|
- name: Build docker container
|
||||||
|
15
.github/workflows/nodejs.yml
vendored
@@ -12,7 +12,7 @@ jobs:
|
|||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
node-version: [11.10.x, 12.x]
|
node-version: [12.x, 14.x, 15.x]
|
||||||
|
|
||||||
services:
|
services:
|
||||||
postgres:
|
postgres:
|
||||||
@@ -21,13 +21,14 @@ jobs:
|
|||||||
- 5432:5432
|
- 5432:5432
|
||||||
env:
|
env:
|
||||||
POSTGRES_DB: test-misskey
|
POSTGRES_DB: test-misskey
|
||||||
|
POSTGRES_HOST_AUTH_METHOD: trust
|
||||||
redis:
|
redis:
|
||||||
image: redis:alpine
|
image: redis:alpine
|
||||||
ports:
|
ports:
|
||||||
- 6379:6379
|
- 6379:6379
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v2
|
||||||
- name: Use Node.js ${{ matrix.node-version }}
|
- name: Use Node.js ${{ matrix.node-version }}
|
||||||
uses: actions/setup-node@v1
|
uses: actions/setup-node@v1
|
||||||
with:
|
with:
|
||||||
@@ -40,3 +41,13 @@ jobs:
|
|||||||
run: yarn build
|
run: yarn build
|
||||||
- name: Test
|
- name: Test
|
||||||
run: yarn test
|
run: yarn test
|
||||||
|
|
||||||
|
lint:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/setup-node@v1
|
||||||
|
with:
|
||||||
|
node-version: 12.x
|
||||||
|
- run: yarn install
|
||||||
|
- run: yarn lint
|
||||||
|
2
.gitignore
vendored
@@ -12,7 +12,7 @@ report.*.json
|
|||||||
# config
|
# config
|
||||||
/.config/*
|
/.config/*
|
||||||
!/.config/example.yml
|
!/.config/example.yml
|
||||||
!/.config/mongo_initdb_example.js
|
!/.config/docker_example.env
|
||||||
|
|
||||||
# misskey
|
# misskey
|
||||||
/build
|
/build
|
||||||
|
7
.mocharc.json
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"extension": ["ts","js","cjs","mjs"],
|
||||||
|
"require": "ts-node/register",
|
||||||
|
"slow": 1000,
|
||||||
|
"timeout": 30000,
|
||||||
|
"exit": true
|
||||||
|
}
|
@@ -1 +1 @@
|
|||||||
v12.11.1
|
v14.15.1
|
||||||
|
1855
CHANGELOG.md
@@ -1,6 +1,12 @@
|
|||||||
# Contribution guide
|
# Contribution guide
|
||||||
:v: Thanks for your contributions :v:
|
:v: Thanks for your contributions :v:
|
||||||
|
|
||||||
|
## When you contribute...
|
||||||
|
- 任意のIssueについて、せっかく実装してくださっても、実装方法や設計の認識が揃ってないとマージできない/しないことになりかねないので、初めにそのIssue上で着手することを宣言し、必要に応じて他メンバーと実装方法や設計のすり合わせを行ってください。宣言することは作業が他の人と被るのを防止する効果もあります。
|
||||||
|
- 設計に迷った時はプロジェクトリーダーの判断を仰いでください。
|
||||||
|
- 時間や優先度の都合上、提出してくださったPRが長期間放置されることもありますがご理解ください。
|
||||||
|
- 温度感高めで見てほしいものは責付いてください。
|
||||||
|
|
||||||
## Issues
|
## Issues
|
||||||
Feature suggestions and bug reports are filed in https://github.com/syuilo/misskey/issues .
|
Feature suggestions and bug reports are filed in https://github.com/syuilo/misskey/issues .
|
||||||
|
|
||||||
|
4
COPYING
@@ -13,3 +13,7 @@ https://github.com/twitter/twemoji-parser/blob/master/LICENSE.md
|
|||||||
Emoji keywords for Unicode 11 and below by Mu-An Chiou
|
Emoji keywords for Unicode 11 and below by Mu-An Chiou
|
||||||
License: MIT
|
License: MIT
|
||||||
https://github.com/muan/emojilib/blob/master/LICENSE
|
https://github.com/muan/emojilib/blob/master/LICENSE
|
||||||
|
|
||||||
|
RsaSignature2017 implementation by Transmute Industries Inc
|
||||||
|
License: MIT
|
||||||
|
https://github.com/transmute-industries/RsaSignature2017/blob/master/LICENSE
|
||||||
|
@@ -1,9 +1,7 @@
|
|||||||
FROM node:12.11.1-alpine AS base
|
FROM node:14.15.1-alpine AS base
|
||||||
|
|
||||||
ENV NODE_ENV=production
|
ENV NODE_ENV=production
|
||||||
|
|
||||||
RUN npm i -g npm@latest
|
|
||||||
|
|
||||||
WORKDIR /misskey
|
WORKDIR /misskey
|
||||||
|
|
||||||
FROM base AS builder
|
FROM base AS builder
|
||||||
@@ -12,6 +10,7 @@ RUN apk add --no-cache \
|
|||||||
autoconf \
|
autoconf \
|
||||||
automake \
|
automake \
|
||||||
file \
|
file \
|
||||||
|
git \
|
||||||
g++ \
|
g++ \
|
||||||
gcc \
|
gcc \
|
||||||
libc-dev \
|
libc-dev \
|
||||||
@@ -22,7 +21,7 @@ RUN apk add --no-cache \
|
|||||||
python \
|
python \
|
||||||
zlib-dev
|
zlib-dev
|
||||||
|
|
||||||
COPY package.json ./
|
COPY package.json yarn.lock ./
|
||||||
RUN yarn install
|
RUN yarn install
|
||||||
COPY . ./
|
COPY . ./
|
||||||
RUN yarn build
|
RUN yarn build
|
||||||
|
135
README.md
@@ -6,8 +6,9 @@
|
|||||||
[](https://circleci.com/gh/syuilo/misskey)
|
[](https://circleci.com/gh/syuilo/misskey)
|
||||||
[](https://david-dm.org/syuilo/misskey)
|
[](https://david-dm.org/syuilo/misskey)
|
||||||
[](http://makeapullrequest.com)
|
[](http://makeapullrequest.com)
|
||||||
|
[](https://github.com/humanetech-community/awesome-humane-tech)
|
||||||
|
|
||||||
**A forever evolving, sophisticated microblogging platform.**
|
**A forever evolving, interplanetary microblogging platform.**
|
||||||
|
|
||||||
<p align="justify">
|
<p align="justify">
|
||||||
<a href="https://join.misskey.page/">Misskey</a> is a decentralized microblogging platform born on Earth.
|
<a href="https://join.misskey.page/">Misskey</a> is a decentralized microblogging platform born on Earth.
|
||||||
@@ -89,6 +90,9 @@ Please see the [Contribution Guide](./CONTRIBUTING.md).
|
|||||||
<td><img src="https://avatars1.githubusercontent.com/u/30769358?s=460&v=4" alt="mei23" 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/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://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>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center"><a href="https://github.com/syuilo">@syuilo</a></td>
|
<td align="center"><a href="https://github.com/syuilo">@syuilo</a></td>
|
||||||
@@ -96,6 +100,9 @@ Please see the [Contribution Guide](./CONTRIBUTING.md).
|
|||||||
<td align="center"><a href="https://github.com/mei23">@mei23</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/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/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>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -103,94 +110,106 @@ Please see the [Contribution Guide](./CONTRIBUTING.md).
|
|||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
<!-- PATREON_START -->
|
<!-- PATREON_START -->
|
||||||
<table><tr>
|
<table><tr>
|
||||||
<td><img src="https://c8.patreon.com/2/200/20832595" alt="Roujo" width="100"></td>
|
<td><img src="https://c8.patreon.com/2/200/20832595" alt="Roujo " width="100"></td>
|
||||||
<td><img src="https://c8.patreon.com/2/200/27956229" alt="Oliver Maximilian Seidel" width="100"></td>
|
<td><img src="https://c8.patreon.com/2/200/27956229" alt="Oliver Maximilian Seidel" width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12190916/fb7fa7983c14425f890369535b1506a4/3.png?token-time=2145916800&token-hash=oH_i7gJjNT7Ot6j9JiVwy7ZJIBqACVnzLqlz4YrDAZA%3D" alt="weepjp" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12190916/fb7fa7983c14425f890369535b1506a4/3.png?token-time=2145916800&token-hash=oH_i7gJjNT7Ot6j9JiVwy7ZJIBqACVnzLqlz4YrDAZA%3D" alt="weepjp " width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/605366/c9dc408fdcbf412fb183ca5b06235f8d/1.jpeg?token-time=2145916800&token-hash=oaqsjLqOFjWN5I9hm2epOaTXaEtKwQUy5OW-EpAz6-g%3D" alt="Jon Leibowitz" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/19045173/cb91c0f345c24d4ebfd05f19906d5e26/1.png?token-time=2145916800&token-hash=o_zKBytJs_AxHwSYw_5R8eD0eSJe3RoTR3kR3Q0syN0%3D" alt="kiritan " width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/19045173/cb91c0f345c24d4ebfd05f19906d5e26/1.png?token-time=2145916800&token-hash=o_zKBytJs_AxHwSYw_5R8eD0eSJe3RoTR3kR3Q0syN0%3D" alt="kiritan" width="100"></td>
|
<td><img src="https://c8.patreon.com/2/200/27648259" alt="みなしま " width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/24430516/b1964ac5b9f746d2a12ff53dbc9aa40a/1.jpg?token-time=2145916800&token-hash=bmEiMGYpp3bS7hCCbymjGGsHBZM3AXuBOFO3Kro37PU%3D" alt="Eduardo Quiros" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/24430516/b1964ac5b9f746d2a12ff53dbc9aa40a/1.jpg?token-time=2145916800&token-hash=bmEiMGYpp3bS7hCCbymjGGsHBZM3AXuBOFO3Kro37PU%3D" alt="Eduardo Quiros" width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/14215107/1cbe1912c26143919fa0faca16f12ce1/3.png?token-time=2145916800&token-hash=Zq1TCK2tdY7xudEm_aV70bc_wxmol6pNj3ZWbpFUNbI%3D" alt="Nesakko" width="100"></td>
|
|
||||||
<td><img src="https://c8.patreon.com/2/200/776209" alt="Denshi" width="100"></td>
|
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
<td><a href="https://www.patreon.com/user?u=20832595">Roujo</a></td>
|
<td><a href="https://www.patreon.com/user?u=20832595">Roujo </a></td>
|
||||||
<td><a href="https://www.patreon.com/user?u=27956229">Oliver Maximilian Seidel</a></td>
|
<td><a href="https://www.patreon.com/user?u=27956229">Oliver Maximilian Seidel</a></td>
|
||||||
<td><a href="https://www.patreon.com/weepjp">weepjp</a></td>
|
<td><a href="https://www.patreon.com/weepjp">weepjp </a></td>
|
||||||
<td><a href="https://www.patreon.com/jonleibowitz">Jon Leibowitz</a></td>
|
<td><a href="https://www.patreon.com/user?u=19045173">kiritan </a></td>
|
||||||
<td><a href="https://www.patreon.com/user?u=19045173">kiritan</a></td>
|
<td><a href="https://www.patreon.com/user?u=27648259">みなしま </a></td>
|
||||||
<td><a href="https://www.patreon.com/user?u=24430516">Eduardo Quiros</a></td>
|
<td><a href="https://www.patreon.com/user?u=24430516">Eduardo Quiros</a></td>
|
||||||
<td><a href="https://www.patreon.com/Nesakko">Nesakko</a></td>
|
|
||||||
<td><a href="https://www.patreon.com/user?u=776209">Denshi</a></td>
|
|
||||||
</tr></table>
|
</tr></table>
|
||||||
<table><tr>
|
<table><tr>
|
||||||
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/14215107/1cbe1912c26143919fa0faca16f12ce1/4.jpg?token-time=2145916800&token-hash=BslMqDjTjz8KYANLvxL87agHTugHa0dMPUzT-hwR6Vk%3D" alt="Nesakko" width="100"></td>
|
||||||
|
<td><img src="https://c8.patreon.com/2/200/776209" alt="Demogrognard" width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/3075183/c2ae575c604e420297f000ccc396e395/1.jpeg?token-time=2145916800&token-hash=O9qmPtpo6wWb0OuvnkEekhk_1WO2MTdytLr7ZgsAr80%3D" alt="Liaizon Wakest" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/3075183/c2ae575c604e420297f000ccc396e395/1.jpeg?token-time=2145916800&token-hash=O9qmPtpo6wWb0OuvnkEekhk_1WO2MTdytLr7ZgsAr80%3D" alt="Liaizon Wakest" width="100"></td>
|
||||||
<td><img src="https://c8.patreon.com/2/200/557245" alt="mkatze" width="100"></td>
|
<td><img src="https://c8.patreon.com/2/200/557245" alt="mkatze " width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/23915207/25428766ecd745478e600b3d7f871eb2/1.png?token-time=2145916800&token-hash=urCLLA4KjJZX92Y1CxcBP4d8bVTHGkiaPnQZp-Tqz68%3D" alt="kabo2468y" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/23915207/25428766ecd745478e600b3d7f871eb2/1.png?token-time=2145916800&token-hash=urCLLA4KjJZX92Y1CxcBP4d8bVTHGkiaPnQZp-Tqz68%3D" alt="kabo2468y " width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/8249688/4aacf36b6b244ab1bc6653591b6640df/2.png?token-time=2145916800&token-hash=1ZEf2w6L34253cZXS_HlVevLEENWS9QqrnxGUAYblPo%3D" alt="AureoleArk" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/8249688/4aacf36b6b244ab1bc6653591b6640df/2.png?token-time=2145916800&token-hash=1ZEf2w6L34253cZXS_HlVevLEENWS9QqrnxGUAYblPo%3D" alt="AureoleArk " width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5670915/ee175f0bfb6347ffa4ea101a8c097bff/1.jpg?token-time=2145916800&token-hash=mPLM9CA-riFHx-myr3bLZJuH2xBRHA9se5VbHhLIOuA%3D" alt="osapon" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5670915/ee175f0bfb6347ffa4ea101a8c097bff/1.jpg?token-time=2145916800&token-hash=mPLM9CA-riFHx-myr3bLZJuH2xBRHA9se5VbHhLIOuA%3D" alt="osapon " width="100"></td>
|
||||||
<td><img src="https://c8.patreon.com/2/200/16869916" alt="見当かなみ" width="100"></td>
|
<td><img src="https://c8.patreon.com/2/200/16869916" alt="見当かなみ " width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/18899730/6a22797f68254034a854d69ea2445fc8/1.png?token-time=2145916800&token-hash=b_uj57yxo5VzkSOUS7oXE_762dyOTB_oxzbO6lFNG3k%3D" alt="YuzuRyo61" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/36813045/29876ea679d443bcbba3c3f16edab8c2/2.jpeg?token-time=2145916800&token-hash=YCKWnIhrV9rjUCV9KqtJnEqjy_uGYF3WMXftjUdpi7o%3D" alt="Wataru Manji (manji0)" width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5788159/af42076ab3354bb49803cfba65f94bee/1.jpg?token-time=2145916800&token-hash=iSaxp_Yr2-ZiU2YVi9rcpZZj9mj3UvNSMrZr4CU4qtA%3D" alt="mewl hayabusa" width="100"></td>
|
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/11357794/923ce94cd8c44ba788ee931907881839/1.png?token-time=2145916800&token-hash=9nEQje_eMvUjq9a7L3uBqW-MQbS-rRMaMgd7UYVoFNM%3D" alt="mydarkstar" width="100"></td>
|
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/28779508/3cd4cb7f017f4ee0864341e3464d42f9/1.png?token-time=2145916800&token-hash=eGQtR15be44kgvh8fw2Jx8Db4Bv15YBp2ldxh0EKRxA%3D" alt="S Y" width="100"></td>
|
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
|
<td><a href="https://www.patreon.com/Nesakko">Nesakko</a></td>
|
||||||
|
<td><a href="https://www.patreon.com/user?u=776209">Demogrognard</a></td>
|
||||||
<td><a href="https://www.patreon.com/wakest">Liaizon Wakest</a></td>
|
<td><a href="https://www.patreon.com/wakest">Liaizon Wakest</a></td>
|
||||||
<td><a href="https://www.patreon.com/user?u=557245">mkatze</a></td>
|
<td><a href="https://www.patreon.com/user?u=557245">mkatze </a></td>
|
||||||
<td><a href="https://www.patreon.com/user?u=23915207">kabo2468y</a></td>
|
<td><a href="https://www.patreon.com/user?u=23915207">kabo2468y </a></td>
|
||||||
<td><a href="https://www.patreon.com/AureoleArk">AureoleArk</a></td>
|
<td><a href="https://www.patreon.com/AureoleArk">AureoleArk </a></td>
|
||||||
<td><a href="https://www.patreon.com/osapon">osapon</a></td>
|
<td><a href="https://www.patreon.com/osapon">osapon </a></td>
|
||||||
<td><a href="https://www.patreon.com/user?u=16869916">見当かなみ</a></td>
|
<td><a href="https://www.patreon.com/user?u=16869916">見当かなみ </a></td>
|
||||||
<td><a href="https://www.patreon.com/Yuzulia">YuzuRyo61</a></td>
|
<td><a href="https://www.patreon.com/user?u=36813045">Wataru Manji (manji0)</a></td>
|
||||||
<td><a href="https://www.patreon.com/hs_sh_net">mewl hayabusa</a></td>
|
|
||||||
<td><a href="https://www.patreon.com/mydarkstar">mydarkstar</a></td>
|
|
||||||
<td><a href="https://www.patreon.com/user?u=28779508">S Y</a></td>
|
|
||||||
</tr></table>
|
</tr></table>
|
||||||
<table><tr>
|
<table><tr>
|
||||||
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/18899730/6a22797f68254034a854d69ea2445fc8/1.png?token-time=2145916800&token-hash=b_uj57yxo5VzkSOUS7oXE_762dyOTB_oxzbO6lFNG3k%3D" alt="YuzuRyo61 " width="100"></td>
|
||||||
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5788159/af42076ab3354bb49803cfba65f94bee/1.jpg?token-time=2145916800&token-hash=iSaxp_Yr2-ZiU2YVi9rcpZZj9mj3UvNSMrZr4CU4qtA%3D" alt="mewl hayabusa" width="100"></td>
|
||||||
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/28779508/3cd4cb7f017f4ee0864341e3464d42f9/1.png?token-time=2145916800&token-hash=eGQtR15be44kgvh8fw2Jx8Db4Bv15YBp2ldxh0EKRxA%3D" alt="S Y" width="100"></td>
|
||||||
<td><img src="https://c8.patreon.com/2/200/16542964" alt="Takumi Sugita" width="100"></td>
|
<td><img src="https://c8.patreon.com/2/200/16542964" alt="Takumi Sugita" width="100"></td>
|
||||||
<td><img src="https://c8.patreon.com/2/200/17866454" alt="sikyosyounin" width="100"></td>
|
<td><img src="https://c8.patreon.com/2/200/17866454" alt="sikyosyounin " width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5881381/6235ca5d3fb04c8e95ef5b4ff2abcc18/3.png?token-time=2145916800&token-hash=KjfQL8nf3AIf6WqzLshBYAyX44piAqOAZiYXgZS_H6A%3D" alt="YUKIMOCHI" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5881381/6235ca5d3fb04c8e95ef5b4ff2abcc18/3.png?token-time=2145916800&token-hash=KjfQL8nf3AIf6WqzLshBYAyX44piAqOAZiYXgZS_H6A%3D" alt="YUKIMOCHI" width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/26340354/08834cf767b3449e93098ef73a434e2f/2.png?token-time=2145916800&token-hash=nyM8DnKRL8hR47HQ619mUzsqVRpkWZjgtgBU9RY15Uc%3D" alt="totokoro" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/38837364/9421361c54c645ac8f5fc442a40c32e9/1.png?token-time=2145916800&token-hash=TUZB48Nem3BeUPLBH6s3P6WyKBnQOy0xKaDSTBBUNzA%3D" alt="xianon" width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/19356899/496b4681d33b4520bd7688e0fd19c04d/2.jpeg?token-time=2145916800&token-hash=_sTj3dUBOhn9qwiJ7F19Qd-yWWfUqJC_0jG1h0agEqQ%3D" alt="sheeta.s" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/26340354/08834cf767b3449e93098ef73a434e2f/2.png?token-time=2145916800&token-hash=nyM8DnKRL8hR47HQ619mUzsqVRpkWZjgtgBU9RY15Uc%3D" alt="totokoro " width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5827393/59893c191dda408f9cabd0f20a3a5627/1.jpeg?token-time=2145916800&token-hash=i9N05vOph-eP1LTLb9_npATjYOpntL0ZsHNaZFSsPmE%3D" alt="motcha" width="100"></td>
|
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13737140/1adf7835017d479280d90fe8d30aade2/1.png?token-time=2145916800&token-hash=0pdle8h5pDZrww0BDOjdz6zO-HudeGTh36a3qi1biVU%3D" alt="Satsuki Yanagi" width="100"></td>
|
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/17880724/311738c8a48f4a6b9443c2445a75adde/1.jpg?token-time=2145916800&token-hash=nVAntpybQrznE0rg05keLrSE6ogPKJXB13rmrJng42c%3D" alt="takimura" width="100"></td>
|
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13100201/fc5be4fa90444f09a9c8a06f72385272/1.png?token-time=2145916800&token-hash=i8PjlgfOB2LPEdbtWyx8ZPsBKhGcNZqcw_FQmH71UGU%3D" alt="aqz tamaina" width="100"></td>
|
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
|
<td><a href="https://www.patreon.com/Yuzulia">YuzuRyo61 </a></td>
|
||||||
|
<td><a href="https://www.patreon.com/hs_sh_net">mewl hayabusa</a></td>
|
||||||
|
<td><a href="https://www.patreon.com/user?u=28779508">S Y</a></td>
|
||||||
<td><a href="https://www.patreon.com/user?u=16542964">Takumi Sugita</a></td>
|
<td><a href="https://www.patreon.com/user?u=16542964">Takumi Sugita</a></td>
|
||||||
<td><a href="https://www.patreon.com/user?u=17866454">sikyosyounin</a></td>
|
<td><a href="https://www.patreon.com/user?u=17866454">sikyosyounin </a></td>
|
||||||
<td><a href="https://www.patreon.com/yukimochi">YUKIMOCHI</a></td>
|
<td><a href="https://www.patreon.com/yukimochi">YUKIMOCHI</a></td>
|
||||||
<td><a href="https://www.patreon.com/user?u=26340354">totokoro</a></td>
|
<td><a href="https://www.patreon.com/user?u=38837364">xianon</a></td>
|
||||||
<td><a href="https://www.patreon.com/user?u=19356899">sheeta.s</a></td>
|
<td><a href="https://www.patreon.com/user?u=26340354">totokoro </a></td>
|
||||||
<td><a href="https://www.patreon.com/user?u=5827393">motcha</a></td>
|
|
||||||
<td><a href="https://www.patreon.com/user?u=13737140">Satsuki Yanagi</a></td>
|
|
||||||
<td><a href="https://www.patreon.com/takimura">takimura</a></td>
|
|
||||||
<td><a href="https://www.patreon.com/aqz">aqz tamaina</a></td>
|
|
||||||
</tr></table>
|
</tr></table>
|
||||||
<table><tr>
|
<table><tr>
|
||||||
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/19356899/496b4681d33b4520bd7688e0fd19c04d/2.jpeg?token-time=2145916800&token-hash=_sTj3dUBOhn9qwiJ7F19Qd-yWWfUqJC_0jG1h0agEqQ%3D" alt="sheeta.s " width="100"></td>
|
||||||
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5827393/59893c191dda408f9cabd0f20a3a5627/1.jpeg?token-time=2145916800&token-hash=i9N05vOph-eP1LTLb9_npATjYOpntL0ZsHNaZFSsPmE%3D" alt="motcha " width="100"></td>
|
||||||
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/20494440/540beaf2445f408ea6597bc61e077bb3/1.png?token-time=2145916800&token-hash=UJ0JQge64Bx9XmN_qYA1inMQhrWf4U91fqz7VAKJeSg%3D" alt="axtuki1 " width="100"></td>
|
||||||
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13737140/1adf7835017d479280d90fe8d30aade2/1.png?token-time=2145916800&token-hash=0pdle8h5pDZrww0BDOjdz6zO-HudeGTh36a3qi1biVU%3D" alt="Satsuki Yanagi" width="100"></td>
|
||||||
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/17880724/311738c8a48f4a6b9443c2445a75adde/1.jpg?token-time=2145916800&token-hash=nVAntpybQrznE0rg05keLrSE6ogPKJXB13rmrJng42c%3D" alt="takimura " width="100"></td>
|
||||||
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13100201/fc5be4fa90444f09a9c8a06f72385272/1.png?token-time=2145916800&token-hash=i8PjlgfOB2LPEdbtWyx8ZPsBKhGcNZqcw_FQmH71UGU%3D" alt="aqz tamaina" width="100"></td>
|
||||||
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/9109588/e3cffc48d20a4e43afe04123e696781d/3.png?token-time=2145916800&token-hash=T_VIUA0IFIbleZv4pIjiszZGnQonwn34sLCYFIhakBo%3D" alt="nafuchoco " width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/16900731/619ab87cc08448439222631ebb26802f/1.gif?token-time=2145916800&token-hash=o27K7M02s1z-LkDUEO5Oa7cu-GviRXeOXxryi4o_6VU%3D" alt="Atsuko Tominaga" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/16900731/619ab87cc08448439222631ebb26802f/1.gif?token-time=2145916800&token-hash=o27K7M02s1z-LkDUEO5Oa7cu-GviRXeOXxryi4o_6VU%3D" alt="Atsuko Tominaga" width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/4389829/9f709180ac714651a70f74a82f3ffdb9/3.png?token-time=2145916800&token-hash=FTm3WVom4dJ9NwWMU4OpCL_8Yc13WiwEbKrDPyTZTPs%3D" alt="natalie" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/4389829/9f709180ac714651a70f74a82f3ffdb9/3.png?token-time=2145916800&token-hash=FTm3WVom4dJ9NwWMU4OpCL_8Yc13WiwEbKrDPyTZTPs%3D" alt="natalie" width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5923936/2a743cbfbff946c2af3f09026047c0da/2.png?token-time=2145916800&token-hash=h6yphW1qnM0n_NOWaf8qtszMRLXEwIxfk5beu4RxdT0%3D" alt="noellabo" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/26144593/9514b10a5c1b42a3af58621aee213d1d/1.png?token-time=2145916800&token-hash=v1PYRsjzu4c_mndN4Hvi_dlispZJsuGRCQeNS82pUSM%3D" alt="EBISUME" width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/2384390/5681180e1efb46a8b28e0e8d4c8b9037/1.jpg?token-time=2145916800&token-hash=SJcMy-Q1BcS940-LFUVOMfR7-5SgrzsEQGhYb3yowFk%3D" alt="CG" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5923936/2a743cbfbff946c2af3f09026047c0da/2.png?token-time=2145916800&token-hash=h6yphW1qnM0n_NOWaf8qtszMRLXEwIxfk5beu4RxdT0%3D" alt="noellabo " width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/18072312/98e894d960314fa7bc236a72a39488fe/1.jpg?token-time=2145916800&token-hash=7bkMqTwHPRsJPGAq42PYdDXDZBVGLqdgr1ZmBxX8GFQ%3D" alt="Hekovic" width="100"></td>
|
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/24641572/b4fd175424814f15b0ca9178d2d2d2e4/1.png?token-time=2145916800&token-hash=e2fyqdbuJbpCckHcwux7rbuW6OPkKdERcus0u2wIEWU%3D" alt="uroco @99" width="100"></td>
|
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/4503830/ccf2cc867ea64de0b524bb2e24b9a1cb/1.jpeg?token-time=2145916800&token-hash=L55UhJ0rcuNAH3w_ryeeGN4hC6taoOixyAhraEi0bzw%3D" alt="dansup" width="100"></td>
|
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
|
<td><a href="https://www.patreon.com/user?u=19356899">sheeta.s </a></td>
|
||||||
|
<td><a href="https://www.patreon.com/user?u=5827393">motcha </a></td>
|
||||||
|
<td><a href="https://www.patreon.com/user?u=20494440">axtuki1 </a></td>
|
||||||
|
<td><a href="https://www.patreon.com/user?u=13737140">Satsuki Yanagi</a></td>
|
||||||
|
<td><a href="https://www.patreon.com/takimura">takimura </a></td>
|
||||||
|
<td><a href="https://www.patreon.com/aqz">aqz tamaina</a></td>
|
||||||
|
<td><a href="https://www.patreon.com/user?u=9109588">nafuchoco </a></td>
|
||||||
<td><a href="https://www.patreon.com/user?u=16900731">Atsuko Tominaga</a></td>
|
<td><a href="https://www.patreon.com/user?u=16900731">Atsuko Tominaga</a></td>
|
||||||
<td><a href="https://www.patreon.com/user?u=4389829">natalie</a></td>
|
<td><a href="https://www.patreon.com/user?u=4389829">natalie</a></td>
|
||||||
<td><a href="https://www.patreon.com/noellabo">noellabo</a></td>
|
<td><a href="https://www.patreon.com/user?u=26144593">EBISUME</a></td>
|
||||||
<td><a href="https://www.patreon.com/Corset">CG</a></td>
|
<td><a href="https://www.patreon.com/noellabo">noellabo </a></td>
|
||||||
<td><a href="https://www.patreon.com/hekovic">Hekovic</a></td>
|
|
||||||
<td><a href="https://www.patreon.com/user?u=24641572">uroco @99</a></td>
|
|
||||||
<td><a href="https://www.patreon.com/dansup">dansup</a></td>
|
|
||||||
</tr></table>
|
</tr></table>
|
||||||
<table><tr>
|
<table><tr>
|
||||||
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/2384390/5681180e1efb46a8b28e0e8d4c8b9037/1.jpg?token-time=2145916800&token-hash=SJcMy-Q1BcS940-LFUVOMfR7-5SgrzsEQGhYb3yowFk%3D" alt="CG " width="100"></td>
|
||||||
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/18072312/98e894d960314fa7bc236a72a39488fe/1.jpg?token-time=2145916800&token-hash=7bkMqTwHPRsJPGAq42PYdDXDZBVGLqdgr1ZmBxX8GFQ%3D" alt="Hekovic " width="100"></td>
|
||||||
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/24641572/b4fd175424814f15b0ca9178d2d2d2e4/1.png?token-time=2145916800&token-hash=e2fyqdbuJbpCckHcwux7rbuW6OPkKdERcus0u2wIEWU%3D" alt="uroco @99" width="100"></td>
|
||||||
|
<td><img src="https://c8.patreon.com/2/200/14661394" alt="Chandler " width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5731881/4b6038e6cda34c04b83a5fcce3806a93/1.png?token-time=2145916800&token-hash=hBayGfOmQH3kRMdNnDe4oCZD_9fsJWSt29xXR3KRMVk%3D" alt="Nokotaro Takeda" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5731881/4b6038e6cda34c04b83a5fcce3806a93/1.png?token-time=2145916800&token-hash=hBayGfOmQH3kRMdNnDe4oCZD_9fsJWSt29xXR3KRMVk%3D" alt="Nokotaro Takeda" width="100"></td>
|
||||||
<td><img src="https://c8.patreon.com/2/200/23932002" alt="nenohi" width="100"></td>
|
<td><img src="https://c8.patreon.com/2/200/23932002" alt="nenohi " width="100"></td>
|
||||||
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/9481273/7fa89168e72943859c3d3c96e424ed31/4.jpeg?token-time=2145916800&token-hash=5w1QV1qXe-NdWbdFmp1H7O_-QBsSiV0haumk3XTHIEg%3D" alt="Efertone " width="100"></td>
|
||||||
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12531784/93a45137841849329ba692da92ac7c60/1.jpeg?token-time=2145916800&token-hash=vGe7wXGqmA8Q7m-kDNb6fyGdwk-Dxk4F-ut8ZZu51RM%3D" alt="Takashi Shibuya" width="100"></td>
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
|
<td><a href="https://www.patreon.com/Corset">CG </a></td>
|
||||||
|
<td><a href="https://www.patreon.com/hekovic">Hekovic </a></td>
|
||||||
|
<td><a href="https://www.patreon.com/user?u=24641572">uroco @99</a></td>
|
||||||
|
<td><a href="https://www.patreon.com/user?u=14661394">Chandler </a></td>
|
||||||
<td><a href="https://www.patreon.com/takenoko">Nokotaro Takeda</a></td>
|
<td><a href="https://www.patreon.com/takenoko">Nokotaro Takeda</a></td>
|
||||||
<td><a href="https://www.patreon.com/user?u=23932002">nenohi</a></td>
|
<td><a href="https://www.patreon.com/user?u=23932002">nenohi </a></td>
|
||||||
|
<td><a href="https://www.patreon.com/efertone">Efertone </a></td>
|
||||||
|
<td><a href="https://www.patreon.com/user?u=12531784">Takashi Shibuya</a></td>
|
||||||
</tr></table>
|
</tr></table>
|
||||||
|
|
||||||
**Last updated:** Wed, 05 Feb 2020 00:42:12 UTC
|
**Last updated:** Sun, 26 Jul 2020 07:00:10 UTC
|
||||||
<!-- PATREON_END -->
|
<!-- PATREON_END -->
|
||||||
|
|
||||||
[backer-url]: #backers
|
[backer-url]: #backers
|
||||||
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 7.2 KiB |
27
assets/icon.svg
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg width="100%" height="100%" viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||||
|
<g transform="matrix(0.413372,0,0,0.469741,64.564,40.5821)">
|
||||||
|
<rect x="-156.189" y="-86.393" width="619.297" height="544.981" style="fill:rgb(27,30,31);"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(0.898356,0,0,0.898356,-130.722,-120.968)">
|
||||||
|
<g transform="matrix(0.5,0.866025,-0.866025,0.5,288,-166.277)">
|
||||||
|
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653Z" style="fill:white;"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1,0,0,1,-96,166.277)">
|
||||||
|
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653Z" style="fill:white;"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(0.5,-0.866025,0.866025,0.5,-96,498.831)">
|
||||||
|
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653Z" style="fill:white;"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(1,0,0,1,-95.9902,55.4086)">
|
||||||
|
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653ZM385.681,139.653C385.332,139.049 384.688,138.677 383.99,138.677C383.293,138.677 382.648,139.049 382.299,139.653C378.289,146.599 373.342,155.168 369.8,161.303C368.017,164.391 368.017,168.196 369.8,171.285C373.339,177.414 378.28,185.972 382.288,192.915C382.639,193.523 383.288,193.898 383.99,193.898C384.692,193.898 385.341,193.523 385.692,192.915C389.701,185.972 394.642,177.414 398.181,171.284C399.964,168.196 399.964,164.391 398.181,161.303L385.681,139.653Z" style="fill:rgb(150,208,74);"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(0.5,-0.866025,0.866025,0.5,-2.64322e-11,554.256)">
|
||||||
|
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653ZM385.681,139.653C385.332,139.049 384.688,138.677 383.99,138.677C383.293,138.677 382.648,139.049 382.299,139.653C378.289,146.599 373.342,155.168 369.8,161.303C368.017,164.391 368.017,168.196 369.8,171.285C373.339,177.414 378.28,185.972 382.288,192.915C382.639,193.523 383.288,193.898 383.99,193.898C384.692,193.898 385.341,193.523 385.692,192.915C389.701,185.972 394.642,177.414 398.181,171.284C399.964,168.196 399.964,164.391 398.181,161.303L385.681,139.653Z" style="fill:rgb(150,208,74);"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(0.5,0.866025,-0.866025,0.5,192,-110.851)">
|
||||||
|
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653ZM385.681,139.653C385.332,139.049 384.688,138.677 383.99,138.677C383.293,138.677 382.648,139.049 382.299,139.653C378.289,146.599 373.342,155.168 369.8,161.303C368.017,164.391 368.017,168.196 369.8,171.285C373.339,177.414 378.28,185.972 382.288,192.915C382.639,193.523 383.288,193.898 383.99,193.898C384.692,193.898 385.341,193.523 385.692,192.915C389.701,185.972 394.642,177.414 398.181,171.284C399.964,168.196 399.964,164.391 398.181,161.303L385.681,139.653Z" style="fill:rgb(150,208,74);"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 18 KiB |
@@ -1,3 +1,7 @@
|
|||||||
files:
|
files:
|
||||||
- source: /locales/ja-JP.yml
|
- source: /locales/ja-JP.yml
|
||||||
translation: /locales/%locale%.yml
|
translation: /locales/%locale%.yml
|
||||||
|
update_option: update_as_unapproved
|
||||||
|
- source: /src/docs/ja-JP/*.md
|
||||||
|
translation: /src/docs/%locale%/%original_file_name%
|
||||||
|
update_option: update_as_unapproved
|
||||||
|
@@ -13,6 +13,8 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- internal_network
|
- internal_network
|
||||||
- external_network
|
- external_network
|
||||||
|
volumes:
|
||||||
|
- ./files:/misskey/files
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
restart: always
|
restart: always
|
||||||
@@ -24,7 +26,7 @@ services:
|
|||||||
|
|
||||||
db:
|
db:
|
||||||
restart: always
|
restart: always
|
||||||
image: postgres:11.2-alpine
|
image: postgres:12.2-alpine
|
||||||
networks:
|
networks:
|
||||||
- internal_network
|
- internal_network
|
||||||
env_file:
|
env_file:
|
||||||
|
@@ -4,3 +4,30 @@ Docs for users are located in `src/docs`.
|
|||||||
|
|
||||||
これらのドキュメントはMisskeyの開発者またはMisskeyインスタンス運営者向けです。
|
これらのドキュメントはMisskeyの開発者またはMisskeyインスタンス運営者向けです。
|
||||||
利用者向けのドキュメントは`src/docs`にあります。
|
利用者向けのドキュメントは`src/docs`にあります。
|
||||||
|
|
||||||
|
这些文档是为 Misskey 的贡献者,或是 Misskey 实例的管理者准备的。
|
||||||
|
为用户准备的文档放置在 `src/docs` 文件夹中。
|
||||||
|
|
||||||
|
## 日本語版
|
||||||
|
|
||||||
|
- [Misskey構築の手引き](./setup.ja.md)
|
||||||
|
- [運営ガイド](./manage.ja.md)
|
||||||
|
- [Dockerを使ったMisskey構築方法](./docker.ja.md)
|
||||||
|
|
||||||
|
## English Version
|
||||||
|
|
||||||
|
- [Misskey Setup and Installation Guide](./setup.en.md)
|
||||||
|
- [Management guide](./manage.en.md)
|
||||||
|
- [Docker Guide](./docker.en.md)
|
||||||
|
|
||||||
|
## Française Version
|
||||||
|
|
||||||
|
- [Guide d'installation et de configuration de Misskey](./setup.fr.md)
|
||||||
|
- [Guide d'administration](./manage.fr.md)
|
||||||
|
- [Guide Docker](./docker.fr.md)
|
||||||
|
|
||||||
|
## 简体中文版
|
||||||
|
|
||||||
|
- [Misskey 设置和安装指南](./setup.zh.md)
|
||||||
|
- [运营指南](./manage.zh.md)
|
||||||
|
- [Docker 部署指南](./docker.zh.md)
|
||||||
|
@@ -3,7 +3,8 @@ Docker Guide
|
|||||||
|
|
||||||
This guide describes how to install and setup Misskey with Docker.
|
This guide describes how to install and setup Misskey with Docker.
|
||||||
|
|
||||||
[Japanese version also available - 日本語版もあります](./docker.ja.md)
|
- [Japanese version also available - 日本語版もあります](./docker.ja.md)
|
||||||
|
- [Simplified Chinese version also available - 简体中文版同样可用](./docker.zh.md)
|
||||||
|
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
|
|
||||||
|
@@ -3,8 +3,9 @@ Guide Docker
|
|||||||
|
|
||||||
Ce guide explique comment installer et configurer Misskey avec Docker.
|
Ce guide explique comment installer et configurer Misskey avec Docker.
|
||||||
|
|
||||||
[Version japonaise également disponible - Japanese version also available - 日本語版もあります](./docker.ja.md)
|
- [Version japonaise également disponible - Japanese version also available - 日本語版もあります](./docker.ja.md)
|
||||||
[Version anglaise également disponible - English version also available - 英語版もあります](./docker.en.md)
|
- [Version anglaise également disponible - English version also available - 英語版もあります](./docker.en.md)
|
||||||
|
- [Version Chinois simplifié également disponible - Simplified Chinese version also available - 简体中文版同样可用](./docker.zh.md)
|
||||||
|
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
|
|
||||||
|
@@ -3,7 +3,8 @@ Dockerを使ったMisskey構築方法
|
|||||||
|
|
||||||
このガイドはDockerを使ったMisskeyセットアップ方法について解説します。
|
このガイドはDockerを使ったMisskeyセットアップ方法について解説します。
|
||||||
|
|
||||||
[英語版もあります - English version also available](./docker.en.md)
|
- [英語版もあります - English version also available](./docker.en.md)
|
||||||
|
- [简体中文版同样可用 - Simplified Chinese version also available](./docker.zh.md)
|
||||||
|
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
|
|
||||||
|
96
docs/docker.zh.md
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
Docker 部署指南
|
||||||
|
================================================================
|
||||||
|
|
||||||
|
这份指南描述了如何使用Docker安装并设置 Misskey 。
|
||||||
|
|
||||||
|
- [日本語版もあります - Japanese version also available](./docker.ja.md)
|
||||||
|
- [英語版もあります - English version also available](./docker.en.md)
|
||||||
|
|
||||||
|
----------------------------------------------------------------
|
||||||
|
|
||||||
|
*1.* 下载 Misskey
|
||||||
|
----------------------------------------------------------------
|
||||||
|
1. 克隆 Misskey 项目的 master 分支。
|
||||||
|
|
||||||
|
`git clone -b master git://github.com/syuilo/misskey.git`
|
||||||
|
|
||||||
|
2. 进入 misskey 文件夹。
|
||||||
|
|
||||||
|
`cd misskey`
|
||||||
|
|
||||||
|
3. 检查 [最新发布版](https://github.com/syuilo/misskey/releases/latest) 标签。
|
||||||
|
|
||||||
|
`git checkout master`
|
||||||
|
|
||||||
|
*2.* 配置 Misskey
|
||||||
|
----------------------------------------------------------------
|
||||||
|
|
||||||
|
可以按照如下方式创建配置文件:
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
cd .config
|
||||||
|
cp example.yml default.yml
|
||||||
|
cp docker_example.env docker.env
|
||||||
|
```
|
||||||
|
|
||||||
|
### `default.yml`
|
||||||
|
|
||||||
|
这个文件的编辑工作基本与非 Docker 环境的版本相同。
|
||||||
|
但请注意, Postgresql、 Redis 和 Elasticsearch 的 **主机名(hostname)** 配置不应该是 `localhost` ,它们被设置在 `docker-compose.yml` 文件中。
|
||||||
|
以下是默认的主机名:
|
||||||
|
|
||||||
|
| 服务 | 主机名 |
|
||||||
|
|---------------|----------|
|
||||||
|
| Postgresql | `db` |
|
||||||
|
| Redis | `redis` |
|
||||||
|
| Elasticsearch | `es` |
|
||||||
|
|
||||||
|
### `docker.env`
|
||||||
|
|
||||||
|
在这个文件中配置 Postgresql 。
|
||||||
|
至少需要如下这些配置:
|
||||||
|
|
||||||
|
| 名称 | 描述 |
|
||||||
|
|---------------------|---------------|
|
||||||
|
| `POSTGRES_PASSWORD` | 数据库密码 |
|
||||||
|
| `POSTGRES_USER` | 数据库用户名 |
|
||||||
|
| `POSTGRES_DB` | 数据库名 |
|
||||||
|
|
||||||
|
*3.* 配置 Docker
|
||||||
|
----------------------------------------------------------------
|
||||||
|
编辑 `docker-compose.yml` 文件。
|
||||||
|
|
||||||
|
*4.* 构建 Misskey
|
||||||
|
----------------------------------------------------------------
|
||||||
|
使用如下的方式构建Misskey:
|
||||||
|
|
||||||
|
`docker-compose build`
|
||||||
|
|
||||||
|
*5.* 初始化数据库
|
||||||
|
----------------------------------------------------------------
|
||||||
|
``` bash
|
||||||
|
docker-compose run --rm web yarn run init
|
||||||
|
```
|
||||||
|
|
||||||
|
*6.* 完成了!
|
||||||
|
----------------------------------------------------------------
|
||||||
|
干得不错!现在您拥有了一个可以运行Misskey的环境啦。
|
||||||
|
|
||||||
|
### 正常启动
|
||||||
|
只需要 `docker-compose up -d` 即可。玩得愉快!
|
||||||
|
|
||||||
|
### 如何将您的 Misskey 服务器升级至最新版本
|
||||||
|
1. `git stash`
|
||||||
|
2. `git checkout master`
|
||||||
|
3. `git pull`
|
||||||
|
4. `git stash pop`
|
||||||
|
5. `docker-compose build`
|
||||||
|
6. 检查 [更新日志](../CHANGELOG.md) 以获取升级迁移信息。
|
||||||
|
7. `docker-compose stop && docker-compose up -d`
|
||||||
|
|
||||||
|
### 如何执行 [控制台指令](manage.zh.md):
|
||||||
|
`docker-compose run --rm web node built/tools/mark-admin @example`
|
||||||
|
|
||||||
|
----------------------------------------------------------------
|
||||||
|
|
||||||
|
如果您有任何疑问或是困惑,欢迎与我们联系!
|
@@ -39,8 +39,8 @@ server {
|
|||||||
#ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
|
#ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
|
||||||
|
|
||||||
# SSL protocol settings
|
# SSL protocol settings
|
||||||
ssl_protocols TLSv1 TLSv1.2;
|
ssl_protocols TLSv1.2;
|
||||||
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES128-SHA;
|
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES128-SHA;
|
||||||
ssl_prefer_server_ciphers on;
|
ssl_prefer_server_ciphers on;
|
||||||
|
|
||||||
# Change to your upload limit
|
# Change to your upload limit
|
||||||
|
14
docs/manage.zh.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# 运营指南
|
||||||
|
|
||||||
|
## 检查任务队列的状态
|
||||||
|
即将到来……
|
||||||
|
|
||||||
|
## 设置用户为管理员
|
||||||
|
``` shell
|
||||||
|
node built/tools/mark-admin (用户名)
|
||||||
|
```
|
||||||
|
|
||||||
|
样例
|
||||||
|
``` shell
|
||||||
|
node built/tools/mark-admin @syuilo
|
||||||
|
```
|
@@ -4,7 +4,8 @@ Misskey Setup and Installation Guide
|
|||||||
We thank you for your interest in setting up your Misskey server!
|
We thank you for your interest in setting up your Misskey server!
|
||||||
This guide describes how to install and setup Misskey.
|
This guide describes how to install and setup Misskey.
|
||||||
|
|
||||||
[Japanese version also available - 日本語版もあります](./setup.ja.md)
|
- [Japanese version also available - 日本語版もあります](./setup.ja.md)
|
||||||
|
- [Simplified Chinese version also available - 简体中文版同样可用](./setup.zh.md)
|
||||||
|
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
|
|
||||||
@@ -22,8 +23,8 @@ adduser --disabled-password --disabled-login misskey
|
|||||||
Please install and setup these softwares:
|
Please install and setup these softwares:
|
||||||
|
|
||||||
#### Dependencies :package:
|
#### Dependencies :package:
|
||||||
* **[Node.js](https://nodejs.org/en/)** >= 11.10.1
|
* **[Node.js](https://nodejs.org/en/)** (12.x, 14.x)
|
||||||
* **[PostgreSQL](https://www.postgresql.org/)** >= 10
|
* **[PostgreSQL](https://www.postgresql.org/)** (>= 10)
|
||||||
* **[Redis](https://redis.io/)**
|
* **[Redis](https://redis.io/)**
|
||||||
|
|
||||||
##### Optional
|
##### Optional
|
||||||
|
@@ -4,7 +4,9 @@ Guide d'installation et de configuration de Misskey
|
|||||||
Nous vous remerçions de l'intrêt que vous manifestez pour l'installation de votre propre instance Misskey !
|
Nous vous remerçions de l'intrêt que vous manifestez pour l'installation de votre propre instance Misskey !
|
||||||
Ce guide décrit les étapes à suivre afin d'installer et de configurer une instance Misskey.
|
Ce guide décrit les étapes à suivre afin d'installer et de configurer une instance Misskey.
|
||||||
|
|
||||||
[La version en japonnais est également disponible sur - 日本語版もあります](./setup.ja.md)
|
- [La version en japonnais est également disponible sur - 日本語版もあります](./setup.ja.md)
|
||||||
|
- [Version anglaise également disponible - English version also available - 英語版もあります](./setup.en.md)
|
||||||
|
- [Version Chinois simplifié également disponible - Simplified Chinese version also available - 简体中文版同样可用](./setup.zh.md)
|
||||||
|
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
|
|
||||||
@@ -22,8 +24,8 @@ adduser --disabled-password --disabled-login misskey
|
|||||||
Installez les paquets suivants :
|
Installez les paquets suivants :
|
||||||
|
|
||||||
#### Dépendences :package:
|
#### Dépendences :package:
|
||||||
* **[Node.js](https://nodejs.org/en/)** >= 11.10.1
|
* **[Node.js](https://nodejs.org/en/)** (12.x, 14.x)
|
||||||
* **[PostgreSQL](https://www.postgresql.org/)** >= 10
|
* **[PostgreSQL](https://www.postgresql.org/)** (>= 10)
|
||||||
* **[Redis](https://redis.io/)**
|
* **[Redis](https://redis.io/)**
|
||||||
|
|
||||||
##### Optionnels
|
##### Optionnels
|
||||||
|
@@ -4,7 +4,8 @@ Misskey構築の手引き
|
|||||||
Misskeyサーバーの構築にご関心をお寄せいただきありがとうございます!
|
Misskeyサーバーの構築にご関心をお寄せいただきありがとうございます!
|
||||||
このガイドではMisskeyのインストール・セットアップ方法について解説します。
|
このガイドではMisskeyのインストール・セットアップ方法について解説します。
|
||||||
|
|
||||||
[英語版もあります - English version also available](./setup.en.md)
|
- [英語版もあります - English version also available](./setup.en.md)
|
||||||
|
- [简体中文版同样可用 - Simplified Chinese version also available](./setup.zh.md)
|
||||||
|
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
|
|
||||||
@@ -22,7 +23,7 @@ adduser --disabled-password --disabled-login misskey
|
|||||||
これらのソフトウェアをインストール・設定してください:
|
これらのソフトウェアをインストール・設定してください:
|
||||||
|
|
||||||
#### 依存関係 :package:
|
#### 依存関係 :package:
|
||||||
* **[Node.js](https://nodejs.org/en/)** (11.10.1以上)
|
* **[Node.js](https://nodejs.org/en/)** (12.x, 14.x)
|
||||||
* **[PostgreSQL](https://www.postgresql.org/)** (10以上)
|
* **[PostgreSQL](https://www.postgresql.org/)** (10以上)
|
||||||
* **[Redis](https://redis.io/)**
|
* **[Redis](https://redis.io/)**
|
||||||
|
|
||||||
|
146
docs/setup.zh.md
Normal file
@@ -0,0 +1,146 @@
|
|||||||
|
Misskey 设置和安装指南
|
||||||
|
================================================================
|
||||||
|
|
||||||
|
非常感谢您对构建 Misskey 服务器的关注!
|
||||||
|
这份指南描述了 Misskey 的安装与设置流程。
|
||||||
|
|
||||||
|
- [日本語版もあります - Japanese version also available](./setup.ja.md)
|
||||||
|
- [英語版もあります - English version also available](./setup.en.md)
|
||||||
|
|
||||||
|
----------------------------------------------------------------
|
||||||
|
|
||||||
|
*1.* 创建 Misskey 用户
|
||||||
|
----------------------------------------------------------------
|
||||||
|
直接使用 root 用户来运行 misskey 也许并不是一个好主意,因此我们有必要创建一个专用的用户。
|
||||||
|
以 Debian 为例:
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
adduser --disabled-password --disabled-login misskey
|
||||||
|
```
|
||||||
|
|
||||||
|
*2.* 安装依赖
|
||||||
|
----------------------------------------------------------------
|
||||||
|
请安装并设置如下这些软件:
|
||||||
|
|
||||||
|
#### Dependencies :package:
|
||||||
|
* **[Node.js](https://nodejs.org/en/)** (12.x, 14.x)
|
||||||
|
* **[PostgreSQL](https://www.postgresql.org/)** (>= 10)
|
||||||
|
* **[Redis](https://redis.io/)**
|
||||||
|
|
||||||
|
##### Optional
|
||||||
|
* [Yarn](https://yarnpkg.com/) *可选,但出于安全因素考虑还是推荐安装。如果您没有安装, 您需要使用 `npx yarn` 来代替 `yarn`.*
|
||||||
|
* [Elasticsearch](https://www.elastic.co/) - 为了启用搜索功能,这个搜索引擎是有必要的。
|
||||||
|
* [FFmpeg](https://www.ffmpeg.org/)
|
||||||
|
|
||||||
|
*3.* 安装 Misskey
|
||||||
|
----------------------------------------------------------------
|
||||||
|
1. 连接至 misskey 用户.
|
||||||
|
|
||||||
|
`su - misskey`
|
||||||
|
|
||||||
|
2. 克隆 Misskey 项目的 master 分支。
|
||||||
|
|
||||||
|
`git clone -b master git://github.com/syuilo/misskey.git`
|
||||||
|
|
||||||
|
3. 进入 misskey 文件夹。
|
||||||
|
|
||||||
|
`cd misskey`
|
||||||
|
|
||||||
|
4. 检查 [最新发布版](https://github.com/syuilo/misskey/releases/latest) 标签。
|
||||||
|
|
||||||
|
`git checkout master`
|
||||||
|
|
||||||
|
5. 安装 Misskey 的依赖。
|
||||||
|
|
||||||
|
`yarn`
|
||||||
|
|
||||||
|
*4.* 配置 Misskey
|
||||||
|
----------------------------------------------------------------
|
||||||
|
1. 复制 `.config/example.yml` 并重命名为 `default.yml`。
|
||||||
|
|
||||||
|
`cp .config/example.yml .config/default.yml`
|
||||||
|
|
||||||
|
2. 编辑 `default.yml`
|
||||||
|
|
||||||
|
*5.* 构建 Misskey
|
||||||
|
----------------------------------------------------------------
|
||||||
|
|
||||||
|
使用如下的指令构建 Misskey :
|
||||||
|
|
||||||
|
`NODE_ENV=production yarn build`
|
||||||
|
|
||||||
|
如果您使用的是 Debian , 您需要安装 `build-essential`, `python` 环境包。
|
||||||
|
|
||||||
|
如果您仍然遇到有关某些模块的错误,您可以使用 node-gyp:
|
||||||
|
|
||||||
|
1. `npx node-gyp configure`
|
||||||
|
2. `npx node-gyp build`
|
||||||
|
3. `NODE_ENV=production yarn build`
|
||||||
|
|
||||||
|
*6.* 初始化数据库
|
||||||
|
----------------------------------------------------------------
|
||||||
|
``` bash
|
||||||
|
yarn run init
|
||||||
|
```
|
||||||
|
|
||||||
|
*7.* 完成了!
|
||||||
|
----------------------------------------------------------------
|
||||||
|
干得不错!现在您拥有了一个可以运行Misskey的环境啦。
|
||||||
|
|
||||||
|
### 正常启动
|
||||||
|
只需要 `NODE_ENV=production npm start` 即可。玩得愉快!
|
||||||
|
|
||||||
|
### 使用 systemd 来启动
|
||||||
|
|
||||||
|
1. 在此处创建一个 systemd 服务:
|
||||||
|
|
||||||
|
`/etc/systemd/system/misskey.service`
|
||||||
|
|
||||||
|
2. 编辑它,粘贴如下内容并保存:
|
||||||
|
|
||||||
|
```
|
||||||
|
[Unit]
|
||||||
|
Description=Misskey daemon
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=misskey
|
||||||
|
ExecStart=/usr/bin/npm start
|
||||||
|
WorkingDirectory=/home/misskey/misskey
|
||||||
|
Environment="NODE_ENV=production"
|
||||||
|
TimeoutSec=60
|
||||||
|
StandardOutput=syslog
|
||||||
|
StandardError=syslog
|
||||||
|
SyslogIdentifier=misskey
|
||||||
|
Restart=always
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
```
|
||||||
|
|
||||||
|
3. 重启 systemd 并设置 misskey 服务自动启动:
|
||||||
|
|
||||||
|
`systemctl daemon-reload ; systemctl enable misskey`
|
||||||
|
|
||||||
|
4. 启动 misskey 服务:
|
||||||
|
|
||||||
|
`systemctl start misskey`
|
||||||
|
|
||||||
|
您可以使用 `systemctl status misskey` 来检查服务是否正在运行。
|
||||||
|
|
||||||
|
### 如何将您的 Misskey 服务器升级至最新版本
|
||||||
|
1. `git checkout master`
|
||||||
|
2. `git pull`
|
||||||
|
3. `yarn install`
|
||||||
|
4. `NODE_ENV=production yarn build`
|
||||||
|
5. `yarn migrate`
|
||||||
|
6. 重启您的 Misskey 进程来应用改变。
|
||||||
|
7. 尽情享受吧!
|
||||||
|
|
||||||
|
如果您在更新时遇到任何问题,请尝试以下操作:
|
||||||
|
1. `yarn clean` 或是 `yarn cleanall`
|
||||||
|
2. 重试升级 (请不要忘记 `yarn install` )
|
||||||
|
|
||||||
|
----------------------------------------------------------------
|
||||||
|
|
||||||
|
如果您有任何疑问或是困惑,欢迎与我们联系!
|
63
gulpfile.ts
@@ -5,14 +5,13 @@
|
|||||||
import * as fs from 'fs';
|
import * as fs from 'fs';
|
||||||
import * as gulp from 'gulp';
|
import * as gulp from 'gulp';
|
||||||
import * as ts from 'gulp-typescript';
|
import * as ts from 'gulp-typescript';
|
||||||
import * as mocha from 'gulp-mocha';
|
|
||||||
import * as rimraf from 'rimraf';
|
import * as rimraf from 'rimraf';
|
||||||
import * as rename from 'gulp-rename';
|
import * as rename from 'gulp-rename';
|
||||||
const cleanCSS = require('gulp-clean-css');
|
import * as replace from 'gulp-replace';
|
||||||
const sass = require('gulp-dart-sass');
|
const terser = require('gulp-terser');
|
||||||
const fiber = require('fibers');
|
const cssnano = require('gulp-cssnano');
|
||||||
|
|
||||||
const locales = require('./locales');
|
const locales: { [x: string]: any } = require('./locales');
|
||||||
const meta = require('./package.json');
|
const meta = require('./package.json');
|
||||||
|
|
||||||
gulp.task('build:ts', () => {
|
gulp.task('build:ts', () => {
|
||||||
@@ -29,17 +28,39 @@ gulp.task('build:copy:views', () =>
|
|||||||
gulp.src('./src/server/web/views/**/*').pipe(gulp.dest('./built/server/web/views'))
|
gulp.src('./src/server/web/views/**/*').pipe(gulp.dest('./built/server/web/views'))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
gulp.task('build:copy:fonts', () =>
|
||||||
|
gulp.src('./node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/client/assets/fonts/'))
|
||||||
|
);
|
||||||
|
|
||||||
gulp.task('build:copy:locales', cb => {
|
gulp.task('build:copy:locales', cb => {
|
||||||
fs.mkdirSync('./built/client/assets/locales', { recursive: true });
|
fs.mkdirSync('./built/client/assets/locales', { recursive: true });
|
||||||
|
|
||||||
|
const v = { '_version_': meta.version };
|
||||||
|
|
||||||
for (const [lang, locale] of Object.entries(locales)) {
|
for (const [lang, locale] of Object.entries(locales)) {
|
||||||
fs.writeFileSync(`./built/client/assets/locales/${lang}.${meta.version}.json`, JSON.stringify(locale), 'utf-8');
|
fs.writeFileSync(`./built/client/assets/locales/${lang}.${meta.version}.json`, JSON.stringify({ ...locale, ...v }), 'utf-8');
|
||||||
}
|
}
|
||||||
|
|
||||||
cb();
|
cb();
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('build:copy', gulp.parallel('build:copy:views', 'build:copy:locales', () =>
|
gulp.task('build:client:script', () => {
|
||||||
|
return gulp.src(['./src/server/web/boot.js'])
|
||||||
|
.pipe(replace('VERSION', JSON.stringify(meta.version)))
|
||||||
|
.pipe(replace('LANGS', JSON.stringify(Object.keys(locales))))
|
||||||
|
.pipe(terser({
|
||||||
|
toplevel: true
|
||||||
|
}))
|
||||||
|
.pipe(gulp.dest('./built/server/web/'));
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('build:client:style', () => {
|
||||||
|
return gulp.src(['./src/server/web/style.css'])
|
||||||
|
.pipe(cssnano())
|
||||||
|
.pipe(gulp.dest('./built/server/web/'));
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('build:copy', gulp.parallel('build:copy:locales', 'build:copy:views', 'build:client:script', 'build:client:style', 'build:copy:fonts', () =>
|
||||||
gulp.src([
|
gulp.src([
|
||||||
'./src/emojilist.json',
|
'./src/emojilist.json',
|
||||||
'./src/server/web/views/**/*',
|
'./src/server/web/views/**/*',
|
||||||
@@ -56,13 +77,6 @@ gulp.task('cleanall', gulp.parallel('clean', cb =>
|
|||||||
rimraf('./node_modules', cb)
|
rimraf('./node_modules', cb)
|
||||||
));
|
));
|
||||||
|
|
||||||
gulp.task('build:client:styles', () =>
|
|
||||||
gulp.src('./src/client/style.scss')
|
|
||||||
.pipe(sass({ fiber }))
|
|
||||||
.pipe(cleanCSS())
|
|
||||||
.pipe(gulp.dest('./built/client/assets/'))
|
|
||||||
);
|
|
||||||
|
|
||||||
gulp.task('copy:client', () =>
|
gulp.task('copy:client', () =>
|
||||||
gulp.src([
|
gulp.src([
|
||||||
'./assets/**/*',
|
'./assets/**/*',
|
||||||
@@ -74,9 +88,16 @@ gulp.task('copy:client', () =>
|
|||||||
.pipe(gulp.dest('./built/client/assets/'))
|
.pipe(gulp.dest('./built/client/assets/'))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
gulp.task('copy:docs', () =>
|
||||||
|
gulp.src([
|
||||||
|
'./src/docs/**/*',
|
||||||
|
])
|
||||||
|
.pipe(gulp.dest('./built/client/assets/docs/'))
|
||||||
|
);
|
||||||
|
|
||||||
gulp.task('build:client', gulp.parallel(
|
gulp.task('build:client', gulp.parallel(
|
||||||
'build:client:styles',
|
'copy:client',
|
||||||
'copy:client'
|
'copy:docs'
|
||||||
));
|
));
|
||||||
|
|
||||||
gulp.task('build', gulp.parallel(
|
gulp.task('build', gulp.parallel(
|
||||||
@@ -85,14 +106,4 @@ gulp.task('build', gulp.parallel(
|
|||||||
'build:client',
|
'build:client',
|
||||||
));
|
));
|
||||||
|
|
||||||
gulp.task('mocha', () =>
|
|
||||||
gulp.src('./test/**/*.ts')
|
|
||||||
.pipe(mocha({
|
|
||||||
exit: true,
|
|
||||||
require: 'ts-node/register'
|
|
||||||
} as any))
|
|
||||||
);
|
|
||||||
|
|
||||||
gulp.task('test', gulp.task('mocha'));
|
|
||||||
|
|
||||||
gulp.task('default', gulp.task('build'));
|
gulp.task('default', gulp.task('build'));
|
||||||
|
560
locales/ar-SA.yml
Normal file
@@ -0,0 +1,560 @@
|
|||||||
|
---
|
||||||
|
_lang_: "العربية"
|
||||||
|
introMisskey: "اهلا بك! ميسكي هو منصة تدوين مصغر لا مركزية ومفتوحة المصدر.\nيمكنك مشاركة \"ملاحظات\" عن ما يجري حولك، وإخبار الجميع عن نفسك 📡\nتسمح لك \"الانفعالات\" بتعبير عن شعورك حول ملاحظات الآخرين 👍\nاكتشف عالمًا جديدًا 🚀"
|
||||||
|
monthAndDay: "{day}/{month}"
|
||||||
|
search: "البحث"
|
||||||
|
notifications: "الإشعارات"
|
||||||
|
username: "اسم المستخدم"
|
||||||
|
password: "الكلمة السرية"
|
||||||
|
fetchingAsApObject: "جارٍ جلبه مِن الفديفرس…"
|
||||||
|
ok: " حسناً"
|
||||||
|
gotIt: "فهِمت"
|
||||||
|
cancel: " إلغاء"
|
||||||
|
enterUsername: "أدخِل إسم مسخدم"
|
||||||
|
noNotes: "لم يتم العثور على أية ملاحظات"
|
||||||
|
noNotifications: "ليس هناك أية اشعارات"
|
||||||
|
instance: "مثيل الخادم"
|
||||||
|
settings: "الاعدادات"
|
||||||
|
basicSettings: "الاعدادات الأساسية"
|
||||||
|
otherSettings: "إعدادات أخرى"
|
||||||
|
openInWindow: "افتح في نافذة جديدة"
|
||||||
|
profile: "الملف التعريفي"
|
||||||
|
timeline: "الخيط الزمني"
|
||||||
|
noAccountDescription: "لم يكتب هذا المستخدم سيرته بعد."
|
||||||
|
login: "لِج"
|
||||||
|
loggingIn: "جارٍ تسجيل الدخول"
|
||||||
|
logout: "الخروج"
|
||||||
|
signup: "أنشئ حسابًا"
|
||||||
|
uploading: "عملية الإرسال جارية"
|
||||||
|
save: "حفظ"
|
||||||
|
users: "المستخدمون"
|
||||||
|
addUser: "اضافة مستخدم"
|
||||||
|
favorite: "إضافة إلى المفضلة"
|
||||||
|
favorites: "المفضلات"
|
||||||
|
unfavorite: "إزالة من المفضلة"
|
||||||
|
pin: "دبّسها على الصفحة الشخصية"
|
||||||
|
unpin: "ألغ تثبيتها من ملفك الشخصي"
|
||||||
|
copyContent: "انسخ المحتوى"
|
||||||
|
copyLink: "انسخ الرابط"
|
||||||
|
delete: "حذف"
|
||||||
|
deleteAndEdit: "إزالة وإعادة الصياغة"
|
||||||
|
deleteAndEditConfirm: "أمتأكد من حذف الملاحظة؟ ستفقد كل مشاركاتها، والتفاعلات، والردود عليها."
|
||||||
|
addToList: "أضفه إلى قائمة"
|
||||||
|
sendMessage: "أرسل رسالة"
|
||||||
|
copyUsername: "انسخ اسم المستخدم"
|
||||||
|
searchUser: "ابحث عن مستخدمين"
|
||||||
|
reply: "رد"
|
||||||
|
loadMore: "عرض المزيد"
|
||||||
|
showMore: "عرض المزيد"
|
||||||
|
youGotNewFollower: "يتابعك"
|
||||||
|
receiveFollowRequest: "تلقيت طلب متابعة"
|
||||||
|
followRequestAccepted: "قُبل طلب المتابعة"
|
||||||
|
mention: "أشر الى"
|
||||||
|
mentions: "الإشارات"
|
||||||
|
directNotes: "الملاحظات المباشرة"
|
||||||
|
importAndExport: "إستورد / صدر"
|
||||||
|
import: "استيراد"
|
||||||
|
export: "تصدير"
|
||||||
|
files: "الملفات"
|
||||||
|
download: "تنزيل"
|
||||||
|
driveFileDeleteConfirm: "أمتأكد من حذف ملف {name}؟ كل الملاحظات المُرفق بها هذا الملف ستحذف."
|
||||||
|
unfollowConfirm: "أمتأكد من إلغاء متابعة {name}؟"
|
||||||
|
lists: "القوائم"
|
||||||
|
noLists: "ليس لديك أية قائمة"
|
||||||
|
note: "ملاحظة"
|
||||||
|
notes: "الملاحظات"
|
||||||
|
following: "المتابَعون"
|
||||||
|
followers: "المتابِعين"
|
||||||
|
followsYou: "يتابعك"
|
||||||
|
createList: "إنشاء قائمة"
|
||||||
|
manageLists: "إدارة القوائم"
|
||||||
|
error: "خطأ"
|
||||||
|
somethingHappened: "حدث خطأ"
|
||||||
|
retry: "حاول مجددًا"
|
||||||
|
pageLoadError: "فشل تحميل الصفحة"
|
||||||
|
enterListName: "اسم القائمة"
|
||||||
|
privacy: "الخصوصية"
|
||||||
|
makeFollowManuallyApprove: "القبول يدويا طلبات الإشتراك"
|
||||||
|
defaultNoteVisibility: "مدى الرؤية الافتراضي"
|
||||||
|
follow: "تابِع"
|
||||||
|
followRequest: "طلب اشتراك"
|
||||||
|
followRequests: "طلبات الإشتراك"
|
||||||
|
unfollow: "إلغاء الاشتراك"
|
||||||
|
followRequestPending: "طلبات الإشتراك المعلّقة"
|
||||||
|
enterEmoji: "أدخل إيموجي"
|
||||||
|
unrenote: "إلغاء مشاركة الملاحظة"
|
||||||
|
quote: "اقتبس"
|
||||||
|
pinnedNote: "ملاحظة مدبسة"
|
||||||
|
you: "أنت"
|
||||||
|
clickToShow: "اضغط للعرض"
|
||||||
|
sensitive: "محتوى حساس"
|
||||||
|
add: "إضافة"
|
||||||
|
reaction: "تفاعل"
|
||||||
|
rememberNoteVisibility: "تذكر إعدادت مدى رؤية الملاحظات"
|
||||||
|
attachCancel: "أزل المرفق"
|
||||||
|
enterFileName: "ادخل اسم الملف"
|
||||||
|
mute: "اكتم"
|
||||||
|
unmute: "إلغاء الكتم"
|
||||||
|
block: "احجب"
|
||||||
|
unblock: "إلغاء الحجب"
|
||||||
|
suspend: "علِق"
|
||||||
|
unsuspend: "ألغ التعليق"
|
||||||
|
blockConfirm: "أمتأكد من حجب هذا الحساب؟"
|
||||||
|
unblockConfirm: "أمتأكد من إلغاء حجب هذا الحساب؟"
|
||||||
|
selectList: "اختر قائمة"
|
||||||
|
editWidgetsExit: "تم"
|
||||||
|
customEmojis: "إيموجي مخصص"
|
||||||
|
addEmoji: "إضافة إيموجي"
|
||||||
|
cacheRemoteFiles: "خزن مؤقتا الملفات البعيدة"
|
||||||
|
autoAcceptFollowed: "اقبل طلبات المتابعة تلقائيا من الحسابات المتابَعة"
|
||||||
|
addAcount: "إضافة حساب"
|
||||||
|
loginFailed: "فشل الولوج"
|
||||||
|
showOnRemote: "رؤيته على مثيل الخادم البُعدي"
|
||||||
|
general: "الرئيسية"
|
||||||
|
wallpaper: "خلفية الشاشة"
|
||||||
|
setWallpaper: "استخدم خلفية الشاشة"
|
||||||
|
removeWallpaper: "إزالة خلفية الشاشة"
|
||||||
|
searchWith: "البحث: {q}"
|
||||||
|
youHaveNoLists: "لا تمتلك أية قائمة"
|
||||||
|
followConfirm: "أتريد متابعة {name}؟"
|
||||||
|
proxyAccount: "حساب وكيل البروكسي"
|
||||||
|
host: "المضيف"
|
||||||
|
selectUser: "حدّد مستخدمًا"
|
||||||
|
recipient: "المرسَل إليه·ها"
|
||||||
|
annotation: "التعليقات"
|
||||||
|
federation: "الفديرالية"
|
||||||
|
instances: "مثيل الخادم"
|
||||||
|
latestRequestSentAt: "آخر طلب أرسِل في"
|
||||||
|
latestRequestReceivedAt: "آخر طلب تُلقي في"
|
||||||
|
storageUsage: "مساحة التخزين المستخدمة"
|
||||||
|
charts: "المنحنيات البيانية"
|
||||||
|
perHour: "في الساعة"
|
||||||
|
perDay: "في اليوم"
|
||||||
|
stopActivityDelivery: "وقف إرسال النشاط"
|
||||||
|
blockThisInstance: "احجب مثيل الخادم هذا"
|
||||||
|
operations: "الإجراءات"
|
||||||
|
software: "البرنامج"
|
||||||
|
version: "الإصدار"
|
||||||
|
metadata: "البيانات الوصفية"
|
||||||
|
withNFiles: "{n} ملف (ملفات)"
|
||||||
|
monitor: "شاشة التحكم"
|
||||||
|
jobQueue: "قائمة الانتظار"
|
||||||
|
cpuAndMemory: "وحدة المعالجة المركزية والذاكرة"
|
||||||
|
network: "الشبكة"
|
||||||
|
disk: "قرص التخزين"
|
||||||
|
instanceInfo: "معلومات مثيل الخادم"
|
||||||
|
statistics: "الإحصائيات"
|
||||||
|
clearQueue: "تفريغ قائمة الإنتظار"
|
||||||
|
muteAndBlock: "تم كتمها / تم حجبها"
|
||||||
|
mutedUsers: "الحسابات التي تم كتمها"
|
||||||
|
blockedUsers: "الحسابات التي تم حظرها"
|
||||||
|
noUsers: "ليس هناك مستخدمون"
|
||||||
|
editProfile: "تعديل الملف التعريفي"
|
||||||
|
noteDeleteConfirm: "هل تريد حذف هذه الملاحظة؟"
|
||||||
|
pinLimitExceeded: "لا يمكنك تدبيس الملاحظات بعد الآن."
|
||||||
|
intro: "لقد انتهت عملية تنصيب Misskey. الرجاء إنشاء حساب إداري."
|
||||||
|
done: "تمّ"
|
||||||
|
processing: "المعالجة جارية"
|
||||||
|
preview: "معاينة"
|
||||||
|
default: "افتراضي"
|
||||||
|
noCustomEmojis: "ليس هناك إيموجيات"
|
||||||
|
federating: "الفديرالية جارية"
|
||||||
|
blocked: "محجوب"
|
||||||
|
suspended: "مُعلّق"
|
||||||
|
all: "الكل"
|
||||||
|
notResponding: "لا يستجيب"
|
||||||
|
changePassword: "تغيير الكلمة السرية"
|
||||||
|
security: "الأمان"
|
||||||
|
more: "المزيد!"
|
||||||
|
featured: "المتداولة"
|
||||||
|
usernameOrUserId: "اسم المستخدم أو معرّفه"
|
||||||
|
noSuchUser: "لم يُعثَر على المستخدم"
|
||||||
|
lookup: "البحث"
|
||||||
|
announcements: "الإعلانات"
|
||||||
|
imageUrl: "عنوان URL للصورة"
|
||||||
|
remove: "حذف"
|
||||||
|
removed: "تم حذفه بنجاح"
|
||||||
|
removeAreYouSure: "متأكد من أنك تريد حذف {x}؟"
|
||||||
|
deleteAreYouSure: "متأكد من أنك تريد حذف {x}؟"
|
||||||
|
saved: "تم حفظه"
|
||||||
|
messaging: "الدردشة"
|
||||||
|
upload: "تحميل"
|
||||||
|
fromDrive: "من المخزن"
|
||||||
|
fromUrl: "من عنوان URL"
|
||||||
|
uploadFromUrl: "التحميل عبر URL"
|
||||||
|
explore: "استكشاف"
|
||||||
|
games: "ألعاب Misskey"
|
||||||
|
messageRead: "مقروءة"
|
||||||
|
startMessaging: "ابدأ الدردشة"
|
||||||
|
tos: "شروط الخدمة"
|
||||||
|
start: "البداية"
|
||||||
|
home: "الرئيسي"
|
||||||
|
activity: "النشاط"
|
||||||
|
images: "الصور"
|
||||||
|
birthday: "تاريخ الميلاد"
|
||||||
|
yearsOld: "{age} سنة"
|
||||||
|
registeredDate: "انظم في"
|
||||||
|
location: "المكان"
|
||||||
|
theme: "المظهر"
|
||||||
|
themeForLightMode: "الحلة في الوضع الفاتح"
|
||||||
|
themeForDarkMode: "الحلة في الوضع الداكن"
|
||||||
|
light: "فاتح"
|
||||||
|
dark: "داكن"
|
||||||
|
lightThemes: "الحلة الفاتحة"
|
||||||
|
darkThemes: "الحلة الداكنة"
|
||||||
|
drive: "قرص التخرين"
|
||||||
|
fileName: "اسم الملف"
|
||||||
|
selectFile: "اختر ملفًا"
|
||||||
|
selectFiles: "اختر ملفات"
|
||||||
|
selectFolder: "اختر مجلدًا"
|
||||||
|
selectFolders: "اختر مجلدات"
|
||||||
|
renameFile: "إعادة تسمية الملف"
|
||||||
|
folderName: "اسم المجلد"
|
||||||
|
createFolder: "أنشئ مجلدًا"
|
||||||
|
renameFolder: "إعادة تسمية المجلد"
|
||||||
|
deleteFolder: "احذف هذا المجلد"
|
||||||
|
addFile: "إضافة ملف"
|
||||||
|
emptyDrive: "قرص التخزين فارغ"
|
||||||
|
emptyFolder: "هذا المجلد فارغ"
|
||||||
|
unableToDelete: "لا يمكن حذفه"
|
||||||
|
inputNewFileName: "ادخل الإسم الجديد للملف"
|
||||||
|
inputNewFolderName: "ادخل الإسم الجديد للمجلد"
|
||||||
|
copyUrl: "انسخ عنوان URL"
|
||||||
|
rename: "إعادة التسمية"
|
||||||
|
avatar: "الصورة الرمزية"
|
||||||
|
banner: "الصورة الرأسية"
|
||||||
|
nsfw: "محتوى حساس"
|
||||||
|
disconnectedFromServer: "قُطِع الإتصال بالخادم"
|
||||||
|
reload: "انعش"
|
||||||
|
doNothing: "تجاهل"
|
||||||
|
watch: "راقب"
|
||||||
|
unwatch: "إلغاء المراقبة"
|
||||||
|
accept: "السماح"
|
||||||
|
reject: "رفض"
|
||||||
|
normal: "عادي"
|
||||||
|
instanceName: "اسم مثيل الخادم"
|
||||||
|
instanceDescription: "وصف مثيل الخادم"
|
||||||
|
maintainerName: "المدير"
|
||||||
|
maintainerEmail: "عنوان بريد المدير الإلكتروني"
|
||||||
|
tosUrl: "عنوان URL لشروط الخدمة"
|
||||||
|
thisYear: "هذا العام"
|
||||||
|
thisMonth: "هذا الشهر"
|
||||||
|
today: "اليوم"
|
||||||
|
dayX: "{day}"
|
||||||
|
monthX: "{month}"
|
||||||
|
yearX: "{year}"
|
||||||
|
pages: "الصفحات"
|
||||||
|
connectSerice: "أوصل"
|
||||||
|
disconnectSerice: "قطع الاتصال"
|
||||||
|
enableLocalTimeline: "تفعيل الخيط المحلي"
|
||||||
|
enableGlobalTimeline: "تفعيل الخيط الزمني الشامل"
|
||||||
|
registration: "إنشاء حساب"
|
||||||
|
enableRegistration: "تفعيل إنشاء الحسابات الجديدة"
|
||||||
|
invite: "دعوة"
|
||||||
|
basicInfo: "المعلومات الأساسية "
|
||||||
|
pinnedNotes: "ملاحظة مدبسة"
|
||||||
|
hcaptchaSiteKey: "مفتاح الموقع"
|
||||||
|
hcaptchaSecretKey: "المفتاح السري"
|
||||||
|
recaptcha: "reCAPTCHA"
|
||||||
|
enableRecaptcha: "تمكين reCAPTCHA"
|
||||||
|
recaptchaSiteKey: "مفتاح الموقع"
|
||||||
|
recaptchaSecretKey: "المفتاح السري"
|
||||||
|
antennas: "الهوائيات"
|
||||||
|
manageAntennas: "إدارة الهوائيات"
|
||||||
|
name: "الإسم"
|
||||||
|
antennaSource: "مصدر الهوائي"
|
||||||
|
antennaKeywords: "الكلمات المفتاحية للإستقبال"
|
||||||
|
withReplies: "بالردود"
|
||||||
|
notesAndReplies: "الملاحظات والردود"
|
||||||
|
withFiles: "بالمرفقات"
|
||||||
|
silence: "اكتم"
|
||||||
|
unsilence: "إلغاء الكتم"
|
||||||
|
popularUsers: "المستخدمون الشائعون"
|
||||||
|
exploreFediverse: "استكشف الفديفرس"
|
||||||
|
popularTags: "الوسوم الرائجة"
|
||||||
|
userList: "القوائم"
|
||||||
|
about: "عن"
|
||||||
|
aboutMisskey: "عن Misskey"
|
||||||
|
administrator: "المدير"
|
||||||
|
token: "الرمز المميز"
|
||||||
|
twoStepAuthentication: "الإستيثاق بعاملَيْن"
|
||||||
|
moderator: "مشرِف"
|
||||||
|
nUsersMentioned: "{n} مستخدمين تمت الإشارة إليهم"
|
||||||
|
securityKey: "مفتاح الأمان"
|
||||||
|
securityKeyName: "اسم المفتاح"
|
||||||
|
lastUsed: "آخر استخدام"
|
||||||
|
unregister: "إلغاء التسجيل"
|
||||||
|
passwordLessLogin: "لِج مِن دون كلمة سرية"
|
||||||
|
resetPassword: "أعد تعيين كلمتك السرية"
|
||||||
|
newPasswordIs: "كلمتك السرية الجديدة هي {password}"
|
||||||
|
share: "شارِك"
|
||||||
|
notFound: "غير موجود"
|
||||||
|
help: "المساعدة"
|
||||||
|
inputMessageHere: "اكتب رسالتك هنا"
|
||||||
|
close: "اغلق"
|
||||||
|
group: "الفريق"
|
||||||
|
groups: "الفِرَق"
|
||||||
|
createGroup: "انشئ فريقًا"
|
||||||
|
invites: "دعوة"
|
||||||
|
groupName: "اسم الفريق"
|
||||||
|
members: "الأعضاء"
|
||||||
|
transfer: "نقل"
|
||||||
|
messagingWithUser: "الدردشة مع مستخدم آخر"
|
||||||
|
messagingWithGroup: "دردشة جماعية"
|
||||||
|
title: "العنوان"
|
||||||
|
text: "النص"
|
||||||
|
enable: "تشغيل"
|
||||||
|
next: "التالية"
|
||||||
|
retype: "أعد الكتابة"
|
||||||
|
noteOf: "ملاحظات {user}"
|
||||||
|
inviteToGroup: "دعوة إلى فريق"
|
||||||
|
noMessagesYet: "ليس هناك رسائل بعد"
|
||||||
|
newMessageExists: "لقد تلقيت رسالة جديدة"
|
||||||
|
invitations: "دعوة"
|
||||||
|
invitationCode: "رمز الدعوة"
|
||||||
|
checking: "التحقق جارٍ"
|
||||||
|
available: "متوفر"
|
||||||
|
unavailable: "غير متوفر"
|
||||||
|
tooShort: "قصير جدًا"
|
||||||
|
tooLong: "طويل جدًا"
|
||||||
|
weakPassword: "الكلمة السرية ضعيفة"
|
||||||
|
normalPassword: "الكلمة السرية جيدة"
|
||||||
|
strongPassword: "الكلمة السرية قوية"
|
||||||
|
passwordMatched: "التطابق صحيح!"
|
||||||
|
passwordNotMatched: "غير متطابقتان"
|
||||||
|
signinWith: "الولوج عبر {x}"
|
||||||
|
or: "أو"
|
||||||
|
uiLanguage: "لغة واجهة المستخدم"
|
||||||
|
aboutX: "عن {x}"
|
||||||
|
useOsNativeEmojis: "استخدم الإيموجيات الخاصة بنظام التشغيل"
|
||||||
|
youHaveNoGroups: "لا تمتلك أية فِرَق"
|
||||||
|
noHistory: "السجل فارغ"
|
||||||
|
doing: "انتظر لحظة"
|
||||||
|
category: "الفئات"
|
||||||
|
tags: "الوسوم"
|
||||||
|
docSource: "مصدر هذا المستند"
|
||||||
|
createAccount: "أنشئ حسابًا"
|
||||||
|
existingAcount: "الحسابات الموجودة"
|
||||||
|
regenerate: "أعِد التوليد"
|
||||||
|
fontSize: "حجم الخط"
|
||||||
|
dashboard: "لوحة التحكم"
|
||||||
|
local: "المحلي"
|
||||||
|
remote: "بُعدي"
|
||||||
|
total: "المجموع"
|
||||||
|
weekOverWeekChanges: "أسبوعيا"
|
||||||
|
dayOverDayChanges: "يوميا"
|
||||||
|
appearance: "المظهر"
|
||||||
|
accountSettings: "إعدادات الحساب"
|
||||||
|
promotion: "ترقية"
|
||||||
|
promote: "روِّج"
|
||||||
|
numberOfDays: "عدد الأيام"
|
||||||
|
hideThisNote: "إخفاء هذه الملاحظة"
|
||||||
|
deleteAll: "حذف الكل"
|
||||||
|
sounds: "الرنات"
|
||||||
|
listen: "استمع"
|
||||||
|
none: "لا شيء"
|
||||||
|
volume: "مستوى الصوت"
|
||||||
|
details: "التفاصيل"
|
||||||
|
chooseEmoji: "اختر إيموجي"
|
||||||
|
recentUsed: "المستخدمة مؤخرا"
|
||||||
|
install: "التثبيت"
|
||||||
|
uninstall: "إلغاء التثبيت"
|
||||||
|
installedApps: "التطبيقات المُخوّلة"
|
||||||
|
lastUsedDate: "آخر استخدام"
|
||||||
|
state: "الحالة"
|
||||||
|
sort: "ترتيب حسب"
|
||||||
|
output: "الخارجة"
|
||||||
|
updateRemoteUser: "تحديث المعلومات عن المستخدم البعيد"
|
||||||
|
sidebar: "الشريط الجانبي"
|
||||||
|
addItem: "إضافة عنصر"
|
||||||
|
rooms: "الغرفة"
|
||||||
|
relays: "المُرَحلات"
|
||||||
|
addRelay: "إضافة مُرحّل"
|
||||||
|
addedRelays: "المرحلات التي تم إضافتها"
|
||||||
|
deletedNote: "ملاحظة محذوفة"
|
||||||
|
invisibleNote: "ملاحظة مخفية"
|
||||||
|
poll: "استطلاع رأي"
|
||||||
|
themeEditor: "مصمم القوالب"
|
||||||
|
plugins: "الإضافات"
|
||||||
|
pluginInstallWarn: "يرجى تنصيب إضافات ذات مصدر موثوق منه فقط."
|
||||||
|
smtpHost: "المضيف"
|
||||||
|
smtpUser: "اسم المستخدم"
|
||||||
|
smtpPass: "الكلمة السرية"
|
||||||
|
display: "المظهر"
|
||||||
|
public: "للعامة"
|
||||||
|
_mfm:
|
||||||
|
mention: "أشر الى"
|
||||||
|
quote: "اقتبس"
|
||||||
|
emoji: "إيموجي مخصص"
|
||||||
|
search: "البحث"
|
||||||
|
_reversi:
|
||||||
|
total: "المجموع"
|
||||||
|
_channel:
|
||||||
|
featured: "المتداوَلة"
|
||||||
|
_sidebar:
|
||||||
|
full: "كامل"
|
||||||
|
icon: "الصورة الرمزية"
|
||||||
|
hide: "إخفاء"
|
||||||
|
_theme:
|
||||||
|
explore: "استكشف قوالب المظهر"
|
||||||
|
install: "تنصيب قالب"
|
||||||
|
manage: "إدارة القوالب"
|
||||||
|
code: "شيفرة القالب"
|
||||||
|
installed: "تم تنصيب {name}"
|
||||||
|
make: "إنشاء قالب"
|
||||||
|
alpha: "الشفافية"
|
||||||
|
keys:
|
||||||
|
mention: "أشر الى"
|
||||||
|
messageBg: "خلفية الدردشة"
|
||||||
|
_sfx:
|
||||||
|
note: "الملاحظات"
|
||||||
|
noteMy: "ملاحظتي"
|
||||||
|
notification: "الإشعارات"
|
||||||
|
chat: "الدردشة"
|
||||||
|
_ago:
|
||||||
|
unknown: "مجهول"
|
||||||
|
future: "المستقبَل"
|
||||||
|
justNow: "اللحظة"
|
||||||
|
secondsAgo: "منذ {n} ثوانٍ"
|
||||||
|
minutesAgo: "منذ {n} دقائق"
|
||||||
|
hoursAgo: "منذ {n} ساعة"
|
||||||
|
daysAgo: "منذ {n} أيام"
|
||||||
|
weeksAgo: "منذ {n} أسابيع"
|
||||||
|
monthsAgo: "منذ {n} أشهر"
|
||||||
|
yearsAgo: "منذ {n} سنوات"
|
||||||
|
_time:
|
||||||
|
second: "ثا"
|
||||||
|
minute: "د"
|
||||||
|
hour: "سا"
|
||||||
|
day: "ي"
|
||||||
|
_tutorial:
|
||||||
|
title: "كيف تستخدم Misskey"
|
||||||
|
step1_1: "مرحبًا!"
|
||||||
|
_2fa:
|
||||||
|
registerKey: "تسجيل مفتاح أمان جديد"
|
||||||
|
_permissions:
|
||||||
|
"write:account": "تعديل معلومات حسابك"
|
||||||
|
"read:notifications": "اظهر الإشعارات"
|
||||||
|
_weekday:
|
||||||
|
sunday: "الأحد"
|
||||||
|
monday: "الإثنين"
|
||||||
|
tuesday: "الثلاثاء"
|
||||||
|
wednesday: "الأربعاء"
|
||||||
|
thursday: "الخميس"
|
||||||
|
friday: "الجمعة"
|
||||||
|
saturday: "السبت"
|
||||||
|
_widgets:
|
||||||
|
memo: "ملاحظة لاصقة"
|
||||||
|
notifications: "الإشعارات"
|
||||||
|
timeline: "الخيط الزمني"
|
||||||
|
calendar: "التقويم"
|
||||||
|
trends: "المتداوَلة"
|
||||||
|
clock: "الساعة"
|
||||||
|
rss: "تدفق RSS"
|
||||||
|
activity: "النشاط"
|
||||||
|
photos: "الصور"
|
||||||
|
federation: "الفديرالية"
|
||||||
|
_cw:
|
||||||
|
hide: "إخفاء"
|
||||||
|
show: "عرض المزيد"
|
||||||
|
chars: "{count} أحرف"
|
||||||
|
files: "{count} ملفات"
|
||||||
|
_poll:
|
||||||
|
noOnlyOneChoice: "تحتاج إلى خيارَين على الأقل"
|
||||||
|
choiceN: "الخيار {n}"
|
||||||
|
noMore: "لا يمكنك إضافة خيارات أخرى"
|
||||||
|
canMultipleVote: "السماح بالإجابات المتعددة"
|
||||||
|
expiration: "ينتهي استطلاع الرأي في"
|
||||||
|
infinite: "أبدًا"
|
||||||
|
at: "تاريخ الإنتهاء"
|
||||||
|
after: "ينتهي بعد…"
|
||||||
|
deadlineDate: "تاريخ الانتهاء"
|
||||||
|
deadlineTime: "سا"
|
||||||
|
duration: "المدة"
|
||||||
|
votesCount: "{n} أصوات"
|
||||||
|
totalVotes: "المجموع {n} أصوات"
|
||||||
|
vote: "قم بالتصويت"
|
||||||
|
showResult: "اعرض النتائج"
|
||||||
|
voted: "تم التصويت"
|
||||||
|
closed: "انتهى"
|
||||||
|
remainingDays: "{d} أيام و {h} ساعات متبقية"
|
||||||
|
remainingHours: "{h} ساعات و {m} دقائق متبقية"
|
||||||
|
remainingMinutes: "{m} دقائق و {s} ثوانٍ متبقية"
|
||||||
|
remainingSeconds: "{s} ثوانٍ متبقية"
|
||||||
|
_visibility:
|
||||||
|
public: "للعامة"
|
||||||
|
home: "الرئيسي"
|
||||||
|
followers: "المتابِعين"
|
||||||
|
specified: "مباشرة"
|
||||||
|
localOnly: "المحلي فقط"
|
||||||
|
_postForm:
|
||||||
|
replyPlaceholder: "رد على هذه الملاحظة…"
|
||||||
|
quotePlaceholder: "اقتبس هذه الملاحظة…"
|
||||||
|
_profile:
|
||||||
|
name: "الإسم"
|
||||||
|
username: "اسم المستخدم"
|
||||||
|
youCanIncludeHashtags: "يمكنك أيضًا إضافة وسوم إلى نبذتك التعريفية."
|
||||||
|
_exportOrImport:
|
||||||
|
allNotes: "كل الملاحظات"
|
||||||
|
followingList: "المتابَعون"
|
||||||
|
muteList: "اكتم"
|
||||||
|
blockingList: "احجب"
|
||||||
|
userLists: "القوائم"
|
||||||
|
_charts:
|
||||||
|
usersTotal: "مجموع عدد المستخدمين والمستخدمات"
|
||||||
|
activeUsers: "المستخدمون النشطون"
|
||||||
|
_timelines:
|
||||||
|
home: "الرئيسي"
|
||||||
|
local: "المحلي"
|
||||||
|
social: "الاجتماعي"
|
||||||
|
global: "الشامل"
|
||||||
|
_rooms:
|
||||||
|
_roomType:
|
||||||
|
default: "افتراضي"
|
||||||
|
_furnitures:
|
||||||
|
monitor: "شاشة التحكم"
|
||||||
|
banknote: "أوراق نقدية"
|
||||||
|
_pages:
|
||||||
|
blocks:
|
||||||
|
image: "الصور"
|
||||||
|
script:
|
||||||
|
categories:
|
||||||
|
list: "القوائم"
|
||||||
|
blocks:
|
||||||
|
_strReplace:
|
||||||
|
arg1: "نص"
|
||||||
|
arg3: "استُبدِل بـ"
|
||||||
|
_join:
|
||||||
|
arg1: "القوائم"
|
||||||
|
arg2: "فاصل"
|
||||||
|
add: "إضافة"
|
||||||
|
_randomPick:
|
||||||
|
arg1: "القوائم"
|
||||||
|
_dailyRandomPick:
|
||||||
|
arg1: "القوائم"
|
||||||
|
_seedRandomPick:
|
||||||
|
arg2: "القوائم"
|
||||||
|
_pick:
|
||||||
|
arg1: "القوائم"
|
||||||
|
_listLen:
|
||||||
|
arg1: "القوائم"
|
||||||
|
types:
|
||||||
|
array: "القوائم"
|
||||||
|
_notification:
|
||||||
|
youGotPoll: "شارك {name} في استطلاع الرأي"
|
||||||
|
youGotMessagingMessageFromUser: "لقد تلقيت رسالة مِن {name}"
|
||||||
|
youGotMessagingMessageFromGroup: "لقد أرسِلَت رسالة إلى الفريق {name}"
|
||||||
|
youWereFollowed: "يتابعك"
|
||||||
|
_types:
|
||||||
|
follow: "المتابَعون"
|
||||||
|
mention: "أشر الى"
|
||||||
|
quote: "اقتبس"
|
||||||
|
reaction: "تفاعل"
|
||||||
|
_deck:
|
||||||
|
_columns:
|
||||||
|
notifications: "الإشعارات"
|
||||||
|
tl: "الخيط الزمني"
|
||||||
|
antenna: "الهوائيات"
|
||||||
|
list: "القوائم"
|
||||||
|
mentions: "الإشارات"
|
||||||
|
direct: "مباشرة"
|
@@ -1 +1,2 @@
|
|||||||
---
|
---
|
||||||
|
_lang_: "Čeština"
|
||||||
|
@@ -1 +1,2 @@
|
|||||||
---
|
---
|
||||||
|
_lang_: "Dansk"
|
||||||
|
1511
locales/de-DE.yml
1246
locales/fr-FR.yml
1
locales/ht-HT.yml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
---
|
207
locales/id-ID.yml
Normal file
@@ -0,0 +1,207 @@
|
|||||||
|
---
|
||||||
|
_lang_: "Bahasa Jepang"
|
||||||
|
monthAndDay: "{day} {month}"
|
||||||
|
search: "Pencarian"
|
||||||
|
notifications: "Notifikasi"
|
||||||
|
username: "Nama Pengguna"
|
||||||
|
password: "Kata sandi"
|
||||||
|
ok: "OK"
|
||||||
|
gotIt: "Saya mengerti"
|
||||||
|
cancel: "Batalkan"
|
||||||
|
enterUsername: "Masukkan nama pengguna"
|
||||||
|
renotedBy: "direnote oleh {user}"
|
||||||
|
noNotes: "Tidak ada notes"
|
||||||
|
noNotifications: "Tidak ada notifikasi"
|
||||||
|
settings: "Pengaturan"
|
||||||
|
basicSettings: "Pengaturan umum"
|
||||||
|
otherSettings: "Pengaturan lainnya"
|
||||||
|
openInWindow: "Buka di jendela"
|
||||||
|
profile: "Profil"
|
||||||
|
timeline: "Linimasa"
|
||||||
|
noAccountDescription: "Pengguna ini belum menulis bio"
|
||||||
|
login: "Masuk"
|
||||||
|
loggingIn: "Sedang masuk"
|
||||||
|
logout: "Keluar"
|
||||||
|
signup: "Daftar"
|
||||||
|
uploading: "Sedang mengunggah"
|
||||||
|
save: "Simpan"
|
||||||
|
users: "Pengguna"
|
||||||
|
addUser: "Tambah pengguna"
|
||||||
|
favorite: "Favorit"
|
||||||
|
favorites: "Favorit"
|
||||||
|
unfavorite: "Hapus favorit"
|
||||||
|
favorited: "Ditambahkan ke favorit"
|
||||||
|
alreadyFavorited: "Telah ditambahkan ke favorit"
|
||||||
|
cantFavorite: "Tidak dapat menambahkan ke favorit"
|
||||||
|
pin: "Sematkan ke profil"
|
||||||
|
unpin: "Lepas sematan dari profil"
|
||||||
|
copyContent: "Salin konten"
|
||||||
|
copyLink: "Salin tautan"
|
||||||
|
delete: "Hapus"
|
||||||
|
deleteAndEdit: "Hapus dan sunting"
|
||||||
|
addToList: "Tambahkan ke daftar"
|
||||||
|
sendMessage: "Kirim pesan"
|
||||||
|
copyUsername: "Salin nama pengguna"
|
||||||
|
searchUser: "Cari pengguna"
|
||||||
|
reply: "Balas"
|
||||||
|
cantReRenote: "Renote tidak dapat direnote"
|
||||||
|
quote: "Kutip"
|
||||||
|
pinnedNote: "Note yang disematkan"
|
||||||
|
you: "Anda"
|
||||||
|
clickToShow: "Klik untuk melihat"
|
||||||
|
sensitive: "Konten sensitif"
|
||||||
|
add: "Tambahkan"
|
||||||
|
reaction: "Reaksi"
|
||||||
|
reactionSettingDescription: "Masukkan reaksi favorit yang ingin anda sematkan pada bilah reaksi"
|
||||||
|
reactionSettingDescription2: "Geser untuk memindah urutkan, klik untuk menghapus, tekan \"+\" untuk menambahkan"
|
||||||
|
rememberNoteVisibility: "Ingat pengaturan visibilitas note"
|
||||||
|
attachCancel: "Hapus lampiran"
|
||||||
|
markAsSensitive: "Tandai sebagai konten sensitif"
|
||||||
|
unmarkAsSensitive: "Hapus tanda konten sensitif"
|
||||||
|
enterFileName: "Masukkan nama berkas"
|
||||||
|
mute: "Bisukan"
|
||||||
|
unmute: "Hapus bisukan"
|
||||||
|
block: "Blokir"
|
||||||
|
unblock: "Buka blokir"
|
||||||
|
suspend: "Bekukan"
|
||||||
|
unsuspend: "Buka pembekuan"
|
||||||
|
blockConfirm: "Apakah anda yakin ingin memblokir akun ini?"
|
||||||
|
unblockConfirm: "Apakah anda yakin ingin membuka blokir akun ini?"
|
||||||
|
suspendConfirm: "Apakah anda yakin ingin membekukan akun ini?"
|
||||||
|
unsuspendConfirm: "Apakah anda yakin ingin membuka pembekuan akun ini?"
|
||||||
|
selectList: "Pilih daftar"
|
||||||
|
selectAntenna: "Pilih Antena"
|
||||||
|
selectWidget: "Pilih gawit"
|
||||||
|
editWidgets: "Sunting gawit"
|
||||||
|
editWidgetsExit: "Selesai"
|
||||||
|
customEmojis: "Emoji kustom"
|
||||||
|
emoji: "Emoji"
|
||||||
|
emojiName: "Nama emoji"
|
||||||
|
emojiUrl: "URL Emoji"
|
||||||
|
addEmoji: "Tambahkan emoji"
|
||||||
|
settingGuide: "Pengaturan rekomendasi"
|
||||||
|
cacheRemoteFiles: "Tembolokkan berkas remote"
|
||||||
|
flagAsBot: "Atur akun ini sebagai Bot"
|
||||||
|
flagAsCat: "Atur akun ini sebagai kucing"
|
||||||
|
autoAcceptFollowed: "Setujui otomatis permintaan mengikuti dari pengguna yang anda ikuti"
|
||||||
|
addAcount: "Tambahkan akun"
|
||||||
|
loginFailed: "Gagal untuk masuk"
|
||||||
|
showOnRemote: "Lihat profil asli"
|
||||||
|
general: "Umum"
|
||||||
|
wallpaper: "Wallpaper"
|
||||||
|
setWallpaper: "Atur wallpaper"
|
||||||
|
removeWallpaper: "Hapus wallpaper"
|
||||||
|
intro: "Instalasi Misskey telah selesai! Mohon untuk membuat pengguna admin."
|
||||||
|
done: "Selesai"
|
||||||
|
processing: "Memproses"
|
||||||
|
preview: "Pratinjau"
|
||||||
|
default: "Bawaan"
|
||||||
|
noCustomEmojis: "Tidak ada emoji kustom"
|
||||||
|
federating: "memfederasi"
|
||||||
|
blocked: "Diblokir"
|
||||||
|
all: "Semua"
|
||||||
|
subscribing: "Berlangganan"
|
||||||
|
publishing: "Sedang menyiarkan langsung"
|
||||||
|
notResponding: "Tidak ada respon"
|
||||||
|
instanceFollowing: "Mengikuti instance"
|
||||||
|
instanceFollowers: "Pengikut instance"
|
||||||
|
instanceUsers: "Pengguna pada instance ini"
|
||||||
|
changePassword: "Ubah kata sandi"
|
||||||
|
security: "Keamanan"
|
||||||
|
retypedNotMatch: "Input tidak sama"
|
||||||
|
currentPassword: "Kata sandi saat ini"
|
||||||
|
newPassword: "Kata sandi baru"
|
||||||
|
newPasswordRetype: "Ulangi kata sandi baru"
|
||||||
|
attachFile: "Lampirkan berkas"
|
||||||
|
more: "Lagi !"
|
||||||
|
featured: "Sorotan"
|
||||||
|
usernameOrUserId: "Nama pengguna atau User ID"
|
||||||
|
noSuchUser: "Pengguna tidak ditemukan"
|
||||||
|
lookup: "Mencari"
|
||||||
|
announcements: "Pengumuman"
|
||||||
|
imageUrl: "URL Gambar"
|
||||||
|
remove: "Hapus"
|
||||||
|
removed: "Telah dihapus"
|
||||||
|
removeAreYouSure: "Apakah anda yakin ingin menghapus \"{x}\"?"
|
||||||
|
deleteAreYouSure: "Apakah anda yakin ingin menghapus \"{x}\"?"
|
||||||
|
saved: "Telah disimpan"
|
||||||
|
messaging: "Pesan"
|
||||||
|
upload: "Unggah"
|
||||||
|
fromDrive: "Dari Drive"
|
||||||
|
fromUrl: "Dari URL"
|
||||||
|
uploadFromUrl: "Unggah dari URL"
|
||||||
|
uploadFromUrlDescription: "URL berkas yang ingin anda unggah"
|
||||||
|
uploadFromUrlRequested: "Pengunggahan telah diminta"
|
||||||
|
uploadFromUrlMayTakeTime: "Membutuhkan beberapa waktu hingga pengunggahan selesai"
|
||||||
|
explore: "Jelajahi"
|
||||||
|
games: "Permainan Misskey"
|
||||||
|
messageRead: "Telah dibaca"
|
||||||
|
noMoreHistory: "Tidak ada sejarah lagi"
|
||||||
|
startMessaging: "Mulai mengirim pesan"
|
||||||
|
nUsersRead: "Dibaca oleh {n}"
|
||||||
|
nsfw: "Konten sensitif"
|
||||||
|
watch: "Tonton"
|
||||||
|
unwatch: "Batal tonton"
|
||||||
|
accept: "Terima"
|
||||||
|
reject: "Tolak"
|
||||||
|
normal: "Normal"
|
||||||
|
instanceName: "Nama instance"
|
||||||
|
instanceDescription: "Tentang instance"
|
||||||
|
maintainerName: "Pengelola"
|
||||||
|
maintainerEmail: "Surel pengelola"
|
||||||
|
tosUrl: "URL Syarat dan Ketentuan"
|
||||||
|
thisYear: "Tahun ini"
|
||||||
|
thisMonth: "Bulan ini"
|
||||||
|
today: "Hari ini"
|
||||||
|
dayX: "{day}"
|
||||||
|
monthX: "{month}"
|
||||||
|
yearX: "{year}"
|
||||||
|
pages: "Halaman"
|
||||||
|
integration: "Integrasi"
|
||||||
|
connectSerice: "Sambungkan"
|
||||||
|
disconnectSerice: "Putuskan"
|
||||||
|
enableLocalTimeline: "Nyalakan linimasa lokal"
|
||||||
|
enableGlobalTimeline: "Nyalakan linimasa global"
|
||||||
|
registration: "Pendaftaran"
|
||||||
|
enableRegistration: "Nyalakan pendaftaran pengguna baru"
|
||||||
|
invite: "Undang"
|
||||||
|
proxyRemoteFiles: "Proksi berkas remote"
|
||||||
|
driveCapacityPerLocalAccount: "Kapasitas drive per pengguna lokal"
|
||||||
|
driveCapacityPerRemoteAccount: "Kapasitas drive per pengguna remote"
|
||||||
|
inMb: "dalam Megabytes"
|
||||||
|
iconUrl: "URL Gambar ikon"
|
||||||
|
bannerUrl: "URL Banner"
|
||||||
|
basicInfo: "Informasi Umum"
|
||||||
|
pinnedUsers: "Pengguna yang disematkan"
|
||||||
|
pinnedPages: "Halaman yang disematkan"
|
||||||
|
pinnedNotes: "Note yang disematkan"
|
||||||
|
invites: "Undang"
|
||||||
|
invitations: "Undang"
|
||||||
|
smtpUser: "Nama Pengguna"
|
||||||
|
smtpPass: "Kata sandi"
|
||||||
|
_mfm:
|
||||||
|
quote: "Kutip"
|
||||||
|
emoji: "Emoji kustom"
|
||||||
|
search: "Pencarian"
|
||||||
|
_sfx:
|
||||||
|
notification: "Notifikasi"
|
||||||
|
chat: "Pesan"
|
||||||
|
_widgets:
|
||||||
|
notifications: "Notifikasi"
|
||||||
|
timeline: "Linimasa"
|
||||||
|
_profile:
|
||||||
|
username: "Nama Pengguna"
|
||||||
|
_exportOrImport:
|
||||||
|
muteList: "Bisukan"
|
||||||
|
blockingList: "Blokir"
|
||||||
|
_rooms:
|
||||||
|
_roomType:
|
||||||
|
default: "Bawaan"
|
||||||
|
_notification:
|
||||||
|
_types:
|
||||||
|
quote: "Kutip"
|
||||||
|
reaction: "Reaksi"
|
||||||
|
_deck:
|
||||||
|
_columns:
|
||||||
|
notifications: "Notifikasi"
|
||||||
|
tl: "Linimasa"
|
@@ -14,19 +14,27 @@ const merge = (...args) => args.reduce((a, c) => ({
|
|||||||
}), {});
|
}), {});
|
||||||
|
|
||||||
const languages = [
|
const languages = [
|
||||||
//'cs-CZ',
|
'ar-SA',
|
||||||
//'da-DK',
|
'cs-CZ',
|
||||||
//'de-DE',
|
'da-DK',
|
||||||
|
'de-DE',
|
||||||
'en-US',
|
'en-US',
|
||||||
'es-ES',
|
'es-ES',
|
||||||
//'fr-FR',
|
'fr-FR',
|
||||||
'ja-JP',
|
'ja-JP',
|
||||||
//'ja-KS',
|
'ja-KS',
|
||||||
|
'kab-KAB',
|
||||||
|
'kn-IN',
|
||||||
'ko-KR',
|
'ko-KR',
|
||||||
//'nl-NL',
|
'nl-NL',
|
||||||
//'pl-PL',
|
'no-NO',
|
||||||
//'zh-CN',
|
'pl-PL',
|
||||||
//'zh-TW',
|
'pt-PT',
|
||||||
|
'ru-RU',
|
||||||
|
'ug-CN',
|
||||||
|
'uk-UA',
|
||||||
|
'zh-CN',
|
||||||
|
'zh-TW',
|
||||||
];
|
];
|
||||||
|
|
||||||
const primaries = {
|
const primaries = {
|
||||||
|
1
locales/it-IT.yml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
---
|
@@ -1 +1,563 @@
|
|||||||
---
|
---
|
||||||
|
_lang_: "日本語 (関西弁)"
|
||||||
|
introMisskey: "ようこそ!Misskeyってのは、オープンソースの分散型マイクロブログサービスやねん。\n「ノート」を作成し、いま起こっとることを共有したり、あんたんこととか皆に伝えていこう📡\n「リアクション」機能で、皆のノートに素はよ反応を追加することもできるんやで✌\n新しい世界を探検してみらん?🚀"
|
||||||
|
monthAndDay: "{month}月 {day}日"
|
||||||
|
search: "探す"
|
||||||
|
notifications: "通知"
|
||||||
|
username: "ユーザー名"
|
||||||
|
password: "パスワード"
|
||||||
|
fetchingAsApObject: "今ちと連合に照会しとるで"
|
||||||
|
ok: "おっけー"
|
||||||
|
gotIt: "ほい"
|
||||||
|
cancel: "やめとくわ"
|
||||||
|
enterUsername: "ユーザー名を入れてや"
|
||||||
|
renotedBy: "{user}がRenote"
|
||||||
|
noNotes: "ノートはあらへん"
|
||||||
|
noNotifications: "通知はあらへん"
|
||||||
|
instance: "インスタンス"
|
||||||
|
settings: "設定"
|
||||||
|
basicSettings: "基本設定"
|
||||||
|
otherSettings: "その他の設定"
|
||||||
|
openInWindow: "ウィンドウで開いてや"
|
||||||
|
profile: "プロフィール"
|
||||||
|
timeline: "タイムライン"
|
||||||
|
noAccountDescription: "自己紹介はあらへん"
|
||||||
|
login: "ログイン"
|
||||||
|
loggingIn: "ログインしよるで"
|
||||||
|
logout: "ログアウト"
|
||||||
|
signup: "新規登録"
|
||||||
|
uploading: "アップロードしよるで"
|
||||||
|
save: "とっとく"
|
||||||
|
users: "ユーザー"
|
||||||
|
addUser: "ユーザーを追加や"
|
||||||
|
favorite: "お気に入り"
|
||||||
|
favorites: "お気に入り"
|
||||||
|
unfavorite: "やっぱ気に入らん"
|
||||||
|
favorited: "お気に入りに登録したで"
|
||||||
|
alreadyFavorited: "もうお気に入りに入れとるがな。"
|
||||||
|
cantFavorite: "アカン、お気に入り登録できへんかったで。"
|
||||||
|
pin: "ピン留めしとく"
|
||||||
|
unpin: "やっぱピン留めせん"
|
||||||
|
copyContent: "内容をコピー"
|
||||||
|
copyLink: "リンクをコピー"
|
||||||
|
delete: "ほかす"
|
||||||
|
deleteAndEdit: "ほかして直す"
|
||||||
|
deleteAndEditConfirm: "このノートをほかしてもっかい直す?このノートへのリアクション、Renote、返信も全部消えるんやけどそれでもええん?"
|
||||||
|
addToList: "リストに入れたる"
|
||||||
|
sendMessage: "メッセージを送る"
|
||||||
|
copyUsername: "ユーザー名をコピー"
|
||||||
|
searchUser: "ユーザーを検索"
|
||||||
|
reply: "返す"
|
||||||
|
loadMore: "もっとあるやろ!"
|
||||||
|
showMore: "もっとあるやろ!"
|
||||||
|
youGotNewFollower: "フォローされたで"
|
||||||
|
receiveFollowRequest: "フォローリクエストされたで"
|
||||||
|
followRequestAccepted: "フォローが承認されたで"
|
||||||
|
mention: "メンション"
|
||||||
|
mentions: "あんた宛て"
|
||||||
|
directNotes: "ダイレクト投稿"
|
||||||
|
importAndExport: "インポートとエクスポート"
|
||||||
|
import: "インポート"
|
||||||
|
export: "エクスポート"
|
||||||
|
files: "ファイル"
|
||||||
|
download: "ダウンロード"
|
||||||
|
driveFileDeleteConfirm: "ファイル「{name}」を消してしもうてええか?このファイルを添付したノートも消えてまうで。"
|
||||||
|
unfollowConfirm: "{name}のフォローを解除してもええんか?"
|
||||||
|
exportRequested: "エクスポートしてな、ってリクエストしたけど、これ多分めっちゃ時間かかるで。エクスポート終わったら「ドライブ」に突っ込んどくで。"
|
||||||
|
importRequested: "インポートしてな、ってリクエストしたけど、これ多分めっちゃ時間かかるで。"
|
||||||
|
lists: "リスト"
|
||||||
|
noLists: "リストなんてあらへんで"
|
||||||
|
note: "ノート"
|
||||||
|
notes: "ノート"
|
||||||
|
following: "フォロー"
|
||||||
|
followers: "フォロワー"
|
||||||
|
followsYou: "フォローされとるで"
|
||||||
|
createList: "リスト作る"
|
||||||
|
manageLists: "リストの管理"
|
||||||
|
error: "エラー"
|
||||||
|
somethingHappened: "なんかアカンことが起こったで"
|
||||||
|
retry: "もっぺんやる?"
|
||||||
|
pageLoadError: "ページの読み込みに失敗してしもうたで…"
|
||||||
|
pageLoadErrorDescription: "これは普通、ネットワークかブラウザキャッシュが原因やからね。キャッシュをクリアするか、もうちっとだけ待ってくれへんか?"
|
||||||
|
enterListName: "リスト名を入れてや"
|
||||||
|
privacy: "プライバシーってなんぞや?"
|
||||||
|
makeFollowManuallyApprove: "他人からのフォローは自分が決める"
|
||||||
|
defaultNoteVisibility: "もとからの公開範囲"
|
||||||
|
follow: "フォロー"
|
||||||
|
followRequest: "フォローを頼む"
|
||||||
|
followRequests: "フォローを頼む"
|
||||||
|
unfollow: "フォローやめる"
|
||||||
|
followRequestPending: "フォロー許してくれるん待っとる"
|
||||||
|
enterEmoji: "絵文字を入れてや"
|
||||||
|
renote: "Renote"
|
||||||
|
unrenote: "Renoteやめる"
|
||||||
|
renoted: "Renoteしたで。"
|
||||||
|
cantRenote: "この投稿はRenoteできへんらしい。"
|
||||||
|
cantReRenote: "すまん、今このRenoteにRenoteはできへんのや。"
|
||||||
|
quote: "引用"
|
||||||
|
pinnedNote: "ピン留めされとるノート"
|
||||||
|
you: "あんた"
|
||||||
|
clickToShow: "押したら見えるようになるで"
|
||||||
|
sensitive: "ちょっとアカンやつやで"
|
||||||
|
add: "増やす"
|
||||||
|
reaction: "リアクション"
|
||||||
|
reactionSettingDescription: "リアクションピッカーに出しとくリアクションを選んでや。"
|
||||||
|
reactionSettingDescription2: "ドラッグして並び替え、クリックして削除、+を押すと追加できるで。"
|
||||||
|
rememberNoteVisibility: "公開範囲覚えといて"
|
||||||
|
attachCancel: "やっぱ添付やめてくれん?"
|
||||||
|
markAsSensitive: "ちょっとこれはアカン"
|
||||||
|
unmarkAsSensitive: "そこまでアカンことないやろ"
|
||||||
|
enterFileName: "ファイル名を入れてや"
|
||||||
|
mute: "ミュート"
|
||||||
|
unmute: "ミュートやめたる"
|
||||||
|
block: "ブロック"
|
||||||
|
unblock: "ブロックやめたる"
|
||||||
|
suspend: "凍結"
|
||||||
|
unsuspend: "溶かす"
|
||||||
|
blockConfirm: "ブロックしてもええんか?"
|
||||||
|
unblockConfirm: "ブロックやめたるってほんまか?"
|
||||||
|
suspendConfirm: "凍結してしもうてええか?"
|
||||||
|
unsuspendConfirm: "解凍するけどええか?"
|
||||||
|
selectList: "リストを選ぶ"
|
||||||
|
selectAntenna: "アンテナを選ぶ"
|
||||||
|
selectWidget: "ウィジェットを選ぶ"
|
||||||
|
editWidgets: "ウィジェットをいじる"
|
||||||
|
editWidgetsExit: "編集終ったで"
|
||||||
|
customEmojis: "カスタム絵文字"
|
||||||
|
emoji: "絵文字"
|
||||||
|
emojiName: "絵文字名"
|
||||||
|
emojiUrl: "絵文字画像URL"
|
||||||
|
addEmoji: "絵文字を追加"
|
||||||
|
settingGuide: "ええ感じの設定"
|
||||||
|
cacheRemoteFiles: "リモートのファイルをキャッシュする"
|
||||||
|
cacheRemoteFilesDescription: "この設定を切っとくと、リモートファイルをキャッシュせず直リンクするようになってしまうんやで? サーバーのストレージは節約できるんやけど、かわりにサムネイルが作られんくなるから通信量が増えるで?"
|
||||||
|
flagAsBot: "Botやで"
|
||||||
|
flagAsBotDescription: "もしこのアカウントがプログラムによって運用されるんやったら、このフラグをオンにしてたのむで。オンにすると、反応の連鎖を防ぐためのフラグとして他の開発者に役立ったり、Misskeyのシステム上での扱いがBotに合ったもんになるんやで。"
|
||||||
|
flagAsCat: "Catやで"
|
||||||
|
flagAsCatDescription: "ワレ、猫ちゃんならこのフラグをつけてみ?"
|
||||||
|
autoAcceptFollowed: "フォローしとるユーザーからのフォローリクエストには勝手に許可しとくで。"
|
||||||
|
addAcount: "アカウント追加"
|
||||||
|
loginFailed: "ログインに失敗してしもうた…"
|
||||||
|
showOnRemote: "リモートで見る"
|
||||||
|
general: "全般"
|
||||||
|
wallpaper: "壁紙"
|
||||||
|
setWallpaper: "壁紙を設定"
|
||||||
|
removeWallpaper: "壁紙を削除"
|
||||||
|
searchWith: "検索: {q}"
|
||||||
|
youHaveNoLists: "リストがあらへんで?"
|
||||||
|
followConfirm: "{name}をフォローしてええか?"
|
||||||
|
proxyAccount: "プロキシアカウント"
|
||||||
|
proxyAccountDescription: "プロキシアカウントは、代わりにフォローしてくれるアカウントや。例えば、551に豚まんが無いときやったり、ユーザーがリモートユーザーをアカウントに入れたとき、リストに入れられたユーザーが誰からもフォローされてないと寂しいやん。寂しいし、アクティビティも配達されへんから、プロキシアカウントがフォローしてくれるで。ええやつやん…"
|
||||||
|
host: "ホスト"
|
||||||
|
selectUser: "ユーザーを選ぶ"
|
||||||
|
recipient: "宛先"
|
||||||
|
annotation: "注釈"
|
||||||
|
federation: "連合"
|
||||||
|
instances: "インスタンス"
|
||||||
|
registeredAt: "初観測"
|
||||||
|
latestRequestSentAt: "ちょっと前のリクエスト送信"
|
||||||
|
latestRequestReceivedAt: "ちょっと前のリクエスト受信"
|
||||||
|
latestStatus: "ちょっと前のステータス"
|
||||||
|
storageUsage: "ストレージ使うた量"
|
||||||
|
charts: "チャート"
|
||||||
|
perHour: "1時間ごと"
|
||||||
|
perDay: "1日ごと"
|
||||||
|
stopActivityDelivery: "アクティビティの配送をやめる"
|
||||||
|
blockThisInstance: "このインスタンスをブロック"
|
||||||
|
operations: "操作"
|
||||||
|
software: "ソフトウェア"
|
||||||
|
version: "バージョン"
|
||||||
|
metadata: "メタデータ"
|
||||||
|
withNFiles: "{n}個のファイル"
|
||||||
|
monitor: "モニター"
|
||||||
|
jobQueue: "ジョブキュー"
|
||||||
|
cpuAndMemory: "CPUとメモリ"
|
||||||
|
network: "ネットワーク"
|
||||||
|
disk: "ディスク"
|
||||||
|
instanceInfo: "インスタンス情報"
|
||||||
|
statistics: "統計"
|
||||||
|
clearQueue: "キューにさいなら"
|
||||||
|
clearQueueConfirmTitle: "キューをクリアしまっか?"
|
||||||
|
clearQueueConfirmText: "未配達の投稿は配送されなくなるで。通常この操作を行う必要はあらへんや。"
|
||||||
|
clearCachedFiles: "キャッシュにさいなら"
|
||||||
|
clearCachedFilesConfirm: "キャッシュされとるリモートファイルを全部削除しまっか?"
|
||||||
|
blockedInstances: "インスタンスブロック"
|
||||||
|
blockedInstancesDescription: "ブロックしたいインスタンスのホストを改行で区切って設定してな。ブロックされてもうたインスタンスとはもう金輪際やり取りできひんくなるで。"
|
||||||
|
muteAndBlock: "ミュートとブロック"
|
||||||
|
mutedUsers: "ミュートしたユーザー"
|
||||||
|
blockedUsers: "ブロックしたユーザー"
|
||||||
|
noUsers: "ユーザーはおらへん"
|
||||||
|
editProfile: "プロフィールをいじる"
|
||||||
|
noteDeleteConfirm: "このノートを削除しまっか?"
|
||||||
|
pinLimitExceeded: "これ以上ピン留めできひん"
|
||||||
|
intro: "Misskeyのインストールが完了してん!管理者アカウントを作ってや。"
|
||||||
|
done: "でけた"
|
||||||
|
processing: "処理しとる"
|
||||||
|
preview: "プレビュー"
|
||||||
|
default: "デフォルト"
|
||||||
|
noCustomEmojis: "絵文字はあらへん"
|
||||||
|
noJobs: "ジョブはあらへん"
|
||||||
|
federating: "連合しとる"
|
||||||
|
blocked: "ブロックしとる"
|
||||||
|
suspended: "配信せぇへん"
|
||||||
|
all: "みな"
|
||||||
|
subscribing: "購読しとる"
|
||||||
|
publishing: "配信しとる"
|
||||||
|
notResponding: "応答してへんで"
|
||||||
|
instanceFollowing: "インスタンスのフォロー"
|
||||||
|
instanceFollowers: "インスタンスのフォロワー\n"
|
||||||
|
instanceUsers: "インスタンスのユーザー"
|
||||||
|
changePassword: "パスワード変える"
|
||||||
|
security: "セキュリティ"
|
||||||
|
retypedNotMatch: "そやないねん。"
|
||||||
|
currentPassword: "今のパスワード"
|
||||||
|
newPassword: "今度のパスワード"
|
||||||
|
newPasswordRetype: "今度のパスワード(もっぺん入れて)"
|
||||||
|
attachFile: "ファイルくっつけて"
|
||||||
|
more: "他ないんか!"
|
||||||
|
featured: "ハイライト"
|
||||||
|
usernameOrUserId: "ユーザー名かユーザーID"
|
||||||
|
noSuchUser: "ユーザーが見つからへんで"
|
||||||
|
lookup: "見てきて"
|
||||||
|
announcements: "これ知っといてな"
|
||||||
|
imageUrl: "画像URL"
|
||||||
|
remove: "ほかす"
|
||||||
|
removed: "削除したで!"
|
||||||
|
removeAreYouSure: "「{x}」はなおしてしもてええか?"
|
||||||
|
deleteAreYouSure: "「{x}」はなおしてしもてええか?"
|
||||||
|
resetAreYouSure: "リセットしてええん?"
|
||||||
|
saved: "保存したで!"
|
||||||
|
messaging: "チャット"
|
||||||
|
upload: "アップロード"
|
||||||
|
fromDrive: "ドライブから"
|
||||||
|
fromUrl: "URLから"
|
||||||
|
uploadFromUrl: "URLアップロード"
|
||||||
|
uploadFromUrlDescription: "このURLのファイルをアップロードしたいねん"
|
||||||
|
uploadFromUrlRequested: "アップロードしたい言うといたで"
|
||||||
|
uploadFromUrlMayTakeTime: "アップロード終わるんにちょい時間かかるかもしれへんわ。"
|
||||||
|
explore: "みつける"
|
||||||
|
games: "Misskey Games"
|
||||||
|
messageRead: "もう読んだ"
|
||||||
|
noMoreHistory: "これより過去の履歴はあらへんで"
|
||||||
|
startMessaging: "チャットやるで"
|
||||||
|
nUsersRead: "{n}人が読んでもうた"
|
||||||
|
agreeTo: "{0}はええで"
|
||||||
|
tos: "利用規約"
|
||||||
|
start: "始める"
|
||||||
|
home: "ホーム"
|
||||||
|
remoteUserCaution: "リモートユーザーやから、ちゃんとした情報とちゃうで。"
|
||||||
|
activity: "アクティビティ"
|
||||||
|
images: "画像"
|
||||||
|
birthday: "生まれた日"
|
||||||
|
yearsOld: "{age}歳"
|
||||||
|
registeredDate: "始めた日"
|
||||||
|
location: "場所"
|
||||||
|
theme: "テーマ"
|
||||||
|
themeForLightMode: "ライトモードではこのテーマつこて"
|
||||||
|
themeForDarkMode: "ダークモードではこのテーマつこて"
|
||||||
|
light: "ライト"
|
||||||
|
dark: "ダーク"
|
||||||
|
lightThemes: "デイゲーム"
|
||||||
|
darkThemes: "ナイトゲーム"
|
||||||
|
syncDeviceDarkMode: "試合開始時間はデバイスのダークモードと一緒や"
|
||||||
|
drive: "ドライブ"
|
||||||
|
fileName: "ファイル名"
|
||||||
|
selectFile: "ファイル選んでや"
|
||||||
|
selectFiles: "ファイル選んでや"
|
||||||
|
selectFolder: "フォルダ選んでや"
|
||||||
|
selectFolders: "フォルダ選んでや"
|
||||||
|
renameFile: "ファイル名をいらう"
|
||||||
|
folderName: "フォルダー名"
|
||||||
|
createFolder: "フォルダー作る"
|
||||||
|
renameFolder: "フォルダー名を変える"
|
||||||
|
deleteFolder: "フォルダーを消してまう"
|
||||||
|
addFile: "ファイルを追加"
|
||||||
|
emptyDrive: "ドライブにはなんも残っとらん"
|
||||||
|
emptyFolder: "ふぉろだーにはなんも残っとらん"
|
||||||
|
unableToDelete: "消そうおもってんけどな、あかんかったわ"
|
||||||
|
inputNewFileName: "今度のファイル名は何にするん?"
|
||||||
|
inputNewFolderName: "今度のフォルダ名は何にするん?"
|
||||||
|
circularReferenceFolder: "移動先のフォルダーは、移動するフォルダーのサブフォルダーや。"
|
||||||
|
hasChildFilesOrFolders: "このフォルダ、まだなんか入っとるから消されへん"
|
||||||
|
copyUrl: "URLをコピー"
|
||||||
|
rename: "名前を変えるで"
|
||||||
|
avatar: "アイコン"
|
||||||
|
banner: "バナー"
|
||||||
|
nsfw: "ちょっとアカンやつやで"
|
||||||
|
whenServerDisconnected: "サーバーとの接続が失くなってしもうたとき"
|
||||||
|
disconnectedFromServer: "サーバーが機嫌悪いねん"
|
||||||
|
reload: "リロード"
|
||||||
|
doNothing: "何もせんとく"
|
||||||
|
reloadConfirm: "リロードしてええか?"
|
||||||
|
watch: "ウォッチ"
|
||||||
|
unwatch: "ウォッチやめる"
|
||||||
|
accept: "ええで"
|
||||||
|
reject: "あかん"
|
||||||
|
normal: "ええ感じ"
|
||||||
|
instanceName: "インスタンス名"
|
||||||
|
instanceDescription: "インスタンスの紹介"
|
||||||
|
maintainerName: "管理者の名前"
|
||||||
|
maintainerEmail: "管理者のメールアドレス"
|
||||||
|
tosUrl: "利用規約のURL"
|
||||||
|
thisYear: "今年"
|
||||||
|
thisMonth: "今月"
|
||||||
|
today: "今日"
|
||||||
|
dayX: "{day}日"
|
||||||
|
monthX: "{month}月"
|
||||||
|
yearX: "{year}年"
|
||||||
|
pages: "ページ"
|
||||||
|
integration: "つないで"
|
||||||
|
connectSerice: "つなげる"
|
||||||
|
disconnectSerice: "切ってまう"
|
||||||
|
enableLocalTimeline: "ローカルタイムラインを使えるようにする"
|
||||||
|
enableGlobalTimeline: "グローバルタイムラインを使えるようにする"
|
||||||
|
disablingTimelinesInfo: "ここらへんのタイムラインを使えんようにしてしもても、管理者とモデレーターは使えるままになってるで、そうやなかったら不便やからな。"
|
||||||
|
registration: "登録"
|
||||||
|
enableRegistration: "一見さんでも誰でもいらっしゃ~い"
|
||||||
|
invite: "来てや"
|
||||||
|
proxyRemoteFiles: "リモートのファイルをプロキシする"
|
||||||
|
proxyRemoteFilesDescription: "この設定を入れると、保存しとらんかったり、お腹いっぱいになってしもたせいで保存できんかったリモートファイルをローカルでプロキシして、サムネイル作ってもらうことができるで。サーバーの腹具合には影響せんけどな。"
|
||||||
|
driveCapacityPerLocalAccount: "ローカルユーザーひとりあたりのドライブ容量"
|
||||||
|
driveCapacityPerRemoteAccount: "リモートユーザーひとりあたりのドライブ容量"
|
||||||
|
inMb: "メガバイト単位"
|
||||||
|
iconUrl: "アイコン画像のURL"
|
||||||
|
bannerUrl: "バナー画像のURL"
|
||||||
|
basicInfo: "基本情報"
|
||||||
|
pinnedUsers: "ピン留めしたユーザー"
|
||||||
|
pinnedUsersDescription: "「みつける」ページとかにピン留めしたいユーザーをここに書けばええんやで。他ん人との名前は改行で区切ればええんやで。"
|
||||||
|
pinnedPages: "ピン留めページ"
|
||||||
|
pinnedNotes: "ピン留めされとるノート"
|
||||||
|
hcaptcha: "hCaptcha(キャプチャ)"
|
||||||
|
enableHcaptcha: "hCaptcha(キャプチャ)をつけとく"
|
||||||
|
hcaptchaSiteKey: "サイトキー"
|
||||||
|
hcaptchaSecretKey: "シークレットキー"
|
||||||
|
recaptcha: "reCAPTCHA"
|
||||||
|
enableRecaptcha: "reCAPTCHA(リキャプチャ)を有効にする"
|
||||||
|
recaptchaSiteKey: "サイトキー"
|
||||||
|
recaptchaSecretKey: "シークレットキー"
|
||||||
|
avoidMultiCaptchaConfirm: "ぎょうさんのCaptchaをつこてしまうと、仲良うせんことがあるんや。他のCaptchaをなおしとこか?別にキャンセルしてもろうたらCaptchaは消されへんで済むけど知らんで。"
|
||||||
|
antennas: "アンテナ"
|
||||||
|
manageAntennas: "アンテナいじる"
|
||||||
|
name: "名前"
|
||||||
|
antennaSource: "受信ソース(このソースは食われへん)"
|
||||||
|
antennaKeywords: "受信キーワード"
|
||||||
|
antennaExcludeKeywords: "除外キーワード"
|
||||||
|
antennaKeywordsDescription: "スペースで区切ったるとAND指定で、改行で区切ったるとOR指定や"
|
||||||
|
notifyAntenna: "新しいノートを追加すんで"
|
||||||
|
withFileAntenna: "なんか添付されたノートだけ"
|
||||||
|
serviceworker: "ServiceWorker"
|
||||||
|
enableServiceworker: "ServiceWorkerをつこて"
|
||||||
|
antennaUsersDescription: "ユーザー名を改行で区切ったってな"
|
||||||
|
caseSensitive: "大文字と小文字は別もんや"
|
||||||
|
withReplies: "返信も入れたって"
|
||||||
|
connectedTo: "次のアカウントに繋がっとるで"
|
||||||
|
notesAndReplies: "投稿と返信"
|
||||||
|
withFiles: "ファイル付いとる"
|
||||||
|
silence: "サイレンス"
|
||||||
|
silenceConfirm: "サイレンスしよか?"
|
||||||
|
unsilence: "サイレンスやめるで"
|
||||||
|
unsilenceConfirm: "サイレンスやめよか?"
|
||||||
|
popularUsers: "人気のユーザー"
|
||||||
|
recentlyUpdatedUsers: "ちょっと前に投稿したばっかりのユーザー"
|
||||||
|
recentlyRegisteredUsers: "ちょっと前に始めたばっかりのユーザー"
|
||||||
|
recentlyDiscoveredUsers: "最近見っけたユーザー"
|
||||||
|
exploreUsersCount: "{count}もユーザーおるで"
|
||||||
|
exploreFediverse: "Fediverseを探ってみる"
|
||||||
|
popularTags: "人気のタグ"
|
||||||
|
userList: "リスト"
|
||||||
|
about: "情報"
|
||||||
|
aboutMisskey: "Misskeyってなんや?"
|
||||||
|
administrator: "管理者"
|
||||||
|
token: "トークン"
|
||||||
|
twoStepAuthentication: "二段階認証"
|
||||||
|
moderator: "モデレーター"
|
||||||
|
nUsersMentioned: "{n}人が投稿"
|
||||||
|
securityKey: "セキュリティキー"
|
||||||
|
securityKeyName: "キーの名前"
|
||||||
|
registerSecurityKey: "セキュリティキーを登録するで"
|
||||||
|
lastUsed: "最後につこうた日"
|
||||||
|
unregister: "登録やめる"
|
||||||
|
passwordLessLogin: "パスワード無くてもログインできるようにする"
|
||||||
|
resetPassword: "パスワードをリセット"
|
||||||
|
newPasswordIs: "今度のパスワードは「{password}」や"
|
||||||
|
reduceUiAnimation: "UIの動きやアニメーションを減らしてくれや。"
|
||||||
|
share: "わけわけ"
|
||||||
|
notFound: "見つからへんね"
|
||||||
|
notFoundDescription: "指定されたURLに該当するページはあらへんやった。"
|
||||||
|
uploadFolder: "とりあえずここへアップロード"
|
||||||
|
cacheClear: "キャッシュをほかす"
|
||||||
|
markAsReadAllNotifications: "通知はもう全て読んだわっ"
|
||||||
|
markAsReadAllUnreadNotes: "投稿は全て読んだわっ"
|
||||||
|
markAsReadAllTalkMessages: "チャットはもうぜんぶ読んだわっ"
|
||||||
|
help: "ヘルプ"
|
||||||
|
inputMessageHere: "ここにメッセージ書いてや"
|
||||||
|
close: "さいなら"
|
||||||
|
group: "グループ"
|
||||||
|
groups: "グループ"
|
||||||
|
createGroup: "グループを作るで"
|
||||||
|
ownedGroups: "所有しとるグループ"
|
||||||
|
joinedGroups: "参加しとるグループ"
|
||||||
|
invites: "来てや"
|
||||||
|
groupName: "グループ名"
|
||||||
|
members: "メンバー"
|
||||||
|
transfer: "譲渡"
|
||||||
|
messagingWithUser: "ユーザーとチャット"
|
||||||
|
messagingWithGroup: "グループでチャット"
|
||||||
|
title: "タイトル"
|
||||||
|
text: "テキスト"
|
||||||
|
enable: "有効にするで"
|
||||||
|
next: "次"
|
||||||
|
retype: "もっかい入力"
|
||||||
|
noteOf: "{user}のノート"
|
||||||
|
inviteToGroup: "グループに招く"
|
||||||
|
maxNoteTextLength: "ノートの文字数制限"
|
||||||
|
quoteAttached: "引用付いとるで"
|
||||||
|
quoteQuestion: "引用として添付してもええか?"
|
||||||
|
noMessagesYet: "まだチャットはあらへんで"
|
||||||
|
newMessageExists: "新しいメッセージがきたで"
|
||||||
|
onlyOneFileCanBeAttached: "すまん、メッセージに添付できるファイルはひとつだけなんや。"
|
||||||
|
signinRequired: "ログインしてくれへん?"
|
||||||
|
invitations: "来てや"
|
||||||
|
invitationCode: "招待コード"
|
||||||
|
checking: "確認しとるで"
|
||||||
|
available: "利用できる\n"
|
||||||
|
unavailable: "利用できん"
|
||||||
|
usernameInvalidFormat: "a~z、A~Z、0~9、_が使えるで"
|
||||||
|
tooShort: "短すぎやろ!"
|
||||||
|
tooLong: "長すぎやろ!"
|
||||||
|
weakPassword: "弱いパスワード"
|
||||||
|
normalPassword: "普通のパスワード"
|
||||||
|
strongPassword: "ええ感じのパスワード"
|
||||||
|
passwordMatched: "よし!一致や!"
|
||||||
|
passwordNotMatched: "一致しとらんで?"
|
||||||
|
signinWith: "{x}でログイン"
|
||||||
|
or: "それか"
|
||||||
|
uiLanguage: "UIの表示言語"
|
||||||
|
groupInvited: "グループに招待されとるで"
|
||||||
|
aboutX: "{x}について"
|
||||||
|
useOsNativeEmojis: "OSネイティブの絵文字を使う"
|
||||||
|
youHaveNoGroups: "グループがあらへんねぇ。"
|
||||||
|
noHistory: "履歴はあらへんねぇ。"
|
||||||
|
signinHistory: "ログイン履歴"
|
||||||
|
doing: "やっとるがな"
|
||||||
|
category: "カテゴリ"
|
||||||
|
tags: "タグ"
|
||||||
|
docSource: "このドキュメントのソース"
|
||||||
|
createAccount: "アカウントを作成"
|
||||||
|
existingAcount: "既存のアカウント"
|
||||||
|
regenerate: "再生成"
|
||||||
|
fontSize: "フォントサイズ"
|
||||||
|
noFollowRequests: "フォロー申請はあらへんで"
|
||||||
|
openImageInNewTab: "画像を新しいタブで開く"
|
||||||
|
dashboard: "ダッシュボード"
|
||||||
|
local: "ローカル"
|
||||||
|
remote: "リモート"
|
||||||
|
smtpHost: "ホスト"
|
||||||
|
smtpUser: "ユーザー名"
|
||||||
|
smtpPass: "パスワード"
|
||||||
|
clearCache: "キャッシュにさいなら"
|
||||||
|
_mfm:
|
||||||
|
mention: "メンション"
|
||||||
|
quote: "引用"
|
||||||
|
emoji: "カスタム絵文字"
|
||||||
|
search: "探す"
|
||||||
|
_sidebar:
|
||||||
|
icon: "アイコン"
|
||||||
|
_theme:
|
||||||
|
keys:
|
||||||
|
mention: "メンション"
|
||||||
|
renote: "Renote"
|
||||||
|
_sfx:
|
||||||
|
note: "ノート"
|
||||||
|
notification: "通知"
|
||||||
|
chat: "チャット"
|
||||||
|
_ago:
|
||||||
|
unknown: "謎"
|
||||||
|
future: "未来"
|
||||||
|
justNow: "たった今"
|
||||||
|
secondsAgo: "{n}秒前"
|
||||||
|
minutesAgo: "{n}分前"
|
||||||
|
hoursAgo: "{n}時間前"
|
||||||
|
daysAgo: "{n}日前"
|
||||||
|
weeksAgo: "{n}週間前"
|
||||||
|
monthsAgo: "{n}ヶ月前"
|
||||||
|
yearsAgo: "{n}年前"
|
||||||
|
_time:
|
||||||
|
second: "秒"
|
||||||
|
minute: "分"
|
||||||
|
hour: "時間"
|
||||||
|
day: "日"
|
||||||
|
_2fa:
|
||||||
|
alreadyRegistered: "もう設定終わっとるわ"
|
||||||
|
_auth:
|
||||||
|
permissionAsk: "このアプリは次の権限を要求しとるで"
|
||||||
|
_antennaSources:
|
||||||
|
all: "みなのノート"
|
||||||
|
homeTimeline: "フォローしとるユーザーのノート"
|
||||||
|
_widgets:
|
||||||
|
notifications: "通知"
|
||||||
|
timeline: "タイムライン"
|
||||||
|
activity: "アクティビティ"
|
||||||
|
federation: "連合"
|
||||||
|
_cw:
|
||||||
|
show: "もっとあるやろ!"
|
||||||
|
_poll:
|
||||||
|
noMore: "これ以上追加でけへん"
|
||||||
|
deadlineTime: "時間"
|
||||||
|
_visibility:
|
||||||
|
publicDescription: "みなのユーザーに公開"
|
||||||
|
home: "ホーム"
|
||||||
|
followers: "フォロワー"
|
||||||
|
_profile:
|
||||||
|
name: "名前"
|
||||||
|
username: "ユーザー名"
|
||||||
|
_exportOrImport:
|
||||||
|
allNotes: "全てのノート"
|
||||||
|
followingList: "フォロー"
|
||||||
|
muteList: "ミュート"
|
||||||
|
blockingList: "ブロック"
|
||||||
|
userLists: "リスト"
|
||||||
|
_timelines:
|
||||||
|
home: "ホーム"
|
||||||
|
_rooms:
|
||||||
|
_roomType:
|
||||||
|
default: "デフォルト"
|
||||||
|
_furnitures:
|
||||||
|
monitor: "モニター"
|
||||||
|
_pages:
|
||||||
|
blocks:
|
||||||
|
image: "画像"
|
||||||
|
script:
|
||||||
|
categories:
|
||||||
|
list: "リスト"
|
||||||
|
blocks:
|
||||||
|
_join:
|
||||||
|
arg1: "リスト"
|
||||||
|
_randomPick:
|
||||||
|
arg1: "リスト"
|
||||||
|
_dailyRandomPick:
|
||||||
|
arg1: "リスト"
|
||||||
|
_seedRandomPick:
|
||||||
|
arg2: "リスト"
|
||||||
|
_pick:
|
||||||
|
arg1: "リスト"
|
||||||
|
_listLen:
|
||||||
|
arg1: "リスト"
|
||||||
|
types:
|
||||||
|
array: "リスト"
|
||||||
|
_notification:
|
||||||
|
youWereFollowed: "フォローされたで"
|
||||||
|
youWereInvitedToGroup: "グループに招待されとるで"
|
||||||
|
_types:
|
||||||
|
follow: "フォロー"
|
||||||
|
mention: "メンション"
|
||||||
|
renote: "Renote"
|
||||||
|
quote: "引用"
|
||||||
|
reaction: "リアクション"
|
||||||
|
_deck:
|
||||||
|
_columns:
|
||||||
|
notifications: "通知"
|
||||||
|
tl: "タイムライン"
|
||||||
|
antenna: "アンテナ"
|
||||||
|
list: "リスト"
|
||||||
|
mentions: "あんた宛て"
|
||||||
|
97
locales/kab-KAB.yml
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
---
|
||||||
|
_lang_: "Taqbaylit"
|
||||||
|
monthAndDay: "{day}/{month}"
|
||||||
|
search: "Nadi"
|
||||||
|
notifications: "Ilɣuyen"
|
||||||
|
username: "Isem n umseqdac"
|
||||||
|
password: "Awal uffir"
|
||||||
|
ok: "IH"
|
||||||
|
settings: "Iɣewwaṛen"
|
||||||
|
profile: "Amaɣnu"
|
||||||
|
save: "Sekles"
|
||||||
|
delete: "Kkes"
|
||||||
|
addToList: "Rnu ɣer tebdart"
|
||||||
|
reply: "Err"
|
||||||
|
loadMore: "Wali ugar"
|
||||||
|
showMore: "Wali ugar"
|
||||||
|
youGotNewFollower: "Yeṭṭafaṛ-ik·em-id"
|
||||||
|
mention: "Bder"
|
||||||
|
import: "Kter"
|
||||||
|
export: "Sifeḍ"
|
||||||
|
files: "Ifuyla"
|
||||||
|
download: "Sider"
|
||||||
|
lists: "Tibdarin"
|
||||||
|
noLists: "Ulac ɣur-k·m ula d yiwet n tabdart"
|
||||||
|
following: "Ig ṭṭafaṛ"
|
||||||
|
followers: "Imeḍfaṛen"
|
||||||
|
followsYou: "Yeṭṭafaṛ-ik·em-id"
|
||||||
|
createList: "Snulfu-d tabdart"
|
||||||
|
enterListName: "Isem n tebdart"
|
||||||
|
follow: "Ḍfeṛ"
|
||||||
|
you: "Kečči·mmi"
|
||||||
|
selectList: "Fren tabdart"
|
||||||
|
youHaveNoLists: "Ulac ɣur-k·m ula d yiwet n tabdart"
|
||||||
|
remove: "Kkes"
|
||||||
|
userList: "Tibdarin"
|
||||||
|
uiLanguage: "Tutlayt n wegrudem"
|
||||||
|
smtpUser: "Isem n umseqdac"
|
||||||
|
smtpPass: "Awal uffir"
|
||||||
|
_mfm:
|
||||||
|
mention: "Bder"
|
||||||
|
search: "Nadi"
|
||||||
|
font: "Tasefsit"
|
||||||
|
_theme:
|
||||||
|
keys:
|
||||||
|
mention: "Bder"
|
||||||
|
_sfx:
|
||||||
|
notification: "Ilɣuyen"
|
||||||
|
_widgets:
|
||||||
|
notifications: "Ilɣuyen"
|
||||||
|
_cw:
|
||||||
|
show: "Wali ugar"
|
||||||
|
_visibility:
|
||||||
|
followers: "Imeḍfaṛen"
|
||||||
|
_profile:
|
||||||
|
username: "Isem n umseqdac"
|
||||||
|
_exportOrImport:
|
||||||
|
followingList: "Ig ṭṭafaṛ"
|
||||||
|
muteList: "Sgugem"
|
||||||
|
blockingList: "Seḥbes"
|
||||||
|
userLists: "Tibdarin"
|
||||||
|
_pages:
|
||||||
|
contents: "Agbur"
|
||||||
|
font: "Tasefsit"
|
||||||
|
fontSerif: "Serif"
|
||||||
|
fontSansSerif: "Sans Serif"
|
||||||
|
eyeCatchingImageRemove: "Kkes tugna i d-ijebden"
|
||||||
|
selectType: "Fren anaw"
|
||||||
|
contentBlocks: "Agbur"
|
||||||
|
inputBlocks: "Anekcum"
|
||||||
|
specialBlocks: "Uzzig"
|
||||||
|
script:
|
||||||
|
categories:
|
||||||
|
list: "Tibdarin"
|
||||||
|
blocks:
|
||||||
|
_join:
|
||||||
|
arg1: "Tibdarin"
|
||||||
|
_randomPick:
|
||||||
|
arg1: "Tibdarin"
|
||||||
|
_dailyRandomPick:
|
||||||
|
arg1: "Tibdarin"
|
||||||
|
_seedRandomPick:
|
||||||
|
arg2: "Tibdarin"
|
||||||
|
_pick:
|
||||||
|
arg1: "Tibdarin"
|
||||||
|
_listLen:
|
||||||
|
arg1: "Tibdarin"
|
||||||
|
types:
|
||||||
|
array: "Tibdarin"
|
||||||
|
_notification:
|
||||||
|
youWereFollowed: "Yeṭṭafaṛ-ik·em-id"
|
||||||
|
_types:
|
||||||
|
follow: "Ig ṭṭafaṛ"
|
||||||
|
mention: "Bder"
|
||||||
|
_deck:
|
||||||
|
_columns:
|
||||||
|
notifications: "Ilɣuyen"
|
||||||
|
list: "Tibdarin"
|
77
locales/kn-IN.yml
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
---
|
||||||
|
_lang_: "ಕನ್ನಡ"
|
||||||
|
introMisskey: "ಸ್ವಾಗತ! Misskey ಓಪನ್ ಸೋರ್ಸ್ ಒಕ್ಕೂಟ ಮೈಕ್ರೋಬ್ಲಾಗಿಂಗ್ ಸೇವೆಯಾಗಿದೆ.\n ಏನಾಗುತ್ತಿದೆ ಎಂಬುದನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಅಥವಾ ನಿಮ್ಮ ಬಗ್ಗೆ ಎಲ್ಲರಿಗೂ ಹೇಳಲು \"ಟಿಪ್ಪಣಿ\"ಗಳನ್ನು ರಚಿಸಿ📡\n \"ಸ್ಪಂದನೆ\" ಕ್ರಿಯೆಯೊಂದಿಗೆ, ನೀವು ಎಲ್ಲರ ಟಿಪ್ಪಣಿಗಳಿಗೆ ತ್ವರಿತವಾಗಿ ಸ್ಪಂದನೆಗಳನ್ನು ಕೂಡ ಸೇರಿಸಬಹುದು.👍\n ಹೊಸ ಜಗತ್ತನ್ನು ಅನ್ವೇಷಿಸಿ🚀"
|
||||||
|
monthAndDay: "{month}ನೇ ತಿಂಗಳ {day}ನೇ ದಿನ"
|
||||||
|
search: "ಹುಡುಕು"
|
||||||
|
notifications: "ಅಧಿಸೂಚನೆಗಳು"
|
||||||
|
username: "ಬಳಕೆಹೆಸರು"
|
||||||
|
password: "ಗುಪ್ತಪದ"
|
||||||
|
fetchingAsApObject: "ಒಕ್ಕೂಟದಿಂದ ಪಡೆಯಲಾಗುತ್ತಿದೆ..."
|
||||||
|
ok: "ಸರಿ"
|
||||||
|
gotIt: "ಅರ್ಥವಾಯಿತು!"
|
||||||
|
cancel: "ರದ್ದು"
|
||||||
|
enterUsername: "ಬಳಕೆಹೆಸರನ್ನು ಭರ್ತಿ ಮಾಡಿ"
|
||||||
|
renotedBy: "{user} ಪುನರಾವರ್ತಿಸಿದರು"
|
||||||
|
noNotes: "ಟಿಪ್ಪಣಿಗಳಿಲ್ಲ"
|
||||||
|
noNotifications: "ಅಧಿಸೂಚನೆಗಳಿಲ್ಲ"
|
||||||
|
instance: "ನಿದರ್ಶನ"
|
||||||
|
settings: "ಸಿದ್ಧತೆಗಳು"
|
||||||
|
profile: "ಪ್ರೊಫೈಲು"
|
||||||
|
timeline: "ಸಮಯಸಾಲು"
|
||||||
|
noAccountDescription: "ಇವರು ಸ್ವಯಂ ಪರಿಚಯ ರಚಿಸಿಲ್ಲ"
|
||||||
|
login: "ಪ್ರವೇಶ"
|
||||||
|
loggingIn: "ಪ್ರವೇಶಿಸುತ್ತಾ..."
|
||||||
|
logout: "ಆಚೆಗೆ"
|
||||||
|
signup: "ನೋಂದಣಿ"
|
||||||
|
uploading: "ಅಪ್ಲೋಡಾಗುತ್ತಿದೆ"
|
||||||
|
save: "ಉಳಿಸಿ"
|
||||||
|
users: "ಬಳಕೆದಾರ"
|
||||||
|
addUser: "ಬಳಕೆದಾರರನ್ನು ಸೇರಿಸಿ"
|
||||||
|
favorite: "ಮೆಚ್ಚಿನ"
|
||||||
|
favorites: "ಮೆಚ್ಚಿನವುಗಳು"
|
||||||
|
unfavorite: "ಮೆಚ್ಚುಗೆ ಅಳಿಸು"
|
||||||
|
pin: "ಪ್ರೊಫ಼ೈಲಿಗೆ ಅಂಟಿಸು"
|
||||||
|
unpin: "ಪ್ರೊಫ಼ೈಲಿಂದ ಅಂಟುತೆಗೆ"
|
||||||
|
copyContent: "ವಿಷಯವನ್ನು ನಕಲಿಸು"
|
||||||
|
copyLink: "ಲಿಂಕನ್ನು ನಕಲಿಸು"
|
||||||
|
delete: "ಅಳಿಸು"
|
||||||
|
addToList: "ಪಟ್ಟಿಗೆ ಸೇರಿಸು"
|
||||||
|
sendMessage: "ಸಂದೇಶ ಕಳುಹಿಸು"
|
||||||
|
copyUsername: "ಬಳಕೆಹೆಸರು ನಕಲಿಸು"
|
||||||
|
reply: "ಉತ್ತರಿಸು"
|
||||||
|
loadMore: "ಇನ್ನಷ್ಟು ನೋಡು"
|
||||||
|
showMore: "ಇನ್ನಷ್ಟು ನೋಡು"
|
||||||
|
youGotNewFollower: "ಹಿಂಬಾಲಿಸಿದರು"
|
||||||
|
receiveFollowRequest: "ಹಿಂಬಾಲನೆ ವಿನಂತಿ ಬಂದಿದೆ"
|
||||||
|
followRequestAccepted: "ಹಿಂಬಾಲನೆ ವಿನಂತಿ ಸ್ವೀಕರಿಸಲಾಯಿತು"
|
||||||
|
mentions: "ಹೆಸರಿಸಿದ"
|
||||||
|
directNotes: "ನೇರ ಟಿಪ್ಪಣಿಗಳು"
|
||||||
|
importAndExport: "ಆಮದು/ರಫ್ತು"
|
||||||
|
import: "ಆಮದು"
|
||||||
|
export: "ರಫ್ತು"
|
||||||
|
files: "ಕಡತಗಳು"
|
||||||
|
download: "ಜಾಲದಿಂದಿಳಿಸು"
|
||||||
|
driveFileDeleteConfirm: "\"{name}\" ಕಡತವನ್ನು ಅಳಿಸಲು ನೀವು ಬಯಸುವಿರಾ? ಈ ನೋಡಿರಿ ಲಗತ್ತಿಸಲಾದ ಟಿಪ್ಪಣಿ ಸಹ ಕಣ್ಮರೆಯಾಗುತ್ತದೆ."
|
||||||
|
unfollowConfirm: "{name}ಅನ್ನು ಹಿಂಬಾಲಿಸದಿರುವುದೇ?"
|
||||||
|
instances: "ನಿದರ್ಶನ"
|
||||||
|
remove: "ಅಳಿಸು"
|
||||||
|
smtpUser: "ಬಳಕೆಹೆಸರು"
|
||||||
|
smtpPass: "ಗುಪ್ತಪದ"
|
||||||
|
_mfm:
|
||||||
|
search: "ಹುಡುಕು"
|
||||||
|
_sfx:
|
||||||
|
notification: "ಅಧಿಸೂಚನೆಗಳು"
|
||||||
|
_widgets:
|
||||||
|
notifications: "ಅಧಿಸೂಚನೆಗಳು"
|
||||||
|
timeline: "ಸಮಯಸಾಲು"
|
||||||
|
_cw:
|
||||||
|
show: "ಇನ್ನಷ್ಟು ನೋಡು"
|
||||||
|
_profile:
|
||||||
|
username: "ಬಳಕೆಹೆಸರು"
|
||||||
|
_notification:
|
||||||
|
youWereFollowed: "ಹಿಂಬಾಲಿಸಿದರು"
|
||||||
|
_deck:
|
||||||
|
_columns:
|
||||||
|
notifications: "ಅಧಿಸೂಚನೆಗಳು"
|
||||||
|
tl: "ಸಮಯಸಾಲು"
|
||||||
|
mentions: "ಹೆಸರಿಸಿದ"
|
@@ -1 +1,2 @@
|
|||||||
---
|
---
|
||||||
|
_lang_: "Nederlands"
|
||||||
|
@@ -1 +1,2 @@
|
|||||||
---
|
---
|
||||||
|
_lang_: "Norsk Bokmål"
|
||||||
|
@@ -1 +1,608 @@
|
|||||||
---
|
---
|
||||||
|
_lang_: "język polski"
|
||||||
|
headlineMisskey: "Sieć połączona wpisami"
|
||||||
|
monthAndDay: "{month}-{day}"
|
||||||
|
search: "Szukaj"
|
||||||
|
notifications: "Powiadomienia"
|
||||||
|
username: "Nazwa użytkownika"
|
||||||
|
password: "Hasło"
|
||||||
|
fetchingAsApObject: "Pobieranie z Fediwersum…"
|
||||||
|
ok: "OK"
|
||||||
|
gotIt: "Rozumiem!"
|
||||||
|
cancel: "Anuluj"
|
||||||
|
enterUsername: "Wprowadź nazwę użytkownika"
|
||||||
|
renotedBy: "Udostępniono przez {user}"
|
||||||
|
noNotes: "Brak wpisów"
|
||||||
|
noNotifications: "Brak powiadomień"
|
||||||
|
instance: "Instancja"
|
||||||
|
settings: "Ustawienia"
|
||||||
|
basicSettings: "Podstawowe ustawienia"
|
||||||
|
otherSettings: "Pozostałe ustawienia"
|
||||||
|
openInWindow: "Otwórz w oknie"
|
||||||
|
profile: "Profil"
|
||||||
|
timeline: "Oś czasu"
|
||||||
|
noAccountDescription: "Ten użytkownik nie napisał jeszcze swojej biografii."
|
||||||
|
login: "Zaloguj się"
|
||||||
|
loggingIn: "Logowanie"
|
||||||
|
logout: "Wyloguj się"
|
||||||
|
signup: "Zarejestruj się"
|
||||||
|
uploading: "Wysyłanie"
|
||||||
|
save: "Zapisz"
|
||||||
|
users: "Użytkownicy"
|
||||||
|
addUser: "Dodaj użytkownika"
|
||||||
|
favorite: "Dodaj do ulubionych"
|
||||||
|
favorites: "Ulubione"
|
||||||
|
unfavorite: "Usuń z ulubionych"
|
||||||
|
favorited: "Dodano do ulubionych."
|
||||||
|
alreadyFavorited: "Już jest w ulubionych."
|
||||||
|
cantFavorite: "Nie można dodać do ulubionych."
|
||||||
|
pin: "Przypnij do profilu"
|
||||||
|
unpin: "Odepnij z profilu"
|
||||||
|
copyContent: "Skopiuj zawartość"
|
||||||
|
copyLink: "Skopiuj odnośnik"
|
||||||
|
delete: "Usuń"
|
||||||
|
deleteAndEdit: "Usuń i edytuj"
|
||||||
|
deleteAndEditConfirm: "Czy na pewno chcesz usunąć ten wpis i zedytować go? Utracisz wszystkie reakcje, udostępnienia i odpowiedzi do tego wpisu."
|
||||||
|
addToList: "Dodaj do listy"
|
||||||
|
sendMessage: "Wyślij wiadomość"
|
||||||
|
copyUsername: "Kopiuj nazwę użytkownika"
|
||||||
|
searchUser: "Wyszukiwanie użytkowników"
|
||||||
|
reply: "Odpowiedz"
|
||||||
|
loadMore: "Załaduj więcej"
|
||||||
|
showMore: "Załaduj więcej"
|
||||||
|
youGotNewFollower: "Zaobserwował(a) Cię"
|
||||||
|
receiveFollowRequest: "Otrzymano prośbę o możliwość obserwacji"
|
||||||
|
followRequestAccepted: "Zaakceptowano prośbę o możliwość obserwacji"
|
||||||
|
mention: "Wspomnij"
|
||||||
|
mentions: "Wspomnienia"
|
||||||
|
directNotes: "Bezpośrednie wpisy"
|
||||||
|
importAndExport: "Import i eksport"
|
||||||
|
import: "Importuj"
|
||||||
|
export: "Eksportuj"
|
||||||
|
files: "Pliki"
|
||||||
|
download: "Pobierz"
|
||||||
|
lists: "Listy"
|
||||||
|
noLists: "Nie masz żadnych list"
|
||||||
|
note: "Wpis"
|
||||||
|
notes: "Wpisy"
|
||||||
|
following: "Obserwowani"
|
||||||
|
followers: "Obserwujący"
|
||||||
|
followsYou: "Obserwuje Cię"
|
||||||
|
createList: "Utwórz listę"
|
||||||
|
manageLists: "Zarządzaj listami"
|
||||||
|
error: "Błąd"
|
||||||
|
somethingHappened: "Coś poszło nie tak"
|
||||||
|
retry: "Spróbuj ponownie"
|
||||||
|
pageLoadError: "Nie udało się załadować strony"
|
||||||
|
pageLoadErrorDescription: "Zwykle jest to spowodowane problemem z siecią lub cache przeglądarki. Spróbuj wyczyścić cache i sprawdź jeszcze raz za chwilę."
|
||||||
|
enterListName: "Nazwa listy"
|
||||||
|
privacy: "Prywatność"
|
||||||
|
makeFollowManuallyApprove: "Prośby o możliwość obserwacji wymagają zatwierdzenia"
|
||||||
|
defaultNoteVisibility: "Domyślna widoczność"
|
||||||
|
follow: "Obserwowani"
|
||||||
|
followRequest: "Poproś o możliwość obserwacji"
|
||||||
|
followRequests: "Prośby o możliwość obserwacji"
|
||||||
|
unfollow: "Przestań obserwować"
|
||||||
|
followRequestPending: "Oczekująca prośba o możliwość obserwacji"
|
||||||
|
enterEmoji: "Wprowadź emoji"
|
||||||
|
renote: "Udostępnij"
|
||||||
|
unrenote: "Cofnij udostępnienie"
|
||||||
|
renoted: "Udostępniono."
|
||||||
|
cantRenote: "Ten wpis nie może zostać udostępniony."
|
||||||
|
cantReRenote: "Udostępnienie nie może zostać udostępnione."
|
||||||
|
quote: "Cytuj"
|
||||||
|
pinnedNote: "Przypięty wpis"
|
||||||
|
you: "Ty"
|
||||||
|
clickToShow: "Kliknij, aby wyświetlić"
|
||||||
|
sensitive: "NSFW"
|
||||||
|
add: "Dodaj"
|
||||||
|
reaction: "Reakcja"
|
||||||
|
reactionSettingDescription: "Przypisz swoje ulubione reakcje, które chcesz przypiąć w wyborze reakcji."
|
||||||
|
reactionSettingDescription2: "Przeciągnij aby zmienić kolejność, naciśnij aby usunąć, naciśnij „+” aby dodać"
|
||||||
|
rememberNoteVisibility: "Zapamiętuj ustawienia widoczności wpisu"
|
||||||
|
attachCancel: "Usuń załącznik"
|
||||||
|
markAsSensitive: "Oznacz jako NSFW"
|
||||||
|
unmarkAsSensitive: "Cofnij NSFW"
|
||||||
|
enterFileName: "Wprowadź nazwę pliku"
|
||||||
|
mute: "Wycisz"
|
||||||
|
unmute: "Cofnij wyciszenie"
|
||||||
|
block: "Zablokuj"
|
||||||
|
unblock: "Odblokuj"
|
||||||
|
suspend: "Zawieś"
|
||||||
|
unsuspend: "Cofnij zawieszenie"
|
||||||
|
blockConfirm: "Czy na pewno chcesz zablokować to konto?"
|
||||||
|
unblockConfirm: "Czy na pewno chcesz odblokować to konto?"
|
||||||
|
suspendConfirm: "Czy na pewno chcesz zawiesić to konto?"
|
||||||
|
unsuspendConfirm: "Czy na pewno chcesz cofnąć zawieszenie tego konta?"
|
||||||
|
selectList: "Wybierz listę"
|
||||||
|
selectAntenna: "Wybierz Antennę"
|
||||||
|
selectWidget: "Wybierz widżet"
|
||||||
|
editWidgets: "Edytuj widżet"
|
||||||
|
editWidgetsExit: "Gotowe"
|
||||||
|
customEmojis: "Niestandardowe emoji"
|
||||||
|
emoji: "Emoji"
|
||||||
|
emojiName: "Nazwa emoji"
|
||||||
|
emojiUrl: "Adres URL emoji"
|
||||||
|
addEmoji: "Dodaj emoji"
|
||||||
|
settingGuide: "Proponowana konfiguracja"
|
||||||
|
cacheRemoteFiles: "Przechowuj zdalne pliki w pamięci podręcznej"
|
||||||
|
flagAsBot: "To konto jest botem"
|
||||||
|
flagAsCat: "To konto jest kotem"
|
||||||
|
flagAsCatDescription: "Przełącz tę opcję, aby konto było oznaczone jako kot."
|
||||||
|
autoAcceptFollowed: "Automatycznie przyjmuj prośby o możliwość obserwacji od użytkowników, których obserwujesz"
|
||||||
|
addAcount: "Dodaj konto"
|
||||||
|
loginFailed: "Nie udało się zalogować"
|
||||||
|
showOnRemote: "Zobacz na zdalnej instancji"
|
||||||
|
general: "Ogólne"
|
||||||
|
wallpaper: "Tapeta"
|
||||||
|
setWallpaper: "Ustaw tapetę"
|
||||||
|
removeWallpaper: "Usuń tapetę"
|
||||||
|
searchWith: "Szukaj: {q}"
|
||||||
|
youHaveNoLists: "Nie masz żadnej listy"
|
||||||
|
followConfirm: "Czy na pewno chcesz zaobserwować {name}?"
|
||||||
|
proxyAccount: "Konto proxy"
|
||||||
|
host: "Host"
|
||||||
|
selectUser: "Wybierz użytkownika"
|
||||||
|
recipient: "Odbiorca"
|
||||||
|
annotation: "Komentarze"
|
||||||
|
federation: "Federacja"
|
||||||
|
instances: "Instancja"
|
||||||
|
registeredAt: "Zarejestrowano"
|
||||||
|
latestRequestSentAt: "Ostatnie żądanie wysłano o"
|
||||||
|
latestRequestReceivedAt: "Ostatnie żądanie otrzymano o"
|
||||||
|
latestStatus: "Najnowszy status"
|
||||||
|
storageUsage: "Użycie pamięci"
|
||||||
|
charts: "Wykresy"
|
||||||
|
perHour: "co godzinę"
|
||||||
|
perDay: "co dzień"
|
||||||
|
stopActivityDelivery: "Przestań przesyłać aktywności"
|
||||||
|
blockThisInstance: "Zablokuj tę instancję"
|
||||||
|
operations: "Działania"
|
||||||
|
software: "Oprogramowanie"
|
||||||
|
version: "Wersja"
|
||||||
|
metadata: "Metadane"
|
||||||
|
withNFiles: "{n} plik(i)"
|
||||||
|
monitor: "Monitor"
|
||||||
|
jobQueue: "Kolejka zadań"
|
||||||
|
cpuAndMemory: "CPU i pamięć"
|
||||||
|
network: "Sieć"
|
||||||
|
disk: "Dysk"
|
||||||
|
instanceInfo: "Informacje o instancji"
|
||||||
|
statistics: "Statystyki"
|
||||||
|
clearQueue: "Wyczyść kolejkę"
|
||||||
|
clearQueueConfirmTitle: "Czy na pewno chcesz wyczyścić kolejkę?"
|
||||||
|
done: "Gotowe"
|
||||||
|
processing: "Przetwarzanie"
|
||||||
|
federating: "Federowanie"
|
||||||
|
suspended: "Zawieszono"
|
||||||
|
all: "Wszystkie"
|
||||||
|
subscribing: "Subskrybowanie"
|
||||||
|
publishing: "Publikowanie"
|
||||||
|
notResponding: "Nie odpowiada"
|
||||||
|
instanceFollowing: "Obserwowani na instancji"
|
||||||
|
instanceFollowers: "Obserwujący na instancji"
|
||||||
|
instanceUsers: "Użytkownicy tej instancji"
|
||||||
|
more: "Więcej!"
|
||||||
|
usernameOrUserId: "Nazwa lub id użytkownika"
|
||||||
|
noSuchUser: "Nie znaleziono użytkownika"
|
||||||
|
announcements: "Ogłoszenia"
|
||||||
|
imageUrl: "Adres URL obrazka"
|
||||||
|
remove: "Usuń"
|
||||||
|
removed: "Pomyślnie usunięto"
|
||||||
|
removeAreYouSure: "Czy na pewno chcesz usunąć „{x}”?"
|
||||||
|
deleteAreYouSure: "Czy na pewno chcesz usunąć „{x}”?"
|
||||||
|
resetAreYouSure: "Czy na pewno chcesz zresetować?"
|
||||||
|
saved: "Zapisano"
|
||||||
|
messaging: "Wiadomości"
|
||||||
|
upload: "Wyślij"
|
||||||
|
fromDrive: "Z dysku"
|
||||||
|
fromUrl: "Z adresu URL"
|
||||||
|
uploadFromUrl: "Wyślij z adresu URL"
|
||||||
|
uploadFromUrlDescription: "Adres URL pliku, który chcesz wysłać"
|
||||||
|
uploadFromUrlRequested: "Zażądano wysłania"
|
||||||
|
explore: "Eksploruj"
|
||||||
|
games: "Gry Misskey"
|
||||||
|
messageRead: "Przeczytano"
|
||||||
|
noMoreHistory: "Nie ma dalszej historii"
|
||||||
|
startMessaging: "Rozpocznij czat"
|
||||||
|
nUsersRead: "przeczytano przez {n}"
|
||||||
|
agreeTo: "Wyrażam zgodę na {0}"
|
||||||
|
tos: "Regulamin"
|
||||||
|
start: "Rozpocznij"
|
||||||
|
home: "Strona główna"
|
||||||
|
activity: "Aktywność"
|
||||||
|
images: "Zdjęcia"
|
||||||
|
birthday: "Data urodzenia"
|
||||||
|
yearsOld: "{age} lat"
|
||||||
|
registeredDate: "Zarejestrowano"
|
||||||
|
location: "Lokalizacja"
|
||||||
|
theme: "Motywy"
|
||||||
|
themeForLightMode: "Motyw używany w trybie jasnym"
|
||||||
|
themeForDarkMode: "Motyw używany w trybie ciemnym"
|
||||||
|
light: "Jasny"
|
||||||
|
dark: "Ciemny"
|
||||||
|
lightThemes: "Jasny motyw"
|
||||||
|
darkThemes: "Ciemny motyw"
|
||||||
|
syncDeviceDarkMode: "Synchronizuj ciemny motyw z ustawieniami urządzenia"
|
||||||
|
drive: "Dysk"
|
||||||
|
fileName: "Nazwa pliku"
|
||||||
|
selectFile: "Wybierz plik"
|
||||||
|
selectFiles: "Wybierz pliki"
|
||||||
|
selectFolder: "Wybierz folder"
|
||||||
|
selectFolders: "Wybierz foldery"
|
||||||
|
renameFile: "Zmień nazwę pliku"
|
||||||
|
avatar: "Awatar"
|
||||||
|
banner: "Baner"
|
||||||
|
nsfw: "NSFW"
|
||||||
|
accept: "Akceptuj"
|
||||||
|
reject: "Odrzuć"
|
||||||
|
normal: "Normalny"
|
||||||
|
thisYear: "Rok"
|
||||||
|
thisMonth: "Miesiąc"
|
||||||
|
today: "Dziś"
|
||||||
|
pages: "Strony"
|
||||||
|
integration: "Integracja"
|
||||||
|
connectSerice: "Połącz"
|
||||||
|
disconnectSerice: "Rozłącz"
|
||||||
|
registration: "Zarejestruj się"
|
||||||
|
invite: "Zaproś"
|
||||||
|
inMb: "W megabajtach"
|
||||||
|
iconUrl: "Adres URL ikony"
|
||||||
|
bannerUrl: "Adres URL banera"
|
||||||
|
basicInfo: "Podstawowe informacje"
|
||||||
|
pinnedUsers: "Przypięty użytkownik"
|
||||||
|
pinnedPages: "Przypięte strony"
|
||||||
|
pinnedNotes: "Przypięty wpis"
|
||||||
|
hcaptcha: "hCaptcha"
|
||||||
|
enableHcaptcha: "Włącz hCaptcha"
|
||||||
|
hcaptchaSiteKey: "Klucz strony"
|
||||||
|
hcaptchaSecretKey: "Tajny klucz"
|
||||||
|
recaptcha: "reCAPTCHA"
|
||||||
|
enableRecaptcha: "Włącz reCAPTCHA"
|
||||||
|
recaptchaSiteKey: "Klucz strony"
|
||||||
|
recaptchaSecretKey: "Tajny klucz"
|
||||||
|
antennas: "Anteny"
|
||||||
|
manageAntennas: "Zarządzaj Antenami"
|
||||||
|
name: "Nazwa"
|
||||||
|
antennaSource: "Źródło Anteny"
|
||||||
|
userList: "Listy"
|
||||||
|
about: "Informacje"
|
||||||
|
administrator: "Admin"
|
||||||
|
token: "Token"
|
||||||
|
share: "Udostępnij"
|
||||||
|
help: "Pomoc"
|
||||||
|
close: "Zamknij"
|
||||||
|
invites: "Zaproś"
|
||||||
|
transfer: "Transfer"
|
||||||
|
title: "Tytuł"
|
||||||
|
text: "Tekst"
|
||||||
|
retype: "Wprowadź ponownie"
|
||||||
|
invitations: "Zaproś"
|
||||||
|
tags: "Tagi"
|
||||||
|
regenerate: "Wygeneruj ponownie"
|
||||||
|
local: "Lokalne"
|
||||||
|
total: "Łącznie"
|
||||||
|
weekOverWeekChanges: "Cotygodniowo"
|
||||||
|
dayOverDayChanges: "Codziennie"
|
||||||
|
numberOfDays: "Liczba dni"
|
||||||
|
listen: "Słuchaj"
|
||||||
|
none: "Brak"
|
||||||
|
volume: "Głośność"
|
||||||
|
details: "Szczegóły"
|
||||||
|
state: "Stan"
|
||||||
|
sort: "Sortuj"
|
||||||
|
ascendingOrder: "Rosnąco"
|
||||||
|
descendingOrder: "Malejąco"
|
||||||
|
output: "Wyjście"
|
||||||
|
divider: "Rozdzielacz"
|
||||||
|
rooms: "Pokój"
|
||||||
|
relays: "Przekaźniki"
|
||||||
|
description: "Opis"
|
||||||
|
author: "Autor"
|
||||||
|
manage: "Zarządzanie"
|
||||||
|
deck: "Tablica"
|
||||||
|
height: "Wysokość"
|
||||||
|
permission: "Uprawnienia"
|
||||||
|
edit: "Edytuj"
|
||||||
|
email: "Adres e-mail"
|
||||||
|
smtpHost: "Host"
|
||||||
|
smtpPort: "Port"
|
||||||
|
smtpUser: "Nazwa użytkownika"
|
||||||
|
smtpPass: "Hasło"
|
||||||
|
display: "Wyświetlanie"
|
||||||
|
copy: "Kopiuj"
|
||||||
|
overview: "Przegląd"
|
||||||
|
logs: "Dzienniki"
|
||||||
|
delayed: "Opóźnione"
|
||||||
|
create: "Utwórz"
|
||||||
|
other: "Inne"
|
||||||
|
behavior: "Zachowanie"
|
||||||
|
abuseReports: "Zgłoszenia"
|
||||||
|
reportAbuse: "Zgłoś"
|
||||||
|
send: "Wyślij"
|
||||||
|
optional: "Nieobowiązkowe"
|
||||||
|
yes: "Tak"
|
||||||
|
no: "Nie"
|
||||||
|
notSet: "Nie ustawiono"
|
||||||
|
contact: "Kontakt"
|
||||||
|
duplicate: "Duplikuj"
|
||||||
|
center: "Wyśsrodkuj"
|
||||||
|
wide: "Szerokie"
|
||||||
|
narrow: "Wąskie"
|
||||||
|
_aboutMisskey:
|
||||||
|
patrons: "Wspierający"
|
||||||
|
_mfm:
|
||||||
|
mention: "Wspomnij"
|
||||||
|
url: "Adres URL"
|
||||||
|
link: "Odnośnik"
|
||||||
|
bold: "Pogrubienie"
|
||||||
|
quote: "Cytuj"
|
||||||
|
emoji: "Niestandardowe emoji"
|
||||||
|
search: "Szukaj"
|
||||||
|
flip: "Odwróć"
|
||||||
|
font: "Czcionka"
|
||||||
|
_reversi:
|
||||||
|
rules: "Zasady"
|
||||||
|
surrender: "Poddaj się"
|
||||||
|
total: "Łącznie"
|
||||||
|
ended: "Zakończono"
|
||||||
|
playing: "W trakcie gry"
|
||||||
|
_channel:
|
||||||
|
featured: "Na czasie"
|
||||||
|
owned: "Własny"
|
||||||
|
_sidebar:
|
||||||
|
full: "Pełne"
|
||||||
|
icon: "Awatar"
|
||||||
|
hide: "Ukryj"
|
||||||
|
_wordMute:
|
||||||
|
soft: "Łagodny"
|
||||||
|
hard: "Twardy"
|
||||||
|
_theme:
|
||||||
|
base: "Podstawowy"
|
||||||
|
constant: "Stała"
|
||||||
|
key: "Klucz"
|
||||||
|
func: "Funkcje"
|
||||||
|
argument: "Argument"
|
||||||
|
darken: "Ściemnij"
|
||||||
|
lighten: "Rozjaśnij"
|
||||||
|
keys:
|
||||||
|
bg: "Tło"
|
||||||
|
fg: "Tekst"
|
||||||
|
panel: "Panel"
|
||||||
|
link: "Odnośnik"
|
||||||
|
mention: "Wspomnij"
|
||||||
|
renote: "Udostępnij"
|
||||||
|
divider: "Rozdzielacz"
|
||||||
|
badge: "Odznaka"
|
||||||
|
_sfx:
|
||||||
|
note: "Wpisy"
|
||||||
|
notification: "Powiadomienia"
|
||||||
|
chat: "Wiadomości"
|
||||||
|
_ago:
|
||||||
|
unknown: "Nieznane"
|
||||||
|
future: "W przyszłości"
|
||||||
|
justNow: "Przed chwilą"
|
||||||
|
yearsAgo: "{n} lat temu"
|
||||||
|
_permissions:
|
||||||
|
"write:votes": "Głosowanie w ankiecie"
|
||||||
|
_weekday:
|
||||||
|
sunday: "Niedziela"
|
||||||
|
monday: "Poniedziałek"
|
||||||
|
tuesday: "Wtorek"
|
||||||
|
wednesday: "Środa"
|
||||||
|
thursday: "Czwartek"
|
||||||
|
friday: "Piątek"
|
||||||
|
saturday: "Sobota"
|
||||||
|
_widgets:
|
||||||
|
memo: "Przypięte notatki"
|
||||||
|
notifications: "Powiadomienia"
|
||||||
|
timeline: "Oś czasu"
|
||||||
|
trends: "Na czasie"
|
||||||
|
clock: "Zegar"
|
||||||
|
activity: "Aktywność"
|
||||||
|
photos: "Zdjęcia"
|
||||||
|
federation: "Federacja"
|
||||||
|
button: "Przycisk"
|
||||||
|
_cw:
|
||||||
|
hide: "Ukryj"
|
||||||
|
show: "Załaduj więcej"
|
||||||
|
_poll:
|
||||||
|
expiration: "Ankieta kończy się"
|
||||||
|
infinite: "Nigdy"
|
||||||
|
deadlineDate: "Data zakończenia"
|
||||||
|
duration: "Czas trwania"
|
||||||
|
votesCount: "{} głosów"
|
||||||
|
vote: "Głosowanie w ankiecie"
|
||||||
|
voted: "Zagłosowano"
|
||||||
|
closed: "Zakończono"
|
||||||
|
_visibility:
|
||||||
|
home: "Strona główna"
|
||||||
|
followers: "Obserwujący"
|
||||||
|
_profile:
|
||||||
|
name: "Nazwa"
|
||||||
|
username: "Nazwa użytkownika"
|
||||||
|
description: "Biografia"
|
||||||
|
metadataLabel: "Etykieta"
|
||||||
|
metadataContent: "Treść"
|
||||||
|
_exportOrImport:
|
||||||
|
followingList: "Obserwowani"
|
||||||
|
muteList: "Wycisz"
|
||||||
|
blockingList: "Zablokuj"
|
||||||
|
userLists: "Listy"
|
||||||
|
_timelines:
|
||||||
|
home: "Strona główna"
|
||||||
|
local: "Lokalne"
|
||||||
|
_rooms:
|
||||||
|
translate: "Przenieś"
|
||||||
|
rotate: "Obróć"
|
||||||
|
exit: "Wróć"
|
||||||
|
remove: "Usuń"
|
||||||
|
clear: "Usuń wszystkie"
|
||||||
|
carpetColor: "Kolor dywanu"
|
||||||
|
_roomType:
|
||||||
|
washitsu: "W japońskim stylu"
|
||||||
|
_furnitures:
|
||||||
|
bed: "Łóżko"
|
||||||
|
desk: "Biurko"
|
||||||
|
chair: "Krzesło"
|
||||||
|
fan: "Chłodzenie"
|
||||||
|
pencil: "Ołówek"
|
||||||
|
pudding: "Budyń"
|
||||||
|
book2: "Książka 2"
|
||||||
|
piano: "Fortepian"
|
||||||
|
monitor: "Monitor"
|
||||||
|
photoframe: "Ramka do zdjęć"
|
||||||
|
tv: "Telewizor"
|
||||||
|
sofa: "Kanapa"
|
||||||
|
bin: "Kosz"
|
||||||
|
banknote: "Banknot"
|
||||||
|
_pages:
|
||||||
|
like: "Lubię"
|
||||||
|
featured: "Wyróżnione"
|
||||||
|
variables: "Zmienne"
|
||||||
|
title: "Tytuł"
|
||||||
|
font: "Czcionka"
|
||||||
|
fontSerif: "Szeryfowa"
|
||||||
|
inputBlocks: "Wejście"
|
||||||
|
specialBlocks: "Specjalne"
|
||||||
|
blocks:
|
||||||
|
text: "Tekst"
|
||||||
|
image: "Zdjęcia"
|
||||||
|
button: "Przycisk"
|
||||||
|
if: "Jeżeli"
|
||||||
|
_if:
|
||||||
|
variable: "Zmienna"
|
||||||
|
_post:
|
||||||
|
text: "Treść"
|
||||||
|
_textInput:
|
||||||
|
name: "Nazwa zmiennej"
|
||||||
|
text: "Tytuł"
|
||||||
|
_textareaInput:
|
||||||
|
name: "Nazwa zmiennej"
|
||||||
|
text: "Tytuł"
|
||||||
|
_numberInput:
|
||||||
|
name: "Nazwa zmiennej"
|
||||||
|
text: "Tytuł"
|
||||||
|
_canvas:
|
||||||
|
height: "Wysokość"
|
||||||
|
_switch:
|
||||||
|
name: "Nazwa zmiennej"
|
||||||
|
text: "Tytuł"
|
||||||
|
_counter:
|
||||||
|
name: "Nazwa zmiennej"
|
||||||
|
text: "Tytuł"
|
||||||
|
inc: "Zwiększ o"
|
||||||
|
_button:
|
||||||
|
text: "Tytuł"
|
||||||
|
colored: "Kolorowe"
|
||||||
|
_action:
|
||||||
|
_dialog:
|
||||||
|
content: "Treść"
|
||||||
|
_pushEvent:
|
||||||
|
no-variable: "Brak"
|
||||||
|
_callAiScript:
|
||||||
|
functionName: "Nazwa funkcji"
|
||||||
|
radioButton: "Wybór"
|
||||||
|
_radioButton:
|
||||||
|
name: "Nazwa zmiennej"
|
||||||
|
title: "Tytuł"
|
||||||
|
script:
|
||||||
|
categories:
|
||||||
|
flow: "Kontrola przepływu"
|
||||||
|
operation: "Obliczanie"
|
||||||
|
comparison: "Porównanie"
|
||||||
|
fn: "Funkcje"
|
||||||
|
convert: "Transformacja"
|
||||||
|
list: "Listy"
|
||||||
|
blocks:
|
||||||
|
text: "Tekst"
|
||||||
|
_strLen:
|
||||||
|
arg1: "Tekst"
|
||||||
|
_strPick:
|
||||||
|
arg1: "Tekst"
|
||||||
|
_strReplace:
|
||||||
|
arg1: "Tekst"
|
||||||
|
_strReverse:
|
||||||
|
arg1: "Tekst"
|
||||||
|
_join:
|
||||||
|
arg1: "Listy"
|
||||||
|
arg2: "Odstęp"
|
||||||
|
add: "Dodaj"
|
||||||
|
subtract: "Odejmij"
|
||||||
|
multiply: "Pomnóż"
|
||||||
|
divide: "Podziel"
|
||||||
|
_round:
|
||||||
|
arg1: "Liczba"
|
||||||
|
if: "Warunek"
|
||||||
|
_if:
|
||||||
|
arg1: "Jeżeli"
|
||||||
|
arg2: "Jeżeli prawda"
|
||||||
|
not: "NIE"
|
||||||
|
_not:
|
||||||
|
arg1: "NIE"
|
||||||
|
_random:
|
||||||
|
arg1: "Prawdopodobieństwo"
|
||||||
|
rannum: "Losowa liczba"
|
||||||
|
_rannum:
|
||||||
|
arg1: "Minimalna wartość"
|
||||||
|
arg2: "Maksymalna wartość"
|
||||||
|
_randomPick:
|
||||||
|
arg1: "Listy"
|
||||||
|
_dailyRandom:
|
||||||
|
arg1: "Prawdopodobieństwo"
|
||||||
|
_dailyRannum:
|
||||||
|
arg1: "Minimalna wartość"
|
||||||
|
arg2: "Maksymalna wartość"
|
||||||
|
_dailyRandomPick:
|
||||||
|
arg1: "Listy"
|
||||||
|
_seedRandom:
|
||||||
|
arg1: "Ziarno"
|
||||||
|
arg2: "Prawdopodobieństwo"
|
||||||
|
_seedRannum:
|
||||||
|
arg1: "Ziarno"
|
||||||
|
arg2: "Minimalna wartość"
|
||||||
|
arg3: "Maksymalna wartość"
|
||||||
|
_seedRandomPick:
|
||||||
|
arg1: "Ziarno"
|
||||||
|
arg2: "Listy"
|
||||||
|
_pick:
|
||||||
|
arg1: "Listy"
|
||||||
|
arg2: "Położenie"
|
||||||
|
_listLen:
|
||||||
|
arg1: "Listy"
|
||||||
|
number: "Liczba"
|
||||||
|
_stringToNumber:
|
||||||
|
arg1: "Tekst"
|
||||||
|
_numberToString:
|
||||||
|
arg1: "Liczba"
|
||||||
|
_splitStrByLine:
|
||||||
|
arg1: "Tekst"
|
||||||
|
ref: "Zmienne"
|
||||||
|
fn: "Funkcje"
|
||||||
|
_fn:
|
||||||
|
arg1: "Wyjście"
|
||||||
|
_for:
|
||||||
|
arg1: "Liczba powtórzeń"
|
||||||
|
arg2: "Działanie"
|
||||||
|
types:
|
||||||
|
string: "Tekst"
|
||||||
|
number: "Liczba"
|
||||||
|
boolean: "Flaguj"
|
||||||
|
array: "Listy"
|
||||||
|
_notification:
|
||||||
|
youWereFollowed: "Zaobserwował(a) Cię"
|
||||||
|
_types:
|
||||||
|
all: "Wszystkie"
|
||||||
|
follow: "Obserwowani"
|
||||||
|
mention: "Wspomnij"
|
||||||
|
renote: "Udostępnij"
|
||||||
|
quote: "Cytuj"
|
||||||
|
reaction: "Reakcja"
|
||||||
|
_deck:
|
||||||
|
_columns:
|
||||||
|
main: "Główna"
|
||||||
|
notifications: "Powiadomienia"
|
||||||
|
tl: "Oś czasu"
|
||||||
|
antenna: "Anteny"
|
||||||
|
list: "Listy"
|
||||||
|
mentions: "Wspomnienia"
|
||||||
|
@@ -1 +1,2 @@
|
|||||||
---
|
---
|
||||||
|
_lang_: "Português"
|
||||||
|
1498
locales/ru-RU.yml
1
locales/th-TH.yml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
---
|
5
locales/ug-CN.yml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
_lang_: "ياپونچە"
|
||||||
|
search: "ئىزدەش"
|
||||||
|
_mfm:
|
||||||
|
search: "ئىزدەش"
|
1288
locales/uk-UA.yml
Normal file
1511
locales/zh-CN.yml
1346
locales/zh-TW.yml
38
migration/1581526429287-user-group-invitation.ts
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class userGroupInvitation1581526429287 implements MigrationInterface {
|
||||||
|
name = 'userGroupInvitation1581526429287'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||||
|
await queryRunner.query(`CREATE TABLE "user_group_invitation" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userGroupId" character varying(32) NOT NULL, CONSTRAINT "PK_160c63ec02bf23f6a5c5e8140d6" PRIMARY KEY ("id"))`, undefined);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_bfbc6305547539369fe73eb144" ON "user_group_invitation" ("userId") `, undefined);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_5cc8c468090e129857e9fecce5" ON "user_group_invitation" ("userGroupId") `, undefined);
|
||||||
|
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_e9793f65f504e5a31fbaedbf2f" ON "user_group_invitation" ("userId", "userGroupId") `, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" ADD "userGroupInvitationId" character varying(32)`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TYPE "public"."notification_type_enum" RENAME TO "notification_type_enum_old"`, undefined);
|
||||||
|
await queryRunner.query(`CREATE TYPE "notification_type_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited')`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "notification_type_enum" USING "type"::"text"::"notification_type_enum"`, undefined);
|
||||||
|
await queryRunner.query(`DROP TYPE "notification_type_enum_old"`, undefined);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "notification"."type" IS 'The type of the Notification.'`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_group_invitation" ADD CONSTRAINT "FK_bfbc6305547539369fe73eb144a" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_group_invitation" ADD CONSTRAINT "FK_5cc8c468090e129857e9fecce5a" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_8fe87814e978053a53b1beb7e98" FOREIGN KEY ("userGroupInvitationId") REFERENCES "user_group_invitation"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_8fe87814e978053a53b1beb7e98"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_group_invitation" DROP CONSTRAINT "FK_5cc8c468090e129857e9fecce5a"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_group_invitation" DROP CONSTRAINT "FK_bfbc6305547539369fe73eb144a"`, undefined);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "notification"."type" IS ''`, undefined);
|
||||||
|
await queryRunner.query(`CREATE TYPE "notification_type_enum_old" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted')`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "notification_type_enum_old" USING "type"::"text"::"notification_type_enum_old"`, undefined);
|
||||||
|
await queryRunner.query(`DROP TYPE "notification_type_enum"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TYPE "notification_type_enum_old" RENAME TO "notification_type_enum"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "userGroupInvitationId"`, undefined);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_e9793f65f504e5a31fbaedbf2f"`, undefined);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_5cc8c468090e129857e9fecce5"`, undefined);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_bfbc6305547539369fe73eb144"`, undefined);
|
||||||
|
await queryRunner.query(`DROP TABLE "user_group_invitation"`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
28
migration/1581695816408-user-group-antenna.ts
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class userGroupAntenna1581695816408 implements MigrationInterface {
|
||||||
|
name = 'userGroupAntenna1581695816408'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "antenna" ADD "userGroupJoiningId" character varying(32)`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TYPE "public"."antenna_src_enum" RENAME TO "antenna_src_enum_old"`, undefined);
|
||||||
|
await queryRunner.query(`CREATE TYPE "antenna_src_enum" AS ENUM('home', 'all', 'users', 'list', 'group')`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "antenna" ALTER COLUMN "src" TYPE "antenna_src_enum" USING "src"::"text"::"antenna_src_enum"`, undefined);
|
||||||
|
await queryRunner.query(`DROP TYPE "antenna_src_enum_old"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "users"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "antenna" ADD "users" character varying(1024) array NOT NULL DEFAULT '{}'::varchar[]`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "antenna" ADD CONSTRAINT "FK_ccbf5a8c0be4511133dcc50ddeb" FOREIGN KEY ("userGroupJoiningId") REFERENCES "user_group_joining"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "antenna" DROP CONSTRAINT "FK_ccbf5a8c0be4511133dcc50ddeb"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "users"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "antenna" ADD "users" character varying array NOT NULL DEFAULT '{}'`, undefined);
|
||||||
|
await queryRunner.query(`CREATE TYPE "antenna_src_enum_old" AS ENUM('home', 'all', 'users', 'list')`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "antenna" ALTER COLUMN "src" TYPE "antenna_src_enum_old" USING "src"::"text"::"antenna_src_enum_old"`, undefined);
|
||||||
|
await queryRunner.query(`DROP TYPE "antenna_src_enum"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TYPE "antenna_src_enum_old" RENAME TO "antenna_src_enum"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "userGroupJoiningId"`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
14
migration/1581708415836-drive-user-folder-id-index.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class driveUserFolderIdIndex1581708415836 implements MigrationInterface {
|
||||||
|
name = 'driveUserFolderIdIndex1581708415836'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_55720b33a61a7c806a8215b825" ON "drive_file" ("userId", "folderId", "id") `, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_55720b33a61a7c806a8215b825"`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
28
migration/1581979837262-promo.ts
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class promo1581979837262 implements MigrationInterface {
|
||||||
|
name = 'promo1581979837262'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||||
|
await queryRunner.query(`CREATE TABLE "promo_note" ("noteId" character varying(32) NOT NULL, "expiresAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, CONSTRAINT "REL_e263909ca4fe5d57f8d4230dd5" UNIQUE ("noteId"), CONSTRAINT "PK_e263909ca4fe5d57f8d4230dd5c" PRIMARY KEY ("noteId"))`, undefined);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_83f0862e9bae44af52ced7099e" ON "promo_note" ("userId") `, undefined);
|
||||||
|
await queryRunner.query(`CREATE TABLE "promo_read" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, CONSTRAINT "PK_61917c1541002422b703318b7c9" PRIMARY KEY ("id"))`, undefined);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_9657d55550c3d37bfafaf7d4b0" ON "promo_read" ("userId") `, undefined);
|
||||||
|
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_2882b8a1a07c7d281a98b6db16" ON "promo_read" ("userId", "noteId") `, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "promo_note" ADD CONSTRAINT "FK_e263909ca4fe5d57f8d4230dd5c" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "promo_read" ADD CONSTRAINT "FK_9657d55550c3d37bfafaf7d4b05" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "promo_read" ADD CONSTRAINT "FK_a46a1a603ecee695d7db26da5f4" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "promo_read" DROP CONSTRAINT "FK_a46a1a603ecee695d7db26da5f4"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "promo_read" DROP CONSTRAINT "FK_9657d55550c3d37bfafaf7d4b05"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "promo_note" DROP CONSTRAINT "FK_e263909ca4fe5d57f8d4230dd5c"`, undefined);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_2882b8a1a07c7d281a98b6db16"`, undefined);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_9657d55550c3d37bfafaf7d4b0"`, undefined);
|
||||||
|
await queryRunner.query(`DROP TABLE "promo_read"`, undefined);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_83f0862e9bae44af52ced7099e"`, undefined);
|
||||||
|
await queryRunner.query(`DROP TABLE "promo_note"`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
14
migration/1582019042083-featured-injecttion.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class featuredInjecttion1582019042083 implements MigrationInterface {
|
||||||
|
name = 'featuredInjecttion1582019042083'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_profile" ADD "injectFeaturedNote" boolean NOT NULL DEFAULT true`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "injectFeaturedNote"`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
14
migration/1582210532752-antenna-exclude.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class antennaExclude1582210532752 implements MigrationInterface {
|
||||||
|
name = 'antennaExclude1582210532752'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "antenna" ADD "excludeKeywords" jsonb NOT NULL DEFAULT '[]'`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "excludeKeywords"`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
14
migration/1582875306439-note-reaction-length.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class noteReactionLength1582875306439 implements MigrationInterface {
|
||||||
|
name = 'noteReactionLength1582875306439'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(130)`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(128)`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
36
migration/1585361548360-miauth.ts
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class miauth1585361548360 implements MigrationInterface {
|
||||||
|
name = 'miauth1585361548360'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "access_token" ADD "lastUsedAt" TIMESTAMP WITH TIME ZONE DEFAULT null`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "access_token" ADD "session" character varying(128) DEFAULT null`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "access_token" ADD "name" character varying(128) DEFAULT null`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "access_token" ADD "description" character varying(512) DEFAULT null`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "access_token" ADD "iconUrl" character varying(512) DEFAULT null`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "access_token" ADD "permission" character varying(64) array NOT NULL DEFAULT '{}'::varchar[]`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "access_token" ADD "fetched" boolean NOT NULL DEFAULT false`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "access_token" DROP CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "appId" DROP NOT NULL`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "appId" SET DEFAULT null`, undefined);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_bf3a053c07d9fb5d87317c56ee" ON "access_token" ("session") `, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "access_token" ADD CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "access_token" DROP CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560"`, undefined);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_bf3a053c07d9fb5d87317c56ee"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "appId" DROP DEFAULT`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "appId" SET NOT NULL`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "access_token" ADD CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "fetched"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "permission"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "iconUrl"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "description"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "name"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "session"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "lastUsedAt"`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
48
migration/1585385921215-custom-notification.ts
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class customNotification1585385921215 implements MigrationInterface {
|
||||||
|
name = 'customNotification1585385921215'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" ADD "customBody" character varying(2048)`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" ADD "customHeader" character varying(256)`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" ADD "customIcon" character varying(1024)`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" ADD "appAccessTokenId" character varying(32)`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "notifierId" DROP NOT NULL`, undefined);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "notification"."notifierId" IS 'The ID of sender user of the Notification.'`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TYPE "public"."notification_type_enum" RENAME TO "notification_type_enum_old"`, undefined);
|
||||||
|
await queryRunner.query(`CREATE TYPE "notification_type_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "notification_type_enum" USING "type"::"text"::"notification_type_enum"`, undefined);
|
||||||
|
await queryRunner.query(`DROP TYPE "notification_type_enum_old"`, undefined);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "notification"."type" IS 'The type of the Notification.'`, undefined);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_3b4e96eec8d36a8bbb9d02aa71" ON "notification" ("notifierId") `, undefined);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_33f33cc8ef29d805a97ff4628b" ON "notification" ("type") `, undefined);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_080ab397c379af09b9d2169e5b" ON "notification" ("isRead") `, undefined);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_e22bf6bda77b6adc1fd9e75c8c" ON "notification" ("appAccessTokenId") `, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710" FOREIGN KEY ("notifierId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_e22bf6bda77b6adc1fd9e75c8c9" FOREIGN KEY ("appAccessTokenId") REFERENCES "access_token"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_e22bf6bda77b6adc1fd9e75c8c9"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710"`, undefined);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_e22bf6bda77b6adc1fd9e75c8c"`, undefined);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_080ab397c379af09b9d2169e5b"`, undefined);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_33f33cc8ef29d805a97ff4628b"`, undefined);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_3b4e96eec8d36a8bbb9d02aa71"`, undefined);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "notification"."type" IS ''`, undefined);
|
||||||
|
await queryRunner.query(`CREATE TYPE "notification_type_enum_old" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited')`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "notification_type_enum_old" USING "type"::"text"::"notification_type_enum_old"`, undefined);
|
||||||
|
await queryRunner.query(`DROP TYPE "notification_type_enum"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TYPE "notification_type_enum_old" RENAME TO "notification_type_enum"`, undefined);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "notification"."notifierId" IS ''`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "notifierId" SET NOT NULL`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710" FOREIGN KEY ("notifierId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "appAccessTokenId"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "customIcon"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "customHeader"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "customBody"`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
15
migration/1585772678853-ap-url.ts
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
/* tslint:disable:quotemark class-name indent */
|
||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class apUrl1585772678853 implements MigrationInterface {
|
||||||
|
name = 'apUrl1585772678853'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "note" ADD "url" character varying(512)`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "url"`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
14
migration/1586624197029-AddObjectStorageUseProxy.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from 'typeorm';
|
||||||
|
|
||||||
|
export class AddObjectStorageUseProxy1586624197029 implements MigrationInterface {
|
||||||
|
name = 'AddObjectStorageUseProxy1586624197029'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageUseProxy" boolean NOT NULL DEFAULT true`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageUseProxy"`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
12
migration/1586641139527-remote-reaction.ts
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class remoteReaction1586641139527 implements MigrationInterface {
|
||||||
|
name = 'remoteReaction1586641139527'
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(260)`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(130)`, undefined);
|
||||||
|
}
|
||||||
|
}
|
14
migration/1586708940386-pageAiScript.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class pageAiScript1586708940386 implements MigrationInterface {
|
||||||
|
name = 'pageAiScript1586708940386'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "page" ADD "script" character varying(16384) NOT NULL DEFAULT ''`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "page" DROP COLUMN "script"`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
18
migration/1588044505511-hCaptcha.ts
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class hCaptcha1588044505511 implements MigrationInterface {
|
||||||
|
name = 'hCaptcha1588044505511'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" ADD "enableHcaptcha" boolean NOT NULL DEFAULT false`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" ADD "hcaptchaSiteKey" character varying(64)`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" ADD "hcaptchaSecretKey" character varying(64)`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "hcaptchaSecretKey"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "hcaptchaSiteKey"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableHcaptcha"`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
18
migration/1589023282116-pubRelay.ts
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class pubRelay1589023282116 implements MigrationInterface {
|
||||||
|
name = 'pubRelay1589023282116'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`CREATE TYPE "relay_status_enum" AS ENUM('requesting', 'accepted', 'rejected')`, undefined);
|
||||||
|
await queryRunner.query(`CREATE TABLE "relay" ("id" character varying(32) NOT NULL, "inbox" character varying(512) NOT NULL, "status" "relay_status_enum" NOT NULL, CONSTRAINT "PK_78ebc9cfddf4292633b7ba57aee" PRIMARY KEY ("id"))`, undefined);
|
||||||
|
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0d9a1738f2cf7f3b1c3334dfab" ON "relay" ("inbox") `, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_0d9a1738f2cf7f3b1c3334dfab"`, undefined);
|
||||||
|
await queryRunner.query(`DROP TABLE "relay"`, undefined);
|
||||||
|
await queryRunner.query(`DROP TYPE "relay_status_enum"`, undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
14
migration/1595075960584-blurhash.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class blurhash1595075960584 implements MigrationInterface {
|
||||||
|
name = 'blurhash1595075960584'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "drive_file" ADD "blurhash" character varying(128)`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "drive_file" DROP COLUMN "blurhash"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
20
migration/1595077605646-blurhash-for-avatar-banner.ts
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class blurhashForAvatarBanner1595077605646 implements MigrationInterface {
|
||||||
|
name = 'blurhashForAvatarBanner1595077605646'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "avatarColor"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "bannerColor"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "user" ADD "avatarBlurhash" character varying(128)`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "user" ADD "bannerBlurhash" character varying(128)`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "bannerBlurhash"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "avatarBlurhash"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "user" ADD "bannerColor" character varying(32)`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "user" ADD "avatarColor" character varying(32)`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
14
migration/1595676934834-instance-icon-url.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class instanceIconUrl1595676934834 implements MigrationInterface {
|
||||||
|
name = 'instanceIconUrl1595676934834'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "instance" ADD "iconUrl" character varying(256) DEFAULT null`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "iconUrl"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
30
migration/1595771249699-word-mute.ts
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class wordMute1595771249699 implements MigrationInterface {
|
||||||
|
name = 'wordMute1595771249699'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`CREATE TABLE "muted_note" ("id" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, CONSTRAINT "PK_897e2eff1c0b9b64e55ca1418a4" PRIMARY KEY ("id"))`);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_70ab9786313d78e4201d81cdb8" ON "muted_note" ("noteId") `);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_d8e07aa18c2d64e86201601aec" ON "muted_note" ("userId") `);
|
||||||
|
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_a8c6bfd637d3f1d67a27c48e27" ON "muted_note" ("noteId", "userId") `);
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_profile" ADD "enableWordMute" boolean NOT NULL DEFAULT false`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_profile" ADD "mutedWords" jsonb NOT NULL DEFAULT '[]'`);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_3befe6f999c86aff06eb0257b4" ON "user_profile" ("enableWordMute") `);
|
||||||
|
await queryRunner.query(`ALTER TABLE "muted_note" ADD CONSTRAINT "FK_70ab9786313d78e4201d81cdb89" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "muted_note" ADD CONSTRAINT "FK_d8e07aa18c2d64e86201601aec1" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "muted_note" DROP CONSTRAINT "FK_d8e07aa18c2d64e86201601aec1"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "muted_note" DROP CONSTRAINT "FK_70ab9786313d78e4201d81cdb89"`);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_3befe6f999c86aff06eb0257b4"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "mutedWords"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "enableWordMute"`);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_a8c6bfd637d3f1d67a27c48e27"`);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_d8e07aa18c2d64e86201601aec"`);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_70ab9786313d78e4201d81cdb8"`);
|
||||||
|
await queryRunner.query(`DROP TABLE "muted_note"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
18
migration/1595782306083-word-mute2.ts
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class wordMute21595782306083 implements MigrationInterface {
|
||||||
|
name = 'wordMute21595782306083'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`CREATE TYPE "muted_note_reason_enum" AS ENUM('word', 'manual', 'spam', 'other')`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "muted_note" ADD "reason" "muted_note_reason_enum" NOT NULL`);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_636e977ff90b23676fb5624b25" ON "muted_note" ("reason") `);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_636e977ff90b23676fb5624b25"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "muted_note" DROP COLUMN "reason"`);
|
||||||
|
await queryRunner.query(`DROP TYPE "muted_note_reason_enum"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
58
migration/1596548170836-channel.ts
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class channel1596548170836 implements MigrationInterface {
|
||||||
|
name = 'channel1596548170836'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`CREATE TABLE "channel" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "lastNotedAt" TIMESTAMP WITH TIME ZONE, "userId" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, "description" character varying(2048), "bannerId" character varying(32), "notesCount" integer NOT NULL DEFAULT 0, "usersCount" integer NOT NULL DEFAULT 0, CONSTRAINT "PK_590f33ee6ee7d76437acf362e39" PRIMARY KEY ("id"))`);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_71cb7b435b7c0d4843317e7e16" ON "channel" ("createdAt") `);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_29ef80c6f13bcea998447fce43" ON "channel" ("lastNotedAt") `);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_823bae55bd81b3be6e05cff438" ON "channel" ("userId") `);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_0f58c11241e649d2a638a8de94" ON "channel" ("notesCount") `);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_094b86cd36bb805d1aa1e8cc9a" ON "channel" ("usersCount") `);
|
||||||
|
await queryRunner.query(`CREATE TABLE "channel_following" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "followeeId" character varying(32) NOT NULL, "followerId" character varying(32) NOT NULL, CONSTRAINT "PK_8b104be7f7415113f2a02cd5bdd" PRIMARY KEY ("id"))`);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_11e71f2511589dcc8a4d3214f9" ON "channel_following" ("createdAt") `);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_0e43068c3f92cab197c3d3cd86" ON "channel_following" ("followeeId") `);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_6d8084ec9496e7334a4602707e" ON "channel_following" ("followerId") `);
|
||||||
|
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_2e230dd45a10e671d781d99f3e" ON "channel_following" ("followerId", "followeeId") `);
|
||||||
|
await queryRunner.query(`CREATE TABLE "channel_note_pining" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "channelId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, CONSTRAINT "PK_44f7474496bcf2e4b741681146d" PRIMARY KEY ("id"))`);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_8125f950afd3093acb10d2db8a" ON "channel_note_pining" ("channelId") `);
|
||||||
|
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_f36fed37d6d4cdcc68c803cd9c" ON "channel_note_pining" ("channelId", "noteId") `);
|
||||||
|
await queryRunner.query(`ALTER TABLE "note" ADD "channelId" character varying(32) DEFAULT null`);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_f22169eb10657bded6d875ac8f" ON "note" ("channelId") `);
|
||||||
|
await queryRunner.query(`ALTER TABLE "channel" ADD CONSTRAINT "FK_823bae55bd81b3be6e05cff4383" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "channel" ADD CONSTRAINT "FK_999da2bcc7efadbfe0e92d3bc19" FOREIGN KEY ("bannerId") REFERENCES "drive_file"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_f22169eb10657bded6d875ac8f9" FOREIGN KEY ("channelId") REFERENCES "channel"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "channel_following" ADD CONSTRAINT "FK_0e43068c3f92cab197c3d3cd86e" FOREIGN KEY ("followeeId") REFERENCES "channel"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "channel_following" ADD CONSTRAINT "FK_6d8084ec9496e7334a4602707e1" FOREIGN KEY ("followerId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "channel_note_pining" ADD CONSTRAINT "FK_8125f950afd3093acb10d2db8a8" FOREIGN KEY ("channelId") REFERENCES "channel"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "channel_note_pining" ADD CONSTRAINT "FK_10b19ef67d297ea9de325cd4502" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "channel_note_pining" DROP CONSTRAINT "FK_10b19ef67d297ea9de325cd4502"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "channel_note_pining" DROP CONSTRAINT "FK_8125f950afd3093acb10d2db8a8"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "channel_following" DROP CONSTRAINT "FK_6d8084ec9496e7334a4602707e1"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "channel_following" DROP CONSTRAINT "FK_0e43068c3f92cab197c3d3cd86e"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "note" DROP CONSTRAINT "FK_f22169eb10657bded6d875ac8f9"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "channel" DROP CONSTRAINT "FK_999da2bcc7efadbfe0e92d3bc19"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "channel" DROP CONSTRAINT "FK_823bae55bd81b3be6e05cff4383"`);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_f22169eb10657bded6d875ac8f"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "channelId"`);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_f36fed37d6d4cdcc68c803cd9c"`);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_8125f950afd3093acb10d2db8a"`);
|
||||||
|
await queryRunner.query(`DROP TABLE "channel_note_pining"`);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_2e230dd45a10e671d781d99f3e"`);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_6d8084ec9496e7334a4602707e"`);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_0e43068c3f92cab197c3d3cd86"`);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_11e71f2511589dcc8a4d3214f9"`);
|
||||||
|
await queryRunner.query(`DROP TABLE "channel_following"`);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_094b86cd36bb805d1aa1e8cc9a"`);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_0f58c11241e649d2a638a8de94"`);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_823bae55bd81b3be6e05cff438"`);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_29ef80c6f13bcea998447fce43"`);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_71cb7b435b7c0d4843317e7e16"`);
|
||||||
|
await queryRunner.query(`DROP TABLE "channel"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
14
migration/1596786425167-channel2.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class channel21596786425167 implements MigrationInterface {
|
||||||
|
name = 'channel21596786425167'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "channel_following" ADD "readCursor" TIMESTAMP WITH TIME ZONE NOT NULL`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "channel_following" DROP COLUMN "readCursor"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
14
migration/1597230137744-objectStorageSetPublicRead.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class objectStorageSetPublicRead1597230137744 implements MigrationInterface {
|
||||||
|
name = 'objectStorageSetPublicRead1597230137744'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageSetPublicRead" boolean NOT NULL DEFAULT false`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageSetPublicRead"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
16
migration/1597236229720-IncludingNotificationTypes.ts
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class IncludingNotificationTypes1597236229720 implements MigrationInterface {
|
||||||
|
name = 'IncludingNotificationTypes1597236229720'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`CREATE TYPE "user_profile_includingnotificationtypes_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_profile" ADD "includingNotificationTypes" "user_profile_includingnotificationtypes_enum" array`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "includingNotificationTypes"`);
|
||||||
|
await queryRunner.query(`DROP TYPE "user_profile_includingnotificationtypes_enum"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
14
migration/1597385880794-add-sensitive-index.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class addSensitiveIndex1597385880794 implements MigrationInterface {
|
||||||
|
name = 'addSensitiveIndex1597385880794'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_a7eba67f8b3fa27271e85d2e26" ON "drive_file" ("isSensitive") `);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_a7eba67f8b3fa27271e85d2e26"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
27
migration/1597459042300-channel-unread.ts
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class channelUnread1597459042300 implements MigrationInterface {
|
||||||
|
name = 'channelUnread1597459042300'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`TRUNCATE TABLE "note_unread"`, undefined);
|
||||||
|
await queryRunner.query(`ALTER TABLE "channel_following" DROP COLUMN "readCursor"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "note_unread" ADD "isMentioned" boolean NOT NULL`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "note_unread" ADD "noteChannelId" character varying(32)`);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_25b1dd384bec391b07b74b861c" ON "note_unread" ("isMentioned") `);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_89a29c9237b8c3b6b3cbb4cb30" ON "note_unread" ("isSpecified") `);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_29e8c1d579af54d4232939f994" ON "note_unread" ("noteUserId") `);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_6a57f051d82c6d4036c141e107" ON "note_unread" ("noteChannelId") `);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_6a57f051d82c6d4036c141e107"`);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_29e8c1d579af54d4232939f994"`);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_89a29c9237b8c3b6b3cbb4cb30"`);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_25b1dd384bec391b07b74b861c"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "note_unread" DROP COLUMN "noteChannelId"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "note_unread" DROP COLUMN "isMentioned"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "channel_following" ADD "readCursor" TIMESTAMP WITH TIME ZONE NOT NULL`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
16
migration/1597893996136-ChannelNoteIdDescIndex.ts
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class ChannelNoteIdDescIndex1597893996136 implements MigrationInterface {
|
||||||
|
name = 'ChannelNoteIdDescIndex1597893996136'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_f22169eb10657bded6d875ac8f"`);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_note_on_channelId_and_id_desc" ON "note" ("channelId", "id" desc)`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_note_on_channelId_and_id_desc"`);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_f22169eb10657bded6d875ac8f" ON "note" ("channelId") `);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
20
migration/1600353287890-mutingNotificationTypes.ts
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class mutingNotificationTypes1600353287890 implements MigrationInterface {
|
||||||
|
name = 'mutingNotificationTypes1600353287890'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "includingNotificationTypes"`);
|
||||||
|
await queryRunner.query(`DROP TYPE "public"."user_profile_includingnotificationtypes_enum"`);
|
||||||
|
await queryRunner.query(`CREATE TYPE "user_profile_mutingnotificationtypes_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_profile" ADD "mutingNotificationTypes" "user_profile_mutingnotificationtypes_enum" array NOT NULL DEFAULT '{}'`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "mutingNotificationTypes"`);
|
||||||
|
await queryRunner.query(`DROP TYPE "user_profile_mutingnotificationtypes_enum"`);
|
||||||
|
await queryRunner.query(`CREATE TYPE "public"."user_profile_includingnotificationtypes_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_profile" ADD "includingNotificationTypes" "user_profile_includingnotificationtypes_enum" array`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
32
migration/1603094348345-refine-abuse-user-report.ts
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class refineAbuseUserReport1603094348345 implements MigrationInterface {
|
||||||
|
name = 'refineAbuseUserReport1603094348345'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP CONSTRAINT "FK_d049123c413e68ca52abe734203"`);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_d049123c413e68ca52abe73420"`);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_5cd442c3b2e74fdd99dae20243"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "abuse_user_report" RENAME COLUMN "userId" TO "targetUserId"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "assigneeId" character varying(32)`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "resolved" boolean NOT NULL DEFAULT false`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "comment"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "comment" character varying(2048) NOT NULL DEFAULT '{}'::varchar[]`);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_2b15aaf4a0dc5be3499af7ab6a" ON "abuse_user_report" ("resolved") `);
|
||||||
|
await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD CONSTRAINT "FK_08b883dd5fdd6f9c4c1572b36de" FOREIGN KEY ("assigneeId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP CONSTRAINT "FK_08b883dd5fdd6f9c4c1572b36de"`);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_2b15aaf4a0dc5be3499af7ab6a"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "comment"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "comment" character varying(512) NOT NULL DEFAULT '{}'::varchar[]`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "resolved"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "assigneeId"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "abuse_user_report" RENAME COLUMN "targetUserId" TO "userId"`);
|
||||||
|
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_5cd442c3b2e74fdd99dae20243" ON "abuse_user_report" ("userId", "reporterId") `);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_d049123c413e68ca52abe73420" ON "abuse_user_report" ("userId") `);
|
||||||
|
await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD CONSTRAINT "FK_d049123c413e68ca52abe734203" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
20
migration/1603095701770-refine-abuse-user-report2.ts
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class refineAbuseUserReport21603095701770 implements MigrationInterface {
|
||||||
|
name = 'refineAbuseUserReport21603095701770'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "targetUserHost" character varying(128)`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "reporterHost" character varying(128)`);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_4ebbf7f93cdc10e8d1ef2fc6cd" ON "abuse_user_report" ("targetUserHost") `);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_f8d8b93740ad12c4ce8213a199" ON "abuse_user_report" ("reporterHost") `);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_f8d8b93740ad12c4ce8213a199"`);
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_4ebbf7f93cdc10e8d1ef2fc6cd"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "reporterHost"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "targetUserHost"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
14
migration/1603776877564-instance-theme-color.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class instanceThemeColor1603776877564 implements MigrationInterface {
|
||||||
|
name = 'instanceThemeColor1603776877564'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "instance" ADD "themeColor" character varying(64) DEFAULT null`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "themeColor"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
14
migration/1603781553011-instance-favicon.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class instanceFavicon1603781553011 implements MigrationInterface {
|
||||||
|
name = 'instanceFavicon1603781553011'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "instance" ADD "faviconUrl" character varying(256) DEFAULT null`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "faviconUrl"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
14
migration/1604821689616-delete-auto-watch.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class deleteAutoWatch1604821689616 implements MigrationInterface {
|
||||||
|
name = 'deleteAutoWatch1604821689616'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "autoWatch"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_profile" ADD "autoWatch" boolean NOT NULL DEFAULT false`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
15
migration/1605408848373-clip-description.ts
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class clipDescription1605408848373 implements MigrationInterface {
|
||||||
|
name = 'clipDescription1605408848373'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "clip" ADD "description" character varying(2048) DEFAULT null`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
|
||||||
|
await queryRunner.query(`ALTER TABLE "clip" DROP COLUMN "description"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
434
migration/1605408971051-comments.ts
Normal file
@@ -0,0 +1,434 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class comments1605408971051 implements MigrationInterface {
|
||||||
|
name = 'comments1605408971051'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "log"."createdAt" IS 'The created date of the Log.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."createdAt" IS 'The created date of the DriveFolder.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."name" IS 'The name of the DriveFolder.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."userId" IS 'The owner ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."parentId" IS 'The parent folder ID. If null, it means the DriveFolder is located in root.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."createdAt" IS 'The created date of the DriveFile.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."userId" IS 'The owner ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."userHost" IS 'The host of owner. It will be null if the user in local.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."md5" IS 'The MD5 hash of the DriveFile.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."name" IS 'The file name of the DriveFile.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."type" IS 'The content type (MIME) of the DriveFile.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."size" IS 'The file size (bytes) of the DriveFile.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."comment" IS 'The comment of the DriveFile.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."blurhash" IS 'The BlurHash string.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."properties" IS 'The any properties of the DriveFile. For example, it includes image width/height.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."url" IS 'The URL of the DriveFile.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."thumbnailUrl" IS 'The URL of the thumbnail of the DriveFile.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."webpublicUrl" IS 'The URL of the webpublic of the DriveFile.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."uri" IS 'The URI of the DriveFile. it will be null when the DriveFile is local.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."folderId" IS 'The parent folder ID. If null, it means the DriveFile is located in root.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."isSensitive" IS 'Whether the DriveFile is NSFW.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."isLink" IS 'Whether the DriveFile is direct link to remote server.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."createdAt" IS 'The created date of the User.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."updatedAt" IS 'The updated date of the User.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."username" IS 'The username of the User.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."usernameLower" IS 'The username (lowercased) of the User.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."name" IS 'The name of the User.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."followersCount" IS 'The count of followers.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."followingCount" IS 'The count of following.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."notesCount" IS 'The count of notes.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."avatarId" IS 'The ID of avatar DriveFile.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."bannerId" IS 'The ID of banner DriveFile.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."isSuspended" IS 'Whether the User is suspended.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."isSilenced" IS 'Whether the User is silenced.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."isLocked" IS 'Whether the User is locked.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."isBot" IS 'Whether the User is a bot.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."isCat" IS 'Whether the User is a cat.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."isAdmin" IS 'Whether the User is the admin.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."isModerator" IS 'Whether the User is a moderator.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."host" IS 'The host of the User. It will be null if the origin of the user is local.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."inbox" IS 'The inbox URL of the User. It will be null if the origin of the user is local.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."sharedInbox" IS 'The sharedInbox URL of the User. It will be null if the origin of the user is local.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."featured" IS 'The featured URL of the User. It will be null if the origin of the user is local.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."uri" IS 'The URI of the User. It will be null if the origin of the user is local.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."token" IS 'The native access token of the User. It will be null if the origin of the user is local.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "app"."createdAt" IS 'The created date of the App.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "app"."userId" IS 'The owner ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "app"."secret" IS 'The secret key of the App.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "app"."name" IS 'The name of the App.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "app"."description" IS 'The description of the App.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "app"."permission" IS 'The permission of the App.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "app"."callbackUrl" IS 'The callbackUrl of the App.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "access_token"."createdAt" IS 'The created date of the AccessToken.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "access_token"."lastUsedAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "access_token"."session" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "access_token"."appId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "access_token"."name" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "access_token"."description" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "access_token"."iconUrl" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "channel"."createdAt" IS 'The created date of the Channel.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "channel"."userId" IS 'The owner ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "channel"."name" IS 'The name of the Channel.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "channel"."description" IS 'The description of the Channel.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "channel"."bannerId" IS 'The ID of banner Channel.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "channel"."notesCount" IS 'The count of notes.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "channel"."usersCount" IS 'The count of users.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."createdAt" IS 'The created date of the Note.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."replyId" IS 'The ID of reply target.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."renoteId" IS 'The ID of renote target.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."userId" IS 'The ID of author.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."uri" IS 'The URI of a note. it will be null when the note is local.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."url" IS 'The human readable url of a note. it will be null when the note is local.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."channelId" IS 'The ID of source channel.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."userHost" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."replyUserId" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."replyUserHost" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."renoteUserId" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."renoteUserHost" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "poll_vote"."createdAt" IS 'The created date of the PollVote.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note_reaction"."createdAt" IS 'The created date of the NoteReaction.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."createdAt" IS 'The created date of the NoteWatching.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."userId" IS 'The watcher ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."noteId" IS 'The target Note ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."noteUserId" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note_unread"."noteUserId" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note_unread"."noteChannelId" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."createdAt" IS 'The created date of the FollowRequest.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeId" IS 'The followee user ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerId" IS 'The follower user ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."requestId" IS 'id of Follow Activity.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerHost" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerInbox" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerSharedInbox" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeHost" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeInbox" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeSharedInbox" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_group"."createdAt" IS 'The created date of the UserGroup.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_group"."userId" IS 'The ID of owner.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."createdAt" IS 'The created date of the UserGroupInvitation.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."userId" IS 'The user ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."userGroupId" IS 'The group ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "notification"."createdAt" IS 'The created date of the Notification.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "notification"."notifieeId" IS 'The ID of recipient user of the Notification.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "notification"."isRead" IS 'Whether the Notification is read.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "meta"."localDriveCapacityMb" IS 'Drive capacity of a local user (MB)'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "meta"."remoteDriveCapacityMb" IS 'Drive capacity of a remote user (MB)'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "meta"."maxNoteTextLength" IS 'Max allowed note text length in characters'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "following"."createdAt" IS 'The created date of the Following.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeId" IS 'The followee user ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "following"."followerId" IS 'The follower user ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "following"."followerHost" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "following"."followerInbox" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "following"."followerSharedInbox" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeHost" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeInbox" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeSharedInbox" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."caughtAt" IS 'The caught date of the Instance.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."host" IS 'The host of the Instance.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."usersCount" IS 'The count of the users of the Instance.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."notesCount" IS 'The count of the notes of the Instance.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."softwareName" IS 'The software of the Instance.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."softwareVersion" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."openRegistrations" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."name" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."description" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."maintainerName" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."maintainerEmail" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."iconUrl" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."faviconUrl" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."themeColor" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "muting"."createdAt" IS 'The created date of the Muting.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "muting"."muteeId" IS 'The mutee user ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "muting"."muterId" IS 'The muter user ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "blocking"."createdAt" IS 'The created date of the Blocking.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "blocking"."blockeeId" IS 'The blockee user ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "blocking"."blockerId" IS 'The blocker user ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_list"."createdAt" IS 'The created date of the UserList.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_list"."userId" IS 'The owner ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_list"."name" IS 'The name of the UserList.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."createdAt" IS 'The created date of the UserListJoining.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."userId" IS 'The user ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."userListId" IS 'The list ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."createdAt" IS 'The created date of the UserGroupJoining.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."userId" IS 'The user ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."userGroupId" IS 'The group ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note_favorite"."createdAt" IS 'The created date of the NoteFavorite.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."createdAt" IS 'The created date of the AbuseUserReport.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."targetUserHost" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."reporterHost" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."createdAt" IS 'The created date of the MessagingMessage.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."userId" IS 'The sender user ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."groupId" IS 'The recipient group ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "signin"."createdAt" IS 'The created date of the Signin.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "auth_session"."createdAt" IS 'The created date of the AuthSession.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."createdAt" IS 'The created date of the ReversiGame.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."startedAt" IS 'The started date of the ReversiGame.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."form1" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."form2" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "reversi_matching"."createdAt" IS 'The created date of the ReversiMatching.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_note_pining"."createdAt" IS 'The created date of the UserNotePinings.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "poll"."noteId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "poll"."noteVisibility" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "poll"."userId" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "poll"."userHost" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_keypair"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_publickey"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "page"."createdAt" IS 'The created date of the Page.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "page"."updatedAt" IS 'The updated date of the Page.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "page"."userId" IS 'The ID of author.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."location" IS 'The location of the User.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."birthday" IS 'The birthday (YYYY-MM-DD) of the User.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."description" IS 'The description (bio) of the User.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."url" IS 'Remote URL of the user.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."email" IS 'The email address of the User.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."password" IS 'The password hash of the User. It will be null if the origin of the user is local.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."clientData" IS 'The client-specific data of the User.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."room" IS 'The room data of the User.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."userHost" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."id" IS 'Variable-length id given to navigator.credentials.get()'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."publicKey" IS 'Variable-length public key used to verify attestations (hex-encoded).'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."lastUsed" IS 'The date of the last time the UserSecurityKey was successfully validated.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."name" IS 'User-defined name for this key'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."challenge" IS 'Hex-encoded sha256 hash of the challenge.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."createdAt" IS 'The date challenge was created for expiry purposes.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."registrationChallenge" IS 'Indicates that the challenge is only for registration purposes if true to prevent the challenge for being used as authentication.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "moderation_log"."createdAt" IS 'The created date of the ModerationLog.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "announcement"."createdAt" IS 'The created date of the Announcement.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "announcement"."updatedAt" IS 'The updated date of the Announcement.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "announcement_read"."createdAt" IS 'The created date of the AnnouncementRead.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "clip"."createdAt" IS 'The created date of the Clip.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "clip"."userId" IS 'The owner ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "clip"."name" IS 'The name of the Clip.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "clip"."description" IS 'The description of the Clip.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "clip_note"."noteId" IS 'The note ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "clip_note"."clipId" IS 'The clip ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "antenna"."createdAt" IS 'The created date of the Antenna.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "antenna"."userId" IS 'The owner ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "antenna"."name" IS 'The name of the Antenna.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "antenna_note"."noteId" IS 'The note ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "antenna_note"."antennaId" IS 'The antenna ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "promo_note"."noteId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "promo_note"."userId" IS '[Denormalized]'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "promo_read"."createdAt" IS 'The created date of the PromoRead.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "muted_note"."noteId" IS 'The note ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "muted_note"."userId" IS 'The user ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "muted_note"."reason" IS 'The reason of the MutedNote.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "channel_following"."createdAt" IS 'The created date of the ChannelFollowing.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "channel_following"."followeeId" IS 'The followee channel ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "channel_following"."followerId" IS 'The follower user ID.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "channel_note_pining"."createdAt" IS 'The created date of the ChannelNotePining.'`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "channel_note_pining"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "channel_following"."followerId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "channel_following"."followeeId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "channel_following"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "muted_note"."reason" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "muted_note"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "muted_note"."noteId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "promo_read"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "promo_note"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "promo_note"."noteId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "antenna_note"."antennaId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "antenna_note"."noteId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "antenna"."name" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "antenna"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "antenna"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "clip_note"."clipId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "clip_note"."noteId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "clip"."description" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "clip"."name" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "clip"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "clip"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "announcement_read"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "announcement"."updatedAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "announcement"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "moderation_log"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."registrationChallenge" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."challenge" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."name" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."lastUsed" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."publicKey" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."id" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."userHost" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."room" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."clientData" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."password" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."email" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."url" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."description" IS 'The description (bio) of the User.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."birthday" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."location" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "page"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "page"."updatedAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "page"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_publickey"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_keypair"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "poll"."userHost" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "poll"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "poll"."noteVisibility" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "poll"."noteId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_note_pining"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "reversi_matching"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."form2" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."form1" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."startedAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "auth_session"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "signin"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."groupId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."reporterHost" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."targetUserHost" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note_favorite"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."userGroupId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."userListId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_list"."name" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_list"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_list"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "blocking"."blockerId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "blocking"."blockeeId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "blocking"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "muting"."muterId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "muting"."muteeId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "muting"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."themeColor" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."faviconUrl" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."iconUrl" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."maintainerEmail" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."maintainerName" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."description" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."name" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."openRegistrations" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."softwareVersion" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."softwareName" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."notesCount" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."usersCount" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."host" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "instance"."caughtAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeSharedInbox" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeInbox" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeHost" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "following"."followerSharedInbox" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "following"."followerInbox" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "following"."followerHost" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "following"."followerId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "following"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "meta"."maxNoteTextLength" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "meta"."remoteDriveCapacityMb" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "meta"."localDriveCapacityMb" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "notification"."isRead" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "notification"."notifieeId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "notification"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."userGroupId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_group"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_group"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeSharedInbox" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeInbox" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeHost" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerSharedInbox" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerInbox" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerHost" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."requestId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note_unread"."noteChannelId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note_unread"."noteUserId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."noteUserId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."noteId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note_reaction"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "poll_vote"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."renoteUserHost" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."renoteUserId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."replyUserHost" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."replyUserId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."userHost" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."channelId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."url" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."uri" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."renoteId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."replyId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "note"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "channel"."usersCount" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "channel"."notesCount" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "channel"."bannerId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "channel"."description" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "channel"."name" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "channel"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "channel"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "access_token"."iconUrl" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "access_token"."description" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "access_token"."name" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "access_token"."appId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "access_token"."session" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "access_token"."lastUsedAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "access_token"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "app"."callbackUrl" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "app"."permission" IS 'The permission of the App.'`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "app"."description" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "app"."name" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "app"."secret" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "app"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "app"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."token" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."uri" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."featured" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."sharedInbox" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."inbox" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."host" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."isModerator" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."isAdmin" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."isCat" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."isBot" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."isLocked" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."isSilenced" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."isSuspended" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."bannerId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."avatarId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."notesCount" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."followingCount" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."followersCount" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."name" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."usernameLower" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."username" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."updatedAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."isLink" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."isSensitive" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."folderId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."uri" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."webpublicUrl" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."thumbnailUrl" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."url" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."properties" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."blurhash" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."comment" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."size" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."type" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."name" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."md5" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."userHost" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."parentId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."userId" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."name" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."createdAt" IS NULL`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "log"."createdAt" IS NULL`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
14
migration/1605585339718-instance-pinned-pages.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class instancePinnedPages1605585339718 implements MigrationInterface {
|
||||||
|
name = 'instancePinnedPages1605585339718'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" ADD "pinnedPages" character varying(512) array NOT NULL DEFAULT '{"/featured", "/channels", "/explore", "/pages", "/about-misskey"}'::varchar[]`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedPages"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
16
migration/1605965516823-instance-images.ts
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class instanceImages1605965516823 implements MigrationInterface {
|
||||||
|
name = 'instanceImages1605965516823'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" ADD "backgroundImageUrl" character varying(512)`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" ADD "logoImageUrl" character varying(512)`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "logoImageUrl"`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "backgroundImageUrl"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
16
migration/1606191203881-no-crawle.ts
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class noCrawle1606191203881 implements MigrationInterface {
|
||||||
|
name = 'noCrawle1606191203881'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_profile" ADD "noCrawle" boolean NOT NULL DEFAULT false`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."noCrawle" IS 'Whether reject index by crawler.'`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."noCrawle" IS 'Whether reject index by crawler.'`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "noCrawle"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
14
migration/1607151207216-instance-pinned-clip.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class instancePinnedClip1607151207216 implements MigrationInterface {
|
||||||
|
name = 'instancePinnedClip1607151207216'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" ADD "pinnedClipId" character varying(32)`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedClipId"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
18
migration/1607353487793-isExplorable.ts
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class isExplorable1607353487793 implements MigrationInterface {
|
||||||
|
name = 'isExplorable1607353487793'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "user" ADD "isExplorable" boolean NOT NULL DEFAULT true`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."isExplorable" IS 'Whether the User is explorable.'`);
|
||||||
|
await queryRunner.query(`CREATE INDEX "IDX_d5a1b83c7cab66f167e6888188" ON "user" ("isExplorable") `);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`DROP INDEX "IDX_d5a1b83c7cab66f167e6888188"`);
|
||||||
|
await queryRunner.query(`COMMENT ON COLUMN "user"."isExplorable" IS 'Whether the User is explorable.'`);
|
||||||
|
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "isExplorable"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|