Compare commits
2329 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
182a1bf653 | ||
![]() |
3a987b0006 | ||
![]() |
43967daea5 | ||
![]() |
884b3e5cd5 | ||
![]() |
ca9753f2e7 | ||
![]() |
7894804eed | ||
![]() |
99eb971c3d | ||
![]() |
410210cf6f | ||
![]() |
7db09103e7 | ||
![]() |
2a4eddc80f | ||
![]() |
97fe50a376 | ||
![]() |
eaf6ddd474 | ||
![]() |
ecb3c43520 | ||
![]() |
1838511766 | ||
![]() |
759261b912 | ||
![]() |
ff9d4b2f74 | ||
![]() |
bcb3f2c256 | ||
![]() |
ec6b418a23 | ||
![]() |
b9c64053e8 | ||
![]() |
f5ba73e7c8 | ||
![]() |
5e29528ad4 | ||
![]() |
a683a7092d | ||
![]() |
42f48ffea2 | ||
![]() |
78df3dc484 | ||
![]() |
527f044062 | ||
![]() |
7dde0b1362 | ||
![]() |
b66e73aed5 | ||
![]() |
eec7a0a1f6 | ||
![]() |
c6e0430aa7 | ||
![]() |
065aa0f9b6 | ||
![]() |
79de4d77f6 | ||
![]() |
d8eb610aab | ||
![]() |
2d6de2299c | ||
![]() |
327c62337e | ||
![]() |
3dba63afbb | ||
![]() |
4800dd06e5 | ||
![]() |
0fa2a52fac | ||
![]() |
aea2f01ef7 | ||
![]() |
d17298d3b5 | ||
![]() |
09b749eb97 | ||
![]() |
5fb3f8a116 | ||
![]() |
adf3190859 | ||
![]() |
89419c05b2 | ||
![]() |
abcd5bc951 | ||
![]() |
7aae9987d5 | ||
![]() |
b62a050b2c | ||
![]() |
0946d50913 | ||
![]() |
bb3c6785c9 | ||
![]() |
71150f21cd | ||
![]() |
11afdf7e24 | ||
![]() |
702edfd3d3 | ||
![]() |
e675ffcf38 | ||
![]() |
32dff28460 | ||
![]() |
9954c054a7 | ||
![]() |
81109b14b5 | ||
![]() |
6061937996 | ||
![]() |
71c230b7b7 | ||
![]() |
a3fed7d0fb | ||
![]() |
df3bbfb416 | ||
![]() |
0263a783a6 | ||
![]() |
118f354661 | ||
![]() |
121a1784a2 | ||
![]() |
025bf4a5e7 | ||
![]() |
d3e242a7f2 | ||
![]() |
95a3565d1c | ||
![]() |
c56e45ecef | ||
![]() |
c05723ca6a | ||
![]() |
a98194bf1b | ||
![]() |
857055a9dd | ||
![]() |
465531d56c | ||
![]() |
9759ca7d24 | ||
![]() |
3905185463 | ||
![]() |
ebc2566130 | ||
![]() |
feba678e03 | ||
![]() |
d2784030ec | ||
![]() |
804fa33535 | ||
![]() |
f1d2398eac | ||
![]() |
4917961736 | ||
![]() |
e54aa56ee1 | ||
![]() |
21d54f2758 | ||
![]() |
abc8998b48 | ||
![]() |
4a50c49211 | ||
![]() |
708fba989a | ||
![]() |
1c057818c6 | ||
![]() |
161659de5c | ||
![]() |
cec3dcec8a | ||
![]() |
63a814c70e | ||
![]() |
3dae18b93c | ||
![]() |
9c80403072 | ||
![]() |
b3ad04fcb0 | ||
![]() |
3c3140a100 | ||
![]() |
8d5c9e96e4 | ||
![]() |
429f1ad061 | ||
![]() |
a7be9be43d | ||
![]() |
e27c6abaea | ||
![]() |
b049633db7 | ||
![]() |
81fccb5656 | ||
![]() |
67f3515dc1 | ||
![]() |
83b831d975 | ||
![]() |
6b44fe165b | ||
![]() |
33debe73d5 | ||
![]() |
6b109c7b0f | ||
![]() |
0a050eac56 | ||
![]() |
f90c947036 | ||
![]() |
563cb36a8f | ||
![]() |
1235969721 | ||
![]() |
53fc1235d7 | ||
![]() |
b8544814ec | ||
![]() |
05c4d6b11e | ||
![]() |
425084b596 | ||
![]() |
2205c61edf | ||
![]() |
02ec5b1dbe | ||
![]() |
56c68de5c4 | ||
![]() |
5e55b19247 | ||
![]() |
4bb04a2c24 | ||
![]() |
b811de53b6 | ||
![]() |
68f9341e95 | ||
![]() |
be1d02a7f8 | ||
![]() |
edfded7fb7 | ||
![]() |
60fd793bc3 | ||
![]() |
0f33864df1 | ||
![]() |
3abb0d589d | ||
![]() |
1d9a4f68f4 | ||
![]() |
992fd76067 | ||
![]() |
6712650019 | ||
![]() |
a273940348 | ||
![]() |
3d46da64a8 | ||
![]() |
4702f99c83 | ||
![]() |
65b048bb70 | ||
![]() |
aaf5bb62ab | ||
![]() |
55a578a8df | ||
![]() |
02f9e5d6f0 | ||
![]() |
4fc2058745 | ||
![]() |
7ed0763ad2 | ||
![]() |
13b275773b | ||
![]() |
d9ac9e6d98 | ||
![]() |
b6794b614b | ||
![]() |
e3f2d469c0 | ||
![]() |
a86e1221a0 | ||
![]() |
f03390f0b8 | ||
![]() |
bf6cc34961 | ||
![]() |
18307c822c | ||
![]() |
83ac6742f6 | ||
![]() |
13999d953b | ||
![]() |
7c5c27cbe3 | ||
![]() |
dfeafaf499 | ||
![]() |
7d08b936c6 | ||
![]() |
95eea58d7c | ||
![]() |
fee2878b98 | ||
![]() |
a8e779a68c | ||
![]() |
d62a55b46f | ||
![]() |
39bd71e064 | ||
![]() |
037ca92275 | ||
![]() |
504cf74b90 | ||
![]() |
02a43a310f | ||
![]() |
9783f2de67 | ||
![]() |
b21b058005 | ||
![]() |
6de40cf789 | ||
![]() |
657dc15995 | ||
![]() |
3f9b7e8b1d | ||
![]() |
577f63c4f4 | ||
![]() |
5de77405ea | ||
![]() |
9f07bd8f46 | ||
![]() |
cafd29888d | ||
![]() |
88307327e6 | ||
![]() |
e0cce893be | ||
![]() |
67e1ee41c9 | ||
![]() |
ebb4308a5c | ||
![]() |
b2a5076d14 | ||
![]() |
22bb1a1793 | ||
![]() |
4b872856c2 | ||
![]() |
98e42ec6ff | ||
![]() |
e161b71651 | ||
![]() |
89c5fd0931 | ||
![]() |
c5699fae53 | ||
![]() |
9fc5e8688f | ||
![]() |
a29ff7b1fa | ||
![]() |
7bd45e5729 | ||
![]() |
a975a0971c | ||
![]() |
ad860905c6 | ||
![]() |
3ea351d8a2 | ||
![]() |
f3628946af | ||
![]() |
e5a8773bfe | ||
![]() |
a6c138600f | ||
![]() |
31c73fdfa2 | ||
![]() |
bd620a8c77 | ||
![]() |
1168e25721 | ||
![]() |
7362c2da76 | ||
![]() |
dd8cb7846f | ||
![]() |
56436b99bb | ||
![]() |
a36f54dec2 | ||
![]() |
d075ead80a | ||
![]() |
9230334a31 | ||
![]() |
7154ad5a73 | ||
![]() |
c72f5e2773 | ||
![]() |
6226e8d902 | ||
![]() |
80355fb08e | ||
![]() |
fc02f8fc93 | ||
![]() |
7a51f0ac94 | ||
![]() |
247a9deb02 | ||
![]() |
60010bdb0f | ||
![]() |
8489afa3d7 | ||
![]() |
81e5ff7dce | ||
![]() |
4e1b5038fb | ||
![]() |
f8c66be130 | ||
![]() |
1f222e6cd1 | ||
![]() |
0e26fae3bb | ||
![]() |
8a5a99f01b | ||
![]() |
49b63154df | ||
![]() |
38e6202bdc | ||
![]() |
a89003b57a | ||
![]() |
6ed010b192 | ||
![]() |
60391ff37e | ||
![]() |
e083205824 | ||
![]() |
b00bf5740a | ||
![]() |
a00a1fd6b5 | ||
![]() |
274ca6f7e6 | ||
![]() |
475b7556d8 | ||
![]() |
3dc027bcd5 | ||
![]() |
766559c6e9 | ||
![]() |
1c6d5ddf81 | ||
![]() |
5ad42d1d85 | ||
![]() |
8f32064fea | ||
![]() |
6a44616725 | ||
![]() |
9fe0452016 | ||
![]() |
74079c7a0c | ||
![]() |
12a3c6872f | ||
![]() |
d0443f9de1 | ||
![]() |
a99cd645bb | ||
![]() |
065324d30b | ||
![]() |
b9e3267198 | ||
![]() |
3f9a914718 | ||
![]() |
7e28c396b9 | ||
![]() |
1b2ba09be0 | ||
![]() |
f23d5a75f4 | ||
![]() |
3658f19d98 | ||
![]() |
e213c2e844 | ||
![]() |
dd86397e85 | ||
![]() |
6d33b366f8 | ||
![]() |
eac71ae1d7 | ||
![]() |
c2cae877ce | ||
![]() |
fd13173eaf | ||
![]() |
92d249210d | ||
![]() |
92762223ea | ||
![]() |
29b9d8998a | ||
![]() |
84b183a9f6 | ||
![]() |
70958a9f77 | ||
![]() |
9f3650b0ef | ||
![]() |
f02508c259 | ||
![]() |
e0c5401241 | ||
![]() |
60620bdb25 | ||
![]() |
3cf226d534 | ||
![]() |
d338ea2591 | ||
![]() |
ce51ef5df5 | ||
![]() |
31e5c5f69a | ||
![]() |
ff8313b48b | ||
![]() |
02bb36cdc4 | ||
![]() |
6b31ea1992 | ||
![]() |
31b216f667 | ||
![]() |
a671f9102d | ||
![]() |
2d2b3edaaf | ||
![]() |
1ee757cc5f | ||
![]() |
3770bb6576 | ||
![]() |
ddd655c0c1 | ||
![]() |
e0a4864bea | ||
![]() |
d39465085c | ||
![]() |
44a01c4b5a | ||
![]() |
4907dc91f7 | ||
![]() |
d268b0e5bb | ||
![]() |
0d9f5306cd | ||
![]() |
1d193b9a04 | ||
![]() |
e598d46c31 | ||
![]() |
2c1689c798 | ||
![]() |
33c22b5f3e | ||
![]() |
16c7ef41fb | ||
![]() |
6e50579f9f | ||
![]() |
08ff4926c7 | ||
![]() |
a7015e6f09 | ||
![]() |
fd4ec81bcb | ||
![]() |
9c33e6eef7 | ||
![]() |
9f7cdb4bc7 | ||
![]() |
daa0ca72a7 | ||
![]() |
67fc39b8db | ||
![]() |
45c457b8b3 | ||
![]() |
ec3be7e4d3 | ||
![]() |
f8e6f3cc73 | ||
![]() |
7f5d189528 | ||
![]() |
ff9a074ab6 | ||
![]() |
91f4ec3747 | ||
![]() |
41c2aed7dc | ||
![]() |
b8360313e8 | ||
![]() |
403b82277c | ||
![]() |
433505df48 | ||
![]() |
090f8eff67 | ||
![]() |
395fe7eb4b | ||
![]() |
c8935b32f8 | ||
![]() |
ebb687cde4 | ||
![]() |
e47a8bf666 | ||
![]() |
408d54f2eb | ||
![]() |
f9b5d92176 | ||
![]() |
61dfa6d598 | ||
![]() |
5abe05d572 | ||
![]() |
7722fc4d3f | ||
![]() |
6a379b463f | ||
![]() |
c03b70c949 | ||
![]() |
2375359d12 | ||
![]() |
68d462b301 | ||
![]() |
6b6464a659 | ||
![]() |
4fdfbfd5c4 | ||
![]() |
8e5f2690f2 | ||
![]() |
99e6ef5996 | ||
![]() |
1033e8e57f | ||
![]() |
f7030d4a42 | ||
![]() |
484e023c0c | ||
![]() |
7c781179a1 | ||
![]() |
39302bf0ea | ||
![]() |
11ccb98c93 | ||
![]() |
4e63022a49 | ||
![]() |
75da7ab484 | ||
![]() |
515ab0105a | ||
![]() |
6241ed9621 | ||
![]() |
1786de8ce0 | ||
![]() |
ebe1b78579 | ||
![]() |
a8c3e0186a | ||
![]() |
7ccb9226ef | ||
![]() |
48742dcee1 | ||
![]() |
4acfa7a191 | ||
![]() |
122d5ea529 | ||
![]() |
47795cc683 | ||
![]() |
ba66ddd41e | ||
![]() |
525b4b6cf4 | ||
![]() |
30fe632d54 | ||
![]() |
4e139d2aae | ||
![]() |
d113aae217 | ||
![]() |
a6f6ddc34e | ||
![]() |
c7969ef418 | ||
![]() |
a3cdb4cca1 | ||
![]() |
e6f455a9bb | ||
![]() |
fa1a53270e | ||
![]() |
17589843da | ||
![]() |
8cbfc047bb | ||
![]() |
31f0d1d874 | ||
![]() |
475cee9029 | ||
![]() |
3cac8e0f6f | ||
![]() |
bc2c40a6ca | ||
![]() |
7a4c3bab7e | ||
![]() |
1c67c26bd8 | ||
![]() |
41c87074e6 | ||
![]() |
889a890ac5 | ||
![]() |
ac8c66f5ab | ||
![]() |
22b56ac65c | ||
![]() |
6f5282058f | ||
![]() |
863b6c48f8 | ||
![]() |
083b913dd2 | ||
![]() |
d0a346ed8a | ||
![]() |
725b78349a | ||
![]() |
08bace6c7d | ||
![]() |
ba9563b983 | ||
![]() |
9320c1699a | ||
![]() |
ff19640171 | ||
![]() |
81ee9025fb | ||
![]() |
0d05f05610 | ||
![]() |
21de5c4a9c | ||
![]() |
131ff24e53 | ||
![]() |
b6da0e9b92 | ||
![]() |
836ae732f6 | ||
![]() |
6f2e93c6a1 | ||
![]() |
78736c70f7 | ||
![]() |
eb9e6d230f | ||
![]() |
aebd77ad38 | ||
![]() |
f68b646878 | ||
![]() |
c928941d29 | ||
![]() |
544b5ba838 | ||
![]() |
815c8bf4c8 | ||
![]() |
75191a942f | ||
![]() |
3e9ac810ba | ||
![]() |
caadc0978a | ||
![]() |
255dc6334f | ||
![]() |
c0bf7cd871 | ||
![]() |
2cd2d6522e | ||
![]() |
b81b66912d | ||
![]() |
cf58a42185 | ||
![]() |
a2094054a3 | ||
![]() |
db900c8324 | ||
![]() |
6cf346b3ea | ||
![]() |
19ff9a3b4d | ||
![]() |
d1d68c0124 | ||
![]() |
fb355abbcf | ||
![]() |
c76d14b881 | ||
![]() |
865bb89995 | ||
![]() |
0a6c9a00bd | ||
![]() |
5490d82e3b | ||
![]() |
357da2ce3a | ||
![]() |
6fc35868ff | ||
![]() |
6cd3ff5848 | ||
![]() |
a5e5b61fd2 | ||
![]() |
4f8495c7ad | ||
![]() |
23d3762d04 | ||
![]() |
5760799dec | ||
![]() |
b9027e1b57 | ||
![]() |
60d87e3a68 | ||
![]() |
9c36cc8b01 | ||
![]() |
a07037affc | ||
![]() |
9b8dc4c417 | ||
![]() |
26d90cd030 | ||
![]() |
39676ad683 | ||
![]() |
d57a2b981a | ||
![]() |
b929bffea5 | ||
![]() |
45c5f0c60a | ||
![]() |
513c83e374 | ||
![]() |
ec64b5ea0b | ||
![]() |
8ca8d77c1e | ||
![]() |
0f736e7e9d | ||
![]() |
69a801b472 | ||
![]() |
939773a5b9 | ||
![]() |
2442592ef1 | ||
![]() |
8bb586c1fd | ||
![]() |
446e4ce0c3 | ||
![]() |
5431b51249 | ||
![]() |
476dfb0f35 | ||
![]() |
3e31d1fae9 | ||
![]() |
e68278f93e | ||
![]() |
82f9d5501b | ||
![]() |
2939b760d3 | ||
![]() |
7f4551b769 | ||
![]() |
5448ed643e | ||
![]() |
271854e345 | ||
![]() |
b67f1287c6 | ||
![]() |
5c5be7f15e | ||
![]() |
5d37b7a2ba | ||
![]() |
0bd68902f9 | ||
![]() |
072799f674 | ||
![]() |
dfdb66cf31 | ||
![]() |
0893f36f46 | ||
![]() |
ba4ef23d6b | ||
![]() |
bc9157a03b | ||
![]() |
b80ec1fa3f | ||
![]() |
645dbebd86 | ||
![]() |
a626c69547 | ||
![]() |
c8070fc544 | ||
![]() |
2e89b21544 | ||
![]() |
4cd75e45b9 | ||
![]() |
51517cf96c | ||
![]() |
4701127946 | ||
![]() |
8dcdbddbfb | ||
![]() |
a8e8b2e2cf | ||
![]() |
94d4f8271e | ||
![]() |
d69f7baaf5 | ||
![]() |
079425c027 | ||
![]() |
39d9c613ac | ||
![]() |
e314be5b59 | ||
![]() |
d071d18dd7 | ||
![]() |
0a882471f3 | ||
![]() |
9d301ae89e | ||
![]() |
f003289816 | ||
![]() |
d51c18d96d | ||
![]() |
1576ce2e15 | ||
![]() |
2cd25c6f3a | ||
![]() |
c1c71c2e79 | ||
![]() |
52ab5d8fef | ||
![]() |
9202ce6d7c | ||
![]() |
c0fd7697b9 | ||
![]() |
28a24d30d2 | ||
![]() |
9952418b3a | ||
![]() |
bd07c7312a | ||
![]() |
a28daf7f44 | ||
![]() |
65be8daa15 | ||
![]() |
9422f88451 | ||
![]() |
4e7fa8216e | ||
![]() |
dadb960ab0 | ||
![]() |
92f5027c3c | ||
![]() |
ed9fef408e | ||
![]() |
6994136fb3 | ||
![]() |
7686fc6f4d | ||
![]() |
a1c7c1fb49 | ||
![]() |
ec632e6694 | ||
![]() |
fcfb5ef0a3 | ||
![]() |
5c0f9b1483 | ||
![]() |
37cb93be10 | ||
![]() |
beb451fd19 | ||
![]() |
78ad95d3ad | ||
![]() |
0cab102f3a | ||
![]() |
fd8f8162e1 | ||
![]() |
b6db709e02 | ||
![]() |
1dc06f7ad3 | ||
![]() |
645cf109e9 | ||
![]() |
510de87607 | ||
![]() |
59785ea04c | ||
![]() |
0cee1dfbd6 | ||
![]() |
0d3757f2d3 | ||
![]() |
debef43111 | ||
![]() |
7492a158d2 | ||
![]() |
9d7352a9e4 | ||
![]() |
93cb26e879 | ||
![]() |
51aad804d6 | ||
![]() |
6e7e11e061 | ||
![]() |
8d568d533b | ||
![]() |
348a5f3d7c | ||
![]() |
2de4978a31 | ||
![]() |
642a51a558 | ||
![]() |
1c6ab5447d | ||
![]() |
e7d6bd19eb | ||
![]() |
f6e40a9092 | ||
![]() |
720d5db041 | ||
![]() |
fd3ce321c5 | ||
![]() |
7df8cd2b5d | ||
![]() |
64f4231283 | ||
![]() |
0589171ceb | ||
![]() |
3cf9c30974 | ||
![]() |
c1f0fa5bd6 | ||
![]() |
b01a0325ba | ||
![]() |
eef8f63dc6 | ||
![]() |
de6e3d64b4 | ||
![]() |
ed38233044 | ||
![]() |
64874417e0 | ||
![]() |
b3decdc4e5 | ||
![]() |
9f9b8d1cae | ||
![]() |
c456825d0e | ||
![]() |
32500faf6d | ||
![]() |
fd5a304821 | ||
![]() |
0ab59a10b3 | ||
![]() |
1ce8da66c2 | ||
![]() |
c07e4c3476 | ||
![]() |
871f1e90d6 | ||
![]() |
168682fb7d | ||
![]() |
6df063fb0b | ||
![]() |
662ecb721b | ||
![]() |
b005dc45ec | ||
![]() |
2495c1d99e | ||
![]() |
88e09ef380 | ||
![]() |
bf4cdd71ce | ||
![]() |
cc019a217f | ||
![]() |
8dd7147888 | ||
![]() |
91b2a169b4 | ||
![]() |
2dad6ee50d | ||
![]() |
43829c3ad3 | ||
![]() |
9f417bd50b | ||
![]() |
88ac0de0e6 | ||
![]() |
9c5643501d | ||
![]() |
eb8867d541 | ||
![]() |
448a21a85d | ||
![]() |
e4aadc1992 | ||
![]() |
f25ca768ad | ||
![]() |
42149416e1 | ||
![]() |
531ee16b7a | ||
![]() |
afb6304979 | ||
![]() |
108ec412c3 | ||
![]() |
0afebcfd9e | ||
![]() |
7ba5512a65 | ||
![]() |
08da5e9e0d | ||
![]() |
25cac33074 | ||
![]() |
f512b29443 | ||
![]() |
1461da309f | ||
![]() |
4ae1a65958 | ||
![]() |
624aef6979 | ||
![]() |
042b0c2f18 | ||
![]() |
04b41248ce | ||
![]() |
5f985ee832 | ||
![]() |
419072059f | ||
![]() |
a032bde131 | ||
![]() |
264e72d335 | ||
![]() |
429159f919 | ||
![]() |
6ef9721dd3 | ||
![]() |
5c5d3c1a24 | ||
![]() |
ff59984ff4 | ||
![]() |
1162f8bcff | ||
![]() |
baca9e48d4 | ||
![]() |
744c4c7acb | ||
![]() |
7b1ec26655 | ||
![]() |
3e1de8203d | ||
![]() |
12ca0f9a63 | ||
![]() |
f9e4901543 | ||
![]() |
7fcd9435f3 | ||
![]() |
eb894c330f | ||
![]() |
f4e28983a1 | ||
![]() |
7d494f1ddf | ||
![]() |
f7ff39e7ff | ||
![]() |
f50dd5d677 | ||
![]() |
adf3493af8 | ||
![]() |
1da7be6334 | ||
![]() |
e9190599ca | ||
![]() |
d050d5fb18 | ||
![]() |
c9bf8330de | ||
![]() |
aa7ab1c1e0 | ||
![]() |
535468e5af | ||
![]() |
60b6601d3e | ||
![]() |
190b47aad2 | ||
![]() |
e902178153 | ||
![]() |
71a7165ed7 | ||
![]() |
3197390ed4 | ||
![]() |
5792eea1b1 | ||
![]() |
e5d6d1dcf0 | ||
![]() |
5416f38eb4 | ||
![]() |
cb2110f669 | ||
![]() |
b590f352e9 | ||
![]() |
ec23e6270b | ||
![]() |
5ec78d11d9 | ||
![]() |
3ff89fa7ec | ||
![]() |
c0ef868ad2 | ||
![]() |
6cbd66b534 | ||
![]() |
58fa54a9a6 | ||
![]() |
efe62eb303 | ||
![]() |
cc7a1808ec | ||
![]() |
08d0a45ee7 | ||
![]() |
be15c8f437 | ||
![]() |
80fa92fb97 | ||
![]() |
c1b264e4e9 | ||
![]() |
0b462feff6 | ||
![]() |
bd7662e5e4 | ||
![]() |
73de9be6d5 | ||
![]() |
fb914db1aa | ||
![]() |
d31945e1fd | ||
![]() |
3a04c66ee1 | ||
![]() |
b8f785b89d | ||
![]() |
32f5987263 | ||
![]() |
9ee0db95ac | ||
![]() |
7168811283 | ||
![]() |
6efff48025 | ||
![]() |
556abfabb9 | ||
![]() |
6caec5b8e2 | ||
![]() |
508af8d458 | ||
![]() |
b7bbe090e9 | ||
![]() |
8c9a13b2b7 | ||
![]() |
f69867fcff | ||
![]() |
1e14102316 | ||
![]() |
92c30739f6 | ||
![]() |
ddc0b37d13 | ||
![]() |
12678eb1c0 | ||
![]() |
435945d09d | ||
![]() |
5e198381d3 | ||
![]() |
978282404a | ||
![]() |
8485559318 | ||
![]() |
a4a40f3b5b | ||
![]() |
fc9a6a805f | ||
![]() |
1fd6c97532 | ||
![]() |
74cef67e9f | ||
![]() |
9b7b8bb9a1 | ||
![]() |
9c2f5ee041 | ||
![]() |
c6a15024f5 | ||
![]() |
b27e8606ae | ||
![]() |
4a2c225c8c | ||
![]() |
557003d5c4 | ||
![]() |
0cd5dab244 | ||
![]() |
ae3abc2126 | ||
![]() |
141c999acd | ||
![]() |
300047ce5a | ||
![]() |
bfc95ccf73 | ||
![]() |
522877b8dd | ||
![]() |
bd53c28ae1 | ||
![]() |
c260343125 | ||
![]() |
8560e107bc | ||
![]() |
a2dcf2fc41 | ||
![]() |
d72f0779b6 | ||
![]() |
f2b40b51c2 | ||
![]() |
943ff2dfdb | ||
![]() |
fccdeaec3f | ||
![]() |
ea5148ca0f | ||
![]() |
55b3ae22ee | ||
![]() |
aa64ff6c94 | ||
![]() |
149edaecab | ||
![]() |
6eeb7a92b8 | ||
![]() |
f0e720931b | ||
![]() |
a222e3d054 | ||
![]() |
380d14f406 | ||
![]() |
29b33b37ee | ||
![]() |
a6d4868ff0 | ||
![]() |
82e81a0984 | ||
![]() |
9ffab33037 | ||
![]() |
bb6b912aef | ||
![]() |
974269b8f1 | ||
![]() |
bfc9873fb9 | ||
![]() |
b946d89ec1 | ||
![]() |
57ec04d9ec | ||
![]() |
6ebab5f577 | ||
![]() |
2752858c7c | ||
![]() |
86931bdafd | ||
![]() |
389350ba77 | ||
![]() |
a9960ac63a | ||
![]() |
2a4f2fba09 | ||
![]() |
97885d3def | ||
![]() |
990fef5993 | ||
![]() |
e5d56a7cfe | ||
![]() |
779bd244a6 | ||
![]() |
47edc18931 | ||
![]() |
1e48d9e15b | ||
![]() |
5f5f68cdcd | ||
![]() |
40b7230bd4 | ||
![]() |
0befca3704 | ||
![]() |
f3be43c39c | ||
![]() |
2f67ec2f84 | ||
![]() |
f6a6766f7d | ||
![]() |
69e08abaef | ||
![]() |
928c51ba7b | ||
![]() |
ea8a94e6e2 | ||
![]() |
449709f6cb | ||
![]() |
25cac0089f | ||
![]() |
5a33789cd1 | ||
![]() |
ad2a3eed9b | ||
![]() |
110ae539b8 | ||
![]() |
f7a90e041c | ||
![]() |
0b4a076f66 | ||
![]() |
4e1974c6e6 | ||
![]() |
65a19f0c75 | ||
![]() |
37a4e5f4fc | ||
![]() |
91c56ceb6e | ||
![]() |
c3f3f118c3 | ||
![]() |
e51f59e1b7 | ||
![]() |
3f610edc2a | ||
![]() |
562c4d99e6 | ||
![]() |
fa554f1684 | ||
![]() |
7aecf15f94 | ||
![]() |
d8905a9588 | ||
![]() |
e2cefb7f47 | ||
![]() |
4ee859b691 | ||
![]() |
8cdc619f8f | ||
![]() |
2c47196600 | ||
![]() |
901453ba7d | ||
![]() |
10609eebfa | ||
![]() |
331afcb96a | ||
![]() |
b388b78892 | ||
![]() |
51d21fbe66 | ||
![]() |
eec7e6500e | ||
![]() |
43baafbebb | ||
![]() |
e3a5584d0a | ||
![]() |
76db7ba781 | ||
![]() |
9a4267f01f | ||
![]() |
8d502eba59 | ||
![]() |
ecca0d69a4 | ||
![]() |
e1d69e236f | ||
![]() |
cbb7e95d82 | ||
![]() |
e2d2a4e2e4 | ||
![]() |
7a999f2289 | ||
![]() |
1bd7c55c88 | ||
![]() |
7627c43dee | ||
![]() |
74df9b57ec | ||
![]() |
59520c31fd | ||
![]() |
53937e09a0 | ||
![]() |
8b5a1faaa4 | ||
![]() |
2a1d9a7428 | ||
![]() |
b5ccac3cb5 | ||
![]() |
d7d533f9de | ||
![]() |
f14aba65c5 | ||
![]() |
7be09a4af9 | ||
![]() |
efb0ffc4ec | ||
![]() |
a8fad1b61c | ||
![]() |
9869f01e7c | ||
![]() |
7588397fb8 | ||
![]() |
9885c6ba6c | ||
![]() |
3e9677904d | ||
![]() |
df61e173c1 | ||
![]() |
2c36844d34 | ||
![]() |
cc6b2d578f | ||
![]() |
8322c90834 | ||
![]() |
b312846ff6 | ||
![]() |
689e75e10a | ||
![]() |
133b5c6391 | ||
![]() |
ed5c918d70 | ||
![]() |
bf51450647 | ||
![]() |
7cbeef21e1 | ||
![]() |
9693dfb09d | ||
![]() |
c17e8fa8a4 | ||
![]() |
21c9705a0f | ||
![]() |
daba865a94 | ||
![]() |
41e18aa993 | ||
![]() |
ffc07a08d7 | ||
![]() |
7f4fc20f98 | ||
![]() |
45462e4a5e | ||
![]() |
c8a90ec7d1 | ||
![]() |
41ece00789 | ||
![]() |
28193f12ca | ||
![]() |
27778f839a | ||
![]() |
ef4d78dda2 | ||
![]() |
bd1f741dad | ||
![]() |
2900f998b1 | ||
![]() |
7271fbb092 | ||
![]() |
861d028d09 | ||
![]() |
f96d50bc07 | ||
![]() |
25f15677c3 | ||
![]() |
d2623a2ef2 | ||
![]() |
7782d9e46c | ||
![]() |
53fb48537d | ||
![]() |
7e5e763584 | ||
![]() |
1f2dab0a83 | ||
![]() |
b17726c9da | ||
![]() |
b267a504ca | ||
![]() |
45211e14b3 | ||
![]() |
2f128bcd3c | ||
![]() |
8855a5fffb | ||
![]() |
f2cbd26a85 | ||
![]() |
06125e6820 | ||
![]() |
186a9e3b41 | ||
![]() |
f9882a0c5c | ||
![]() |
d3315bda11 | ||
![]() |
586c11251a | ||
![]() |
a10be38d0e | ||
![]() |
d8f3622e16 | ||
![]() |
0bbde336b3 | ||
![]() |
faef125b74 | ||
![]() |
f897357b3c | ||
![]() |
40075761fa | ||
![]() |
298e950e81 | ||
![]() |
f02ed78a20 | ||
![]() |
82854236f3 | ||
![]() |
6558cd2f27 | ||
![]() |
f06ded9433 | ||
![]() |
1b867cc1a4 | ||
![]() |
1622dfcb53 | ||
![]() |
3b1961bb3d | ||
![]() |
6119945256 | ||
![]() |
3148538f3f | ||
![]() |
534e71b720 | ||
![]() |
b8f8b9e72c | ||
![]() |
533955f928 | ||
![]() |
5e4877b8a4 | ||
![]() |
1fc2f2e3e4 | ||
![]() |
69d7cfc5ce | ||
![]() |
76b2561893 | ||
![]() |
89053d5747 | ||
![]() |
813f63663c | ||
![]() |
0ea5b38fb1 | ||
![]() |
6c62c0681c | ||
![]() |
9693b2166a | ||
![]() |
87c429b5bd | ||
![]() |
8233f86181 | ||
![]() |
efa72e8d14 | ||
![]() |
6a5713f5e5 | ||
![]() |
333ba491f1 | ||
![]() |
23efba6193 | ||
![]() |
f25777f2d2 | ||
![]() |
6be1db00d1 | ||
![]() |
4a64280a7c | ||
![]() |
408142647c | ||
![]() |
41ed9a1a72 | ||
![]() |
92d9ce8117 | ||
![]() |
158dd49b3d | ||
![]() |
57d994db0c | ||
![]() |
87c5c69c87 | ||
![]() |
e6c8b83b20 | ||
![]() |
1afafc0c5f | ||
![]() |
616b18a9e5 | ||
![]() |
5c1e2e5d7a | ||
![]() |
696f3d19af | ||
![]() |
1b526eb573 | ||
![]() |
e159f15600 | ||
![]() |
af6d52e4c8 | ||
![]() |
99eb919f4e | ||
![]() |
1d640ee118 | ||
![]() |
aedbab17cc | ||
![]() |
3e00ce0d88 | ||
![]() |
621fc5a715 | ||
![]() |
b14e347da1 | ||
![]() |
034b8f09df | ||
![]() |
c537a0ba93 | ||
![]() |
897d775b14 | ||
![]() |
4f43f019e0 | ||
![]() |
1ea0aaef76 | ||
![]() |
fd1cfcff5f | ||
![]() |
c7308f4178 | ||
![]() |
5cc65c5bd3 | ||
![]() |
f216dd7617 | ||
![]() |
af022fd8b8 | ||
![]() |
5c7181ca21 | ||
![]() |
30892ebfa3 | ||
![]() |
ae2d71553e | ||
![]() |
154e418c34 | ||
![]() |
cfd1888969 | ||
![]() |
d53795184c | ||
![]() |
fe3609451e | ||
![]() |
3692c9eb64 | ||
![]() |
89a532eeac | ||
![]() |
85740dd09f | ||
![]() |
b05cfe4a84 | ||
![]() |
322b64c0b4 | ||
![]() |
601bc3e3cc | ||
![]() |
c77fe1f2cf | ||
![]() |
8e7744a695 | ||
![]() |
901d6894de | ||
![]() |
b463663175 | ||
![]() |
2294e9ffdc | ||
![]() |
1122f7281e | ||
![]() |
99ced12ac5 | ||
![]() |
2e80f9dfba | ||
![]() |
3a990dce75 | ||
![]() |
cc441258db | ||
![]() |
ee144acea9 | ||
![]() |
35b7ce1a96 | ||
![]() |
dc0e55bf16 | ||
![]() |
1b956af855 | ||
![]() |
a3dceee7c0 | ||
![]() |
7940417d23 | ||
![]() |
b1751543aa | ||
![]() |
034dcaeb9d | ||
![]() |
936fb136d2 | ||
![]() |
55ab528c87 | ||
![]() |
c544e38f34 | ||
![]() |
9b771baa5e | ||
![]() |
f607faef0b | ||
![]() |
cb16ff866c | ||
![]() |
d6e85ffb59 | ||
![]() |
f9e3fd7001 | ||
![]() |
ba1e14443c | ||
![]() |
80c88e13ff | ||
![]() |
35cd9e621a | ||
![]() |
ea66080197 | ||
![]() |
06837662a9 | ||
![]() |
f9024a0058 | ||
![]() |
493ff2eed5 | ||
![]() |
ad9e6a4ec5 | ||
![]() |
ac82435014 | ||
![]() |
d9257a5c0e | ||
![]() |
f7c90b58d6 | ||
![]() |
2f8e3559b5 | ||
![]() |
e96a914b6b | ||
![]() |
6ab2c7780c | ||
![]() |
6d6162333e | ||
![]() |
58b9dc581e | ||
![]() |
fa8eb43eaf | ||
![]() |
504f182448 | ||
![]() |
cf5fe2d107 | ||
![]() |
50f2025421 | ||
![]() |
fd5999378b | ||
![]() |
1894df882b | ||
![]() |
983599bdae | ||
![]() |
8451436cb8 | ||
![]() |
6319dd1bfb | ||
![]() |
d1ea8654e6 | ||
![]() |
37628953c5 | ||
![]() |
13288e1ed8 | ||
![]() |
6d82bbef17 | ||
![]() |
a46e2f2868 | ||
![]() |
6cbc460c19 | ||
![]() |
9cd2b767a9 | ||
![]() |
60b9c467e6 | ||
![]() |
ceabd7c791 | ||
![]() |
0be4e10462 | ||
![]() |
d95fafb5b3 | ||
![]() |
ef485044ea | ||
![]() |
c599a304c8 | ||
![]() |
6d918f195a | ||
![]() |
31a3748a18 | ||
![]() |
48212e7a44 | ||
![]() |
0f7241c2c2 | ||
![]() |
bd903cdbb5 | ||
![]() |
0b038f6477 | ||
![]() |
7e26daa51b | ||
![]() |
225d7701a4 | ||
![]() |
1cae39e281 | ||
![]() |
b635b064ee | ||
![]() |
640fc337af | ||
![]() |
43f2ac56ee | ||
![]() |
d3c7c0ebe3 | ||
![]() |
d15c8afcdf | ||
![]() |
20134a5367 | ||
![]() |
46c0280764 | ||
![]() |
980a99b6c9 | ||
![]() |
c69b72e199 | ||
![]() |
0abe2dfee0 | ||
![]() |
caf0a219a6 | ||
![]() |
4341c4cccc | ||
![]() |
054417354c | ||
![]() |
b9095995eb | ||
![]() |
a60bd33cfc | ||
![]() |
7eedb9b19b | ||
![]() |
e804a299e0 | ||
![]() |
bcf7530eef | ||
![]() |
bed982e705 | ||
![]() |
d9853d9683 | ||
![]() |
fbe4869d1e | ||
![]() |
ac04c46d3b | ||
![]() |
b1bd7307bb | ||
![]() |
8a3f860213 | ||
![]() |
e42e9530cb | ||
![]() |
b65353bc3c | ||
![]() |
83a77f1064 | ||
![]() |
75c087b79f | ||
![]() |
300785923c | ||
![]() |
00982d2742 | ||
![]() |
4f208b99ff | ||
![]() |
fa36b88af4 | ||
![]() |
8223a069fe | ||
![]() |
8de8de7669 | ||
![]() |
705b46b3a0 | ||
![]() |
e46e88344c | ||
![]() |
5c8561c903 | ||
![]() |
5fe2e8a59a | ||
![]() |
c722225c80 | ||
![]() |
584ceb3714 | ||
![]() |
902bed4db3 | ||
![]() |
e617ced1d3 | ||
![]() |
22464c434e | ||
![]() |
f33ded3107 | ||
![]() |
a82ff360c6 | ||
![]() |
14fa8b177d | ||
![]() |
e46bb2f948 | ||
![]() |
3eef0a65c2 | ||
![]() |
bcd188a0e0 | ||
![]() |
f38b6a1806 | ||
![]() |
4cc2a561d5 | ||
![]() |
f3e29c4f6a | ||
![]() |
2fc58a780e | ||
![]() |
561b0fc10e | ||
![]() |
b8f42fca56 | ||
![]() |
e8005c8d3a | ||
![]() |
335e4bd213 | ||
![]() |
0d21083c9a | ||
![]() |
698e0d08a1 | ||
![]() |
8e0108a0b8 | ||
![]() |
d9775c147f | ||
![]() |
b4ebf254c8 | ||
![]() |
dec7c4f722 | ||
![]() |
aaba43e754 | ||
![]() |
9604ad3dc1 | ||
![]() |
8e04bd12cf | ||
![]() |
270df5c5b0 | ||
![]() |
f5bea67515 | ||
![]() |
1ec4156b49 | ||
![]() |
5e33ca3da0 | ||
![]() |
b9a57715e8 | ||
![]() |
99640a35a3 | ||
![]() |
24681bbe10 | ||
![]() |
88cdbc2ad6 | ||
![]() |
a0c6ae2cba | ||
![]() |
9a51ae5def | ||
![]() |
f7c21868fe | ||
![]() |
5d968afa74 | ||
![]() |
b6e3f1c490 | ||
![]() |
cb4d65b5c9 | ||
![]() |
a902576334 | ||
![]() |
1c6463e66f | ||
![]() |
1cf5198372 | ||
![]() |
a9a5673069 | ||
![]() |
9d67857a34 | ||
![]() |
25fde3b5eb | ||
![]() |
0e3ca41b3c | ||
![]() |
318759cfa4 | ||
![]() |
73b5c12927 | ||
![]() |
c850cef711 | ||
![]() |
12fad68f58 | ||
![]() |
037db7c5ef | ||
![]() |
ea9aeef9d8 | ||
![]() |
63415f1074 | ||
![]() |
dded3912f8 | ||
![]() |
d35f0247a2 | ||
![]() |
76a7b5f067 | ||
![]() |
c864d700d2 | ||
![]() |
50e1040f1e | ||
![]() |
8a40026c5c | ||
![]() |
974250da6c | ||
![]() |
7042933b3b | ||
![]() |
8b7f5be878 | ||
![]() |
01afdc410e | ||
![]() |
db10103d8e | ||
![]() |
7f5299cf46 | ||
![]() |
ac7f04e669 | ||
![]() |
65740da979 | ||
![]() |
2795fe4579 | ||
![]() |
4ab773eb92 | ||
![]() |
66b512af5d | ||
![]() |
0f9a6417b0 | ||
![]() |
6a9e52d83c | ||
![]() |
1161d6cae2 | ||
![]() |
187696c973 | ||
![]() |
4b7b51d5cc | ||
![]() |
0e3213ff6d | ||
![]() |
9b092e918a | ||
![]() |
cfa38e875c | ||
![]() |
9ea7d75aa4 | ||
![]() |
165d272552 | ||
![]() |
9b876b30b2 | ||
![]() |
5e82064a7d | ||
![]() |
90fade8e72 | ||
![]() |
c038892795 | ||
![]() |
926eb34680 | ||
![]() |
e6e33faefb | ||
![]() |
0a2e046b28 | ||
![]() |
36a632dc02 | ||
![]() |
c9ce150fe8 | ||
![]() |
6496835515 | ||
![]() |
b404ce463f | ||
![]() |
b875b0faa2 | ||
![]() |
4786214e2a | ||
![]() |
0484976afa | ||
![]() |
19cc9f7fb0 | ||
![]() |
7706c38d3d | ||
![]() |
9acc36185b | ||
![]() |
be89516707 | ||
![]() |
e5acd1afb9 | ||
![]() |
f6e7f389d6 | ||
![]() |
b9eaf906e7 | ||
![]() |
84df0714d8 | ||
![]() |
c7650846a2 | ||
![]() |
ea97d6a028 | ||
![]() |
0e4a111f81 | ||
![]() |
037837b551 | ||
![]() |
c5eb3021c0 | ||
![]() |
3b8b03d8b4 | ||
![]() |
1afe46b19a | ||
![]() |
fe281f1786 | ||
![]() |
24ef4d3da2 | ||
![]() |
68192126e6 | ||
![]() |
a28c515ef6 | ||
![]() |
07526ada45 | ||
![]() |
71d9c2a53d | ||
![]() |
c0144db75c | ||
![]() |
5e8c95bde8 | ||
![]() |
8630542146 | ||
![]() |
a674657bcb | ||
![]() |
c625a3fa5b | ||
![]() |
ae6f0d49c2 | ||
![]() |
575a8bd9c8 | ||
![]() |
3db7551ad3 | ||
![]() |
37b535df30 | ||
![]() |
f30df92597 | ||
![]() |
9b18104343 | ||
![]() |
e2862ed097 | ||
![]() |
1c38c7010d | ||
![]() |
34ea3cf226 | ||
![]() |
54631026de | ||
![]() |
944250f7fd | ||
![]() |
ab0253ab07 | ||
![]() |
758e054c92 | ||
![]() |
187b44c7f3 | ||
![]() |
587ea5b424 | ||
![]() |
1a883f4f05 | ||
![]() |
540e6e4f99 | ||
![]() |
baf3d8f3ee | ||
![]() |
7a66c9b5f3 | ||
![]() |
15cd563612 | ||
![]() |
e2556189de | ||
![]() |
9236a8fd6c | ||
![]() |
303c5abfb4 | ||
![]() |
fc65190ef7 | ||
![]() |
f47a564819 | ||
![]() |
fa0814f939 | ||
![]() |
ddd931a0a3 | ||
![]() |
46010187c3 | ||
![]() |
877bd52ed7 | ||
![]() |
d964c5f27f | ||
![]() |
d35b02fa23 | ||
![]() |
21ece52a9f | ||
![]() |
c2ae160d23 | ||
![]() |
9c74c5c5dc | ||
![]() |
2e80cebc11 | ||
![]() |
80783199a9 | ||
![]() |
f418eaecf9 | ||
![]() |
901436a095 | ||
![]() |
6d557269c1 | ||
![]() |
a905188e95 | ||
![]() |
a21070c01b | ||
![]() |
5d0ee544f4 | ||
![]() |
e52a9e0a65 | ||
![]() |
67bf6ff3ce | ||
![]() |
000bee6327 | ||
![]() |
19a232cad7 | ||
![]() |
a744f75eb9 | ||
![]() |
5cf07fc50f | ||
![]() |
1143606bc8 | ||
![]() |
09f4885f89 | ||
![]() |
dfd92efa89 | ||
![]() |
c3fcfad910 | ||
![]() |
652588abed | ||
![]() |
2b4d5b73b9 | ||
![]() |
c08d959b59 | ||
![]() |
7783c1e0e1 | ||
![]() |
6afa67089a | ||
![]() |
26928ab407 | ||
![]() |
4f04421cb3 | ||
![]() |
4d1c723496 | ||
![]() |
ae5d537197 | ||
![]() |
2d21685d22 | ||
![]() |
d4c0d85cbc | ||
![]() |
26b268588f | ||
![]() |
781b57585b | ||
![]() |
a0b036a119 | ||
![]() |
c6afc61c94 | ||
![]() |
a1af83c0ab | ||
![]() |
4168addbb2 | ||
![]() |
600394458c | ||
![]() |
f33785a09c | ||
![]() |
d0d5068f72 | ||
![]() |
d70b8275b4 | ||
![]() |
7253f83ca3 | ||
![]() |
6171f27f8d | ||
![]() |
96b5684fa0 | ||
![]() |
4df409f77b | ||
![]() |
0f122884cc | ||
![]() |
f29c9fe22c | ||
![]() |
93230815f5 | ||
![]() |
632af91878 | ||
![]() |
81a0ee4b2d | ||
![]() |
967c655de0 | ||
![]() |
4bb19b9596 | ||
![]() |
d43b17519e | ||
![]() |
76a881df39 | ||
![]() |
f84ad3e1ea | ||
![]() |
9d11c29c3b | ||
![]() |
90b62a3e95 | ||
![]() |
4e4c559db6 | ||
![]() |
e7660bc8db | ||
![]() |
cfcc626de2 | ||
![]() |
b7a5602003 | ||
![]() |
b3a4d1795b | ||
![]() |
23de94785d | ||
![]() |
69b56f6658 | ||
![]() |
5ca6e6b5df | ||
![]() |
98c26dfff8 | ||
![]() |
a4e3136611 | ||
![]() |
ea8e6d88ab | ||
![]() |
202cb38c40 | ||
![]() |
d3c7ddd2f4 | ||
![]() |
bc19cd77ad | ||
![]() |
0005de6a98 | ||
![]() |
386d3cd997 | ||
![]() |
2d196b6779 | ||
![]() |
0cc055de3a | ||
![]() |
a96e5277db | ||
![]() |
7413634734 | ||
![]() |
1bfb176667 | ||
![]() |
4a90c7aef8 | ||
![]() |
b0992de59d | ||
![]() |
37e666817f | ||
![]() |
a607149b19 | ||
![]() |
3a11dba24f | ||
![]() |
c76a384b41 | ||
![]() |
dec69cc67b | ||
![]() |
0c21ae226b | ||
![]() |
835aad44bb | ||
![]() |
8a1f3a4c0b | ||
![]() |
8b646822fc | ||
![]() |
6d3e2b9386 | ||
![]() |
73cdf5ca81 | ||
![]() |
133936652d | ||
![]() |
66470b4937 | ||
![]() |
3f688a728b | ||
![]() |
0d306e9d41 | ||
![]() |
1e8132e610 | ||
![]() |
d672fccef4 | ||
![]() |
c194eddb1b | ||
![]() |
4ba4062519 | ||
![]() |
23753ec75a | ||
![]() |
d184f73160 | ||
![]() |
482081c41b | ||
![]() |
03b04acb16 | ||
![]() |
345a9d3525 | ||
![]() |
aee816ced9 | ||
![]() |
1e28081aa3 | ||
![]() |
ff0521e3aa | ||
![]() |
8cabc5953e | ||
![]() |
4a766a19cf | ||
![]() |
bd8052fedb | ||
![]() |
5fb4538315 | ||
![]() |
e78f16bcc4 | ||
![]() |
fe62f3508b | ||
![]() |
c11c22fc73 | ||
![]() |
056ab675cf | ||
![]() |
f00d543447 | ||
![]() |
72b616a990 | ||
![]() |
8ee4b180f9 | ||
![]() |
46e4b07a87 | ||
![]() |
3ec6101b16 | ||
![]() |
955b3e313b | ||
![]() |
3dc70f9878 | ||
![]() |
8e2be5e9a7 | ||
![]() |
46f3736f44 | ||
![]() |
dc12b189de | ||
![]() |
3f95bd53cd | ||
![]() |
23de45cea5 | ||
![]() |
ba6959b8c1 | ||
![]() |
91c9a6390c | ||
![]() |
a99478e2ea | ||
![]() |
12635da473 | ||
![]() |
36170c816a | ||
![]() |
50bad84747 | ||
![]() |
abd3efa318 | ||
![]() |
816493e01f | ||
![]() |
a0c9fd75d7 | ||
![]() |
94bf7101f8 | ||
![]() |
46424f63f2 | ||
![]() |
c33e93c662 | ||
![]() |
49b43eb3c8 | ||
![]() |
6b22b7a31f | ||
![]() |
b77167a4a1 | ||
![]() |
79a591d72d | ||
![]() |
8006e7a34d | ||
![]() |
abc45ded9b | ||
![]() |
ec05c07321 | ||
![]() |
27c056cbbf | ||
![]() |
b3779875d0 | ||
![]() |
748a451e23 | ||
![]() |
8b1999dc5b | ||
![]() |
a38e4b0b14 | ||
![]() |
129f652dc2 | ||
![]() |
5bf69476f6 | ||
![]() |
597c9761cb | ||
![]() |
b875cc9949 | ||
![]() |
e568c3888f | ||
![]() |
67875e2afa | ||
![]() |
dd17065129 | ||
![]() |
8d05ef3058 | ||
![]() |
66369b4b1d | ||
![]() |
9a33495694 | ||
![]() |
f0b2eaf70d | ||
![]() |
ef67f3eee6 | ||
![]() |
9cab659392 | ||
![]() |
dcd216daff | ||
![]() |
8f673d80d4 | ||
![]() |
3e81ebf8e9 | ||
![]() |
19d531922d | ||
![]() |
9109ae02a7 | ||
![]() |
8d3fe0c5c2 | ||
![]() |
f9185f201a | ||
![]() |
027380c013 | ||
![]() |
a73a787753 | ||
![]() |
bd9df789d1 | ||
![]() |
4fd4132f5e | ||
![]() |
68aa1312f5 | ||
![]() |
7974dbf477 | ||
![]() |
834fb3bebd | ||
![]() |
18fa317ee7 | ||
![]() |
414f1d1158 | ||
![]() |
c5e5a9b8ef | ||
![]() |
1ac1a968b9 | ||
![]() |
0d3a36e519 | ||
![]() |
ebce02c253 | ||
![]() |
78b400e8b0 | ||
![]() |
8d93f148be | ||
![]() |
4b8a2d2a6b | ||
![]() |
5fd549656b | ||
![]() |
a70dbb7e74 | ||
![]() |
a75f3fb87c | ||
![]() |
67e2768c3e | ||
![]() |
ece3ac967d | ||
![]() |
da71d8f4af | ||
![]() |
ac93af8eb5 | ||
![]() |
76cdbe74ba | ||
![]() |
ce4ea5071f | ||
![]() |
8a558eed36 | ||
![]() |
ce32cd576b | ||
![]() |
338793d891 | ||
![]() |
78ac41a613 | ||
![]() |
be23ccf23b | ||
![]() |
1ba5e433e5 | ||
![]() |
5bf4f569e4 | ||
![]() |
5a11844eff | ||
![]() |
14795b68f2 | ||
![]() |
bea42f5804 | ||
![]() |
fbbce302bc | ||
![]() |
4b9c605477 | ||
![]() |
a499ad6879 | ||
![]() |
76c5dc8999 | ||
![]() |
b985e14b13 | ||
![]() |
61de9cdbd4 | ||
![]() |
9208825975 | ||
![]() |
72a49f334a | ||
![]() |
b35ca3b739 | ||
![]() |
85950f17fa | ||
![]() |
78f95b5910 | ||
![]() |
909a09a0c0 | ||
![]() |
bb9fc56cc1 | ||
![]() |
9f3b4ccd14 | ||
![]() |
90bf976fe2 | ||
![]() |
388de9dc96 | ||
![]() |
8a0a46b1c9 | ||
![]() |
186163ec3f | ||
![]() |
91171c559a | ||
![]() |
36b483d04d | ||
![]() |
54e0a7f8a8 | ||
![]() |
6d4e96dea2 | ||
![]() |
a6958da091 | ||
![]() |
502bde5567 | ||
![]() |
d5702f9d51 | ||
![]() |
5141afe476 | ||
![]() |
4422219be7 | ||
![]() |
4b2afec108 | ||
![]() |
07bb8067ae | ||
![]() |
4f63eb0c7e | ||
![]() |
4ea7b2dd63 | ||
![]() |
e8189f7c69 | ||
![]() |
23c054caec | ||
![]() |
a084c8b344 | ||
![]() |
361069314f | ||
![]() |
d252514a39 | ||
![]() |
31d1edc0fb | ||
![]() |
987474726c | ||
![]() |
4beea63d3f | ||
![]() |
53f3b779bf | ||
![]() |
f59f424795 | ||
![]() |
c63ba5470a | ||
![]() |
935d6473ed | ||
![]() |
0faa4470fb | ||
![]() |
0281bdd90c | ||
![]() |
608ff73907 | ||
![]() |
c82ce9233b | ||
![]() |
cc75620976 | ||
![]() |
1cd8bfaded | ||
![]() |
65d9c304df | ||
![]() |
4b48ba4e8c | ||
![]() |
bf7bacceab | ||
![]() |
a56f461895 | ||
![]() |
e21ff916b0 | ||
![]() |
da20675ada | ||
![]() |
7364fb84ef | ||
![]() |
48f46333f8 | ||
![]() |
8407702b38 | ||
![]() |
e1a8b158e0 | ||
![]() |
7e30910ab8 | ||
![]() |
7fbee704ec | ||
![]() |
b1f94c7bc6 | ||
![]() |
90411967d6 | ||
![]() |
5719c623a4 | ||
![]() |
e210ec782a | ||
![]() |
229780f6ff | ||
![]() |
6490a9829b | ||
![]() |
6384d0708d | ||
![]() |
db1fde2956 | ||
![]() |
c86720a331 | ||
![]() |
2af158be26 | ||
![]() |
7115bd46ff | ||
![]() |
f84483896e | ||
![]() |
fe7bc174fb | ||
![]() |
e967d9ded3 | ||
![]() |
c3b55b6849 | ||
![]() |
3e193c9864 | ||
![]() |
d64e25e449 | ||
![]() |
c4707c612d | ||
![]() |
9d3448c880 | ||
![]() |
dad6a77645 | ||
![]() |
f64d3942d7 | ||
![]() |
45fe754759 | ||
![]() |
98f1d93628 | ||
![]() |
8785e1c3a4 | ||
![]() |
f00ceedae4 | ||
![]() |
7387e010c2 | ||
![]() |
a59dfff12f | ||
![]() |
f6128dd3ff | ||
![]() |
eeff88ece2 | ||
![]() |
bae1282f74 | ||
![]() |
d2007add75 | ||
![]() |
802db92d98 | ||
![]() |
a53e1e4ec3 | ||
![]() |
fd1ef4a62d | ||
![]() |
8ab9068d8e | ||
![]() |
47dd30d3b2 | ||
![]() |
fcdd042b02 | ||
![]() |
04855f9201 | ||
![]() |
cf0a5d5735 | ||
![]() |
bb2db1cf76 | ||
![]() |
0e69091455 | ||
![]() |
3cb5ed167a | ||
![]() |
1ffee15b83 | ||
![]() |
75b9f31acf | ||
![]() |
fc56b12690 | ||
![]() |
60e768436e | ||
![]() |
84f2192cde | ||
![]() |
97f2675d40 | ||
![]() |
6d881d4570 | ||
![]() |
42cc93dd0f | ||
![]() |
e9f34a0f09 | ||
![]() |
b9cb6d1c10 | ||
![]() |
7bf517e990 | ||
![]() |
ab54e147f2 | ||
![]() |
e677540fd6 | ||
![]() |
31e3aaeda0 | ||
![]() |
938fc317c9 | ||
![]() |
4c431c5432 | ||
![]() |
881b914c6a | ||
![]() |
df67836c1a | ||
![]() |
6a3a8ba4d0 | ||
![]() |
9e535c341e | ||
![]() |
17fa4ba804 | ||
![]() |
dd9a3c91fc | ||
![]() |
7015df37e3 | ||
![]() |
7ebdd4739a | ||
![]() |
c4bcb31a00 | ||
![]() |
0a18ee24ac | ||
![]() |
37d10b108e | ||
![]() |
b5cadeca2e | ||
![]() |
c8e93054bc | ||
![]() |
def32107af | ||
![]() |
1b84ae9f3f | ||
![]() |
73ce1f61a8 | ||
![]() |
8661cd1ee7 | ||
![]() |
53f55defda | ||
![]() |
d60dc60bc9 | ||
![]() |
bf1d7e6252 | ||
![]() |
c96b2767b9 | ||
![]() |
6c1f03eefd | ||
![]() |
cced83024b | ||
![]() |
1cd6ba3c1d | ||
![]() |
2365761ba5 | ||
![]() |
d3b4b70bfc | ||
![]() |
f95d5701a2 | ||
![]() |
a8c56afd0f | ||
![]() |
4de30aa47e | ||
![]() |
f05f7c920e | ||
![]() |
5f86509abc | ||
![]() |
1561391293 | ||
![]() |
60553a8a5e | ||
![]() |
e656074de4 | ||
![]() |
b81ff340b1 | ||
![]() |
77456ae0bc | ||
![]() |
9fd0e90850 | ||
![]() |
ab01cf1881 | ||
![]() |
0d10ca02db | ||
![]() |
0627df8116 | ||
![]() |
c88ea7150c | ||
![]() |
555954c71e | ||
![]() |
f231f02329 | ||
![]() |
b8af5dfde0 | ||
![]() |
ef3710fdc2 | ||
![]() |
bde114ad13 | ||
![]() |
9d138aa282 | ||
![]() |
42c4ea38cc | ||
![]() |
c0ba71c368 | ||
![]() |
7b2cb30a9d | ||
![]() |
0f55e65701 | ||
![]() |
aeb24b96eb | ||
![]() |
ad4700b3b1 | ||
![]() |
b2e5ade5ac | ||
![]() |
90a7b9b551 | ||
![]() |
31b6ab9b23 | ||
![]() |
4149c7782f | ||
![]() |
227f52d758 | ||
![]() |
baa2a871f1 | ||
![]() |
5bb619fe7b | ||
![]() |
fff3c552e2 | ||
![]() |
e19cc8bebf | ||
![]() |
f4f8debb92 | ||
![]() |
ea6b8b599f | ||
![]() |
c30f02ae4c | ||
![]() |
09450ba544 | ||
![]() |
df53968306 | ||
![]() |
19f753c15c | ||
![]() |
df530bb66d | ||
![]() |
fa49427df0 | ||
![]() |
6678d97cc4 | ||
![]() |
e3642a8d10 | ||
![]() |
f9022fdf16 | ||
![]() |
1c764139bf | ||
![]() |
048ed26f41 | ||
![]() |
c52e30e8e0 | ||
![]() |
0cb04ded36 | ||
![]() |
6cfad65ac7 | ||
![]() |
ed20805b10 | ||
![]() |
576303cd72 | ||
![]() |
0062e084f8 | ||
![]() |
b90d76dcfe | ||
![]() |
c95619b2bf | ||
![]() |
82150bd5b8 | ||
![]() |
9e03335ff8 | ||
![]() |
b3c5c3f0ea | ||
![]() |
65858dab3e | ||
![]() |
c968633d15 | ||
![]() |
39a8942daf | ||
![]() |
7705a7928e | ||
![]() |
d2c14b844e | ||
![]() |
3e45e6c165 | ||
![]() |
fe8334931f | ||
![]() |
f565c5f730 | ||
![]() |
c03e2febb0 | ||
![]() |
c2f4fb7ba7 | ||
![]() |
5f869e5d87 | ||
![]() |
65f1afc4e0 | ||
![]() |
aec2762bf1 | ||
![]() |
a41144a00f | ||
![]() |
aa28e8a7a6 | ||
![]() |
a1a51ce518 | ||
![]() |
90999e0ef9 | ||
![]() |
2ceeb17056 | ||
![]() |
18afdd6040 | ||
![]() |
b9972ec6bd | ||
![]() |
ebb53e87f3 | ||
![]() |
9f9d7325fd | ||
![]() |
742a005523 | ||
![]() |
3a28c06534 | ||
![]() |
46d5711071 | ||
![]() |
48113f3afd | ||
![]() |
be29972ddf | ||
![]() |
49b3a83f76 | ||
![]() |
342794c728 | ||
![]() |
3739638c81 | ||
![]() |
401351d9c8 | ||
![]() |
6073a03967 | ||
![]() |
3e3d294188 | ||
![]() |
f6f96ae5bf | ||
![]() |
62ccb53c24 | ||
![]() |
e410e22980 | ||
![]() |
fc5ceea335 | ||
![]() |
38af8d4737 | ||
![]() |
33b0cab596 | ||
![]() |
2a47e4a1e1 | ||
![]() |
46f53868c5 | ||
![]() |
eac7f11aa7 | ||
![]() |
e219188f46 | ||
![]() |
3df8c701a7 | ||
![]() |
1186813c75 | ||
![]() |
645b6fdc8a | ||
![]() |
ae0596a729 | ||
![]() |
bb5fd3c1f2 | ||
![]() |
532fa9c5f9 | ||
![]() |
80a4aa6fa6 | ||
![]() |
4f218f544f | ||
![]() |
f261f8d7d1 | ||
![]() |
e044d11782 | ||
![]() |
d2da459dd8 | ||
![]() |
b1e6a33d6b | ||
![]() |
0d276d0d61 | ||
![]() |
998936651a | ||
![]() |
1bec25e8e6 | ||
![]() |
f220e4183f | ||
![]() |
e965b57dc2 | ||
![]() |
5e6e1e237a | ||
![]() |
41fe364b49 | ||
![]() |
2953ba17c3 | ||
![]() |
f3b3e06329 | ||
![]() |
98249942d5 | ||
![]() |
0fc8445425 | ||
![]() |
943a1940e2 | ||
![]() |
15d166e30e | ||
![]() |
83619fda98 | ||
![]() |
12913a16fd | ||
![]() |
e23ad7833d | ||
![]() |
38aa760b57 | ||
![]() |
acb9244205 | ||
![]() |
3182606e99 | ||
![]() |
7cc8646ad3 | ||
![]() |
e793fced61 | ||
![]() |
248edb5dfd | ||
![]() |
9414a944b7 | ||
![]() |
756b8a2a29 | ||
![]() |
f142ed91fb | ||
![]() |
6aef54a9e0 | ||
![]() |
f1c9e596e8 | ||
![]() |
862ddde0db | ||
![]() |
ee5a060762 | ||
![]() |
42d293ee60 | ||
![]() |
04e27e160e | ||
![]() |
62dede02ea | ||
![]() |
6d1d7b5366 | ||
![]() |
55e5c12441 | ||
![]() |
0b34503c8a | ||
![]() |
dc69490e3a | ||
![]() |
1c241776a6 | ||
![]() |
6812b895e7 | ||
![]() |
ab439d0ed6 | ||
![]() |
c7a2c368d4 | ||
![]() |
2047860e71 | ||
![]() |
1dbe03b210 | ||
![]() |
b59a19c144 | ||
![]() |
558d288e7b | ||
![]() |
e24c8b6878 | ||
![]() |
1772af9583 | ||
![]() |
cb42f94d9c | ||
![]() |
38474c7316 | ||
![]() |
49febe1764 | ||
![]() |
65addc8206 | ||
![]() |
28f7e48dc6 | ||
![]() |
d97fc9ce4e | ||
![]() |
f26aeee819 | ||
![]() |
c071467b6a | ||
![]() |
334ca01092 | ||
![]() |
c122ec2e79 | ||
![]() |
d04014f875 | ||
![]() |
e1247b3e45 | ||
![]() |
8b9c445fef | ||
![]() |
a65eb502d2 | ||
![]() |
55c549a9f8 | ||
![]() |
56600ba1df | ||
![]() |
6b312f755e | ||
![]() |
d6267f797d | ||
![]() |
a2b8097b4b | ||
![]() |
22bbee1fa3 | ||
![]() |
fa1b38394c | ||
![]() |
441790be2d | ||
![]() |
5d66bb8794 | ||
![]() |
a5cdc9a1f4 | ||
![]() |
a5a2f9d01e | ||
![]() |
89fb727f61 | ||
![]() |
929e545514 | ||
![]() |
3e7a87f75a | ||
![]() |
caf40e40fb | ||
![]() |
b608f63a1a | ||
![]() |
dc44d9a0a8 | ||
![]() |
bb926dd301 | ||
![]() |
79cb836483 | ||
![]() |
f1c4e4a10e | ||
![]() |
798aedfc0f | ||
![]() |
1077c2a637 | ||
![]() |
cbe689607c | ||
![]() |
948b70cb0f | ||
![]() |
0263539202 | ||
![]() |
52e54cf0dc | ||
![]() |
24e7eeca0f | ||
![]() |
d76345264d | ||
![]() |
0eb115bf7e | ||
![]() |
30d2a1d8b6 | ||
![]() |
857c88e8d6 | ||
![]() |
ffb9646ce9 | ||
![]() |
db3724cf33 | ||
![]() |
466c083233 | ||
![]() |
ae2267220b | ||
![]() |
c92744c3d3 | ||
![]() |
35f075b887 | ||
![]() |
6cc4edc5e8 | ||
![]() |
c06091f78a | ||
![]() |
f85399e355 | ||
![]() |
47aaf04481 | ||
![]() |
7063a6925f | ||
![]() |
3cd04c4b81 | ||
![]() |
942c802431 | ||
![]() |
e6754eb880 | ||
![]() |
70d02cf1be | ||
![]() |
ef646b9576 | ||
![]() |
ecd541873b | ||
![]() |
5d10642e07 | ||
![]() |
da34acd35f | ||
![]() |
0108b8bfe3 | ||
![]() |
b16c3798a4 | ||
![]() |
4b33c42da7 | ||
![]() |
961b3177d5 | ||
![]() |
7dc85a624e | ||
![]() |
bfd215542b | ||
![]() |
d752275730 | ||
![]() |
be7e389bb5 | ||
![]() |
f96c60c1a0 | ||
![]() |
99234632b2 | ||
![]() |
3a7393e1dd | ||
![]() |
2d12f8b49e | ||
![]() |
3461f0ffc9 | ||
![]() |
f24f7f14c3 | ||
![]() |
917e57d475 | ||
![]() |
6b43c5c18c | ||
![]() |
7cd7059fbc | ||
![]() |
591a5c277c | ||
![]() |
164959a0c5 | ||
![]() |
47fa7bb22a | ||
![]() |
5b250c15f8 | ||
![]() |
b60f9fbc00 | ||
![]() |
8accb78fa9 | ||
![]() |
3d7c3c39ff | ||
![]() |
dd628006ec | ||
![]() |
6cec662ec4 | ||
![]() |
588b838deb | ||
![]() |
05203e2cf0 | ||
![]() |
80f8c2de78 | ||
![]() |
d011aeefc5 | ||
![]() |
44627c3b5f | ||
![]() |
925a61e4d7 | ||
![]() |
d8b17daf9d | ||
![]() |
5e40930f11 | ||
![]() |
b6c9ab0c15 | ||
![]() |
1a8f41010e | ||
![]() |
67f58b5217 | ||
![]() |
cdef5cd1ad | ||
![]() |
2efae80b97 | ||
![]() |
1157df1407 | ||
![]() |
94ac0a7797 | ||
![]() |
35cf05d6ca | ||
![]() |
18e1efc7ec | ||
![]() |
71ebb068f7 | ||
![]() |
e9170e630c | ||
![]() |
6ae642245e | ||
![]() |
a34d8549d0 | ||
![]() |
52e1df2df3 | ||
![]() |
d7a5efbd36 | ||
![]() |
9f5123d176 | ||
![]() |
ea7d4d323e | ||
![]() |
18da55bd81 | ||
![]() |
25424fe62e | ||
![]() |
c7e60cfd0c | ||
![]() |
3e19bcb6cb | ||
![]() |
6573c3b522 | ||
![]() |
17fff8c665 | ||
![]() |
fa9f0d9ff9 | ||
![]() |
77ccf3b929 | ||
![]() |
4b205aee91 | ||
![]() |
d348e211d4 | ||
![]() |
42539575a6 | ||
![]() |
8bce241170 | ||
![]() |
c039665a97 | ||
![]() |
92977f303d | ||
![]() |
0038f3b244 | ||
![]() |
2f1fb9fe2d | ||
![]() |
8c6d5408eb | ||
![]() |
3f6a55aabd | ||
![]() |
f37c25d00e | ||
![]() |
23821d6fad | ||
![]() |
c384c4ca6c | ||
![]() |
946ba2a8ae | ||
![]() |
55b673cc6f | ||
![]() |
8043409d38 | ||
![]() |
6d145bc4cb | ||
![]() |
26b2a4de36 | ||
![]() |
99b7f4d26e | ||
![]() |
f413339e75 | ||
![]() |
8a5567796f | ||
![]() |
112c68cd0c | ||
![]() |
4e5e542fb0 | ||
![]() |
7bfc41c6e1 | ||
![]() |
fec3c70886 | ||
![]() |
ccf063709e | ||
![]() |
9cab2cd940 | ||
![]() |
37dc1c9a82 | ||
![]() |
3286c93c8f | ||
![]() |
b918b6383b | ||
![]() |
9d8ffe9911 | ||
![]() |
24fa788609 | ||
![]() |
1edb8cf0e9 | ||
![]() |
25da4a6a79 | ||
![]() |
e1e5283963 | ||
![]() |
bc074abeba | ||
![]() |
70a8dd30e0 | ||
![]() |
d61a74fb88 | ||
![]() |
dfa341e1c0 | ||
![]() |
e825d3be83 | ||
![]() |
b5c8dc0fe3 | ||
![]() |
ebb2fe068c | ||
![]() |
246693b848 | ||
![]() |
ec75600e1c | ||
![]() |
ec7242576e | ||
![]() |
83a53c1008 | ||
![]() |
878b154604 | ||
![]() |
03101f001c | ||
![]() |
a5bbb6732d | ||
![]() |
11349561d6 | ||
![]() |
8bb6ed625b | ||
![]() |
046c263f13 | ||
![]() |
1043020f27 | ||
![]() |
17f2e39084 | ||
![]() |
4d9e3b9012 | ||
![]() |
135ff280b9 | ||
![]() |
631091940b | ||
![]() |
53d257ef0f | ||
![]() |
9e012dbc1a | ||
![]() |
7da5eead8a | ||
![]() |
f984f56459 | ||
![]() |
203799871c | ||
![]() |
ad826bf088 | ||
![]() |
e81c466d74 | ||
![]() |
e04d866b20 | ||
![]() |
d7a042b95d | ||
![]() |
5c51185388 | ||
![]() |
926266c7af | ||
![]() |
1bcf123dd5 | ||
![]() |
7c26fbbb2e | ||
![]() |
938fcb3e5e | ||
![]() |
3553f3be4e | ||
![]() |
8c4662e6e5 | ||
![]() |
e7610b2467 | ||
![]() |
79e60afd42 | ||
![]() |
3da93e7bf9 | ||
![]() |
1700154f00 | ||
![]() |
68571d8f57 | ||
![]() |
61461b7f59 | ||
![]() |
c27c3817a9 | ||
![]() |
08e1db45a9 | ||
![]() |
27c373ddf4 | ||
![]() |
e62d7bc1ba | ||
![]() |
0d680b060e | ||
![]() |
0f054aed88 | ||
![]() |
b4308ecb91 | ||
![]() |
e68ff28649 | ||
![]() |
cb946772b4 | ||
![]() |
f169585a55 | ||
![]() |
e5fbc68e0e | ||
![]() |
f32cad2667 | ||
![]() |
503f23ad3b | ||
![]() |
481b46ac9e | ||
![]() |
9c34ef7d74 | ||
![]() |
18fbaee9df | ||
![]() |
94b59e8b6f | ||
![]() |
e9c5cd543e | ||
![]() |
5e1d17dff2 | ||
![]() |
526838c77c | ||
![]() |
ef6b370d0e | ||
![]() |
38896205c8 | ||
![]() |
7221684337 | ||
![]() |
99e936bf2b | ||
![]() |
138fee9b52 | ||
![]() |
a19c1535e8 | ||
![]() |
05ba1d0fd4 | ||
![]() |
c2b3436770 | ||
![]() |
a0fd3aef98 | ||
![]() |
b112341d91 | ||
![]() |
0dba5607a8 | ||
![]() |
7378c4a9d8 | ||
![]() |
89e7ef36dc | ||
![]() |
39ed02bc53 | ||
![]() |
449dc17df8 | ||
![]() |
5cb3d86a1b | ||
![]() |
a3687dd653 | ||
![]() |
fbc5b8ceb7 | ||
![]() |
4c545fbba5 | ||
![]() |
7fda726bbe | ||
![]() |
e404e5e2de | ||
![]() |
930127348a | ||
![]() |
3db37e1d52 | ||
![]() |
b9c4a582ac | ||
![]() |
a085d9fbd7 | ||
![]() |
7f2356ba4b | ||
![]() |
7a7f668879 | ||
![]() |
69a05aa5de | ||
![]() |
c0c64a2d5d | ||
![]() |
3c3b4eb2af | ||
![]() |
1019e0bcfd | ||
![]() |
faf2c007aa | ||
![]() |
43678ac801 | ||
![]() |
f22d5aa46d | ||
![]() |
d599c1e740 | ||
![]() |
0cc4519fc0 | ||
![]() |
0265c85ba3 | ||
![]() |
7ec0670748 | ||
![]() |
d06517265f | ||
![]() |
a88e486468 | ||
![]() |
c22ff4c556 | ||
![]() |
d4c4e30fe4 | ||
![]() |
1ec3338d2e | ||
![]() |
bffcfd92da | ||
![]() |
f44517f4af | ||
![]() |
5087a5af21 | ||
![]() |
3a6331693a | ||
![]() |
56a28923ca | ||
![]() |
fb8ed718ce | ||
![]() |
45e5d89353 | ||
![]() |
d3fe02fb3e | ||
![]() |
7d2126e2b2 | ||
![]() |
1f4ae2f63a | ||
![]() |
b378066ebf | ||
![]() |
2210d1053a | ||
![]() |
bb6cd258f3 | ||
![]() |
b5adb02eb8 | ||
![]() |
8b702bcfa0 | ||
![]() |
3e11011229 | ||
![]() |
e5ba475147 | ||
![]() |
3cd537ecf2 | ||
![]() |
d7c7bc5d8e | ||
![]() |
9191b9e736 | ||
![]() |
ce340aba7a | ||
![]() |
62cc14c93b | ||
![]() |
a284e8c5eb | ||
![]() |
834c6df9eb | ||
![]() |
c74fe3c6e2 | ||
![]() |
ca542f8677 | ||
![]() |
d6e23b803b | ||
![]() |
8b327fbc82 | ||
![]() |
8432c2c9ea | ||
![]() |
94fd5485b6 | ||
![]() |
cd4680b422 | ||
![]() |
7e4a800352 | ||
![]() |
00bc097abb | ||
![]() |
5c3a56b283 | ||
![]() |
48ea805999 | ||
![]() |
6b753b05d6 | ||
![]() |
52d577c7dd | ||
![]() |
cf757ed01e | ||
![]() |
82dd88821c | ||
![]() |
0e3e90f94f | ||
![]() |
7c3086e9d9 | ||
![]() |
202e943d55 | ||
![]() |
36bcaaff55 | ||
![]() |
967fae142b | ||
![]() |
8f41dfec2e | ||
![]() |
1f0abef084 | ||
![]() |
0e6fbdfa5b | ||
![]() |
e881e1bfb3 | ||
![]() |
9e6cdd6106 | ||
![]() |
d1efe1d208 | ||
![]() |
2f2a8e537d | ||
![]() |
82de8b7c50 | ||
![]() |
fb194b855b | ||
![]() |
a4a9b8707d | ||
![]() |
c4c20bee7c | ||
![]() |
41b491fa7c | ||
![]() |
667d58bad4 | ||
![]() |
630464f38d | ||
![]() |
8050352ad8 | ||
![]() |
b6d0d4eb99 | ||
![]() |
70b129cc42 | ||
![]() |
c52b504140 | ||
![]() |
e987a50e9f | ||
![]() |
d7e7848c92 | ||
![]() |
9bb6dc52b8 | ||
![]() |
73df95c42d | ||
![]() |
f27e4033a6 | ||
![]() |
e523e54881 | ||
![]() |
606e5c0878 | ||
![]() |
4b13431a19 | ||
![]() |
87c8f9ff95 | ||
![]() |
5e61c60f85 | ||
![]() |
fbc9d5ecba | ||
![]() |
d381d31e5e | ||
![]() |
65e7204ec9 | ||
![]() |
0b5e3a93a5 | ||
![]() |
23d743bcae | ||
![]() |
3e1596d5fb | ||
![]() |
8a04fc3336 | ||
![]() |
bffdfea58a | ||
![]() |
449ea4b669 | ||
![]() |
e632806349 | ||
![]() |
9cc8b3656a | ||
![]() |
a3fff800d2 | ||
![]() |
48d767918f | ||
![]() |
4f249159d3 | ||
![]() |
0d19c2d42e | ||
![]() |
e53a40658d | ||
![]() |
0389e2c891 | ||
![]() |
8aa089178a | ||
![]() |
d3c8368b0c | ||
![]() |
ca4f026533 | ||
![]() |
7d02b36092 | ||
![]() |
9e634360fa | ||
![]() |
9cf811b048 | ||
![]() |
b0d38446d7 | ||
![]() |
dfe10ac61f | ||
![]() |
f41c851108 | ||
![]() |
522dbb1e13 | ||
![]() |
bc4315da1e | ||
![]() |
1a841b101e | ||
![]() |
cbcf3b7599 | ||
![]() |
4c4b3b8a8a | ||
![]() |
c562d09479 | ||
![]() |
ee7bef3395 | ||
![]() |
80fa5c2e36 | ||
![]() |
7212027937 | ||
![]() |
16b5e121cd | ||
![]() |
a87930542a | ||
![]() |
e9ba81149d | ||
![]() |
7ea207df5d | ||
![]() |
aaa40e34c3 | ||
![]() |
9b010074e1 | ||
![]() |
0359db23d9 | ||
![]() |
320f5fedfb | ||
![]() |
3e2d2e5f6b | ||
![]() |
b8d9dd15ac | ||
![]() |
936fcfb1c7 | ||
![]() |
fb60ffd319 | ||
![]() |
8c9f8de6d2 | ||
![]() |
18693fb380 | ||
![]() |
cf9242053d | ||
![]() |
47ee005457 | ||
![]() |
5b965349a5 | ||
![]() |
f7e9725e59 | ||
![]() |
17dc50c242 | ||
![]() |
deda2b2782 | ||
![]() |
344e13ebcb | ||
![]() |
a07d753da8 | ||
![]() |
3003100443 | ||
![]() |
bca4e5f0fa | ||
![]() |
9b61306f59 | ||
![]() |
b66e0b3ac5 | ||
![]() |
4a9e9b4eea | ||
![]() |
fc98552fdc | ||
![]() |
4911a394a6 | ||
![]() |
acc7a7e626 | ||
![]() |
eaa6b35778 | ||
![]() |
6059fb2aa6 | ||
![]() |
dc3329bae2 | ||
![]() |
41f4c247bc | ||
![]() |
a3f75fe3f4 | ||
![]() |
bf876f83df | ||
![]() |
b3088facf4 | ||
![]() |
44167ab84c | ||
![]() |
eb745d2aa0 | ||
![]() |
54bcb80b44 | ||
![]() |
f871cf1053 | ||
![]() |
8a484a623c | ||
![]() |
1cb984ba79 | ||
![]() |
4708b15c32 | ||
![]() |
93c8ec631f | ||
![]() |
a4ddd18f12 | ||
![]() |
e4012e12f9 | ||
![]() |
7427b4c839 | ||
![]() |
c7c030bda6 | ||
![]() |
64ebd808ef | ||
![]() |
59028c234c | ||
![]() |
a8c4058bdf | ||
![]() |
87d17ccbfb | ||
![]() |
9a4a534c92 | ||
![]() |
0e89a9f41e | ||
![]() |
f34920ea87 | ||
![]() |
5e9cc09fcb | ||
![]() |
7e93319873 | ||
![]() |
878f09460c | ||
![]() |
c9a01aeba5 | ||
![]() |
2154354a4f | ||
![]() |
490692316e | ||
![]() |
3c5d2ecc91 | ||
![]() |
a8d52c565e | ||
![]() |
2752afd5f5 | ||
![]() |
433230413e | ||
![]() |
b090ff9994 | ||
![]() |
68ace4a311 | ||
![]() |
65d6104ad2 | ||
![]() |
372b42c0bd | ||
![]() |
06845b3bec | ||
![]() |
cbcbd6f0a9 | ||
![]() |
af280f52ab | ||
![]() |
7674a62d40 | ||
![]() |
764a158cd7 | ||
![]() |
cb2a9a29fe | ||
![]() |
21e1906fbf | ||
![]() |
4c01dcd8eb | ||
![]() |
95939e4991 | ||
![]() |
10af8c8db7 | ||
![]() |
f29d417b30 | ||
![]() |
f2e071baaa | ||
![]() |
34fef37e54 | ||
![]() |
06e817af59 | ||
![]() |
55face52d8 | ||
![]() |
aba867ea14 | ||
![]() |
0921850a79 | ||
![]() |
377b0399a0 | ||
![]() |
49dfcd4227 | ||
![]() |
0ee1021bcc | ||
![]() |
e60d13f471 | ||
![]() |
1baff3f8d7 | ||
![]() |
1a4de42999 | ||
![]() |
f5e53afa7a | ||
![]() |
7886c2aa96 | ||
![]() |
ad069f0eba | ||
![]() |
3d68a0988b | ||
![]() |
3c7a02af1e | ||
![]() |
3fa1d2bfc0 | ||
![]() |
a413144bce | ||
![]() |
bd046f7670 | ||
![]() |
d8fb729aee | ||
![]() |
a2557fca87 | ||
![]() |
78a963fe33 | ||
![]() |
f3aef8df75 | ||
![]() |
b0757129d5 | ||
![]() |
de98718923 | ||
![]() |
0d1158335f | ||
![]() |
9860489f88 | ||
![]() |
25d37302a8 | ||
![]() |
5f1a6b6f64 | ||
![]() |
c39f69e5dd | ||
![]() |
8668bc2609 | ||
![]() |
65fbca47f9 | ||
![]() |
53c7077d1d | ||
![]() |
7eb6038f92 | ||
![]() |
d6c8b9b994 | ||
![]() |
8bd80eb2a6 | ||
![]() |
b36adb6aab | ||
![]() |
eefbe097c0 | ||
![]() |
5c6e389cd5 | ||
![]() |
126826eb5a | ||
![]() |
9bc0110b86 | ||
![]() |
10cd4754fd | ||
![]() |
10f9fd6146 | ||
![]() |
ffb0dadbc7 | ||
![]() |
9c1e42cc9b | ||
![]() |
911dedf3d7 | ||
![]() |
6a9187c1ba | ||
![]() |
5cdd9d2027 | ||
![]() |
70826d326b | ||
![]() |
0336d640ec | ||
![]() |
80eefa92ce | ||
![]() |
f1a861d1c1 | ||
![]() |
1eda7c8565 | ||
![]() |
6ce2231e70 | ||
![]() |
6477ad2cfc | ||
![]() |
225ec6f5ed | ||
![]() |
91172654e4 | ||
![]() |
ebadd7fd3f | ||
![]() |
2d3248504b | ||
![]() |
78b12c7b80 | ||
![]() |
42a6dc44f4 | ||
![]() |
832eabfeab | ||
![]() |
2fe22acc0d | ||
![]() |
554bf821d8 | ||
![]() |
dcf2c32fd8 | ||
![]() |
215d7ec1b9 | ||
![]() |
33bd8fb9d9 | ||
![]() |
ab9343a788 | ||
![]() |
263032b680 | ||
![]() |
cc9bc7703a | ||
![]() |
90f738608f | ||
![]() |
d0cf26b342 | ||
![]() |
51f6708fc6 | ||
![]() |
c6fcef6e98 | ||
![]() |
0c3a24318a | ||
![]() |
868657477c | ||
![]() |
c77f3e0985 | ||
![]() |
130a222821 | ||
![]() |
e0facd97c7 | ||
![]() |
01eba895d1 | ||
![]() |
74196a3781 | ||
![]() |
fdfc23d878 | ||
![]() |
c4bdf39abc | ||
![]() |
7e8a0e5c5a | ||
![]() |
ad14feae94 | ||
![]() |
2e7458a246 | ||
![]() |
fd7fe5d96e | ||
![]() |
d8872ca278 | ||
![]() |
49e6c2ed75 | ||
![]() |
f24c7c81c0 | ||
![]() |
fb7a0b5816 | ||
![]() |
8bb76da6b5 | ||
![]() |
20816fd77a | ||
![]() |
aa7e206329 | ||
![]() |
a1b9bbb726 | ||
![]() |
0a64d121d9 | ||
![]() |
823a0c86d3 | ||
![]() |
5743d87a43 | ||
![]() |
871d2bad17 | ||
![]() |
547da89c7d | ||
![]() |
4ecd036d0a | ||
![]() |
b2fb92cf0f | ||
![]() |
3d73ce63ca | ||
![]() |
eb267e8a57 | ||
![]() |
40bfa3ef04 | ||
![]() |
9b3458fba0 | ||
![]() |
86eb487a38 | ||
![]() |
091d6f6a3e | ||
![]() |
885f8e1856 | ||
![]() |
c88902e640 | ||
![]() |
0e45f10d99 | ||
![]() |
41d7515f85 | ||
![]() |
3be7eafa6b | ||
![]() |
9dd1a8fb2e | ||
![]() |
ecae4c03f9 | ||
![]() |
ff67fb337e | ||
![]() |
100a131913 | ||
![]() |
7fc3e7dd8b | ||
![]() |
e4bcdd7b4d | ||
![]() |
bce65e2140 | ||
![]() |
7747ec5b6d | ||
![]() |
c3b797b414 | ||
![]() |
0343c5e692 | ||
![]() |
1621e5d6fb | ||
![]() |
6311474fa7 | ||
![]() |
e0e373c357 | ||
![]() |
9fff26b900 | ||
![]() |
d439bc8c2f | ||
![]() |
fe52f7c392 | ||
![]() |
82207598f0 | ||
![]() |
a2bef1fa52 | ||
![]() |
3762cdc8c0 | ||
![]() |
b224760aba | ||
![]() |
cbdd14fa82 | ||
![]() |
96d6e0f8a2 | ||
![]() |
a44ad63440 | ||
![]() |
c3592e8c4a | ||
![]() |
d153d3b761 | ||
![]() |
60561578d8 | ||
![]() |
b8bc96c181 | ||
![]() |
005d6b4ccf | ||
![]() |
f972fb6920 | ||
![]() |
77078f2ce2 | ||
![]() |
dae6d60163 | ||
![]() |
264d6afe5d | ||
![]() |
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 |
@@ -1,3 +0,0 @@
|
||||
.[]
|
||||
.head
|
||||
.label
|
@@ -1,2 +0,0 @@
|
||||
.links
|
||||
.next
|
@@ -1,39 +0,0 @@
|
||||
(
|
||||
.data |
|
||||
map(
|
||||
select(
|
||||
.relationships
|
||||
.currently_entitled_tiers
|
||||
.data[]
|
||||
)
|
||||
) |
|
||||
map(
|
||||
.relationships
|
||||
.user
|
||||
.data
|
||||
.id
|
||||
)
|
||||
) as $data |
|
||||
.included |
|
||||
map(
|
||||
select(
|
||||
.id as $id |
|
||||
$data |
|
||||
contains(
|
||||
[
|
||||
$id
|
||||
]
|
||||
)
|
||||
)
|
||||
) |
|
||||
map(
|
||||
.attributes |
|
||||
[
|
||||
.full_name,
|
||||
.thumb_url,
|
||||
.url
|
||||
] |
|
||||
@tsv
|
||||
) |
|
||||
.[] |
|
||||
@text
|
@@ -1,87 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# __MISSKEY_BEARER_TOKEN=
|
||||
# __MISSKEY_CAMPAIGN_ID=
|
||||
# __MISSKEY_GITHUB_TOKEN=
|
||||
# __MISSKEY_HEAD=syuilo:patch-autogen
|
||||
# __MISSKEY_REPO=syuilo/misskey
|
||||
# __MISSKEY_BRANCH=develop
|
||||
test "$(curl -LSs -w '\n' -- "https://api.github.com/repos/$REPO/pulls?access_token=$__MISSKEY_GITHUB_TOKEN" | jq -r -f check_pr.jq | grep $__MISSKEY_HEAD)" && exit 1
|
||||
cd "$(dirname $0)/.." && \
|
||||
touch null.cache && \
|
||||
rm *.cache && \
|
||||
git checkout $__MISSKEY_BRANCH && \
|
||||
git pull origin $__MISSKEY_BRANCH && \
|
||||
git pull upstream $__MISSKEY_BRANCH && \
|
||||
git stash && \
|
||||
git rebase -f upstream/$__MISSKEY_BRANCH && \
|
||||
git branch patch-autogen && \
|
||||
git checkout patch-autogen && \
|
||||
git reset --hard HEAD || \
|
||||
exit 1
|
||||
touch patreon.md.cache && \
|
||||
rm patreon.md.cache && \
|
||||
echo '<!-- PATREON_START -->' > patreon.md.cache && \
|
||||
url="https://www.patreon.com/api/oauth2/v2/campaigns/$__MISSKEY_CAMPAIGN_ID/members?include=currently_entitled_tiers,user&fields%5Btier%5D=title&fields%5Buser%5D=full_name,thumb_url,url,hide_pledges"
|
||||
while :
|
||||
do
|
||||
touch patreon.raw.cache && \
|
||||
rm patreon.raw.cache && \
|
||||
curl -LSs -w '\n' -H "Authorization: Bearer $__MISSKEY_BEARER_TOKEN" -- $url > patreon.raw.cache && \
|
||||
touch patreon.cache && \
|
||||
rm patreon.cache && \
|
||||
cat patreon.raw.cache | \
|
||||
jq -r -f patreon.jq >> patreon.cache && \
|
||||
echo '<table><tr>' >> patreon.md.cache && \
|
||||
cat patreon.cache | \
|
||||
awk -F'\t' '{print $2,$1}' | \
|
||||
sed -e 's/ /\\" alt=\\"/' | \
|
||||
xargs -I% echo '<td><img src="%" width="100"></td>' >> patreon.md.cache && \
|
||||
echo '</tr><tr>' >> patreon.md.cache && \
|
||||
cat patreon.cache | \
|
||||
awk -F'\t' '{print $3,$1}' | \
|
||||
sed -e 's/ /\\">/' | \
|
||||
xargs -I% echo '<td><a href="%</a></td>' >> patreon.md.cache && \
|
||||
echo '</tr></table>' >> patreon.md.cache || \
|
||||
exit 1
|
||||
new_url="$(cat patreon.raw.cache | jq -r -f next_url.jq)"
|
||||
test "$new_url" = 'null' && \
|
||||
break || \
|
||||
URL="$url"
|
||||
done
|
||||
ignore= && \
|
||||
echo -e "\n**Last updated:** $(date -uR | sed 's/\+0000/UTC/')\n<!-- PATREON_END -->" >> patreon.md.cache && \
|
||||
touch README.md && \
|
||||
touch .autogen/README.md && \
|
||||
rm .autogen/README.md && \
|
||||
mv README.md .autogen/README.md && \
|
||||
cat .autogen/README.md | while IFS= read line;
|
||||
do
|
||||
if [[ -z "$ignore" ]]
|
||||
then
|
||||
if [[ "$line" = '<!-- PATREON_START -->' ]]
|
||||
then
|
||||
ignore='PATREON_INSIDE'
|
||||
else
|
||||
echo "$line" >> README.md
|
||||
fi
|
||||
else
|
||||
if [[ "$LINE" = '<!-- PATREON_END -->' ]]
|
||||
then
|
||||
ignore=
|
||||
cat patreon.md.cache >> README.md
|
||||
fi
|
||||
fi
|
||||
done
|
||||
cat patreon.md.cache
|
||||
touch null.cache && \
|
||||
rm *.cache && \
|
||||
diff .autogen/README.md README.md > diff.cache
|
||||
cat diff.cache && \
|
||||
test 4 -lt $(cat diff.cache | wc -l) && \
|
||||
git add README.md && \
|
||||
git commit -m 'Update README.md [AUTOGEN]' && \
|
||||
git push -f origin patch-autogen && \
|
||||
curl -LSs -w '\n' -X POST -d '{"title":"[AUTOMATED] Update README.md","body":"*This pull request was created by a tool.*","head":"'$__MISSKEY_HEAD'","base":"'$__MISSKEY_BRANCH'"}' -- "https://api.github.com/repos/$__MISSKEY_REPO/pulls?access_token=$__MISSKEY_GITHUB_TOKEN"
|
||||
git stash
|
||||
git checkout $__MISSKEY_BRANCH
|
||||
git branch -D patch-autogen
|
13
.babelrc
13
.babelrc
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"plugins": [
|
||||
[
|
||||
"@babel/plugin-transform-runtime",
|
||||
{
|
||||
"corejs": {
|
||||
"version": 3,
|
||||
"proposals": true
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
@@ -1,49 +0,0 @@
|
||||
version: 2.1
|
||||
|
||||
executors:
|
||||
docker:
|
||||
working_directory: /tmp/workspace
|
||||
docker:
|
||||
- image: docker:latest
|
||||
|
||||
jobs:
|
||||
docker:
|
||||
parameters:
|
||||
with_deploy:
|
||||
type: boolean
|
||||
default: false
|
||||
executor: docker
|
||||
steps:
|
||||
- checkout
|
||||
- setup_remote_docker:
|
||||
version: 19.03.13
|
||||
- run:
|
||||
name: Build
|
||||
command: |
|
||||
docker build -t misskey/misskey .
|
||||
- when:
|
||||
condition: <<parameters.with_deploy>>
|
||||
steps:
|
||||
- run:
|
||||
name: Deploy
|
||||
command: |
|
||||
if [ "$DOCKERHUB_USERNAME$DOCKERHUB_PASSWORD" ]
|
||||
then
|
||||
apk update && apk add jq
|
||||
docker tag misskey/misskey misskey/misskey:$(cat package.json | jq -r .version)
|
||||
docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD
|
||||
docker push -a misskey/misskey
|
||||
else
|
||||
echo -e '\033[0;33mAborted deploying to Docker Hub\033[0;39m'
|
||||
fi
|
||||
|
||||
workflows:
|
||||
version: 2
|
||||
docker:
|
||||
jobs:
|
||||
- docker:
|
||||
name: auto-build
|
||||
with_deploy: true
|
||||
filters:
|
||||
branches:
|
||||
only: master
|
@@ -1,12 +0,0 @@
|
||||
url: 'http://misskey.local'
|
||||
port: 8080
|
||||
db:
|
||||
host: localhost
|
||||
port: 5432
|
||||
db: test-misskey
|
||||
user: postgres
|
||||
pass: ''
|
||||
redis:
|
||||
host: localhost
|
||||
port: 6379
|
||||
id: aid
|
@@ -1,12 +0,0 @@
|
||||
url: 'http://misskey.local'
|
||||
port: 8080
|
||||
db:
|
||||
host: localhost
|
||||
port: 5432
|
||||
db: test-misskey
|
||||
user: postgres
|
||||
pass: ''
|
||||
redis:
|
||||
host: localhost
|
||||
port: 6379
|
||||
id: aid
|
@@ -15,10 +15,7 @@ url: https://example.tld/
|
||||
#───┘ Port and TLS settings └───────────────────────────────────
|
||||
|
||||
#
|
||||
# Misskey supports two deployment options for public.
|
||||
#
|
||||
|
||||
# Option 1: With Reverse Proxy
|
||||
# Misskey requires a reverse proxy to support HTTPS connections.
|
||||
#
|
||||
# +----- https://example.tld/ ------------+
|
||||
# +------+ |+-------------+ +----------------+|
|
||||
@@ -26,30 +23,12 @@ url: https://example.tld/
|
||||
# +------+ |+-------------+ +----------------+|
|
||||
# +---------------------------------------+
|
||||
#
|
||||
# You need to setup reverse proxy. (eg. nginx)
|
||||
# You do not define 'https' section.
|
||||
# You need to set up a reverse proxy. (e.g. nginx)
|
||||
# An encrypted connection with HTTPS is highly recommended
|
||||
# because tokens may be transferred in GET requests.
|
||||
|
||||
# Option 2: Standalone
|
||||
#
|
||||
# +- https://example.tld/ -+
|
||||
# +------+ | +---------------+ |
|
||||
# | User | ---> | | Misskey (443) | |
|
||||
# +------+ | +---------------+ |
|
||||
# +------------------------+
|
||||
#
|
||||
# You need to run Misskey as root.
|
||||
# You need to set Certificate in 'https' section.
|
||||
|
||||
# To use option 1, uncomment below line.
|
||||
#port: 3000 # A port that your Misskey server should listen.
|
||||
|
||||
# To use option 2, uncomment below lines.
|
||||
#port: 443
|
||||
|
||||
#https:
|
||||
# # path for certification
|
||||
# key: /etc/letsencrypt/live/example.tld/privkey.pem
|
||||
# cert: /etc/letsencrypt/live/example.tld/fullchain.pem
|
||||
# The port that your Misskey server should listen on.
|
||||
port: 3000
|
||||
|
||||
# ┌──────────────────────────┐
|
||||
#───┘ PostgreSQL configuration └────────────────────────────────
|
||||
@@ -155,5 +134,15 @@ id: 'aid'
|
||||
# Media Proxy
|
||||
#mediaProxy: https://example.com/proxy
|
||||
|
||||
# Proxy remote files (default: false)
|
||||
#proxyRemoteFiles: true
|
||||
|
||||
# Sign to ActivityPub GET request (default: false)
|
||||
#signToActivityPubGet: true
|
||||
|
||||
#allowedPrivateNetworks: [
|
||||
# '127.0.0.1/32'
|
||||
#]
|
||||
|
||||
# Upload or download file size limits (bytes)
|
||||
#maxFileSize: 262144000
|
||||
|
@@ -1,8 +1,8 @@
|
||||
.autogen
|
||||
.git
|
||||
.github
|
||||
.travis
|
||||
.vscode
|
||||
.config
|
||||
Dockerfile
|
||||
build/
|
||||
built/
|
||||
@@ -12,3 +12,4 @@ elasticsearch/
|
||||
node_modules/
|
||||
redis/
|
||||
files/
|
||||
misskey-assets/
|
||||
|
31
.eslintrc
31
.eslintrc
@@ -1,31 +0,0 @@
|
||||
{
|
||||
"parserOptions": {
|
||||
"parser": "@typescript-eslint/parser"
|
||||
},
|
||||
"extends": [
|
||||
"eslint:recommended",
|
||||
"plugin:vue/recommended"
|
||||
],
|
||||
"rules": {
|
||||
"vue/require-v-for-key": 0,
|
||||
"vue/max-attributes-per-line": 0,
|
||||
"vue/html-indent": 0,
|
||||
"vue/html-self-closing": 0,
|
||||
"vue/no-unused-vars": 0,
|
||||
"vue/attributes-order": 0,
|
||||
"vue/require-prop-types": 0,
|
||||
"vue/require-default-prop": 0,
|
||||
"vue/html-closing-bracket-spacing": 0,
|
||||
"vue/singleline-html-element-content-newline": 0,
|
||||
"vue/no-v-html": 0,
|
||||
"no-console": 0,
|
||||
"no-unused-vars": 0,
|
||||
"no-empty": 0
|
||||
},
|
||||
"globals": {
|
||||
"ENV": true,
|
||||
"VERSION": true,
|
||||
"API": true,
|
||||
"LANGS": true
|
||||
}
|
||||
}
|
38
.github/CODEOWNERS
vendored
38
.github/CODEOWNERS
vendored
@@ -1,38 +0,0 @@
|
||||
# PATH OWNERS
|
||||
/.autogen/ @acid-chicken
|
||||
/.circleci/ @syuilo @acid-chicken
|
||||
/.config/ @syuilo @AyaMorisawa @mei23 @acid-chicken @rinsuki
|
||||
# /.config/mongo_initdb_example.js @khws4v1
|
||||
/.github/ @syuilo @AyaMorisawa @acid-chicken
|
||||
/.vscode/ @acid-chicken
|
||||
/assets/ @syuilo # @tamaina
|
||||
/docs/ @syuilo
|
||||
/docs/*.en.md @AyaMorisawa # @skid9000
|
||||
# /docs/*.fr.md @BoFFire
|
||||
# /docs/docker.*.md @khws4v1
|
||||
/locales/ @syuilo
|
||||
/src/ @syuilo @AyaMorisawa @mei23 @acid-chicken @rinsuki
|
||||
# /src/crypto_key.cc @akihikodaki
|
||||
# /src/crypto_key.d.ts @akihikodaki
|
||||
/.dockerignore @syuilo # @khws4v1
|
||||
/.editorconfig @syuilo @AyaMorisawa
|
||||
/.eslintrc @syuilo
|
||||
/.gitattributes @syuilo
|
||||
/.gitignore @syuilo
|
||||
/.npmrc @syuilo
|
||||
/.vsls.json @AyaMorisawa
|
||||
/CHANGELOG.md @syuilo
|
||||
/CODE_OF_CONDUCT.md @syuilo
|
||||
/CONTRIBUTING.md @syuilo
|
||||
/Dockerfile @syuilo @AyaMorisawa @acid-chicken # @khws4v1
|
||||
/LICENSE @syuilo
|
||||
/README.md @syuilo @AyaMorisawa @acid-chicken # @nikhiljha
|
||||
# /binding.gyp @akihikodaki
|
||||
/crowdin.yml @syuilo
|
||||
# /docker-compose.yml @khws4v1
|
||||
/gulpfile.ts @syuilo @AyaMorisawa
|
||||
/jsconfig.json @syuilo @AyaMorisawa
|
||||
/package.json @syuilo @AyaMorisawa
|
||||
/tsconfig.json @syuilo @AyaMorisawa
|
||||
/tslint.json @syuilo @AyaMorisawa
|
||||
/webpack.config.ts @syuilo @AyaMorisawa
|
18
.github/ISSUE_TEMPLATE/01_bug-report.md
vendored
18
.github/ISSUE_TEMPLATE/01_bug-report.md
vendored
@@ -7,17 +7,25 @@ assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
Thanks for reporting!
|
||||
First, in order to avoid duplicate Issues, please search to see if the problem you found has already been reported.
|
||||
-->
|
||||
|
||||
## 💡 Summary
|
||||
|
||||
<!-- Tell us what the bug is -->
|
||||
|
||||
## 🙂 Expected Behavior
|
||||
## 🥰 Expected Behavior
|
||||
|
||||
<!--- Tell us what should happen -->
|
||||
|
||||
## ☹️ Actual Behavior
|
||||
## 🤬 Actual Behavior
|
||||
|
||||
<!--- Tell us what happens instead of the expected behavior -->
|
||||
<!--
|
||||
Tell us what happens instead of the expected behavior.
|
||||
Please include errors from the developer console and/or server log files if you have access to them.
|
||||
-->
|
||||
|
||||
## 📝 Steps to Reproduce
|
||||
|
||||
@@ -28,3 +36,7 @@ assignees: ''
|
||||
## 📌 Environment
|
||||
|
||||
<!-- Tell us where on the platform it happens -->
|
||||
|
||||
Misskey version:
|
||||
Your OS:
|
||||
Your browser:
|
||||
|
7
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
7
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
contact_links:
|
||||
- name: 👪 Misskey Forum
|
||||
url: https://forum.misskey.io/
|
||||
about: Ask questions and share knowledge
|
||||
- name: 💬 Misskey official Discord
|
||||
url: https://discord.gg/Wp8gVStHW3
|
||||
about: Chat freely about Misskey
|
28
.github/PULL_REQUEST_TEMPLATE.md
vendored
28
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -1,13 +1,17 @@
|
||||
## Summary
|
||||
<!-- ℹ お読みください / README
|
||||
PRありがとうございます! PRを作成する前に、コントリビューションガイドをご確認ください:
|
||||
Thank you for your PR! Before creating a PR, please check the contribution guide:
|
||||
https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md
|
||||
-->
|
||||
|
||||
<!--
|
||||
-
|
||||
- * Please describe your changes here *
|
||||
-
|
||||
- If you are going to resolve some issue, please add this context.
|
||||
- Resolve #ISSUE_NUMBER
|
||||
-
|
||||
- If you are going to fix some bug issue, please add this context.
|
||||
- Fix #ISSUE_NUMBER
|
||||
-
|
||||
-->
|
||||
# What
|
||||
<!-- このPRで何をしたのか? どう変わるのか? -->
|
||||
<!-- What did you do with this PR? How will it change things? -->
|
||||
|
||||
# Why
|
||||
<!-- なぜそうするのか? どういう意図なのか? 何が困っているのか? -->
|
||||
<!-- Why do you do it? What are your intentions? What is the problem? -->
|
||||
|
||||
# Additional info (optional)
|
||||
<!-- テスト観点など -->
|
||||
<!-- Test perspective, etc -->
|
||||
|
22
.github/dependabot.yml
vendored
Normal file
22
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
# To get started with Dependabot version updates, you'll need to specify which
|
||||
# package ecosystems to update and where the package manifests are located.
|
||||
# Please see the documentation for all configuration options:
|
||||
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: npm
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: daily
|
||||
open-pull-requests-limit: 0
|
||||
- package-ecosystem: npm
|
||||
directory: "/packages/backend"
|
||||
schedule:
|
||||
interval: daily
|
||||
open-pull-requests-limit: 0
|
||||
- package-ecosystem: npm
|
||||
directory: "/packages/client"
|
||||
schedule:
|
||||
interval: daily
|
||||
open-pull-requests-limit: 0
|
12
.github/labeler.yml
vendored
Normal file
12
.github/labeler.yml
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
'⚙️Server':
|
||||
- packages/backend/**/*
|
||||
|
||||
'🖥️Client':
|
||||
- packages/client/**/*
|
||||
|
||||
'🧪Test':
|
||||
- cypress/**/*
|
||||
- packages/backend/test/**/*
|
||||
|
||||
'‼️ wrong locales':
|
||||
- any: ['locales/*.yml', '!locales/ja-JP.yml']
|
15
.github/misskey/test.yml
vendored
Normal file
15
.github/misskey/test.yml
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
url: 'http://misskey.local'
|
||||
|
||||
# ローカルでテストするときにポートを被らないようにするためデフォルトのものとは変える(以下同じ)
|
||||
port: 61812
|
||||
|
||||
db:
|
||||
host: localhost
|
||||
port: 54312
|
||||
db: test-misskey
|
||||
user: postgres
|
||||
pass: ''
|
||||
redis:
|
||||
host: localhost
|
||||
port: 56312
|
||||
id: aid
|
33
.github/workflows/docker-develop.yml
vendored
Normal file
33
.github/workflows/docker-develop.yml
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
name: Publish Docker image (develop)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- develop
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
push_to_registry:
|
||||
name: Push Docker image to Docker Hub
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Check out the repo
|
||||
uses: actions/checkout@v2
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v3
|
||||
with:
|
||||
images: misskey/misskey
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
- name: Build and Push to Docker Hub
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
tags: misskey/misskey:develop
|
||||
labels: develop
|
38
.github/workflows/docker.yml
vendored
38
.github/workflows/docker.yml
vendored
@@ -1,18 +1,32 @@
|
||||
name: Docker build
|
||||
name: Publish Docker image
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
pull_request:
|
||||
release:
|
||||
types: [published]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
push_to_registry:
|
||||
name: Push Docker image to Docker Hub
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Pull previous build result (for cache)
|
||||
run: docker pull misskey/misskey:latest
|
||||
- name: Build docker container
|
||||
run: docker build --cache-from misskey/misskey:latest -t misskey/misskey .
|
||||
- name: Check out the repo
|
||||
uses: actions/checkout@v2
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v3
|
||||
with:
|
||||
images: misskey/misskey
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
- name: Build and Push to Docker Hub
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
|
16
.github/workflows/labeler.yml
vendored
Normal file
16
.github/workflows/labeler.yml
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
name: "Pull Request Labeler"
|
||||
on:
|
||||
pull_request_target:
|
||||
branches-ignore:
|
||||
- 'l10n_develop'
|
||||
|
||||
jobs:
|
||||
triage:
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/labeler@v4
|
||||
with:
|
||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
39
.github/workflows/lint.yml
vendored
Normal file
39
.github/workflows/lint.yml
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
name: Lint
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
backend:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 18.x
|
||||
cache: 'yarn'
|
||||
cache-dependency-path: |
|
||||
packages/backend/yarn.lock
|
||||
- run: yarn install
|
||||
- run: yarn --cwd ./packages/backend lint
|
||||
|
||||
client:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 18.x
|
||||
cache: 'yarn'
|
||||
cache-dependency-path: |
|
||||
packages/client/yarn.lock
|
||||
- run: yarn install
|
||||
- run: yarn --cwd ./packages/client lint
|
53
.github/workflows/nodejs.yml
vendored
53
.github/workflows/nodejs.yml
vendored
@@ -1,53 +0,0 @@
|
||||
name: Node.js CI
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
build_and_test:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [12.x, 14.x, 15.x]
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:10-alpine
|
||||
ports:
|
||||
- 5432:5432
|
||||
env:
|
||||
POSTGRES_DB: test-misskey
|
||||
POSTGRES_HOST_AUTH_METHOD: trust
|
||||
redis:
|
||||
image: redis:alpine
|
||||
ports:
|
||||
- 6379:6379
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: Install dependencies
|
||||
run: yarn install
|
||||
- name: Copy Configure
|
||||
run: cp .circleci/misskey/*.yml .config
|
||||
- name: Build
|
||||
run: yarn build
|
||||
- name: 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
|
36
.github/workflows/ok-to-test.yml
vendored
Normal file
36
.github/workflows/ok-to-test.yml
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
# If someone with write access comments "/ok-to-test" on a pull request, emit a repository_dispatch event
|
||||
name: Ok To Test
|
||||
|
||||
on:
|
||||
issue_comment:
|
||||
types: [created]
|
||||
|
||||
jobs:
|
||||
ok-to-test:
|
||||
runs-on: ubuntu-latest
|
||||
# Only run for PRs, not issue comments
|
||||
if: ${{ github.event.issue.pull_request }}
|
||||
steps:
|
||||
# Generate a GitHub App installation access token from an App ID and private key
|
||||
# To create a new GitHub App:
|
||||
# https://developer.github.com/apps/building-github-apps/creating-a-github-app/
|
||||
# See app.yml for an example app manifest
|
||||
- name: Generate token
|
||||
id: generate_token
|
||||
uses: tibdex/github-app-token@v1
|
||||
with:
|
||||
app_id: ${{ secrets.DEPLOYBOT_APP_ID }}
|
||||
private_key: ${{ secrets.DEPLOYBOT_PRIVATE_KEY }}
|
||||
|
||||
- name: Slash Command Dispatch
|
||||
uses: peter-evans/slash-command-dispatch@v1
|
||||
env:
|
||||
TOKEN: ${{ steps.generate_token.outputs.token }}
|
||||
with:
|
||||
token: ${{ env.TOKEN }} # GitHub App installation access token
|
||||
# token: ${{ secrets.PERSONAL_ACCESS_TOKEN }} # PAT or OAuth token will also work
|
||||
reaction-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
issue-type: pull-request
|
||||
commands: deploy
|
||||
named-args: true
|
||||
permission: write
|
95
.github/workflows/pr-preview-deploy.yml
vendored
Normal file
95
.github/workflows/pr-preview-deploy.yml
vendored
Normal file
@@ -0,0 +1,95 @@
|
||||
# Run secret-dependent integration tests only after /deploy approval
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, reopened, synchronize]
|
||||
repository_dispatch:
|
||||
types: [deploy-command]
|
||||
|
||||
name: Deploy preview environment
|
||||
|
||||
jobs:
|
||||
# Repo owner has commented /deploy on a (fork-based) pull request
|
||||
deploy-preview-environment:
|
||||
runs-on: ubuntu-latest
|
||||
if:
|
||||
github.event_name == 'repository_dispatch' &&
|
||||
github.event.client_payload.slash_command.sha != '' &&
|
||||
contains(github.event.client_payload.pull_request.head.sha, github.event.client_payload.slash_command.sha)
|
||||
steps:
|
||||
- uses: actions/github-script@v5
|
||||
id: check-id
|
||||
env:
|
||||
number: ${{ github.event.client_payload.pull_request.number }}
|
||||
job: ${{ github.job }}
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
result-encoding: string
|
||||
script: |
|
||||
const { data: pull } = await github.rest.pulls.get({
|
||||
...context.repo,
|
||||
pull_number: process.env.number
|
||||
});
|
||||
const ref = pull.head.sha;
|
||||
|
||||
const { data: checks } = await github.rest.checks.listForRef({
|
||||
...context.repo,
|
||||
ref
|
||||
});
|
||||
|
||||
const check = checks.check_runs.filter(c => c.name === process.env.job);
|
||||
|
||||
return check[0].id;
|
||||
|
||||
- uses: actions/github-script@v5
|
||||
env:
|
||||
check_id: ${{ steps.check-id.outputs.result }}
|
||||
details_url: ${{ github.server_url }}/${{ github.repository }}/runs/${{ github.run_id }}
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
script: |
|
||||
await github.rest.checks.update({
|
||||
...context.repo,
|
||||
check_run_id: process.env.check_id,
|
||||
status: 'in_progress',
|
||||
details_url: process.env.details_url
|
||||
});
|
||||
|
||||
# Check out merge commit
|
||||
- name: Fork based /deploy checkout
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
ref: 'refs/pull/${{ github.event.client_payload.pull_request.number }}/merge'
|
||||
|
||||
# <insert integration tests needing secrets>
|
||||
- name: Context
|
||||
uses: okteto/context@latest
|
||||
with:
|
||||
token: ${{ secrets.OKTETO_TOKEN }}
|
||||
|
||||
- name: Deploy preview environment
|
||||
uses: ikuradon/deploy-preview@latest
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
name: pr-${{ github.event.client_payload.pull_request.number }}-syuilo
|
||||
timeout: 15m
|
||||
|
||||
# Update check run called "integration-fork"
|
||||
- uses: actions/github-script@v5
|
||||
id: update-check-run
|
||||
if: ${{ always() }}
|
||||
env:
|
||||
# Conveniently, job.status maps to https://developer.github.com/v3/checks/runs/#update-a-check-run
|
||||
conclusion: ${{ job.status }}
|
||||
check_id: ${{ steps.check-id.outputs.result }}
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
script: |
|
||||
const { data: result } = await github.rest.checks.update({
|
||||
...context.repo,
|
||||
check_run_id: process.env.check_id,
|
||||
status: 'completed',
|
||||
conclusion: process.env.conclusion
|
||||
});
|
||||
|
||||
return result;
|
21
.github/workflows/pr-preview-destroy.yml
vendored
Normal file
21
.github/workflows/pr-preview-destroy.yml
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
# file: .github/workflows/preview-closed.yaml
|
||||
on:
|
||||
pull_request:
|
||||
types:
|
||||
- closed
|
||||
|
||||
name: Destroy preview environment
|
||||
|
||||
jobs:
|
||||
destroy-preview-environment:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Context
|
||||
uses: okteto/context@latest
|
||||
with:
|
||||
token: ${{ secrets.OKTETO_TOKEN }}
|
||||
|
||||
- name: Destroy preview environment
|
||||
uses: okteto/destroy-preview@latest
|
||||
with:
|
||||
name: pr-${{ github.event.number }}-syuilo
|
122
.github/workflows/test.yml
vendored
Normal file
122
.github/workflows/test.yml
vendored
Normal file
@@ -0,0 +1,122 @@
|
||||
name: Test
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
mocha:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [18.x]
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:13
|
||||
ports:
|
||||
- 54312:5432
|
||||
env:
|
||||
POSTGRES_DB: test-misskey
|
||||
POSTGRES_HOST_AUTH_METHOD: trust
|
||||
redis:
|
||||
image: redis:6
|
||||
ports:
|
||||
- 56312:6379
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: 'yarn'
|
||||
cache-dependency-path: |
|
||||
packages/backend/yarn.lock
|
||||
packages/client/yarn.lock
|
||||
- name: Install dependencies
|
||||
run: yarn install
|
||||
- name: Check yarn.lock
|
||||
run: git diff --exit-code yarn.lock
|
||||
- name: Copy Configure
|
||||
run: cp .github/misskey/test.yml .config
|
||||
- name: Build
|
||||
run: yarn build
|
||||
- name: Test
|
||||
run: yarn mocha
|
||||
|
||||
e2e:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
node-version: [18.x]
|
||||
browser: [chrome]
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:13
|
||||
ports:
|
||||
- 54312:5432
|
||||
env:
|
||||
POSTGRES_DB: test-misskey
|
||||
POSTGRES_HOST_AUTH_METHOD: trust
|
||||
redis:
|
||||
image: redis:6
|
||||
ports:
|
||||
- 56312:6379
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
# https://github.com/cypress-io/cypress-docker-images/issues/150
|
||||
#- name: Install mplayer for FireFox
|
||||
# run: sudo apt install mplayer -y
|
||||
# if: ${{ matrix.browser == 'firefox' }}
|
||||
#- uses: browser-actions/setup-firefox@latest
|
||||
# if: ${{ matrix.browser == 'firefox' }}
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: 'yarn'
|
||||
cache-dependency-path: |
|
||||
packages/backend/yarn.lock
|
||||
packages/client/yarn.lock
|
||||
- name: Install dependencies
|
||||
run: yarn install
|
||||
- name: Check yarn.lock
|
||||
run: git diff --exit-code yarn.lock
|
||||
- name: Copy Configure
|
||||
run: cp .github/misskey/test.yml .config
|
||||
- name: Build
|
||||
run: yarn build
|
||||
# https://github.com/cypress-io/cypress/issues/4351#issuecomment-559489091
|
||||
- name: ALSA Env
|
||||
run: echo -e 'pcm.!default {\n type hw\n card 0\n}\n\nctl.!default {\n type hw\n card 0\n}' > ~/.asoundrc
|
||||
- name: Cypress run
|
||||
uses: cypress-io/github-action@v4
|
||||
with:
|
||||
install: false
|
||||
start: npm run start:test
|
||||
wait-on: 'http://localhost:61812'
|
||||
headless: false
|
||||
browser: ${{ matrix.browser }}
|
||||
- uses: actions/upload-artifact@v2
|
||||
if: failure()
|
||||
with:
|
||||
name: ${{ matrix.browser }}-cypress-screenshots
|
||||
path: cypress/screenshots
|
||||
- uses: actions/upload-artifact@v2
|
||||
if: always()
|
||||
with:
|
||||
name: ${{ matrix.browser }}-cypress-videos
|
||||
path: cypress/videos
|
8
.gitignore
vendored
8
.gitignore
vendored
@@ -6,9 +6,13 @@
|
||||
/.idea
|
||||
|
||||
# Node.js
|
||||
/node_modules
|
||||
node_modules
|
||||
report.*.json
|
||||
|
||||
# Cypress
|
||||
cypress/screenshots
|
||||
cypress/videos
|
||||
|
||||
# config
|
||||
/.config/*
|
||||
!/.config/example.yml
|
||||
@@ -16,7 +20,7 @@ report.*.json
|
||||
|
||||
# misskey
|
||||
/build
|
||||
/built
|
||||
built
|
||||
/data
|
||||
/.cache-loader
|
||||
/db
|
||||
|
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
[submodule "misskey-assets"]
|
||||
path = misskey-assets
|
||||
url = https://github.com/misskey-dev/assets.git
|
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"ignoredFiles": [
|
||||
"test/resources/*"
|
||||
]
|
||||
}
|
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"extension": ["ts","js","cjs","mjs"],
|
||||
"require": "ts-node/register",
|
||||
"slow": 1000,
|
||||
"timeout": 30000,
|
||||
"exit": true
|
||||
}
|
@@ -1 +1 @@
|
||||
v14.15.1
|
||||
v16.15.0
|
||||
|
6
.okteto/okteto-pipeline.yml
Normal file
6
.okteto/okteto-pipeline.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
build:
|
||||
misskey:
|
||||
args:
|
||||
- NODE_ENV=development
|
||||
deploy:
|
||||
- helm upgrade --install misskey chart --set image=${OKTETO_BUILD_MISSKEY_IMAGE} --set url="https://misskey-$(kubectl config view --minify -o jsonpath='{..namespace}').cloud.okteto.net" --set environment=development
|
9
.vscode/extensions.json
vendored
9
.vscode/extensions.json
vendored
@@ -1,12 +1,9 @@
|
||||
{
|
||||
"recommendations": [
|
||||
"ducksoupdev.vue2",
|
||||
"editorconfig.editorconfig",
|
||||
"eg2.vscode-npm-script",
|
||||
"hollowtree.vue-snippets",
|
||||
"ms-vscode.typescript-javascript-grammar",
|
||||
"ms-vscode.vscode-typescript-tslint-plugin",
|
||||
"octref.vetur",
|
||||
"sysoev.language-stylus"
|
||||
"dbaeumer.vscode-eslint",
|
||||
"Vue.volar",
|
||||
"Vue.vscode-typescript-vue-plugin"
|
||||
]
|
||||
}
|
||||
|
637
CHANGELOG.md
Normal file
637
CHANGELOG.md
Normal file
@@ -0,0 +1,637 @@
|
||||
<!--
|
||||
## 12.x.x (unreleased)
|
||||
|
||||
### Improvements
|
||||
|
||||
### Bugfixes
|
||||
-
|
||||
|
||||
You should also include the user name that made the change.
|
||||
-->
|
||||
|
||||
## 12.111.0 (2022/06/11)
|
||||
### Improvements
|
||||
- Supports Unicode Emoji 14.0 @mei23
|
||||
- プッシュ通知を複数アカウント対応に #7667 @tamaina
|
||||
- プッシュ通知にクリックやactionを設定 #7667 @tamaina
|
||||
- ドライブに画像ファイルをアップロードするときオリジナル画像を破棄してwebpublicのみ保持するオプション @tamaina
|
||||
- Server: always remove completed tasks of job queue @Johann150
|
||||
- Client: アバターの設定で画像をクロップできるように @syuilo
|
||||
- Client: make emoji stand out more on reaction button @Johann150
|
||||
- Client: display URL of QR code for TOTP registration @tamaina
|
||||
- Client: render quote renote CWs as MFM @pixeldesu
|
||||
- API: notifications/readは配列でも受け付けるように #7667 @tamaina
|
||||
- API: ユーザー検索で、クエリがusernameの条件を満たす場合はusernameもLIKE検索するように @tamaina
|
||||
- MFM: Allow speed changes in all animated MFMs @Johann150
|
||||
- The theme color is now better validated. @Johann150
|
||||
Your own theme color may be unset if it was in an invalid format.
|
||||
Admins should check their instance settings if in doubt.
|
||||
- Perform port diagnosis at startup only when Listen fails @mei23
|
||||
- Rate limiting is now also usable for non-authenticated users. @Johann150 @mei23
|
||||
Admins should make sure the reverse proxy sets the `X-Forwarded-For` header to the original address.
|
||||
|
||||
### Bugfixes
|
||||
- Server: keep file order of note attachement @Johann150
|
||||
- Server: fix caching @Johann150
|
||||
- Server: fix missing foreign key for reports leading to reports page being unusable @Johann150
|
||||
- Server: fix internal in-memory caching @Johann150
|
||||
- Server: use correct order of attachments on notes @Johann150
|
||||
- Server: prevent crash when processing certain PNGs @syuilo
|
||||
- Server: Fix unable to generate video thumbnails @mei23
|
||||
- Server: Fix `Cannot find module` issue @mei23
|
||||
- Federation: Add rel attribute to host-meta @mei23
|
||||
- Federation: add id for activitypub follows @Johann150
|
||||
- Federation: use `source` instead of `_misskey_content` @Johann150
|
||||
- Federation: ensure resolver does not fetch local resources via HTTP(S) @Johann150
|
||||
- Federation: correctly render empty note text @Johann150
|
||||
- Federation: Fix quote renotes containing no text being federated correctly @Johann150
|
||||
- Federation: remove duplicate br tag/newline @Johann150
|
||||
- Federation: add missing authorization checks @Johann150
|
||||
- Client: fix profile picture height in mentions @tamaina
|
||||
- Client: fix abuse reports page to be able to show all reports @Johann150
|
||||
- Client: fix settings page @tamaina
|
||||
- Client: fix profile tabs @futchitwo
|
||||
- Client: fix popout URL @futchitwo
|
||||
- Client: correctly handle MiAuth URLs with query string @sn0w
|
||||
- Client: ノート詳細ページの新しいノートを表示する機能の動作が正しくなるように修正する @xianonn
|
||||
- MFM: more animated functions support `speed` parameter @futchitwo
|
||||
- MFM: limit large MFM @Johann150
|
||||
|
||||
## 12.110.1 (2022/04/23)
|
||||
|
||||
### Bugfixes
|
||||
- Fix GOP rendering @syuilo
|
||||
- Improve performance of antenna, clip, and list @xianonn
|
||||
|
||||
## 12.110.0 (2022/04/11)
|
||||
|
||||
### Improvements
|
||||
- Improve webhook @syuilo
|
||||
- Client: Show loading icon on splash screen @syuilo
|
||||
|
||||
### Bugfixes
|
||||
- API: parameter validation of users/show was wrong
|
||||
- Federation: リモートインスタンスへのダイレクト投稿が届かない問題を修正 @syuilo
|
||||
|
||||
## 12.109.2 (2022/04/03)
|
||||
|
||||
### Bugfixes
|
||||
- API: admin/update-meta was not working @syuilo
|
||||
- Client: テーマを切り替えたり読み込んだりするとmeta[name="theme-color"]のcontentがundefinedになる問題を修正 @tamaina
|
||||
|
||||
## 12.109.1 (2022/04/02)
|
||||
|
||||
### Bugfixes
|
||||
- API: Renoteが行えない問題を修正
|
||||
|
||||
## 12.109.0 (2022/04/02)
|
||||
|
||||
### Improvements
|
||||
- Webhooks @syuilo
|
||||
- Bull Dashboardを組み込み、ジョブキューの確認や操作を行えるように @syuilo
|
||||
- Bull Dashboardを開くには、最初だけ一旦ログアウトしてから再度管理者権限を持つアカウントでログインする必要があります
|
||||
- Check that installed Node.js version fulfills version requirement @ThatOneCalculator
|
||||
- Server: overall performance improvements @syuilo
|
||||
- Federation: avoid duplicate activity delivery @Johann150
|
||||
- Federation: limit federation of reactions on direct notes @Johann150
|
||||
- Client: タッチパッド・タッチスクリーンでのデッキの操作性を向上 @tamaina
|
||||
|
||||
### Bugfixes
|
||||
- email address validation was not working @ybw2016v
|
||||
- API: fix endpoint endpoint @Johann150
|
||||
- API: fix admin/meta endpoint @syuilo
|
||||
- API: improved validation and documentation for endpoints that accept different variants of input @Johann150
|
||||
- API: `notes/create`: The `mediaIds` property is now deprecated. @Johann150
|
||||
- Use `fileIds` instead, it has the same behaviour.
|
||||
- Client: URIエンコーディングが異常でdecodeURIComponentが失敗するとURLが表示できなくなる問題を修正 @tamaina
|
||||
|
||||
## 12.108.1 (2022/03/12)
|
||||
|
||||
### Bugfixes
|
||||
- リレーが動作しない問題を修正 @xianonn
|
||||
- ulidを使用していると動作しない問題を修正 @syuilo
|
||||
- 外部からOGPが正しく取得できない問題を修正 @syuilo
|
||||
- instance can not get the files from other instance when there are items in allowedPrivateNetworks in .config/default.yml @ybw2016v
|
||||
|
||||
## 12.108.0 (2022/03/09)
|
||||
|
||||
### NOTE
|
||||
このバージョンからNode v16.14.0以降が必要です
|
||||
|
||||
### Changes
|
||||
- ノートの最大文字数を設定できる機能が廃止され、デフォルトで一律3000文字になりました @syuilo
|
||||
- Misskey can no longer terminate HTTPS connections. @Johann150
|
||||
- If you did not use a reverse proxy (e.g. nginx) before, you will probably need to adjust
|
||||
your configuration file and set up a reverse proxy. The `https` configuration key is no
|
||||
longer recognized!
|
||||
|
||||
### Improvements
|
||||
- インスタンスデフォルトテーマを設定できるように @syuilo
|
||||
- ミュートに期限を設定できるように @syuilo
|
||||
- アンケートが終了したときに通知が作成されるように @syuilo
|
||||
- プロフィールの追加情報を最大16まで保存できるように @syuilo
|
||||
- 連合チャートにPub&Subを追加 @syuilo
|
||||
- 連合チャートにActiveを追加 @syuilo
|
||||
- デフォルトで10秒以上時間がかかるデータベースへのクエリは中断されるように @syuilo
|
||||
- 設定ファイルの`db.extra`に`statement_timeout`を設定することでタイムアウト時間を変更できます
|
||||
- Client: スプラッシュスクリーンにインスタンスのアイコンを表示するように @syuilo
|
||||
|
||||
### Bugfixes
|
||||
- Client: リアクションピッカーの高さが低くなったまま戻らないことがあるのを修正 @syuilo
|
||||
- Client: ユーザー名オートコンプリートが正しく動作しない問題を修正 @syuilo
|
||||
- Client: タッチ操作だとウィジェットの編集がしにくいのを修正 @xianonn
|
||||
- Client: register_note_view_interruptor()が動かないのを修正 @syuilo
|
||||
- Client: iPhone X以降(?)でページの内容が全て表示しきれないのを修正 @tamaina
|
||||
- Client: fix image caption on mobile @nullobsi
|
||||
|
||||
## 12.107.0 (2022/02/12)
|
||||
|
||||
### Improvements
|
||||
- クライアント: テーマを追加 @syuilo
|
||||
|
||||
### Bugfixes
|
||||
- API: stats APIで内部エラーが発生する問題を修正 @syuilo
|
||||
- クライアント: ソフトミュートですべてがマッチしてしまう場合があるのを修正 @tamaina
|
||||
- クライアント: デバイスのスクリーンのセーフエリアを考慮するように @syuilo
|
||||
- クライアント: 一部環境でサイドバーの投稿ボタンが表示されない問題を修正 @syuilo
|
||||
|
||||
## 12.106.3 (2022/02/11)
|
||||
|
||||
### Improvements
|
||||
- クライアント: スマートフォンでの余白を調整 @syuilo
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: ノートの詳細が表示されない問題を修正 @syuilo
|
||||
|
||||
## 12.106.2 (2022/02/11)
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: 削除したノートがタイムラインから自動で消えない問題を修正 @syuilo
|
||||
- クライアント: リアクション数が正しくないことがある問題を修正 @syuilo
|
||||
- 一部環境でマイグレーションが動作しない問題を修正 @syuilo
|
||||
|
||||
## 12.106.1 (2022/02/11)
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: ワードミュートが保存できない問題を修正 @syuilo
|
||||
|
||||
## 12.106.0 (2022/02/11)
|
||||
|
||||
### Improvements
|
||||
- Improve federation chart @syuilo
|
||||
- クライアント: リアクションピッカーのサイズを設定できるように @syuilo
|
||||
- クライアント: リアクションピッカーの幅、高さ制限を緩和 @syuilo
|
||||
- Docker: Update to Node v16.13.2 @mei23
|
||||
- Update dependencies
|
||||
|
||||
### Bugfixes
|
||||
- validate regular expressions in word mutes @Johann150
|
||||
|
||||
## 12.105.0 (2022/02/09)
|
||||
|
||||
### Improvements
|
||||
- インスタンスのテーマカラーを設定できるように @syuilo
|
||||
|
||||
### Bugfixes
|
||||
- 一部環境でマイグレーションが失敗する問題を修正 @syuilo
|
||||
|
||||
## 12.104.0 (2022/02/09)
|
||||
|
||||
### Note
|
||||
ビルドする前に`npm run clean`を実行してください。
|
||||
|
||||
このリリースはマイグレーションの規模が大きいため、インスタンスによってはマイグレーションに時間がかかる可能性があります。
|
||||
マイグレーションが終わらない場合は、チャートの情報はリセットされてしまいますが`__chart__`で始まるテーブルの**レコード**を全て削除(テーブル自体は消さないでください)してから再度試す方法もあります。
|
||||
|
||||
### Improvements
|
||||
- チャートエンジンの強化 @syuilo
|
||||
- テーブルサイズの削減
|
||||
- notes/instance/perUserNotesチャートに添付ファイル付きノートの数を追加
|
||||
- activeUsersチャートに新しい項目を追加
|
||||
- federationチャートに新しい項目を追加
|
||||
- apRequestチャートを追加
|
||||
- networkチャート廃止
|
||||
- クライアント: 自インスタンス情報ページでチャートを見れるように @syuilo
|
||||
- クライアント: デバイスの種類を手動指定できるように @syuilo
|
||||
- クライアント: UIのアイコンを更新 @syuilo
|
||||
- クライアント: UIのアイコンをセルフホスティングするように @syuilo
|
||||
- NodeInfo のユーザー数と投稿数の内容を見直す @xianonn
|
||||
|
||||
### Bugfixes
|
||||
- Client: タイムライン種別を切り替えると「新しいノートがあります」の表示が残留してしまうのを修正 @tamaina
|
||||
- Client: UIのサイズがおかしくなる問題の修正 @tamaina
|
||||
- Client: Setting instance information of notes to always show breaks the timeline @Johann150
|
||||
- Client: 環境に依っては返信する際のカーソル位置が正しくない問題を修正 @syuilo
|
||||
- Client: コントロールパネルのユーザー、ファイルにて、インスタンスの表示範囲切り替えが機能しない問題を修正 @syuilo
|
||||
- Client: アップデートお知らせダイアログが出ないのを修正 @syuilo
|
||||
- Client: Follows/Followers Visibility changes won't be saved unless clicking on an other checkbox @Johann150
|
||||
- API: Fix API cast @mei23
|
||||
- add instance favicon where it's missing @solfisher
|
||||
- チャートの定期resyncが動作していない問題を修正 @syuilo
|
||||
|
||||
## 12.103.1 (2022/02/02)
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: ツールチップの表示位置が正しくない問題を修正
|
||||
|
||||
## 12.103.0 (2022/02/02)
|
||||
|
||||
### Improvements
|
||||
- クライアント: 連合インスタンスページからインスタンス情報再取得を行えるように
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: 投稿のNSFW画像を表示したあとにリアクションが更新されると画像が非表示になる問題を修正
|
||||
- クライアント: 「クリップ」ページが開かない問題を修正
|
||||
- クライアント: トレンドウィジェットが動作しないのを修正
|
||||
- クライアント: フェデレーションウィジェットが動作しないのを修正
|
||||
- クライアント: リアクション設定で絵文字ピッカーが開かないのを修正
|
||||
- クライアント: DMページでメンションが含まれる問題を修正
|
||||
- クライアント: 投稿フォームのハッシュタグ保持フィールドが動作しない問題を修正
|
||||
- クライアント: サイドビューが動かないのを修正
|
||||
- クライアント: ensure that specified users does not get duplicates
|
||||
- Add `img-src` and `media-src` directives to `Content-Security-Policy` for
|
||||
files and media proxy
|
||||
|
||||
## 12.102.1 (2022/01/27)
|
||||
### Bugfixes
|
||||
- チャットが表示できない問題を修正
|
||||
|
||||
## 12.102.0 (2022/01/27)
|
||||
|
||||
### NOTE
|
||||
アップデート後、一部カスタム絵文字が表示できなくなる場合があります。その場合、一旦絵文字管理ページから絵文字を一括エクスポートし、再度コントロールパネルから一括インポートすると直ります。
|
||||
⚠ 12.102.0以前にエクスポートされたzipとは互換性がありません。アップデートしてからエクスポートを行なってください。
|
||||
|
||||
### Changes
|
||||
- Room機能が削除されました
|
||||
- 後日別リポジトリとして復活予定です
|
||||
- リバーシ機能が削除されました
|
||||
- 後日別リポジトリとして復活予定です
|
||||
- Chat UIが削除されました
|
||||
- ノートに添付できるファイルの数が16に増えました
|
||||
- カスタム絵文字にSVGを指定した場合、PNGに変換されて表示されるようになりました
|
||||
|
||||
### Improvements
|
||||
- カスタム絵文字一括編集機能
|
||||
- カスタム絵文字一括インポート
|
||||
- 投稿フォームで一時的に投稿するアカウントを切り替えられるように
|
||||
- Unifying Misskey-specific IRIs in JSON-LD `@context`
|
||||
- クライアントのパフォーマンス向上
|
||||
- セキュリティの向上
|
||||
|
||||
### Bugfixes
|
||||
- アップロードエラー時の処理を修正
|
||||
|
||||
## 12.101.1 (2021/12/29)
|
||||
|
||||
### Bugfixes
|
||||
- SVG絵文字が表示できないのを修正
|
||||
- エクスポートした絵文字の拡張子がfalseになることがあるのを修正
|
||||
|
||||
## 12.101.0 (2021/12/29)
|
||||
|
||||
### Improvements
|
||||
- クライアント: ノートプレビューの精度を改善
|
||||
- クライアント: MFM sparkleエフェクトの改善
|
||||
- クライアント: デザインの調整
|
||||
- セキュリティの向上
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: 一部のコンポーネントが裏に隠れるのを修正
|
||||
- fix html blockquote conversion
|
||||
|
||||
## 12.100.2 (2021/12/18)
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: Deckカラムの増減がページをリロードするまで正しく反映されない問題を修正
|
||||
- クライアント: 一部のコンポーネントが裏に隠れるのを修正
|
||||
- クライアント: カスタム絵文字一覧ページの負荷が高いのを修正
|
||||
|
||||
## 12.100.1 (2021/12/17)
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: デザインの調整
|
||||
|
||||
## 12.100.0 (2021/12/17)
|
||||
|
||||
### Improvements
|
||||
- クライアント: モバイルでの各種メニュー、リアクションピッカーの表示を改善
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: 一部のコンポーネントが裏に隠れるのを修正
|
||||
|
||||
## 12.99.3 (2021/12/14)
|
||||
### Bugfixes
|
||||
- クライアント: オートコンプリートがダイアログの裏に隠れる問題を修正
|
||||
|
||||
## 12.99.2 (2021/12/14)
|
||||
|
||||
## 12.99.1 (2021/12/14)
|
||||
|
||||
## 12.99.0 (2021/12/14)
|
||||
|
||||
### Improvements
|
||||
- Added a user-level instance mute in user settings
|
||||
- フォローエクスポートでミュートしているユーザーを含めないオプションを追加
|
||||
- フォローエクスポートで使われていないアカウントを含めないオプションを追加
|
||||
- カスタム絵文字エクスポート機能
|
||||
- チャートのパフォーマンスの改善
|
||||
- グループから抜けられるように
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: タッチ機能付きディスプレイを使っていてマウス操作をしている場合に一部機能が動作しない問題を修正
|
||||
- クライアント: クリップの設定を編集できない問題を修正
|
||||
- クライアント: メニューなどがウィンドウの裏に隠れる問題を修正
|
||||
|
||||
## 12.98.0 (2021/12/03)
|
||||
|
||||
### Improvements
|
||||
- API: /antennas/notes API で日付による絞り込みができるように
|
||||
- クライアント: アンケートに投票する際に確認ダイアログを出すように
|
||||
- クライアント: Renoteなノート詳細ページから元のノートページに遷移できるように
|
||||
- クライアント: 画像ポップアップでクリックで閉じられるように
|
||||
- クライアント: デザインの調整
|
||||
- フォロワーを解除できる機能
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: LTLやGTLが無効になっている場合でもUI上にタブが表示される問題を修正
|
||||
- クライアント: ログインにおいてパスワードが誤っている際のエラーメッセージが正しく表示されない問題を修正
|
||||
- クライアント: リアクションツールチップ、Renoteツールチップのユーザーの並び順を修正
|
||||
- クライアント: サウンドのマスターボリュームが正しく保存されない問題を修正
|
||||
- クライアント: 一部環境において通知が表示されると操作不能になる問題を修正
|
||||
- クライアント: モバイルでタップしたときにツールチップが表示される問題を修正
|
||||
- クライアント: リモートインスタンスのノートに返信するとき、対象のノートにそのリモートインスタンス内のユーザーへのメンションが含まれていると、返信テキスト内にローカルユーザーへのメンションとして引き継がれてしまう場合がある問題を修正
|
||||
- クライアント: 画像ビューワーで全体表示した時に上側の一部しか表示されない画像がある問題を修正
|
||||
- API: ユーザーを取得時に条件によっては内部エラーになる問題を修正
|
||||
|
||||
### Changes
|
||||
- クライアント: ノートにモデレーターバッジを表示するのを廃止
|
||||
|
||||
## 12.97.0 (2021/11/19)
|
||||
|
||||
### Improvements
|
||||
- クライアント: 返信先やRenoteに対しても自動折りたたみされるように
|
||||
- クライアント: 長いスレッドの表示を改善
|
||||
- クライアント: 翻訳にもMFMを適用し、元の文章の改行などを保持するように
|
||||
- クライアント: アカウント削除に確認ダイアログを出すように
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: ユーザー検索の「全て」が動作しない問題を修正
|
||||
- クライアント: リアクション一覧、Renote一覧ツールチップのスタイルを修正
|
||||
|
||||
## 12.96.1 (2021/11/13)
|
||||
### Improvements
|
||||
- npm scriptの互換性を向上
|
||||
|
||||
## 12.96.0 (2021/11/13)
|
||||
|
||||
### Improvements
|
||||
- フォロー/フォロワーを非公開にできるように
|
||||
- インスタンスプロフィールレンダリング ready
|
||||
- 通知のリアクションアイコンをホバーで拡大できるように
|
||||
- RenoteボタンをホバーでRenoteしたユーザー一覧を表示するように
|
||||
- 返信の際にメンションを含めるように
|
||||
- 通報があったときに管理者へEメールで通知されるように
|
||||
- メールアドレスのバリデーションを強化
|
||||
|
||||
### Bugfixes
|
||||
- アカウント削除処理があると高負荷になる問題を修正
|
||||
- クライアント: 長いメニューが画面からはみ出す問題を修正
|
||||
- クライアント: コントロールパネルのジョブキューに個々のジョブが表示されないのを修正
|
||||
- クライアント: fix missing i18n string
|
||||
- fix html conversion issue with code blocks
|
||||
|
||||
### Changes
|
||||
- ノートにモバイルからの投稿か否かの情報を含めないように
|
||||
|
||||
## 12.95.0 (2021/10/31)
|
||||
|
||||
### Improvements
|
||||
- スレッドミュート機能
|
||||
|
||||
### Bugfixes
|
||||
- リレー向けのActivityが一部実装で除外されてしまうことがあるのを修正
|
||||
- 削除したノートやユーザーがリモートから参照されると復活することがあるのを修正
|
||||
- クライアント: ページ編集時のドロップダウンメニューなどが動作しない問題を修正
|
||||
- クライアント: コントロールパネルのカスタム絵文字タブが切り替わらないように見える問題を修正
|
||||
- API: ユーザー情報の hasUnreadChannel が常に false になっている問題を修正
|
||||
|
||||
## 12.94.1 (2021/10/25)
|
||||
|
||||
### Improvements
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: ユーザーページのナビゲーションが失敗する問題を修正
|
||||
|
||||
## 12.94.0 (2021/10/25)
|
||||
|
||||
### Improvements
|
||||
- クライアント: 画像ビューアを強化
|
||||
- クライアント: メンションにユーザーのアバターを表示するように
|
||||
- クライアント: デザインの調整
|
||||
- クライアント: twemojiをセルフホスティングするように
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: CWで画像が隠されたとき、画像の高さがおかしいことになる問題を修正
|
||||
|
||||
### NOTE
|
||||
- このバージョンから、iOS 15未満のサポートがされなくなります。対象のバージョンをお使いの方は、iOSのバージョンアップを行ってください。
|
||||
|
||||
## 12.93.2 (2021/10/23)
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: ウィジェットを追加できない問題を修正
|
||||
|
||||
## 12.93.1 (2021/10/23)
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: 通知上でローカルのリアクションが表示されないのを修正
|
||||
|
||||
## 12.93.0 (2021/10/23)
|
||||
|
||||
### Improvements
|
||||
- クライアント: コントロールパネルのパフォーマンスを改善
|
||||
- クライアント: 自分のリアクション一覧を見れるように
|
||||
- 設定により、リアクション一覧を全員に公開することも可能
|
||||
- クライアント: ユーザー検索の精度を強化
|
||||
- クライアント: 新しいライトテーマを追加
|
||||
- クライアント: 新しいダークテーマを追加
|
||||
- API: ユーザーのリアクション一覧を取得する users/reactions を追加
|
||||
- API: users/search および users/search-by-username-and-host を強化
|
||||
- ミュート及びブロックのインポートを行えるように
|
||||
- クライアント: /share のクエリでリプライやファイル等の情報を渡せるように
|
||||
- チャートのsyncを毎日0時に自動で行うように
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: テーマの管理が行えない問題を修正
|
||||
- API: アプリケーション通知が取得できない問題を修正
|
||||
- クライアント: リモートノートで意図せずローカルカスタム絵文字が使われてしまうことがあるのを修正
|
||||
- ActivityPub: not reacted な Undo.Like がinboxに滞留するのを修正
|
||||
|
||||
### Changes
|
||||
- 連合の考慮に問題があることなどが分かったため、モデレーターをブロックできない仕様を廃止しました
|
||||
- データベースにログを保存しないようになりました
|
||||
- ログを永続化したい場合はsyslogを利用してください
|
||||
|
||||
## 12.92.0 (2021/10/16)
|
||||
|
||||
### Improvements
|
||||
- アカウント登録にメールアドレスの設定を必須にするオプション
|
||||
- クライアント: 全体的なUIのブラッシュアップ
|
||||
- クライアント: MFM関数構文のサジェストを実装
|
||||
- クライアント: ノート本文を投稿フォーム内でプレビューできるように
|
||||
- クライアント: 未読の通知のみ表示する機能
|
||||
- クライアント: 通知ページで通知の種類によるフィルタ
|
||||
- クライアント: アニメーションを減らす設定の適用範囲を拡充
|
||||
- クライアント: 新しいダークテーマを追加
|
||||
- クライアント: テーマコンパイラに hue と saturate 関数を追加
|
||||
- ActivityPub: HTML -> MFMの変換を強化
|
||||
- API: グループから抜ける users/groups/leave エンドポイントを実装
|
||||
- API: i/notifications に unreadOnly オプションを追加
|
||||
- API: ap系のエンドポイントをログイン必須化+レートリミット追加
|
||||
- MFM: Add tag syntaxes of bold <b></b> and strikethrough <s></s>
|
||||
|
||||
### Bugfixes
|
||||
- Fix createDeleteAccountJob
|
||||
- admin inbox queue does not show individual jobs
|
||||
- クライアント: ヘッダーのタブが折り返される問題を修正
|
||||
- クライアント: ヘッダーにタブが表示されている状態でタイトルをクリックしたときにタブ選択が表示されるのを修正
|
||||
- クライアント: ユーザーページのタブが機能していない問題を修正
|
||||
- クライアント: ピン留めユーザーの設定項目がない問題を修正
|
||||
- クライアント: Deck UIにおいて、重ねたカラムの片方を畳んだ状態で右に出すと表示が壊れる問題を修正
|
||||
- API: 管理者およびモデレーターをブロックできてしまう問題を修正
|
||||
- MFM: Mentions in the link label are parsed as text
|
||||
- MFM: Add a property to the URL node indicating whether it was enclosed in <>
|
||||
- MFM: Disallows < and > in hashtags
|
||||
|
||||
### Changes
|
||||
- 保守性やユーザビリティの観点から、Misskeyのコマンドラインオプションが削除されました。
|
||||
- 必要であれば、代わりに環境変数で設定することができます
|
||||
- MFM: パフォーマンス、保守性、構文誤認識抑制の観点から、旧関数構文のサポートが削除されました。
|
||||
- 旧構文(`[foo bar]`)を使用せず、現行の構文(`$[foo bar]`)を使用してください。
|
||||
|
||||
## 12.91.0 (2021/09/22)
|
||||
|
||||
### Improvements
|
||||
- ActivityPub: リモートユーザーのDeleteアクティビティに対応
|
||||
- ActivityPub: add resolver check for blocked instance
|
||||
- ActivityPub: deliverキューのメモリ使用量を削減
|
||||
- API: 管理者用アカウント削除APIを実装(/admin/accounts/delete)
|
||||
- リモートユーザーの削除も可能に
|
||||
- アカウントが凍結された場合に、凍結された旨を表示してからログアウトするように
|
||||
- 凍結されたアカウントにログインしようとしたときに、凍結されている旨を表示するように
|
||||
- リスト、アンテナタイムラインを個別ページとして分割
|
||||
- UIの改善
|
||||
- MFMにsparklesエフェクトを追加
|
||||
- 非ログイン自は更新ダイアログを出さないように
|
||||
- クライアント起動時、アップデートが利用可能な場合エラー表示およびダイアログ表示しないように
|
||||
|
||||
### Bugfixes
|
||||
- アカウントデータのエクスポート/インポート処理ができない問題を修正
|
||||
- アンテナの既読が付かない問題を修正
|
||||
- popupで設定ページを表示すると、アカウントの削除ページにアクセスすることができない問題を修正
|
||||
- "問題が発生しました"ウィンドウを開くと☓ボタンがなくて閉じれない問題を修正
|
||||
|
||||
## 12.90.1 (2021/09/05)
|
||||
|
||||
### Bugfixes
|
||||
- Dockerfileを修正
|
||||
- ノート翻訳時に公開範囲が考慮されていない問題を修正
|
||||
|
||||
## 12.90.0 (2021/09/04)
|
||||
|
||||
### Improvements
|
||||
- 藍モード、および藍ウィジェット
|
||||
- クライアントに藍ちゃんを召喚することができるようになりました。
|
||||
- URLからのアップロード, APの添付ファイル, 外部ファイルのプロキシ等では、Privateアドレス等へのリクエストは拒否されるようになりました。
|
||||
- developmentで動作している場合は、この制限は適用されません。
|
||||
- Proxy使用時には、この制限は適用されません。
|
||||
Proxy使用時に同等の制限を行いたい場合は、Proxy側で設定を行う必要があります。
|
||||
- `default.yml`にて`allowedPrivateNetworks`にCIDRを追加することにより、宛先ネットワークを指定してこの制限から除外することが出来ます。
|
||||
- アップロード, ダウンロード出来るファイルサイズにハードリミットが適用されるようになりました。(約250MB)
|
||||
- `default.yml`にて`maxFileSize`を変更することにより、制限値を変更することが出来ます。
|
||||
|
||||
### Bugfixes
|
||||
- 管理者が最初にサインアップするページでログインされないのを修正
|
||||
- CWを維持する設定を復活
|
||||
- クライアントの表示を修正
|
||||
|
||||
## 12.89.2 (2021/08/24)
|
||||
|
||||
### Bugfixes
|
||||
- カスタムCSSを有効にしているとエラーになる問題を修正
|
||||
|
||||
## 12.89.1 (2021/08/24)
|
||||
|
||||
### Improvements
|
||||
- クライアントのデザインの調整
|
||||
|
||||
### Bugfixes
|
||||
- 翻訳でDeepLのProアカウントに対応していない問題を修正
|
||||
- インスタンス設定でDeepLのAuth Keyが空で表示される問題を修正
|
||||
- セキュリティの向上
|
||||
|
||||
## 12.89.0 (2021/08/21)
|
||||
|
||||
### Improvements
|
||||
- アカウント削除の安定性を向上
|
||||
- 絵文字オートコンプリートの挙動を改修
|
||||
- localStorageのaccountsはindexedDBで保持するように
|
||||
- ActivityPub: ジョブキューの試行タイミングを調整 (#7635)
|
||||
- API: sw/unregisterを追加
|
||||
- ワードミュートのドキュメントを追加
|
||||
- クライアントのデザインの調整
|
||||
- 依存関係の更新
|
||||
|
||||
### Bugfixes
|
||||
- チャンネルを作成しているとアカウントを削除できないのを修正
|
||||
- ノートの「削除して編集」をするとアンケートの選択肢が[object Object]になる問題を修正
|
||||
|
||||
## 12.88.0 (2021/08/17)
|
||||
|
||||
### Features
|
||||
- ノートの翻訳機能を追加
|
||||
- 有効にするには、サーバー管理者がDeepLの無料アカウントを登録し、取得した認証キーを「インスタンス設定 > その他 > DeepL Auth Key」に設定する必要があります。
|
||||
- Misskey更新時にダイアログを表示するように
|
||||
- ジョブキューウィジェットに警報音を鳴らす設定を追加
|
||||
|
||||
### Improvements
|
||||
- ブロックの挙動を改修
|
||||
- ブロックされたユーザーがブロックしたユーザーに対してアクション出来ないようになりました。詳細はドキュメントをご確認ください。
|
||||
- UIデザインの調整
|
||||
- データベースのインデックスを最適化
|
||||
- Proxy使用時にKeep-Aliveをサポート
|
||||
- DNSキャッシュでネガティブキャッシュをサポート
|
||||
- 依存関係の更新
|
||||
|
||||
### Bugfixes
|
||||
- タッチ操作でウィンドウを閉じることができない問題を修正
|
||||
- Renoteされた時刻が投稿された時刻のように表示される問題を修正
|
||||
- コントロールパネルでファイルを削除した際の表示を修正
|
||||
- ActivityPub: 長いユーザーの名前や自己紹介の対応
|
||||
|
||||
## 12.87.0 (2021/08/12)
|
||||
|
||||
### Improvements
|
||||
- 絵文字オートコンプリートで一文字目は最近使った絵文字をサジェストするように
|
||||
- 絵文字オートコンプリートのパフォーマンスを改善
|
||||
- about-misskeyページにドキュメントへのリンクを追加
|
||||
- Docker: Node.jsを16.6.2に
|
||||
- 依存関係の更新
|
||||
- 翻訳の更新
|
||||
|
||||
### Bugfixes
|
||||
- Misskey更新時、テーマキャッシュの影響でスタイルがおかしくなる問題を修正
|
||||
|
||||
## 12.86.0 (2021/08/11)
|
||||
|
||||
### Improvements
|
||||
- ドキュメントの更新
|
||||
- ドキュメントにchangelogを追加
|
||||
- ぼかし効果のオプションを追加
|
||||
- Vueを3.2.1に更新
|
||||
- UIの調整
|
||||
|
||||
### Bugfixes
|
||||
- ハッシュタグ入力が空のときに#が付くのを修正
|
||||
- フォローリクエストのEメール通知を修正
|
314
CONTRIBUTING.md
314
CONTRIBUTING.md
@@ -1,22 +1,94 @@
|
||||
# Contribution guide
|
||||
:v: Thanks for your contributions :v:
|
||||
We're glad you're interested in contributing Misskey! In this document you will find the information you need to contribute to the project.
|
||||
|
||||
## When you contribute...
|
||||
- 任意のIssueについて、せっかく実装してくださっても、実装方法や設計の認識が揃ってないとマージできない/しないことになりかねないので、初めにそのIssue上で着手することを宣言し、必要に応じて他メンバーと実装方法や設計のすり合わせを行ってください。宣言することは作業が他の人と被るのを防止する効果もあります。
|
||||
- 設計に迷った時はプロジェクトリーダーの判断を仰いでください。
|
||||
- 時間や優先度の都合上、提出してくださったPRが長期間放置されることもありますがご理解ください。
|
||||
- 温度感高めで見てほしいものは責付いてください。
|
||||
> **Note**
|
||||
> This project uses Japanese as its major language, **but you do not need to translate and write the Issues/PRs in Japanese.**
|
||||
> Also, you might receive comments on your Issue/PR in Japanese, but you do not need to reply to them in Japanese as well.\
|
||||
> The accuracy of machine translation into Japanese is not high, so it will be easier for us to understand if you write it in the original language.
|
||||
> It will also allow the reader to use the translation tool of their preference if necessary.
|
||||
|
||||
## Roadmap
|
||||
See [ROADMAP.md](./ROADMAP.md)
|
||||
|
||||
## Issues
|
||||
Feature suggestions and bug reports are filed in https://github.com/syuilo/misskey/issues .
|
||||
Before creating an issue, please check the following:
|
||||
- To avoid duplication, please search for similar issues before creating a new issue.
|
||||
- Do not use Issues to ask questions or troubleshooting.
|
||||
- Issues should only be used to feature requests, suggestions, and bug tracking.
|
||||
- Please ask questions or troubleshooting in the [Misskey Forum](https://forum.misskey.io/) or [Discord](https://discord.gg/Wp8gVStHW3).
|
||||
|
||||
* Please search existing issues to avoid duplication. If your issue is already filed, please add your reaction or comment to the existing one.
|
||||
* If you have multiple independent issues, please submit them separately.
|
||||
> **Warning**
|
||||
> Do not close issues that are about to be resolved. It should remain open until a commit that actually resolves it is merged.
|
||||
|
||||
## Branches
|
||||
* **master** branch is tracking the latest release and used for production purposes.
|
||||
* **develop** branch is where we work for the next release.
|
||||
* **l10n_develop** branch is reserved for localization management.
|
||||
## Before implementation
|
||||
When you want to add a feature or fix a bug, **first have the design and policy reviewed in an Issue** (if it is not there, please make one). Without this step, there is a high possibility that the PR will not be merged even if it is implemented.
|
||||
|
||||
At this point, you also need to clarify the goals of the PR you will create, and make sure that the other members of the team are aware of them.
|
||||
PRs that do not have a clear set of do's and don'ts tend to be bloated and difficult to review.
|
||||
|
||||
Also, when you start implementation, assign yourself to the Issue (if you cannot do it yourself, ask another member to assign you). By expressing your intention to work the Issue, you can prevent conflicts in the work.
|
||||
|
||||
## Well-known branches
|
||||
- **`master`** branch is tracking the latest release and used for production purposes.
|
||||
- **`develop`** branch is where we work for the next release.
|
||||
- When you create a PR, basically target it to this branch.
|
||||
- **`l10n_develop`** branch is reserved for localization management.
|
||||
|
||||
## Creating a PR
|
||||
Thank you for your PR! Before creating a PR, please check the following:
|
||||
- If possible, prefix the title with a keyword that identifies the type of this PR, as shown below.
|
||||
- `fix` / `refactor` / `feat` / `enhance` / `perf` / `chore` etc
|
||||
- Also, make sure that the granularity of this PR is appropriate. Please do not include more than one type of change or interest in a single PR.
|
||||
- If there is an Issue which will be resolved by this PR, please include a reference to the Issue in the text.
|
||||
- Please add the summary of the changes to [`CHANGELOG.md`](/CHANGELOG.md). However, this is not necessary for changes that do not affect the users, such as refactoring.
|
||||
- Check if there are any documents that need to be created or updated due to this change.
|
||||
- If you have added a feature or fixed a bug, please add a test case if possible.
|
||||
- Please make sure that tests and Lint are passed in advance.
|
||||
- You can run it with `npm run test` and `npm run lint`. [See more info](#testing)
|
||||
- If this PR includes UI changes, please attach a screenshot in the text.
|
||||
|
||||
Thanks for your cooperation 🤗
|
||||
|
||||
## Reviewers guide
|
||||
Be willing to comment on the good points and not just the things you want fixed 💯
|
||||
|
||||
### Review perspective
|
||||
- Scope
|
||||
- Are the goals of the PR clear?
|
||||
- Is the granularity of the PR appropriate?
|
||||
- Security
|
||||
- Does merging this PR create a vulnerability?
|
||||
- Performance
|
||||
- Will merging this PR cause unexpected performance degradation?
|
||||
- Is there a more efficient way?
|
||||
- Testing
|
||||
- Does the test ensure the expected behavior?
|
||||
- Are there any omissions or gaps?
|
||||
- Does it check for anomalies?
|
||||
|
||||
## Deploy
|
||||
The `/deploy` command by issue comment can be used to deploy the contents of a PR to the preview environment.
|
||||
```
|
||||
/deploy sha=<commit hash>
|
||||
```
|
||||
An actual domain will be assigned so you can test the federation.
|
||||
|
||||
## Merge
|
||||
For now, basically only @syuilo has the authority to merge PRs into develop because he is most familiar with the codebase.
|
||||
However, minor fixes, refactoring, and urgent changes may be merged at the discretion of a contributor.
|
||||
|
||||
## Release
|
||||
### Release Instructions
|
||||
1. Commit version changes in the `develop` branch ([package.json](https://github.com/misskey-dev/misskey/blob/develop/package.json))
|
||||
2. Create a release PR.
|
||||
- Into `master` from `develop` branch.
|
||||
- The title must be in the format `Release: x.y.z`.
|
||||
- `x.y.z` is the new version you are trying to release.
|
||||
3. Deploy and perform a simple QA check. Also verify that the tests passed.
|
||||
4. Merge it.
|
||||
5. Create a [release of GitHub](https://github.com/misskey-dev/misskey/releases)
|
||||
- The target branch must be `master`
|
||||
- The tag name must be the version
|
||||
|
||||
## Localization (l10n)
|
||||
Misskey uses [Crowdin](https://crowdin.com/project/misskey) for localization management.
|
||||
@@ -28,143 +100,56 @@ If your language is not listed in Crowdin, please open an issue.
|
||||
|
||||

|
||||
|
||||
## Internationalization (i18n)
|
||||
Misskey uses the Vue.js plugin [Vue I18n](https://github.com/kazupon/vue-i18n).
|
||||
Documentation of Vue I18n is available at http://kazupon.github.io/vue-i18n/introduction.html .
|
||||
## Development
|
||||
During development, it is useful to use the `npm run dev` command.
|
||||
This command monitors the server-side and client-side source files and automatically builds them if they are modified.
|
||||
In addition, it will also automatically start the Misskey server process.
|
||||
|
||||
## Documentation
|
||||
* Documents for contributors are located in [`/docs`](/docs).
|
||||
* Documents for instance admins are located in [`/docs`](/docs).
|
||||
* Documents for end users are located in [`/src/docs`](/src/docs).
|
||||
## Testing
|
||||
- Test codes are located in [`/test`](/test).
|
||||
|
||||
## Test
|
||||
* Test codes are located in [`/test`](/test).
|
||||
### Run test
|
||||
Create a config file.
|
||||
```
|
||||
cp test/test.yml .config/
|
||||
```
|
||||
Prepare DB/Redis for testing.
|
||||
```
|
||||
docker-compose -f test/docker-compose.yml up
|
||||
```
|
||||
Alternatively, prepare an empty (data can be erased) DB and edit `.config/test.yml`.
|
||||
|
||||
Run all test.
|
||||
```
|
||||
npm run test
|
||||
```
|
||||
|
||||
#### Run specify test
|
||||
```
|
||||
npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT="./test/tsconfig.json" npx mocha test/foo.ts --require ts-node/register
|
||||
```
|
||||
|
||||
### e2e tests
|
||||
TODO
|
||||
|
||||
## Continuous integration
|
||||
Misskey uses CircleCI for executing automated tests.
|
||||
Configuration files are located in [`/.circleci`](/.circleci).
|
||||
Misskey uses GitHub Actions for executing automated tests.
|
||||
Configuration files are located in [`/.github/workflows`](/.github/workflows).
|
||||
|
||||
## Adding MisskeyRoom items
|
||||
* Use English for material, object and texture names.
|
||||
* Use meter for unit of length.
|
||||
* Your PR should include all source files (e.g. `.png`, `.blend`) of your models (for later editing).
|
||||
* Your PR must include the glTF binary files (`.glb`) of your models.
|
||||
* Add a locale key `room.furnitures.YOUR_ITEM` at [`/locales/ja-JP.yml`](/locales/ja-JP.yml).
|
||||
* Add a furniture definition at [`/src/client/app/common/scripts/room/furnitures.json5`](/src/client/app/common/scripts/room/furnitures.json5).
|
||||
## Vue
|
||||
Misskey uses Vue(v3) as its front-end framework.
|
||||
- Use TypeScript.
|
||||
- **When creating a new component, please use the Composition API (with [setup sugar](https://v3.vuejs.org/api/sfc-script-setup.html) and [ref sugar](https://github.com/vuejs/rfcs/discussions/369)) instead of the Options API.**
|
||||
- Some of the existing components are implemented in the Options API, but it is an old implementation. Refactors that migrate those components to the Composition API are also welcome.
|
||||
|
||||
If you have no experience on 3D modeling, we suggest to use the free 3DCG software [Blender](https://www.blender.org/).
|
||||
You can find information on glTF 2.0 at [glTF 2.0 — Blender Manual]( https://docs.blender.org/manual/en/dev/addons/io_scene_gltf2.html).
|
||||
|
||||
## FAQ
|
||||
## Notes
|
||||
### How to resolve conflictions occurred at yarn.lock?
|
||||
|
||||
Just execute `yarn` to fix it.
|
||||
|
||||
## Glossary
|
||||
### AP
|
||||
Stands for _**A**ctivity**P**ub_.
|
||||
### INSERTするときにはsaveではなくinsertを使用する
|
||||
#6441
|
||||
|
||||
### MFM
|
||||
Stands for _**M**isskey **F**lavored **M**arkdown_.
|
||||
|
||||
### Mk
|
||||
Stands for _**M**iss**k**ey_.
|
||||
|
||||
### SW
|
||||
Stands for _**S**ervice**W**orker_.
|
||||
|
||||
### Nyaize
|
||||
Convert な(na) to にゃ(nya)
|
||||
|
||||
#### Denyaize
|
||||
Revert Nyaize
|
||||
|
||||
## TypeScript Coding Style
|
||||
### Do not omit semicolons
|
||||
This is to avoid Automatic Semicolon Insertion (ASI) hazard.
|
||||
|
||||
Ref:
|
||||
* https://www.ecma-international.org/ecma-262/#sec-automatic-semicolon-insertion
|
||||
* https://github.com/tc39/ecma262/pull/1062
|
||||
|
||||
### Do not omit curly brackets
|
||||
Bad:
|
||||
``` ts
|
||||
if (foo)
|
||||
bar;
|
||||
else
|
||||
baz;
|
||||
```
|
||||
|
||||
Good:
|
||||
``` ts
|
||||
if (foo) {
|
||||
bar;
|
||||
} else {
|
||||
baz;
|
||||
}
|
||||
```
|
||||
|
||||
As a special case, you can omit the curly brackets if
|
||||
|
||||
* the body of the `if`-statement have only one statement and,
|
||||
* the `if`-statement does not have `else`-clause.
|
||||
|
||||
Good:
|
||||
``` ts
|
||||
if (foo) bar;
|
||||
```
|
||||
|
||||
Make sure that the condition and the body statement are on the same line.
|
||||
|
||||
### Do not use `==` when it can simply be replaced with `===`.
|
||||
🥰
|
||||
|
||||
### Use only boolean (or null related) values in the condition of an `if`-statement.
|
||||
Bad:
|
||||
``` ts
|
||||
if (foo.length)
|
||||
```
|
||||
|
||||
Good:
|
||||
``` ts
|
||||
if (foo.length > 0)
|
||||
```
|
||||
|
||||
### Do not use `export default`
|
||||
This is because the current language support does not work well with `export default`.
|
||||
|
||||
Ref:
|
||||
* https://basarat.gitbooks.io/typescript/docs/tips/defaultIsBad.html
|
||||
* https://gfx.hatenablog.com/entry/2017/11/24/135343
|
||||
|
||||
Bad:
|
||||
``` ts
|
||||
export default function(foo: string): string {
|
||||
```
|
||||
|
||||
Good:
|
||||
``` ts
|
||||
export function something(foo: string): string {
|
||||
```
|
||||
|
||||
## Directory structure
|
||||
```
|
||||
src ... Source code
|
||||
@types ... Type definitions
|
||||
prelude ... Independence utils for coding JavaScript without side effects
|
||||
misc ... Independence utils for Misskey without side effects
|
||||
service ... Common functions with side effects
|
||||
queue ... Job queues and Jobs
|
||||
server ... Web Server
|
||||
client ... Client
|
||||
mfm ... MFM
|
||||
|
||||
test ... Test code
|
||||
|
||||
```
|
||||
|
||||
## Notes
|
||||
### placeholder
|
||||
SQLをクエリビルダで組み立てる際、使用するプレースホルダは重複してはならない
|
||||
例えば
|
||||
@@ -236,46 +221,31 @@ const users = userIds.length > 0 ? await Users.find({
|
||||
SQLでは配列のインデックスは**1始まり**。
|
||||
`[a, b, c]`の `a`にアクセスしたいなら`[0]`ではなく`[1]`と書く
|
||||
|
||||
### null IN
|
||||
nullが含まれる可能性のあるカラムにINするときは、そのままだとおかしくなるのでORなどでnullのハンドリングをしよう。
|
||||
|
||||
### `undefined`にご用心
|
||||
MongoDBの時とは違い、findOneでレコードを取得する時に対象レコードが存在しない場合 **`undefined`** が返ってくるので注意。
|
||||
MongoDBは`null`で返してきてたので、その感覚で`if (x === null)`とか書くとバグる。代わりに`if (x == null)`と書いてください
|
||||
|
||||
### 簡素な`undefined`チェック
|
||||
データベースからレコードを取得するときに、プログラムの流れ的に(ほぼ)絶対`undefined`にはならない場合でも、`undefined`チェックしないとTypeScriptに怒られます。
|
||||
でもいちいち複数行を費やして、発生するはずのない`undefined`をチェックするのも面倒なので、`ensure`というユーティリティ関数を用意しています。
|
||||
例えば、
|
||||
``` ts
|
||||
const user = await Users.findOne(userId);
|
||||
// この時点で user の型は User | undefined
|
||||
if (user == null) {
|
||||
throw 'missing user';
|
||||
}
|
||||
// この時点で user の型は User
|
||||
```
|
||||
という処理を`ensure`を使うと
|
||||
``` ts
|
||||
const user = await Users.findOne(userId).then(ensure);
|
||||
// この時点で user の型は User
|
||||
```
|
||||
という風に書けます。
|
||||
もちろん`ensure`内部でエラーを握りつぶすようなことはしておらず、万が一`undefined`だった場合はPromiseがRejectされ後続の処理は実行されません。
|
||||
``` ts
|
||||
const user = await Users.findOne(userId).then(ensure);
|
||||
// 万が一 Users.findOne の結果が undefined だったら、ensure でエラーが発生するので
|
||||
// この行に到達することは無い
|
||||
// なので、.then(ensure) は
|
||||
// if (user == null) {
|
||||
// throw 'missing user';
|
||||
// }
|
||||
// の糖衣構文のような扱いです
|
||||
```
|
||||
|
||||
### Migration作成方法
|
||||
```
|
||||
npx ts-node ./node_modules/typeorm/cli.js migration:generate -n 変更の名前
|
||||
packages/backendで:
|
||||
```sh
|
||||
npx typeorm migration:generate -d ormconfig.js -o <migration name>
|
||||
```
|
||||
|
||||
作成されたスクリプトは不必要な変更を含むため除去してください。
|
||||
- 生成後、ファイルをmigration下に移してください
|
||||
- 作成されたスクリプトは不必要な変更を含むため除去してください
|
||||
|
||||
### コネクションには`markRaw`せよ
|
||||
**Vueのコンポーネントのdataオプションとして**misskey.jsのコネクションを設定するとき、必ず`markRaw`でラップしてください。インスタンスが不必要にリアクティブ化されることで、misskey.js内の処理で不具合が発生するとともに、パフォーマンス上の問題にも繋がる。なお、Composition APIを使う場合はこの限りではない(リアクティブ化はマニュアルなため)。
|
||||
|
||||
### JSONのimportに気を付けよう
|
||||
TypeScriptでjsonをimportすると、tscでコンパイルするときにそのjsonファイルも一緒にdistディレクトリに吐き出されてしまう。この挙動により、意図せずファイルの書き換えが発生することがあるので、jsonをimportするときは書き換えられても良いものかどうか確認すること。書き換えされて欲しくない場合は、importで読み込むのではなく、`fs.readFileSync`などの関数を使って読み込むようにすればよい。
|
||||
|
||||
### コンポーネントのスタイル定義でmarginを持たせない
|
||||
コンポーネント自身がmarginを設定するのは問題の元となることはよく知られている
|
||||
marginはそのコンポーネントを使う側が設定する
|
||||
|
||||
## その他
|
||||
### HTMLのクラス名で follow という単語は使わない
|
||||
|
4
COPYING
4
COPYING
@@ -6,10 +6,6 @@ And is distributed under The GNU Affero General Public License Version 3, you sh
|
||||
|
||||
Misskey includes several third-party Open-Source softwares.
|
||||
|
||||
Unicode emoji regular expressions by Twitter, Inc.
|
||||
License: MIT
|
||||
https://github.com/twitter/twemoji-parser/blob/master/LICENSE.md
|
||||
|
||||
Emoji keywords for Unicode 11 and below by Mu-An Chiou
|
||||
License: MIT
|
||||
https://github.com/muan/emojilib/blob/master/LICENSE
|
||||
|
41
Dockerfile
41
Dockerfile
@@ -1,41 +1,36 @@
|
||||
FROM node:14.15.1-alpine AS base
|
||||
FROM node:18.0.0-alpine3.15 AS base
|
||||
|
||||
ENV NODE_ENV=production
|
||||
ARG NODE_ENV=production
|
||||
|
||||
WORKDIR /misskey
|
||||
|
||||
ENV BUILD_DEPS autoconf automake file g++ gcc libc-dev libtool make nasm pkgconfig python3 zlib-dev git
|
||||
|
||||
FROM base AS builder
|
||||
|
||||
RUN apk add --no-cache \
|
||||
autoconf \
|
||||
automake \
|
||||
file \
|
||||
git \
|
||||
g++ \
|
||||
gcc \
|
||||
libc-dev \
|
||||
libtool \
|
||||
make \
|
||||
nasm \
|
||||
pkgconfig \
|
||||
python \
|
||||
zlib-dev
|
||||
|
||||
COPY package.json yarn.lock ./
|
||||
RUN yarn install
|
||||
COPY . ./
|
||||
RUN yarn build
|
||||
|
||||
RUN apk add --no-cache $BUILD_DEPS && \
|
||||
git submodule update --init && \
|
||||
yarn install && \
|
||||
yarn build && \
|
||||
rm -rf .git
|
||||
|
||||
FROM base AS runner
|
||||
|
||||
RUN apk add --no-cache \
|
||||
ffmpeg \
|
||||
tini
|
||||
RUN npm i -g web-push
|
||||
ffmpeg \
|
||||
tini
|
||||
|
||||
ENTRYPOINT ["/sbin/tini", "--"]
|
||||
|
||||
COPY --from=builder /misskey/node_modules ./node_modules
|
||||
COPY --from=builder /misskey/built ./built
|
||||
COPY --from=builder /misskey/packages/backend/node_modules ./packages/backend/node_modules
|
||||
COPY --from=builder /misskey/packages/backend/built ./packages/backend/built
|
||||
COPY --from=builder /misskey/packages/client/node_modules ./packages/client/node_modules
|
||||
COPY . ./
|
||||
|
||||
ENV NODE_ENV=production
|
||||
CMD ["npm", "run", "migrateandstart"]
|
||||
|
||||
|
253
README.md
253
README.md
@@ -1,224 +1,57 @@
|
||||
<a href="https://xn--931a.moe/"><img src="https://github.com/syuilo/misskey/blob/develop/assets/ai-orig.png?raw=true" align="right" height="320px"/></a>
|
||||
|
||||
[](https://join.misskey.page/)
|
||||
================================================================
|
||||
|
||||
[](https://circleci.com/gh/syuilo/misskey)
|
||||
[](https://david-dm.org/syuilo/misskey)
|
||||
[](http://makeapullrequest.com)
|
||||
[](https://github.com/humanetech-community/awesome-humane-tech)
|
||||
|
||||
**A forever evolving, interplanetary microblogging platform.**
|
||||
|
||||
<p align="justify">
|
||||
<a href="https://join.misskey.page/">Misskey</a> is a decentralized microblogging platform born on Earth.
|
||||
Since it exists within the Fediverse (a universe where various social media platforms are organized),
|
||||
it is mutually linked with other social media platforms.
|
||||
Why don't you take a short break from the hustle and bustle of the city, and dive into a new Internet? <a href="https://join.misskey.page/">Find an instance!</a>
|
||||
</p>
|
||||
|
||||
<a href="https://www.patreon.com/syuilo"><img src="https://c5.patreon.com/external/logo/become_a_patron_button@2x.png" alt="Become a Patron!" width="160" /></a>
|
||||
|
||||

|
||||
|
||||
:sparkles: Features
|
||||
----------------------------------------------------------------
|
||||
|
||||
<img src="/assets/about/post.png" align="left" height="200px"/>
|
||||
|
||||
<h3 align="left">Posting</h3>
|
||||
<p align="justify">
|
||||
Post your ideas, discussion topics, fun moments, or anything else you want to share! Misskey supports text, emoji, pictures, videos, and polls!
|
||||
</p>
|
||||
|
||||
<div align="center">
|
||||
<a href="https://misskey-hub.net">
|
||||
<img src="./assets/title_float.svg" alt="Misskey logo" style="border-radius:50%" width="400"/>
|
||||
</a>
|
||||
|
||||
**🌎 **[Misskey](https://misskey-hub.net/)** is an open source, decentralized social media platform that's free forever! 🚀**
|
||||
|
||||
---
|
||||
|
||||
<img src="/assets/about/reaction.png" align="right" height="200px"/>
|
||||
<a href="https://misskey-hub.net/instances.html">
|
||||
<img src="https://custom-icon-badges.herokuapp.com/badge/find_an-instance-acea31?logoColor=acea31&style=for-the-badge&logo=misskey&labelColor=363B40" alt="find an instance"/></a>
|
||||
|
||||
<h3 align="right">Reactions</h3>
|
||||
<p align="justify">
|
||||
Reactions are the simplest way to respond to others' posts. Simply pick a reaction emote from the list! Reactions on Misskey are much more expressive than other social media services which only allow “liking”.
|
||||
</p>
|
||||
<a href="https://misskey-hub.net/docs/install.html">
|
||||
<img src="https://custom-icon-badges.herokuapp.com/badge/create_an-instance-FBD53C?logoColor=FBD53C&style=for-the-badge&logo=server&labelColor=363B40" alt="create an instance"/></a>
|
||||
|
||||
<a href="./CONTRIBUTING.md">
|
||||
<img src="https://custom-icon-badges.herokuapp.com/badge/become_a-contributor-A371F7?logoColor=A371F7&style=for-the-badge&logo=git-merge&labelColor=363B40" alt="become a contributor"/></a>
|
||||
|
||||
<a href="https://discord.gg/Wp8gVStHW3">
|
||||
<img src="https://custom-icon-badges.herokuapp.com/badge/join_the-community-5865F2?logoColor=5865F2&style=for-the-badge&logo=discord&labelColor=363B40" alt="join the community"/></a>
|
||||
|
||||
<a href="https://www.patreon.com/syuilo">
|
||||
<img src="https://custom-icon-badges.herokuapp.com/badge/become_a-patron-F96854?logoColor=F96854&style=for-the-badge&logo=patreon&labelColor=363B40" alt="become a patron"/></a>
|
||||
|
||||
---
|
||||
|
||||
<img src="/assets/about/ui.png" align="left" height="200px"/>
|
||||
</div>
|
||||
|
||||
<h3 align="left">Interface</h3>
|
||||
<p align="justify">
|
||||
Customize the UI to your own tastes! No UI will work for everyone, so Misskey is completely customizable. Make Misskey *yours* by editing the style, adjusting timeline layouts, and placing widgets.
|
||||
</p>
|
||||
<div>
|
||||
|
||||
---
|
||||
<a href="https://xn--931a.moe/"><img src="https://github.com/misskey-dev/misskey/blob/develop/assets/ai.png?raw=true" align="right" height="320px"/></a>
|
||||
|
||||
<img src="/assets/about/drive.png" align="right" width="300px"/>
|
||||
## ✨ Features
|
||||
- **ActivityPub support**\
|
||||
Not on Misskey? No problem! Not only can Misskey instances talk to each other, but you can make friends with people on other networks like Mastodon and Pixelfed!
|
||||
- **Reactions**\
|
||||
You can add emoji reactions to any post! No longer are you bound by a like button, show everyone exactly how you feel with the tap of a button.
|
||||
- **Drive**\
|
||||
With Misskey's built in drive, you get cloud storage right in your social media, where you can upload any files, make folders, and find media from posts you've made!
|
||||
- **Rich Web UI**\
|
||||
Misskey has a rich and easy to use Web UI!
|
||||
It is highly customizable, from changing the layout and adding widgets to making custom themes.
|
||||
Furthermore, plugins can be created using AiScript, an original programming language.
|
||||
- And much more...
|
||||
|
||||
<h3 align="right">Misskey Drive</h3>
|
||||
<p align="justify">
|
||||
Organize and store your files! Want to post a picture you have already uploaded? Wish you could organize your files into folders? Misskey Drive is a solution!
|
||||
</p>
|
||||
</div>
|
||||
|
||||
---
|
||||
<div style="clear: both;"></div>
|
||||
|
||||
...and more! Experience Misskey with your own eyes at [misskey.io](https://misskey.io/) or join one of the [other instances](https://joinmisskey.github.io/) that are available.
|
||||
## Documentation
|
||||
|
||||
Screen shots
|
||||
----------------------------------------------------------------
|
||||
### Profile page
|
||||
<img src="/assets/ss/user.jpg" width="500px"/>
|
||||
Misskey Documentation can be found at [Misskey Hub](https://misskey-hub.net/), some of the links and graphics above also lead to specific portions of it.
|
||||
|
||||
### Explore users
|
||||
<img src="/assets/ss/explore.jpg" width="500px"/>
|
||||
|
||||
:new: What's new
|
||||
----------------------------------------------------------------
|
||||
Please see the [Release notes](./CHANGELOG.md).
|
||||
|
||||
:package: Create your own instance
|
||||
----------------------------------------------------------------
|
||||
Please see the [Setup and Installation Guide](./docs/setup.en.md).
|
||||
|
||||
:wrench: Contribution
|
||||
----------------------------------------------------------------
|
||||
Please see the [Contribution Guide](./CONTRIBUTING.md).
|
||||
|
||||
### Collaborators
|
||||
<table>
|
||||
<tr>
|
||||
<td><img src="https://avatars3.githubusercontent.com/u/4439005?s=460&v=4" alt="syuilo" width="100"></td>
|
||||
<td><img src="https://avatars0.githubusercontent.com/u/10798641?s=460&v=4" alt="AyaMorisawa" width="100"></td>
|
||||
<td><img src="https://avatars1.githubusercontent.com/u/30769358?s=460&v=4" alt="mei23" width="100"></td>
|
||||
<td><img src="https://avatars2.githubusercontent.com/u/20679825?s=460&v=4" alt="acid-chicken" width="100"></td>
|
||||
<td><img src="https://avatars2.githubusercontent.com/u/6533808?s=460&v=4" alt="rinsuki" width="100"></td>
|
||||
<td><img src="https://avatars0.githubusercontent.com/u/7973572?s=460&v=4" alt="tamaina" width="100"></td>
|
||||
<td><img src="https://avatars1.githubusercontent.com/u/7106976?s=460&v=4" alt="Xeltica" width="100"></td>
|
||||
<td><img src="https://avatars1.githubusercontent.com/u/17376330?s=460&v=4" alt="u1-liquid" width="100"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/syuilo">@syuilo</a></td>
|
||||
<td align="center"><a href="https://github.com/AyaMorisawa">@AyaMorisawa</a></td>
|
||||
<td align="center"><a href="https://github.com/mei23">@mei23</a></td>
|
||||
<td align="center"><a href="https://github.com/acid-chicken">@acid-chicken</a></td>
|
||||
<td align="center"><a href="https://github.com/rinsuki">@rinsuki</a></td>
|
||||
<td align="center"><a href="https://github.com/tamaina">@tamaina</a></td>
|
||||
<td align="center"><a href="https://github.com/Xeltica">@Xeltica</a></td>
|
||||
<td align="center"><a href="https://github.com/u1-liquid">@u1-liquid</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
:heart: Backers
|
||||
----------------------------------------------------------------
|
||||
<!-- PATREON_START -->
|
||||
<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/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/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>
|
||||
</tr><tr>
|
||||
<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/weepjp">weepjp </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>
|
||||
</tr></table>
|
||||
<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://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/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://c8.patreon.com/2/200/16869916" alt="見当かなみ " 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>
|
||||
</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/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/AureoleArk">AureoleArk </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=36813045">Wataru Manji (manji0)</a></td>
|
||||
</tr></table>
|
||||
<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/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/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/26340354/08834cf767b3449e93098ef73a434e2f/2.png?token-time=2145916800&token-hash=nyM8DnKRL8hR47HQ619mUzsqVRpkWZjgtgBU9RY15Uc%3D" alt="totokoro " width="100"></td>
|
||||
</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=17866454">sikyosyounin </a></td>
|
||||
<td><a href="https://www.patreon.com/yukimochi">YUKIMOCHI</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=38837364">xianon</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=26340354">totokoro </a></td>
|
||||
</tr></table>
|
||||
<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/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/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/5923936/2a743cbfbff946c2af3f09026047c0da/2.png?token-time=2145916800&token-hash=h6yphW1qnM0n_NOWaf8qtszMRLXEwIxfk5beu4RxdT0%3D" alt="noellabo " width="100"></td>
|
||||
</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=4389829">natalie</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=26144593">EBISUME</a></td>
|
||||
<td><a href="https://www.patreon.com/noellabo">noellabo </a></td>
|
||||
</tr></table>
|
||||
<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://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>
|
||||
<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/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>
|
||||
|
||||
**Last updated:** Sun, 26 Jul 2020 07:00:10 UTC
|
||||
<!-- PATREON_END -->
|
||||
|
||||
[backer-url]: #backers
|
||||
[backer-badge]: https://opencollective.com/misskey/backers/badge.svg
|
||||
[backers-image]: https://opencollective.com/misskey/backers.svg
|
||||
[sponsor-url]: #sponsors
|
||||
[sponsor-badge]: https://opencollective.com/misskey/sponsors/badge.svg
|
||||
[sponsors-image]: https://opencollective.com/misskey/sponsors.svg
|
||||
[support-url]: https://opencollective.com/misskey#support
|
||||
|
||||
[syuilo-link]: https://syuilo.com
|
||||
[syuilo-icon]: https://avatars2.githubusercontent.com/u/4439005?v=3&s=70
|
||||
## Sponsors
|
||||
<div align="center">
|
||||
<a class="rss3" title="RSS3" href="https://rss3.io/" target="_blank"><img src="https://rss3.mypinata.cloud/ipfs/QmUG6H3Z7D5P511shn7sB4CPmpjH5uZWu4m5mWX7U3Gqbu" alt="RSS3" height="60"></a>
|
||||
</div>
|
||||
|
36
ROADMAP.md
Normal file
36
ROADMAP.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# Roadmap
|
||||
The order of individual tasks is a guide only and is subject to change depending on the situation.
|
||||
Also, the later tasks are more indefinite and are subject to change as development progresses.
|
||||
|
||||
## (1) Improve maintainability \<current phase\>
|
||||
This is the phase we are at now. We need to make a high-maintenance environment that can withstand future development.
|
||||
|
||||
- Make the number of type errors zero (backend)
|
||||
- Probably need to switch some libraries to others that make it difficult to reduce type errors
|
||||
- e.g. koa to fastify https://github.com/misskey-dev/misskey/issues/7537
|
||||
- Improve CI
|
||||
- Fix tests
|
||||
- mocha, jest, etc. do not support the combination of `TypeScript + ESM + Path alias`, and the tests currently do not work.
|
||||
- Fix random test failures - https://github.com/misskey-dev/misskey/issues/7985 and https://github.com/misskey-dev/misskey/issues/7986
|
||||
- Add more tests
|
||||
- May need to implement a mechanism that allows for DI
|
||||
- Improve documentation
|
||||
|
||||
## (2) Improve functionality
|
||||
Once Phase 1 is complete and an environment conducive to the development of a stable system is in place, the implementation of new functions can begin gradually.
|
||||
|
||||
- OAuth2 support https://github.com/misskey-dev/misskey/issues/8262
|
||||
- GraphQL support?
|
||||
|
||||
## (3) Improve scalability
|
||||
Once the development of the feature has settled down, this may be an opportunity to make larger modifications.
|
||||
|
||||
- Rewriting in Rust?
|
||||
|
||||
## (4) Change the world
|
||||
It is time to promote Misskey and change the world.
|
||||
|
||||
- Become more major than services such as Twitter and become critical infrastructure for the world
|
||||
- MiOS will be developed and integrated into various systems - What is MiOS?
|
||||
- Letting Ai-chan interfere with the real world
|
||||
- Make Misskey a member of GAFA; Misskey's office must be a reinforced concrete brutalist building with a courtyard.
|
9
SECURITY.md
Normal file
9
SECURITY.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Reporting Security Issues
|
||||
|
||||
If you discover a security issue in Misskey, please report it by sending an
|
||||
email to [syuilotan@yahoo.co.jp](mailto:syuilotan@yahoo.co.jp).
|
||||
|
||||
This will allow us to assess the risk, and make a fix available before we add a
|
||||
bug report to the GitHub repository.
|
||||
|
||||
Thanks for helping make Misskey safe for everyone.
|
Binary file not shown.
Before Width: | Height: | Size: 9.3 KiB |
BIN
assets/banner.afdesign
Normal file
BIN
assets/banner.afdesign
Normal file
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 7.2 KiB |
@@ -1,27 +0,0 @@
|
||||
<?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>
|
Before Width: | Height: | Size: 5.7 KiB |
Binary file not shown.
Before Width: | Height: | Size: 7.2 KiB |
Binary file not shown.
Before Width: | Height: | Size: 18 KiB |
BIN
assets/mi-white.afdesign
Normal file
BIN
assets/mi-white.afdesign
Normal file
Binary file not shown.
BIN
assets/mi.afdesign
Normal file
BIN
assets/mi.afdesign
Normal file
Binary file not shown.
67
assets/title_float.svg
Normal file
67
assets/title_float.svg
Normal file
@@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
id="svg10"
|
||||
version="1.1"
|
||||
viewBox="0 0 162.642 54.261"
|
||||
height="205.08"
|
||||
width="614.71">
|
||||
<metadata
|
||||
id="metadata16">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<style>
|
||||
#g8 {
|
||||
animation-name: floating;
|
||||
animation-duration: 3s;
|
||||
animation-iteration-count: infinite;
|
||||
animation-timing-function: ease-in-out;
|
||||
}
|
||||
|
||||
@keyframes floating {
|
||||
0% { transform: translate(0, 0px); }
|
||||
50% { transform: translate(0, -5px); }
|
||||
100% { transform: translate(0, 0px); }
|
||||
}
|
||||
</style>
|
||||
<linearGradient id="myGradient" gradientTransform="rotate(90)">
|
||||
<stop offset="5%" stop-color="#A1CA03" />
|
||||
<stop offset="95%" stop-color="#91BA03" />
|
||||
</linearGradient>
|
||||
<defs
|
||||
id="defs14" />
|
||||
<g
|
||||
id="g8"
|
||||
fill="url('#myGradient')"
|
||||
word-spacing="0"
|
||||
letter-spacing="0"
|
||||
font-family="OTADESIGN Rounded"
|
||||
font-weight="400">
|
||||
<g
|
||||
id="g4"
|
||||
style="line-height:476.69509888px;-inkscape-font-specification:'OTADESIGN Rounded'">
|
||||
<path
|
||||
id="path2"
|
||||
font-size="141.034"
|
||||
aria-label="Mi"
|
||||
d="m 27.595,34.59 c -1.676,0.006 -3.115,-1.004 -3.793,-2.179 -0.363,-0.513 -1.08,-0.696 -1.09,0 v 3.214 c 0,1.291 -0.47,2.408 -1.412,3.35 -0.915,0.914 -2.031,1.371 -3.35,1.371 -1.29,0 -2.407,-0.457 -3.349,-1.372 -0.914,-0.941 -1.372,-2.058 -1.372,-3.349 V 17.95 c 0,-0.995 0.283,-1.896 0.848,-2.703 0.591,-0.834 1.345,-1.413 2.26,-1.735 0.516591,-0.189385 1.062793,-0.285215 1.613,-0.283 1.453,0 2.664,0.565 3.632,1.695 l 4.832,5.608 c 0.108,0.08 0.424,0.697 1.18,0.697 0.758,0 1.115,-0.617 1.222,-0.698 l 4.791,-5.607 c 0.996,-1.13 2.22,-1.695 3.673,-1.695 0.538,0 1.076,0.094 1.614,0.283 0.914,0.322 1.654,0.9 2.22,1.735 0.591,0.807 0.887,1.708 0.887,2.703 v 17.675 c 0,1.291 -0.47,2.408 -1.412,3.35 -0.915,0.914 -2.032,1.371 -3.35,1.371 -1.291,0 -2.407,-0.457 -3.35,-1.372 -0.914,-0.941 -1.371,-2.058 -1.371,-3.349 v -3.214 c -0.08,-0.877 -0.855,-0.324 -1.13,0 -0.726,1.345 -2.118,2.173 -3.793,2.18 z M 47.806,21.38 c -1.13,0 -2.098333,-0.39 -2.905,-1.17 -0.78,-0.806667 -1.17,-1.775 -1.17,-2.905 0,-1.13 0.39,-2.085 1.17,-2.865 0.806667,-0.806667 1.775,-1.21 2.905,-1.21 1.13,0 2.098667,0.403333 2.906,1.21 0.806667,0.78 1.21,1.735 1.21,2.865 0,1.13 -0.403333,2.098333 -1.21,2.905 -0.807333,0.78 -1.776,1.17 -2.906,1.17 z m 0.04,0.808 c 1.13,0 2.085333,0.403333 2.866,1.21 0.806667,0.806667 1.21,1.775333 1.21,2.906 v 9.967 c 0,1.13 -0.403333,2.098333 -1.21,2.905 -0.78,0.78 -1.735333,1.17 -2.866,1.17 -1.129333,0 -2.097667,-0.39 -2.905,-1.17 -0.806667,-0.806667 -1.21,-1.775 -1.21,-2.905 v -9.967 c 0,-1.13 0.403333,-2.098667 1.21,-2.906 0.806667,-0.806667 1.775,-1.21 2.905,-1.21 z"
|
||||
style="font-size:141.03399658px;-inkscape-font-specification:'OTADESIGN Rounded'" />
|
||||
</g>
|
||||
<path
|
||||
id="path6"
|
||||
d="M60.925 27.24q.968.243 2.42.525 2.42.403 3.792 1.29 2.582 1.695 2.582 5.083 0 2.743-1.815 4.478-2.098 2.017-5.85 2.017-2.742 0-6.13-.767-1.09-.242-1.776-1.089-.645-.847-.645-1.896 0-1.29.887-2.178.928-.928 2.179-.928.363 0 .685.081 1.17.242 4.478.605.444 0 .968-.04.202 0 .202-.242.04-.202-.242-.283-1.372-.242-2.542-.524-1.33-.282-1.896-.484-1.129-.323-1.895-.847-2.582-1.694-2.622-5.083 0-2.702 1.855-4.477 2.26-2.179 6.414-1.977 2.783.121 5.567.726 1.048.242 1.734 1.09.686.846.686 1.936 0 1.25-.928 2.178-.887.887-2.178.887-.323 0-.645-.08-1.17-.242-4.518-.565-.404-.04-.767 0-.323.04-.323.242.04.242.323.323zm17.555 0q.968.243 2.42.525 2.42.403 3.792 1.29 2.581 1.695 2.581 5.083 0 2.743-1.815 4.478-2.098 2.017-5.849 2.017-2.743 0-6.131-.767-1.09-.242-1.775-1.089-.646-.847-.646-1.896 0-1.29.888-2.178.927-.928 2.178-.928.363 0 .686.081 1.17.242 4.477.605.444 0 .968-.04.202 0 .202-.242.04-.202-.242-.283-1.371-.242-2.541-.524-1.331-.282-1.896-.484-1.13-.323-1.896-.847-2.582-1.694-2.622-5.083 0-2.702 1.855-4.477 2.26-2.179 6.414-1.977 2.784.121 5.567.726 1.049.242 1.735 1.09.685.846.685 1.936 0 1.25-.927 2.178-.888.887-2.179.887-.322 0-.645-.08-1.17-.242-4.518-.565-.403-.04-.767 0-.322.04-.322.242.04.242.322.323zm26.075 3.335q.12.08 2.864 2.783 1.25 1.21 1.25 2.945 0 1.613-1.17 2.864-1.17 1.21-2.904 1.21-1.654 0-2.864-1.17l-4.034-3.913q-.161-.12-.323-.12-.322 0-.322 1.21 0 1.694-1.21 2.904-1.21 1.17-2.905 1.17-1.694 0-2.904-1.17-1.17-1.21-1.17-2.905V17.586q0-1.694 1.17-2.864 1.21-1.21 2.904-1.21t2.904 1.21q1.21 1.17 1.21 2.864v6.293q0 .403.283.524.242.121.524-.08.162-.081 4.841-3.188 1.049-.645 2.259-.645 2.219 0 3.429 1.815.645 1.05.645 2.26 0 2.218-1.815 3.428l-2.541 1.614v.04l-.081.04q-.565.363-.04.888zm15.599 10.058q-4.195 0-7.18-2.945-2.945-2.985-2.945-7.18 0-4.155 2.945-7.1 2.985-2.985 7.18-2.985 4.155 0 6.979 2.784.928.927.928 2.259 0 1.33-.928 2.259l-4.68 4.639q-1.008 1.008-2.016 1.008-1.453 0-2.26-.807-.806-.807-.806-2.138 0-1.29.928-2.218l.806-.847q.162-.121.081-.243-.12-.08-.323-.04-.806.202-1.371.807-1.13 1.09-1.13 2.622 0 1.573 1.09 2.703 1.13 1.089 2.702 1.089 1.533 0 2.622-1.13.928-.927 2.26-.927 1.33 0 2.258.927.928.928.928 2.26 0 1.33-.928 2.258-2.985 2.945-7.14 2.945zm29.259-15.786v5.607q0 .564-.08 1.21v7.382q0 4.518-2.744 7.22-2.702 2.703-7.301 2.703-2.662 0-4.8-1.008-2.138-.968-2.138-3.348 0-.807.363-1.533.968-2.179 3.348-2.179.565 0 1.573.323 1.009.323 1.654.323 1.694 0 2.219-.726.201-.283.08-.444-.161-.242-.564-.161-.686.12-1.493.12-4.074 0-6.979-2.904-2.904-2.904-2.904-6.978v-5.607q0-1.695 1.17-2.864 1.21-1.21 2.904-1.21t2.905 1.21q1.21 1.17 1.21 2.864v5.607q0 .685.484 1.21.524.484 1.21.484.726 0 1.21-.484.484-.525.484-1.21v-5.607q0-1.695 1.21-2.864 1.21-1.21 2.905-1.21 1.694 0 2.864 1.21 1.21 1.17 1.21 2.864z"
|
||||
style="line-height:136.34428406px;-inkscape-font-specification:'OTADESIGN Rounded'" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 6.1 KiB |
3
chart/Chart.yaml
Normal file
3
chart/Chart.yaml
Normal file
@@ -0,0 +1,3 @@
|
||||
apiVersion: v2
|
||||
name: misskey
|
||||
version: 0.0.0
|
165
chart/files/default.yml
Normal file
165
chart/files/default.yml
Normal file
@@ -0,0 +1,165 @@
|
||||
#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
# Misskey configuration
|
||||
#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
# ┌─────┐
|
||||
#───┘ URL └─────────────────────────────────────────────────────
|
||||
|
||||
# Final accessible URL seen by a user.
|
||||
# url: https://example.tld/
|
||||
|
||||
# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
|
||||
# URL SETTINGS AFTER THAT!
|
||||
|
||||
# ┌───────────────────────┐
|
||||
#───┘ Port and TLS settings └───────────────────────────────────
|
||||
|
||||
#
|
||||
# Misskey supports two deployment options for public.
|
||||
#
|
||||
|
||||
# Option 1: With Reverse Proxy
|
||||
#
|
||||
# +----- https://example.tld/ ------------+
|
||||
# +------+ |+-------------+ +----------------+|
|
||||
# | User | ---> || Proxy (443) | ---> | Misskey (3000) ||
|
||||
# +------+ |+-------------+ +----------------+|
|
||||
# +---------------------------------------+
|
||||
#
|
||||
# You need to setup reverse proxy. (eg. nginx)
|
||||
# You do not define 'https' section.
|
||||
|
||||
# Option 2: Standalone
|
||||
#
|
||||
# +- https://example.tld/ -+
|
||||
# +------+ | +---------------+ |
|
||||
# | User | ---> | | Misskey (443) | |
|
||||
# +------+ | +---------------+ |
|
||||
# +------------------------+
|
||||
#
|
||||
# You need to run Misskey as root.
|
||||
# You need to set Certificate in 'https' section.
|
||||
|
||||
# To use option 1, uncomment below line.
|
||||
port: 3000 # A port that your Misskey server should listen.
|
||||
|
||||
# To use option 2, uncomment below lines.
|
||||
#port: 443
|
||||
|
||||
#https:
|
||||
# # path for certification
|
||||
# key: /etc/letsencrypt/live/example.tld/privkey.pem
|
||||
# cert: /etc/letsencrypt/live/example.tld/fullchain.pem
|
||||
|
||||
# ┌──────────────────────────┐
|
||||
#───┘ PostgreSQL configuration └────────────────────────────────
|
||||
|
||||
db:
|
||||
host: localhost
|
||||
port: 5432
|
||||
|
||||
# Database name
|
||||
db: misskey
|
||||
|
||||
# Auth
|
||||
user: example-misskey-user
|
||||
pass: example-misskey-pass
|
||||
|
||||
# Whether disable Caching queries
|
||||
#disableCache: true
|
||||
|
||||
# Extra Connection options
|
||||
#extra:
|
||||
# ssl: true
|
||||
|
||||
# ┌─────────────────────┐
|
||||
#───┘ Redis configuration └─────────────────────────────────────
|
||||
|
||||
redis:
|
||||
host: localhost
|
||||
port: 6379
|
||||
#pass: example-pass
|
||||
#prefix: example-prefix
|
||||
#db: 1
|
||||
|
||||
# ┌─────────────────────────────┐
|
||||
#───┘ Elasticsearch configuration └─────────────────────────────
|
||||
|
||||
#elasticsearch:
|
||||
# host: localhost
|
||||
# port: 9200
|
||||
# ssl: false
|
||||
# user:
|
||||
# pass:
|
||||
|
||||
# ┌───────────────┐
|
||||
#───┘ ID generation └───────────────────────────────────────────
|
||||
|
||||
# You can select the ID generation method.
|
||||
# You don't usually need to change this setting, but you can
|
||||
# change it according to your preferences.
|
||||
|
||||
# Available methods:
|
||||
# aid ... Short, Millisecond accuracy
|
||||
# meid ... Similar to ObjectID, Millisecond accuracy
|
||||
# ulid ... Millisecond accuracy
|
||||
# objectid ... This is left for backward compatibility
|
||||
|
||||
# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
|
||||
# ID SETTINGS AFTER THAT!
|
||||
|
||||
id: "aid"
|
||||
# ┌─────────────────────┐
|
||||
#───┘ Other configuration └─────────────────────────────────────
|
||||
|
||||
# Whether disable HSTS
|
||||
#disableHsts: true
|
||||
|
||||
# Number of worker processes
|
||||
#clusterLimit: 1
|
||||
|
||||
# Job concurrency per worker
|
||||
# deliverJobConcurrency: 128
|
||||
# inboxJobConcurrency: 16
|
||||
|
||||
# Job rate limiter
|
||||
# deliverJobPerSec: 128
|
||||
# inboxJobPerSec: 16
|
||||
|
||||
# Job attempts
|
||||
# deliverJobMaxAttempts: 12
|
||||
# inboxJobMaxAttempts: 8
|
||||
|
||||
# IP address family used for outgoing request (ipv4, ipv6 or dual)
|
||||
#outgoingAddressFamily: ipv4
|
||||
|
||||
# Syslog option
|
||||
#syslog:
|
||||
# host: localhost
|
||||
# port: 514
|
||||
|
||||
# Proxy for HTTP/HTTPS
|
||||
#proxy: http://127.0.0.1:3128
|
||||
|
||||
#proxyBypassHosts: [
|
||||
# 'example.com',
|
||||
# '192.0.2.8'
|
||||
#]
|
||||
|
||||
# Proxy for SMTP/SMTPS
|
||||
#proxySmtp: http://127.0.0.1:3128 # use HTTP/1.1 CONNECT
|
||||
#proxySmtp: socks4://127.0.0.1:1080 # use SOCKS4
|
||||
#proxySmtp: socks5://127.0.0.1:1080 # use SOCKS5
|
||||
|
||||
# Media Proxy
|
||||
#mediaProxy: https://example.com/proxy
|
||||
|
||||
# Sign to ActivityPub GET request (default: false)
|
||||
#signToActivityPubGet: true
|
||||
|
||||
#allowedPrivateNetworks: [
|
||||
# '127.0.0.1/32'
|
||||
#]
|
||||
|
||||
# Upload or download file size limits (bytes)
|
||||
#maxFileSize: 262144000
|
8
chart/templates/ConfigMap.yml
Normal file
8
chart/templates/ConfigMap.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ include "misskey.fullname" . }}-configuration
|
||||
data:
|
||||
default.yml: |-
|
||||
{{ .Files.Get "files/default.yml"|nindent 4 }}
|
||||
url: {{ .Values.url }}
|
47
chart/templates/Deployment.yml
Normal file
47
chart/templates/Deployment.yml
Normal file
@@ -0,0 +1,47 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "misskey.fullname" . }}
|
||||
labels:
|
||||
{{- include "misskey.labels" . | nindent 4 }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "misskey.selectorLabels" . | nindent 6 }}
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "misskey.selectorLabels" . | nindent 8 }}
|
||||
spec:
|
||||
containers:
|
||||
- name: misskey
|
||||
image: {{ .Values.image }}
|
||||
env:
|
||||
- name: NODE_ENV
|
||||
value: {{ .Values.environment }}
|
||||
volumeMounts:
|
||||
- name: {{ include "misskey.fullname" . }}-configuration
|
||||
mountPath: /misskey/.config
|
||||
readOnly: true
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
- name: postgres
|
||||
image: postgres:14-alpine
|
||||
env:
|
||||
- name: POSTGRES_USER
|
||||
value: "example-misskey-user"
|
||||
- name: POSTGRES_PASSWORD
|
||||
value: "example-misskey-pass"
|
||||
- name: POSTGRES_DB
|
||||
value: "misskey"
|
||||
ports:
|
||||
- containerPort: 5432
|
||||
- name: redis
|
||||
image: redis:alpine
|
||||
ports:
|
||||
- containerPort: 6379
|
||||
volumes:
|
||||
- name: {{ include "misskey.fullname" . }}-configuration
|
||||
configMap:
|
||||
name: {{ include "misskey.fullname" . }}-configuration
|
14
chart/templates/Service.yml
Normal file
14
chart/templates/Service.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "misskey.fullname" . }}
|
||||
annotations:
|
||||
dev.okteto.com/auto-ingress: "true"
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: 3000
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
{{- include "misskey.selectorLabels" . | nindent 4 }}
|
62
chart/templates/_helpers.tpl
Normal file
62
chart/templates/_helpers.tpl
Normal file
@@ -0,0 +1,62 @@
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "misskey.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "misskey.fullname" -}}
|
||||
{{- if .Values.fullnameOverride }}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- else }}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride }}
|
||||
{{- if contains $name .Release.Name }}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
||||
{{- else }}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "misskey.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Common labels
|
||||
*/}}
|
||||
{{- define "misskey.labels" -}}
|
||||
helm.sh/chart: {{ include "misskey.chart" . }}
|
||||
{{ include "misskey.selectorLabels" . }}
|
||||
{{- if .Chart.AppVersion }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
{{- end }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Selector labels
|
||||
*/}}
|
||||
{{- define "misskey.selectorLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "misskey.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create the name of the service account to use
|
||||
*/}}
|
||||
{{- define "misskey.serviceAccountName" -}}
|
||||
{{- if .Values.serviceAccount.create }}
|
||||
{{- default (include "misskey.fullname" .) .Values.serviceAccount.name }}
|
||||
{{- else }}
|
||||
{{- default "default" .Values.serviceAccount.name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
3
chart/values.yml
Normal file
3
chart/values.yml
Normal file
@@ -0,0 +1,3 @@
|
||||
url: https://example.tld/
|
||||
image: okteto.dev/misskey
|
||||
environment: production
|
@@ -2,6 +2,3 @@ files:
|
||||
- source: /locales/ja-JP.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
|
||||
|
12
cypress.config.ts
Normal file
12
cypress.config.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
import { defineConfig } from 'cypress'
|
||||
|
||||
export default defineConfig({
|
||||
e2e: {
|
||||
// We've imported your old cypress plugins here.
|
||||
// You may want to clean this up later by importing these.
|
||||
setupNodeEvents(on, config) {
|
||||
return require('./cypress/plugins/index.js')(on, config)
|
||||
},
|
||||
baseUrl: 'http://localhost:61812',
|
||||
},
|
||||
})
|
149
cypress/e2e/basic.cy.js
Normal file
149
cypress/e2e/basic.cy.js
Normal file
@@ -0,0 +1,149 @@
|
||||
describe('Before setup instance', () => {
|
||||
beforeEach(() => {
|
||||
cy.resetState();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
// テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。
|
||||
// waitを入れることでそれを防止できる
|
||||
cy.wait(1000);
|
||||
});
|
||||
|
||||
it('successfully loads', () => {
|
||||
cy.visit('/');
|
||||
});
|
||||
|
||||
it('setup instance', () => {
|
||||
cy.visit('/');
|
||||
|
||||
cy.intercept('POST', '/api/admin/accounts/create').as('signup');
|
||||
|
||||
cy.get('[data-cy-admin-username] input').type('admin');
|
||||
cy.get('[data-cy-admin-password] input').type('admin1234');
|
||||
cy.get('[data-cy-admin-ok]').click();
|
||||
|
||||
// なぜか動かない
|
||||
//cy.wait('@signup').should('have.property', 'response.statusCode');
|
||||
cy.wait('@signup');
|
||||
});
|
||||
});
|
||||
|
||||
describe('After setup instance', () => {
|
||||
beforeEach(() => {
|
||||
cy.resetState();
|
||||
|
||||
// インスタンス初期セットアップ
|
||||
cy.registerUser('admin', 'pass', true);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
// テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。
|
||||
// waitを入れることでそれを防止できる
|
||||
cy.wait(1000);
|
||||
});
|
||||
|
||||
it('successfully loads', () => {
|
||||
cy.visit('/');
|
||||
});
|
||||
|
||||
it('signup', () => {
|
||||
cy.visit('/');
|
||||
|
||||
cy.intercept('POST', '/api/signup').as('signup');
|
||||
|
||||
cy.get('[data-cy-signup]').click();
|
||||
cy.get('[data-cy-signup-username] input').type('alice');
|
||||
cy.get('[data-cy-signup-password] input').type('alice1234');
|
||||
cy.get('[data-cy-signup-password-retype] input').type('alice1234');
|
||||
cy.get('[data-cy-signup-submit]').click();
|
||||
|
||||
cy.wait('@signup');
|
||||
});
|
||||
});
|
||||
|
||||
describe('After user signup', () => {
|
||||
beforeEach(() => {
|
||||
cy.resetState();
|
||||
|
||||
// インスタンス初期セットアップ
|
||||
cy.registerUser('admin', 'pass', true);
|
||||
|
||||
// ユーザー作成
|
||||
cy.registerUser('alice', 'alice1234');
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
// テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。
|
||||
// waitを入れることでそれを防止できる
|
||||
cy.wait(1000);
|
||||
});
|
||||
|
||||
it('successfully loads', () => {
|
||||
cy.visit('/');
|
||||
});
|
||||
|
||||
it('signin', () => {
|
||||
cy.visit('/');
|
||||
|
||||
cy.intercept('POST', '/api/signin').as('signin');
|
||||
|
||||
cy.get('[data-cy-signin]').click();
|
||||
cy.get('[data-cy-signin-username] input').type('alice');
|
||||
// Enterキーでサインインできるかの確認も兼ねる
|
||||
cy.get('[data-cy-signin-password] input').type('alice1234{enter}');
|
||||
|
||||
cy.wait('@signin');
|
||||
});
|
||||
|
||||
it('suspend', function() {
|
||||
cy.request('POST', '/api/admin/suspend-user', {
|
||||
i: this.admin.token,
|
||||
userId: this.alice.id,
|
||||
});
|
||||
|
||||
cy.visit('/');
|
||||
|
||||
cy.get('[data-cy-signin]').click();
|
||||
cy.get('[data-cy-signin-username] input').type('alice');
|
||||
cy.get('[data-cy-signin-password] input').type('alice1234{enter}');
|
||||
|
||||
// TODO: cypressにブラウザの言語指定できる機能が実装され次第英語のみテストするようにする
|
||||
cy.contains(/アカウントが凍結されています|This account has been suspended due to/gi);
|
||||
});
|
||||
});
|
||||
|
||||
describe('After user singed in', () => {
|
||||
beforeEach(() => {
|
||||
cy.resetState();
|
||||
|
||||
// インスタンス初期セットアップ
|
||||
cy.registerUser('admin', 'pass', true);
|
||||
|
||||
// ユーザー作成
|
||||
cy.registerUser('alice', 'alice1234');
|
||||
|
||||
cy.login('alice', 'alice1234');
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
// テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。
|
||||
// waitを入れることでそれを防止できる
|
||||
cy.wait(1000);
|
||||
});
|
||||
|
||||
it('successfully loads', () => {
|
||||
cy.get('[data-cy-open-post-form]').should('be.visible');
|
||||
});
|
||||
|
||||
it('note', () => {
|
||||
cy.get('[data-cy-open-post-form]').click();
|
||||
cy.get('[data-cy-post-form-text]').type('Hello, Misskey!');
|
||||
cy.get('[data-cy-open-post-form-submit]').click();
|
||||
|
||||
cy.contains('Hello, Misskey!');
|
||||
});
|
||||
});
|
||||
|
||||
// TODO: 投稿フォームの公開範囲指定のテスト
|
||||
// TODO: 投稿フォームのファイル添付のテスト
|
||||
// TODO: 投稿フォームのハッシュタグ保持フィールドのテスト
|
65
cypress/e2e/widgets.cy.js
Normal file
65
cypress/e2e/widgets.cy.js
Normal file
@@ -0,0 +1,65 @@
|
||||
describe('After user signed in', () => {
|
||||
beforeEach(() => {
|
||||
cy.resetState();
|
||||
cy.viewport('macbook-16');
|
||||
|
||||
// インスタンス初期セットアップ
|
||||
cy.registerUser('admin', 'pass', true);
|
||||
|
||||
// ユーザー作成
|
||||
cy.registerUser('alice', 'alice1234');
|
||||
|
||||
cy.login('alice', 'alice1234');
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
// テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。
|
||||
// waitを入れることでそれを防止できる
|
||||
cy.wait(1000);
|
||||
});
|
||||
|
||||
it('widget edit toggle is visible', () => {
|
||||
cy.get('.mk-widget-edit').should('be.visible');
|
||||
});
|
||||
|
||||
it('widget select should be visible in edit mode', () => {
|
||||
cy.get('.mk-widget-edit').click();
|
||||
cy.get('.mk-widget-select').should('be.visible');
|
||||
});
|
||||
|
||||
it('first widget should be removed', () => {
|
||||
cy.get('.mk-widget-edit').click();
|
||||
cy.get('.customize-container:first-child .remove._button').click();
|
||||
cy.get('.customize-container').should('have.length', 2);
|
||||
});
|
||||
|
||||
function buildWidgetTest(widgetName) {
|
||||
it(`${widgetName} widget should get added`, () => {
|
||||
cy.get('.mk-widget-edit').click();
|
||||
cy.get('.mk-widget-select select').select(widgetName, { force: true });
|
||||
cy.get('.bg._modalBg.transparent').click({ multiple: true, force: true });
|
||||
cy.get('.mk-widget-add').click({ force: true });
|
||||
cy.get(`.mkw-${widgetName}`).should('exist');
|
||||
});
|
||||
}
|
||||
|
||||
buildWidgetTest('memo');
|
||||
buildWidgetTest('notifications');
|
||||
buildWidgetTest('timeline');
|
||||
buildWidgetTest('calendar');
|
||||
buildWidgetTest('rss');
|
||||
buildWidgetTest('trends');
|
||||
buildWidgetTest('clock');
|
||||
buildWidgetTest('activity');
|
||||
buildWidgetTest('photos');
|
||||
buildWidgetTest('digitalClock');
|
||||
buildWidgetTest('federation');
|
||||
buildWidgetTest('postForm');
|
||||
buildWidgetTest('slideshow');
|
||||
buildWidgetTest('serverMetric');
|
||||
buildWidgetTest('onlineUsers');
|
||||
buildWidgetTest('jobQueue');
|
||||
buildWidgetTest('button');
|
||||
buildWidgetTest('aiscript');
|
||||
buildWidgetTest('aichan');
|
||||
});
|
5
cypress/fixtures/example.json
Normal file
5
cypress/fixtures/example.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "Using fixtures to represent data",
|
||||
"email": "hello@cypress.io",
|
||||
"body": "Fixtures are a great way to mock data for responses to routes"
|
||||
}
|
22
cypress/plugins/index.js
Normal file
22
cypress/plugins/index.js
Normal file
@@ -0,0 +1,22 @@
|
||||
/// <reference types="cypress" />
|
||||
// ***********************************************************
|
||||
// This example plugins/index.js can be used to load plugins
|
||||
//
|
||||
// You can change the location of this file or turn off loading
|
||||
// the plugins file with the 'pluginsFile' configuration option.
|
||||
//
|
||||
// You can read more here:
|
||||
// https://on.cypress.io/plugins-guide
|
||||
// ***********************************************************
|
||||
|
||||
// This function is called when a project is opened or re-opened (e.g. due to
|
||||
// the project's config changing)
|
||||
|
||||
/**
|
||||
* @type {Cypress.PluginConfig}
|
||||
*/
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
module.exports = (on, config) => {
|
||||
// `on` is used to hook into various events Cypress emits
|
||||
// `config` is the resolved Cypress config
|
||||
}
|
55
cypress/support/commands.js
Normal file
55
cypress/support/commands.js
Normal file
@@ -0,0 +1,55 @@
|
||||
// ***********************************************
|
||||
// This example commands.js shows you how to
|
||||
// create various custom commands and overwrite
|
||||
// existing commands.
|
||||
//
|
||||
// For more comprehensive examples of custom
|
||||
// commands please read more here:
|
||||
// https://on.cypress.io/custom-commands
|
||||
// ***********************************************
|
||||
//
|
||||
//
|
||||
// -- This is a parent command --
|
||||
// Cypress.Commands.add('login', (email, password) => { ... })
|
||||
//
|
||||
//
|
||||
// -- This is a child command --
|
||||
// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
|
||||
//
|
||||
//
|
||||
// -- This is a dual command --
|
||||
// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
|
||||
//
|
||||
//
|
||||
// -- This will overwrite an existing command --
|
||||
// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
|
||||
|
||||
Cypress.Commands.add('resetState', () => {
|
||||
cy.window(win => {
|
||||
win.indexedDB.deleteDatabase('keyval-store');
|
||||
});
|
||||
cy.request('POST', '/api/reset-db').as('reset');
|
||||
cy.get('@reset').its('status').should('equal', 204);
|
||||
cy.reload(true);
|
||||
});
|
||||
|
||||
Cypress.Commands.add('registerUser', (username, password, isAdmin = false) => {
|
||||
const route = isAdmin ? '/api/admin/accounts/create' : '/api/signup';
|
||||
|
||||
cy.request('POST', route, {
|
||||
username: username,
|
||||
password: password,
|
||||
}).its('body').as(username);
|
||||
});
|
||||
|
||||
Cypress.Commands.add('login', (username, password) => {
|
||||
cy.visit('/');
|
||||
|
||||
cy.intercept('POST', '/api/signin').as('signin');
|
||||
|
||||
cy.get('[data-cy-signin]').click();
|
||||
cy.get('[data-cy-signin-username] input').type(username);
|
||||
cy.get('[data-cy-signin-password] input').type(`${password}{enter}`);
|
||||
|
||||
cy.wait('@signin').as('signedIn');
|
||||
});
|
32
cypress/support/e2e.js
Normal file
32
cypress/support/e2e.js
Normal file
@@ -0,0 +1,32 @@
|
||||
// ***********************************************************
|
||||
// This example support/index.js is processed and
|
||||
// loaded automatically before your test files.
|
||||
//
|
||||
// This is a great place to put global configuration and
|
||||
// behavior that modifies Cypress.
|
||||
//
|
||||
// You can change the location of this file or turn off
|
||||
// automatically serving support files with the
|
||||
// 'supportFile' configuration option.
|
||||
//
|
||||
// You can read more here:
|
||||
// https://on.cypress.io/configuration
|
||||
// ***********************************************************
|
||||
|
||||
// Import commands.js using ES2015 syntax:
|
||||
import './commands'
|
||||
|
||||
// Alternatively you can use CommonJS syntax:
|
||||
// require('./commands')
|
||||
|
||||
Cypress.on('uncaught:exception', (err, runnable) => {
|
||||
if ([
|
||||
// Chrome
|
||||
'ResizeObserver loop limit exceeded',
|
||||
|
||||
// Firefox
|
||||
'ResizeObserver loop completed with undelivered notifications',
|
||||
].some(msg => err.message.includes(msg))) {
|
||||
return false;
|
||||
}
|
||||
});
|
@@ -9,12 +9,13 @@ services:
|
||||
- redis
|
||||
# - es
|
||||
ports:
|
||||
- "127.0.0.1:3000:3000"
|
||||
- "3000:3000"
|
||||
networks:
|
||||
- internal_network
|
||||
- external_network
|
||||
volumes:
|
||||
- ./files:/misskey/files
|
||||
- ./.config:/misskey/.config:ro
|
||||
|
||||
redis:
|
||||
restart: always
|
||||
@@ -39,6 +40,7 @@ services:
|
||||
# image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.4.2
|
||||
# environment:
|
||||
# - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
|
||||
# - "TAKE_FILE_OWNERSHIP=111"
|
||||
# networks:
|
||||
# - internal_network
|
||||
# volumes:
|
||||
|
@@ -1,33 +0,0 @@
|
||||
# Docs
|
||||
These docs are for contributors of Misskey or admins of instance of Misskey.
|
||||
Docs for users are located in `src/docs`.
|
||||
|
||||
これらのドキュメントはMisskeyの開発者またはMisskeyインスタンス運営者向けです。
|
||||
利用者向けのドキュメントは`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)
|
@@ -1,96 +0,0 @@
|
||||
Docker Guide
|
||||
================================================================
|
||||
|
||||
This guide describes how to install and setup Misskey with Docker.
|
||||
|
||||
- [Japanese version also available - 日本語版もあります](./docker.ja.md)
|
||||
- [Simplified Chinese version also available - 简体中文版同样可用](./docker.zh.md)
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
*1.* Download Misskey
|
||||
----------------------------------------------------------------
|
||||
1. Clone Misskey repository's master branch.
|
||||
|
||||
`git clone -b master git://github.com/syuilo/misskey.git`
|
||||
|
||||
2. Move to misskey directory.
|
||||
|
||||
`cd misskey`
|
||||
|
||||
3. Checkout to the [latest release](https://github.com/syuilo/misskey/releases/latest) tag.
|
||||
|
||||
`git checkout master`
|
||||
|
||||
*2.* Configure Misskey
|
||||
----------------------------------------------------------------
|
||||
|
||||
Create configuration files with following:
|
||||
|
||||
```bash
|
||||
cd .config
|
||||
cp example.yml default.yml
|
||||
cp docker_example.env docker.env
|
||||
```
|
||||
|
||||
### `default.yml`
|
||||
|
||||
Edit this file the same as non-Docker environment.
|
||||
However hostname of Postgresql, Redis and Elasticsearch are not `localhost`, they are set in `docker-compose.yml`.
|
||||
The following is default hostname:
|
||||
|
||||
| Service | Hostname |
|
||||
|---------------|----------|
|
||||
| Postgresql | `db` |
|
||||
| Redis | `redis` |
|
||||
| Elasticsearch | `es` |
|
||||
|
||||
### `docker.env`
|
||||
|
||||
Configure Postgresql in this file.
|
||||
The minimum required settings are:
|
||||
|
||||
| name | Description |
|
||||
|---------------------|---------------|
|
||||
| `POSTGRES_PASSWORD` | Password |
|
||||
| `POSTGRES_USER` | Username |
|
||||
| `POSTGRES_DB` | Database name |
|
||||
|
||||
*3.* Configure Docker
|
||||
----------------------------------------------------------------
|
||||
Edit `docker-compose.yml`.
|
||||
|
||||
*4.* Build Misskey
|
||||
----------------------------------------------------------------
|
||||
Build misskey with the following:
|
||||
|
||||
`docker-compose build`
|
||||
|
||||
*5.* Init DB
|
||||
----------------------------------------------------------------
|
||||
``` shell
|
||||
docker-compose run --rm web yarn run init
|
||||
```
|
||||
|
||||
*6.* That is it.
|
||||
----------------------------------------------------------------
|
||||
Well done! Now you have an environment to run Misskey.
|
||||
|
||||
### Launch normally
|
||||
Just `docker-compose up -d`. GLHF!
|
||||
|
||||
### How to update your Misskey server to the latest version
|
||||
1. `git stash`
|
||||
2. `git checkout master`
|
||||
3. `git pull`
|
||||
4. `git stash pop`
|
||||
5. `docker-compose build`
|
||||
6. Check [ChangeLog](../CHANGELOG.md) for migration information
|
||||
7. `docker-compose stop && docker-compose up -d`
|
||||
|
||||
### How to execute [cli commands](manage.en.md):
|
||||
`docker-compose run --rm web node built/tools/mark-admin @example`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
If you have any questions or trouble, feel free to contact us!
|
@@ -1,90 +0,0 @@
|
||||
Guide Docker
|
||||
================================================================
|
||||
|
||||
Ce guide explique comment installer et configurer Misskey avec Docker.
|
||||
|
||||
- [Version japonaise également disponible - Japanese version also available - 日本語版もあります](./docker.ja.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)
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
*1.* Télécharger Misskey
|
||||
----------------------------------------------------------------
|
||||
1. Clone le dépôt de Misskey sur la branche master.
|
||||
|
||||
`git clone -b master git://github.com/syuilo/misskey.git`
|
||||
|
||||
2. Naviguez dans le dossier du dépôt.
|
||||
|
||||
`cd misskey`
|
||||
|
||||
3. Checkout sur le tag de la [dernière version](https://github.com/syuilo/misskey/releases/latest).
|
||||
|
||||
`git checkout master`
|
||||
|
||||
*2.* Configuration de Misskey
|
||||
----------------------------------------------------------------
|
||||
1. `cp .config/example.yml .config/default.yml` Copiez le fichier `.config/example.yml` et renommez-le `default.yml`.
|
||||
2. `cp .config/mongo_initdb_example.js .config/mongo_initdb.js` Copie le fichier `.config/mongo_initdb_example.js` et le renomme en `mongo_initdb.js`.
|
||||
3. Editez `default.yml` et `mongo_initdb.js`.
|
||||
|
||||
*3.* Configurer Docker
|
||||
----------------------------------------------------------------
|
||||
Editez `docker-compose.yml`.
|
||||
|
||||
*4.* Contruire Misskey
|
||||
----------------------------------------------------------------
|
||||
Contruire l'image Docker avec:
|
||||
|
||||
`docker-compose build`
|
||||
|
||||
*5.* C'est tout !
|
||||
----------------------------------------------------------------
|
||||
Parfait, Vous avez un environnement prêt pour démarrer Misskey.
|
||||
|
||||
### Lancer normalement
|
||||
Utilisez la commande `docker-compose up -d`. GLHF!
|
||||
|
||||
### How to update your Misskey server to the latest version
|
||||
1. `git stash`
|
||||
2. `git checkout master`
|
||||
3. `git pull`
|
||||
4. `git stash pop`
|
||||
5. `docker-compose build`
|
||||
6. Consultez le [ChangeLog](../CHANGELOG.md) pour avoir les éventuelles informations de migration
|
||||
7. `docker-compose stop && docker-compose up -d`
|
||||
|
||||
### Comment exécuter des [commandes](manage.fr.md)
|
||||
`docker-compose run --rm web node built/tools/mark-admin @example`
|
||||
|
||||
### Configuration d'ElasticSearch (pour la fonction de recherche)
|
||||
*1.* Préparation de l'environnement
|
||||
----------------------------------------------------------------
|
||||
1. Permet de créer le dossier d'accueil de la base ElasticSearch aves les bons droits
|
||||
|
||||
`mkdir elasticsearch && chown 1000:1000 elasticsearch`
|
||||
|
||||
2. Augmente la valeur max du paramètre map_count du système (valeur minimum pour pouvoir lancer ES)
|
||||
|
||||
`sysctl -w vm.max_map_count=262144`
|
||||
|
||||
*2.* Après lancement du docker-compose, initialisation de la base ElasticSearch
|
||||
----------------------------------------------------------------
|
||||
1. Connexion dans le conteneur web
|
||||
|
||||
`docker-compose -it web /bin/sh`
|
||||
|
||||
2. Ajout du paquet curl
|
||||
|
||||
`apk add curl`
|
||||
|
||||
3. Création de la base ES
|
||||
|
||||
`curl -X PUT "es:9200/misskey" -H 'Content-Type: application/json' -d'{ "settings" : { "index" : { } }}'`
|
||||
|
||||
4. `exit`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
Si vous avez des questions ou des problèmes, n'hésitez pas à nous contacter !
|
@@ -1,97 +0,0 @@
|
||||
Dockerを使ったMisskey構築方法
|
||||
================================================================
|
||||
|
||||
このガイドはDockerを使ったMisskeyセットアップ方法について解説します。
|
||||
|
||||
- [英語版もあります - English version also available](./docker.en.md)
|
||||
- [简体中文版同样可用 - Simplified Chinese version also available](./docker.zh.md)
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
*1.* Misskeyのダウンロード
|
||||
----------------------------------------------------------------
|
||||
1. masterブランチからMisskeyレポジトリをクローン
|
||||
|
||||
`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.* 設定ファイルの作成と編集
|
||||
----------------------------------------------------------------
|
||||
|
||||
下記コマンドで設定ファイルを作成してください。
|
||||
|
||||
```bash
|
||||
cd .config
|
||||
cp example.yml default.yml
|
||||
cp docker_example.env docker.env
|
||||
```
|
||||
|
||||
### `default.yml`の編集
|
||||
|
||||
非Docker環境と同じ様に編集してください。
|
||||
ただし、Postgresql、RedisとElasticsearchのホストは`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.* データベースを初期化
|
||||
----------------------------------------------------------------
|
||||
``` shell
|
||||
docker-compose run --rm web yarn run init
|
||||
```
|
||||
|
||||
*6.* 以上です!
|
||||
----------------------------------------------------------------
|
||||
お疲れ様でした。これでMisskeyを動かす準備は整いました。
|
||||
|
||||
### 通常起動
|
||||
`docker-compose up -d`するだけです。GLHF!
|
||||
|
||||
### Misskeyを最新バージョンにアップデートする方法:
|
||||
1. `git stash`
|
||||
2. `git checkout master`
|
||||
3. `git pull`
|
||||
4. `git stash pop`
|
||||
5. `docker-compose build`
|
||||
6. [ChangeLog](../CHANGELOG.md)でマイグレーション情報を確認する
|
||||
7. `docker-compose stop && docker-compose up -d`
|
||||
|
||||
### cliコマンドを実行する方法:
|
||||
|
||||
`docker-compose run --rm web node built/tools/mark-admin @example`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
なにかお困りのことがありましたらお気軽にご連絡ください。
|
@@ -1,96 +0,0 @@
|
||||
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`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
如果您有任何疑问或是困惑,欢迎与我们联系!
|
@@ -1,69 +0,0 @@
|
||||
# Sample nginx configuration for Misskey
|
||||
#
|
||||
# 1. Replace example.tld to your domain
|
||||
# 2. Copy to /etc/nginx/sites-available/ and then symlink from /etc/nginx/sites-enabled/
|
||||
# or copy to /etc/nginx/conf.d/
|
||||
|
||||
# For WebSocket
|
||||
map $http_upgrade $connection_upgrade {
|
||||
default upgrade;
|
||||
'' close;
|
||||
}
|
||||
|
||||
proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache1:16m max_size=1g inactive=720m use_temp_path=off;
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
server_name example.tld;
|
||||
|
||||
# For SSL domain validation
|
||||
root /var/www/html;
|
||||
location /.well-known/acme-challenge/ { allow all; }
|
||||
location /.well-known/pki-validation/ { allow all; }
|
||||
location / { return 301 https://$server_name$request_uri; }
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
listen [::]:443 ssl http2;
|
||||
server_name example.tld;
|
||||
ssl_session_cache shared:ssl_session_cache:10m;
|
||||
|
||||
# To use Let's Encrypt certificate
|
||||
ssl_certificate /etc/letsencrypt/live/example.tld/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/example.tld/privkey.pem;
|
||||
|
||||
# To use Debian/Ubuntu's self-signed certificate (For testing or before issuing a certificate)
|
||||
#ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
|
||||
#ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
|
||||
|
||||
# SSL protocol settings
|
||||
ssl_protocols TLSv1.2;
|
||||
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;
|
||||
|
||||
# Change to your upload limit
|
||||
client_max_body_size 80m;
|
||||
|
||||
# Proxy to Node
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:3000;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto https;
|
||||
proxy_http_version 1.1;
|
||||
proxy_redirect off;
|
||||
|
||||
# For WebSocket
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $connection_upgrade;
|
||||
|
||||
# Cache settings
|
||||
proxy_cache cache1;
|
||||
proxy_cache_lock on;
|
||||
proxy_cache_use_stale updating;
|
||||
add_header X-Cache $upstream_cache_status;
|
||||
}
|
||||
}
|
@@ -1,14 +0,0 @@
|
||||
# Management guide
|
||||
|
||||
## Check the status of the job queue
|
||||
coming soon
|
||||
|
||||
## Mark as 'admin' user
|
||||
``` shell
|
||||
node built/tools/mark-admin (Username)
|
||||
```
|
||||
|
||||
e.g.
|
||||
``` shell
|
||||
node built/tools/mark-admin @syuilo
|
||||
```
|
@@ -1,14 +0,0 @@
|
||||
# Guide d'administration
|
||||
|
||||
## Vérifier le status de la file d'attente des taches
|
||||
coming soon
|
||||
|
||||
## Marquer un utilisateur en tant que 'admin'
|
||||
``` shell
|
||||
node built/tools/mark-admin (nom d'utilisateur)
|
||||
```
|
||||
|
||||
Exemple :
|
||||
``` shell
|
||||
node built/tools/mark-admin @syuilo
|
||||
```
|
@@ -1,14 +0,0 @@
|
||||
# 運営ガイド
|
||||
|
||||
## ジョブキューの状態を調べる
|
||||
coming soon
|
||||
|
||||
## 管理者ユーザーを設定する
|
||||
``` shell
|
||||
node built/tools/mark-admin (ユーザー名)
|
||||
```
|
||||
|
||||
例:
|
||||
``` shell
|
||||
node built/tools/mark-admin @syuilo
|
||||
```
|
@@ -1,14 +0,0 @@
|
||||
# 运营指南
|
||||
|
||||
## 检查任务队列的状态
|
||||
即将到来……
|
||||
|
||||
## 设置用户为管理员
|
||||
``` shell
|
||||
node built/tools/mark-admin (用户名)
|
||||
```
|
||||
|
||||
样例
|
||||
``` shell
|
||||
node built/tools/mark-admin @syuilo
|
||||
```
|
146
docs/setup.en.md
146
docs/setup.en.md
@@ -1,146 +0,0 @@
|
||||
Misskey Setup and Installation Guide
|
||||
================================================================
|
||||
|
||||
We thank you for your interest in setting up your Misskey server!
|
||||
This guide describes how to install and setup Misskey.
|
||||
|
||||
- [Japanese version also available - 日本語版もあります](./setup.ja.md)
|
||||
- [Simplified Chinese version also available - 简体中文版同样可用](./setup.zh.md)
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
*1.* Create Misskey user
|
||||
----------------------------------------------------------------
|
||||
Running misskey as root is not a good idea so we create a user for that.
|
||||
In debian for exemple :
|
||||
|
||||
```
|
||||
adduser --disabled-password --disabled-login misskey
|
||||
```
|
||||
|
||||
*2.* Install dependencies
|
||||
----------------------------------------------------------------
|
||||
Please install and setup these softwares:
|
||||
|
||||
#### 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/) *Optional but recommended for security reason. If you won't install it, use `npx yarn` instead of `yarn`.*
|
||||
* [Elasticsearch](https://www.elastic.co/) - required to enable the search feature
|
||||
* [FFmpeg](https://www.ffmpeg.org/)
|
||||
|
||||
*3.* Install Misskey
|
||||
----------------------------------------------------------------
|
||||
1. Connect to misskey user.
|
||||
|
||||
`su - misskey`
|
||||
|
||||
2. Clone the misskey repo from master branch.
|
||||
|
||||
`git clone -b master git://github.com/syuilo/misskey.git`
|
||||
|
||||
3. Navigate to misskey directory
|
||||
|
||||
`cd misskey`
|
||||
|
||||
4. Checkout to the [latest release](https://github.com/syuilo/misskey/releases/latest)
|
||||
|
||||
`git checkout master`
|
||||
|
||||
5. Install misskey dependencies.
|
||||
|
||||
`yarn`
|
||||
|
||||
*4.* Configure Misskey
|
||||
----------------------------------------------------------------
|
||||
1. Copy the `.config/example.yml` and rename it to `default.yml`.
|
||||
|
||||
`cp .config/example.yml .config/default.yml`
|
||||
|
||||
2. Edit `default.yml`
|
||||
|
||||
*5.* Build Misskey
|
||||
----------------------------------------------------------------
|
||||
|
||||
Build misskey with the following:
|
||||
|
||||
`NODE_ENV=production yarn build`
|
||||
|
||||
If you're on Debian, you will need to install the `build-essential`, `python` package.
|
||||
|
||||
If you're still encountering errors about some modules, use node-gyp:
|
||||
|
||||
1. `npx node-gyp configure`
|
||||
2. `npx node-gyp build`
|
||||
3. `NODE_ENV=production yarn build`
|
||||
|
||||
*6.* Init DB
|
||||
----------------------------------------------------------------
|
||||
``` shell
|
||||
yarn run init
|
||||
```
|
||||
|
||||
*7.* That is it.
|
||||
----------------------------------------------------------------
|
||||
Well done! Now, you have an environment that run to Misskey.
|
||||
|
||||
### Launch normally
|
||||
Just `NODE_ENV=production npm start`. GLHF!
|
||||
|
||||
### Launch with systemd
|
||||
|
||||
1. Create a systemd service here
|
||||
|
||||
`/etc/systemd/system/misskey.service`
|
||||
|
||||
2. Edit it, and paste this and save:
|
||||
|
||||
```
|
||||
[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. Reload systemd and enable the misskey service.
|
||||
|
||||
`systemctl daemon-reload ; systemctl enable misskey`
|
||||
|
||||
4. Start the misskey service.
|
||||
|
||||
`systemctl start misskey`
|
||||
|
||||
You can check if the service is running with `systemctl status misskey`.
|
||||
|
||||
### How to update your Misskey server to the latest version
|
||||
1. `git checkout master`
|
||||
2. `git pull`
|
||||
3. `yarn install`
|
||||
4. `NODE_ENV=production yarn build`
|
||||
5. `yarn migrate`
|
||||
6. Restart your Misskey process to apply changes
|
||||
7. Enjoy
|
||||
|
||||
If you encounter any problems with updating, please try the following:
|
||||
1. `yarn clean` or `yarn cleanall`
|
||||
2. Retry update (Don't forget `yarn install`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
If you have any questions or troubles, feel free to contact us!
|
135
docs/setup.fr.md
135
docs/setup.fr.md
@@ -1,135 +0,0 @@
|
||||
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 !
|
||||
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)
|
||||
- [Version anglaise également disponible - English version also available - 英語版もあります](./setup.en.md)
|
||||
- [Version Chinois simplifié également disponible - Simplified Chinese version also available - 简体中文版同样可用](./setup.zh.md)
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
*1.* Création de l'utilisateur Misskey
|
||||
----------------------------------------------------------------
|
||||
Executer misskey en tant que super-utilisateur étant une mauvaise idée, nous allons créer un utilisateur dédié.
|
||||
Sous Debian, par exemple :
|
||||
|
||||
```
|
||||
adduser --disabled-password --disabled-login misskey
|
||||
```
|
||||
|
||||
*2.* Installation des dépendances
|
||||
----------------------------------------------------------------
|
||||
Installez les paquets suivants :
|
||||
|
||||
#### Dépendences :package:
|
||||
* **[Node.js](https://nodejs.org/en/)** (12.x, 14.x)
|
||||
* **[PostgreSQL](https://www.postgresql.org/)** (>= 10)
|
||||
* **[Redis](https://redis.io/)**
|
||||
|
||||
##### Optionnels
|
||||
* [Yarn](https://yarnpkg.com/) - *recommander pour des raisons de sécurité. Si vous ne l'installez pas, utilisez `npx yarn` au lieu de` yarn`.*
|
||||
* [Elasticsearch](https://www.elastic.co/) - *requis pour pouvoir activer la fonctionnalité de recherche.*
|
||||
* [FFmpeg](https://www.ffmpeg.org/)
|
||||
|
||||
*3.* Installation de Misskey
|
||||
----------------------------------------------------------------
|
||||
1. Basculez vers l'utilisateur misskey.
|
||||
|
||||
`su - misskey`
|
||||
|
||||
2. Clonez la branche master du dépôt misskey.
|
||||
|
||||
`git clone -b master git://github.com/syuilo/misskey.git`
|
||||
|
||||
3. Accédez au dossier misskey.
|
||||
|
||||
`cd misskey`
|
||||
|
||||
4. Checkout sur le tag de la [version la plus récente](https://github.com/syuilo/misskey/releases/latest)
|
||||
|
||||
`git checkout master`
|
||||
|
||||
5. Installez les dépendances de misskey.
|
||||
|
||||
`yarn install`
|
||||
|
||||
*4.* Création du fichier de configuration
|
||||
----------------------------------------------------------------
|
||||
1. Copiez le fichier `.config/example.yml` et renommez-le`default.yml`.
|
||||
|
||||
`cp .config/example.yml .config/default.yml`
|
||||
|
||||
2. Editez le fichier `default.yml`
|
||||
|
||||
*5.* Construction de Misskey
|
||||
----------------------------------------------------------------
|
||||
|
||||
Construisez Misskey comme ceci :
|
||||
|
||||
`NODE_ENV=production yarn build`
|
||||
|
||||
Si vous êtes sous Debian, vous serez amené à installer les paquets `build-essential` et `python`.
|
||||
|
||||
Si vous rencontrez des erreurs concernant certains modules, utilisez node-gyp:
|
||||
|
||||
1. `npx node-gyp configure`
|
||||
2. `npx node-gyp build`
|
||||
3. `NODE_ENV=production yarn build`
|
||||
|
||||
*6.* C'est tout.
|
||||
----------------------------------------------------------------
|
||||
Excellent ! Maintenant, vous avez un environnement prêt pour lancer Misskey
|
||||
|
||||
### Lancement conventionnel
|
||||
Lancez tout simplement `NODE_ENV=production yarn start`. Bonne chance et amusez-vous bien !
|
||||
|
||||
### Démarrage avec systemd
|
||||
|
||||
1. Créez un service systemd sur
|
||||
|
||||
`/etc/systemd/system/misskey.service`
|
||||
|
||||
2. Editez-le puis copiez et coller ceci dans le fichier :
|
||||
|
||||
```
|
||||
[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. Redémarre systemd et active le service misskey.
|
||||
|
||||
`systemctl daemon-reload ; systemctl enable misskey`
|
||||
|
||||
4. Démarre le service misskey.
|
||||
|
||||
`systemctl start misskey`
|
||||
|
||||
Vous pouvez vérifier si le service a démarré en utilisant la commande `systemctl status misskey`.
|
||||
|
||||
### Méthode de mise à jour vers la plus récente version de Misskey
|
||||
1. `git checkout master`
|
||||
2. `git pull`
|
||||
3. `yarn install`
|
||||
4. `NODE_ENV=production yarn build`
|
||||
5. `yarn migrate`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
Si vous rencontrez des difficultés ou avez d'autres questions, n'hésitez pas à nous contacter !
|
144
docs/setup.ja.md
144
docs/setup.ja.md
@@ -1,144 +0,0 @@
|
||||
Misskey構築の手引き
|
||||
================================================================
|
||||
|
||||
Misskeyサーバーの構築にご関心をお寄せいただきありがとうございます!
|
||||
このガイドではMisskeyのインストール・セットアップ方法について解説します。
|
||||
|
||||
- [英語版もあります - English version also available](./setup.en.md)
|
||||
- [简体中文版同样可用 - Simplified Chinese version also available](./setup.zh.md)
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
*1.* Misskeyユーザーの作成
|
||||
----------------------------------------------------------------
|
||||
Misskeyはrootユーザーで実行しない方がよいため、代わりにユーザーを作成します。
|
||||
Debianの例:
|
||||
|
||||
```
|
||||
adduser --disabled-password --disabled-login misskey
|
||||
```
|
||||
|
||||
*2.* 依存関係をインストールする
|
||||
----------------------------------------------------------------
|
||||
これらのソフトウェアをインストール・設定してください:
|
||||
|
||||
#### 依存関係 :package:
|
||||
* **[Node.js](https://nodejs.org/en/)** (12.x, 14.x)
|
||||
* **[PostgreSQL](https://www.postgresql.org/)** (10以上)
|
||||
* **[Redis](https://redis.io/)**
|
||||
|
||||
##### オプション
|
||||
* [Yarn](https://yarnpkg.com/)
|
||||
* セキュリティの観点から推奨されます。 yarn をインストールしない方針の場合は、文章中の `yarn` を適宜 `npx yarn` と読み替えてください。
|
||||
* [Elasticsearch](https://www.elastic.co/)
|
||||
* 検索機能を有効にするためにはインストールが必要です。
|
||||
* [FFmpeg](https://www.ffmpeg.org/)
|
||||
|
||||
*3.* Misskeyのインストール
|
||||
----------------------------------------------------------------
|
||||
1. misskeyユーザーを使用
|
||||
|
||||
`su - misskey`
|
||||
|
||||
2. masterブランチからMisskeyレポジトリをクローン
|
||||
|
||||
`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 install`
|
||||
|
||||
*4.* 設定ファイルを作成する
|
||||
----------------------------------------------------------------
|
||||
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`パッケージをインストールする必要があります。
|
||||
|
||||
何らかのモジュールでエラーが発生する場合はnode-gypを使ってください:
|
||||
1. `npx node-gyp configure`
|
||||
2. `npx node-gyp build`
|
||||
3. `NODE_ENV=production yarn build`
|
||||
|
||||
*6.* データベースを初期化
|
||||
----------------------------------------------------------------
|
||||
``` shell
|
||||
yarn run init
|
||||
```
|
||||
|
||||
*7.* 以上です!
|
||||
----------------------------------------------------------------
|
||||
お疲れ様でした。これでMisskeyを動かす準備は整いました。
|
||||
|
||||
### 通常起動
|
||||
`NODE_ENV=production yarn start`するだけです。GLHF!
|
||||
|
||||
### 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
|
||||
```
|
||||
|
||||
CentOSで1024以下のポートを使用してMisskeyを使用する場合は`ExecStart=/usr/bin/sudo /usr/bin/npm start`に変更する必要があります。
|
||||
|
||||
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`
|
||||
|
||||
なにか問題が発生した場合は、`yarn clean`または`yarn cleanall`すると直る場合があります。
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
なにかお困りのことがありましたらお気軽にご連絡ください。
|
146
docs/setup.zh.md
146
docs/setup.zh.md
@@ -1,146 +0,0 @@
|
||||
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` )
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
如果您有任何疑问或是困惑,欢迎与我们联系!
|
65
gulpfile.js
Normal file
65
gulpfile.js
Normal file
@@ -0,0 +1,65 @@
|
||||
/**
|
||||
* Gulp tasks
|
||||
*/
|
||||
|
||||
const fs = require('fs');
|
||||
const gulp = require('gulp');
|
||||
const replace = require('gulp-replace');
|
||||
const terser = require('gulp-terser');
|
||||
const cssnano = require('gulp-cssnano');
|
||||
|
||||
const locales = require('./locales');
|
||||
const meta = require('./package.json');
|
||||
|
||||
gulp.task('copy:backend:views', () =>
|
||||
gulp.src('./packages/backend/src/server/web/views/**/*').pipe(gulp.dest('./packages/backend/built/server/web/views'))
|
||||
);
|
||||
|
||||
gulp.task('copy:client:fonts', () =>
|
||||
gulp.src('./packages/client/node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/_client_dist_/fonts/'))
|
||||
);
|
||||
|
||||
gulp.task('copy:client:fontawesome', () =>
|
||||
gulp.src('./packages/client/node_modules/@fortawesome/fontawesome-free/**/*').pipe(gulp.dest('./built/_client_dist_/fontawesome/'))
|
||||
);
|
||||
|
||||
gulp.task('copy:client:locales', cb => {
|
||||
fs.mkdirSync('./built/_client_dist_/locales', { recursive: true });
|
||||
|
||||
const v = { '_version_': meta.version };
|
||||
|
||||
for (const [lang, locale] of Object.entries(locales)) {
|
||||
fs.writeFileSync(`./built/_client_dist_/locales/${lang}.${meta.version}.json`, JSON.stringify({ ...locale, ...v }), 'utf-8');
|
||||
}
|
||||
|
||||
cb();
|
||||
});
|
||||
|
||||
gulp.task('build:backend:script', () => {
|
||||
return gulp.src(['./packages/backend/src/server/web/boot.js', './packages/backend/src/server/web/bios.js', './packages/backend/src/server/web/cli.js'])
|
||||
.pipe(replace('LANGS', JSON.stringify(Object.keys(locales))))
|
||||
.pipe(terser({
|
||||
toplevel: true
|
||||
}))
|
||||
.pipe(gulp.dest('./packages/backend/built/server/web/'));
|
||||
});
|
||||
|
||||
gulp.task('build:backend:style', () => {
|
||||
return gulp.src(['./packages/backend/src/server/web/style.css', './packages/backend/src/server/web/bios.css', './packages/backend/src/server/web/cli.css'])
|
||||
.pipe(cssnano({
|
||||
zindex: false
|
||||
}))
|
||||
.pipe(gulp.dest('./packages/backend/built/server/web/'));
|
||||
});
|
||||
|
||||
gulp.task('build', gulp.parallel(
|
||||
'copy:client:locales', 'copy:backend:views', 'build:backend:script', 'build:backend:style', 'copy:client:fonts', 'copy:client:fontawesome'
|
||||
));
|
||||
|
||||
gulp.task('default', gulp.task('build'));
|
||||
|
||||
gulp.task('watch', () => {
|
||||
gulp.watch([
|
||||
'./packages/*/src/**/*',
|
||||
], { ignoreInitial: false }, gulp.task('build'));
|
||||
});
|
109
gulpfile.ts
109
gulpfile.ts
@@ -1,109 +0,0 @@
|
||||
/**
|
||||
* Gulp tasks
|
||||
*/
|
||||
|
||||
import * as fs from 'fs';
|
||||
import * as gulp from 'gulp';
|
||||
import * as ts from 'gulp-typescript';
|
||||
import * as rimraf from 'rimraf';
|
||||
import * as rename from 'gulp-rename';
|
||||
import * as replace from 'gulp-replace';
|
||||
const terser = require('gulp-terser');
|
||||
const cssnano = require('gulp-cssnano');
|
||||
|
||||
const locales: { [x: string]: any } = require('./locales');
|
||||
const meta = require('./package.json');
|
||||
|
||||
gulp.task('build:ts', () => {
|
||||
const tsProject = ts.createProject('./tsconfig.json');
|
||||
|
||||
return tsProject
|
||||
.src()
|
||||
.pipe(tsProject())
|
||||
.on('error', () => {})
|
||||
.pipe(gulp.dest('./built/'));
|
||||
});
|
||||
|
||||
gulp.task('build:copy: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 => {
|
||||
fs.mkdirSync('./built/client/assets/locales', { recursive: true });
|
||||
|
||||
const v = { '_version_': meta.version };
|
||||
|
||||
for (const [lang, locale] of Object.entries(locales)) {
|
||||
fs.writeFileSync(`./built/client/assets/locales/${lang}.${meta.version}.json`, JSON.stringify({ ...locale, ...v }), 'utf-8');
|
||||
}
|
||||
|
||||
cb();
|
||||
});
|
||||
|
||||
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([
|
||||
'./src/emojilist.json',
|
||||
'./src/server/web/views/**/*',
|
||||
'./src/**/assets/**/*',
|
||||
'!./src/client/assets/**/*'
|
||||
]).pipe(gulp.dest('./built/'))
|
||||
));
|
||||
|
||||
gulp.task('clean', cb =>
|
||||
rimraf('./built', cb)
|
||||
);
|
||||
|
||||
gulp.task('cleanall', gulp.parallel('clean', cb =>
|
||||
rimraf('./node_modules', cb)
|
||||
));
|
||||
|
||||
gulp.task('copy:client', () =>
|
||||
gulp.src([
|
||||
'./assets/**/*',
|
||||
'./src/client/assets/**/*',
|
||||
])
|
||||
.pipe(rename(path => {
|
||||
path.dirname = path.dirname!.replace('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(
|
||||
'copy:client',
|
||||
'copy:docs'
|
||||
));
|
||||
|
||||
gulp.task('build', gulp.parallel(
|
||||
'build:ts',
|
||||
'build:copy',
|
||||
'build:client',
|
||||
));
|
||||
|
||||
gulp.task('default', gulp.task('build'));
|
7
index.js
7
index.js
@@ -1,7 +0,0 @@
|
||||
const fs = require('fs');
|
||||
|
||||
if (fs.existsSync('./built')) {
|
||||
require('./built').default();
|
||||
} else {
|
||||
console.log('Built code is not found. Probably an error occurred during a build or you just forgot to build.');
|
||||
}
|
@@ -1,6 +1,6 @@
|
||||
# **DO NOT edit locale files** except `ja-JP.yml`.
|
||||
|
||||
When you add text to the ja-JP file (of syuilo/misskey), it will automatically be applied to other language files.
|
||||
When you add text to the ja-JP file (of misskey-dev/misskey), it will automatically be applied to other language files.
|
||||
Translations added in ja-JP file should contain the original Japanese strings.
|
||||
|
||||
Please see [Contribution guide](../CONTRIBUTING.md) for more information.
|
||||
|
1109
locales/ar-SA.yml
1109
locales/ar-SA.yml
File diff suppressed because it is too large
Load Diff
1659
locales/bn-BD.yml
Normal file
1659
locales/bn-BD.yml
Normal file
File diff suppressed because it is too large
Load Diff
186
locales/ca-ES.yml
Normal file
186
locales/ca-ES.yml
Normal file
@@ -0,0 +1,186 @@
|
||||
---
|
||||
_lang_: "Català"
|
||||
headlineMisskey: "Una xarxa connectada per notes"
|
||||
introMisskey: "Benvingut! Misskey és un servei de microblogging descentralitzat de codi obert.\nCrea \"notes\" per compartir els teus pensaments amb tots els que t'envolten. 📡\nAmb \"reaccions\", també pots expressar ràpidament els teus sentiments sobre les notes de tothom. 👍\nExplorem un món nou! 🚀"
|
||||
monthAndDay: "{day}/{month}"
|
||||
search: "Cercar"
|
||||
notifications: "Notificacions"
|
||||
username: "Nom d'usuari"
|
||||
password: "Contrasenya"
|
||||
forgotPassword: "Contrasenya oblidada"
|
||||
fetchingAsApObject: "Cercant en el Fediverse..."
|
||||
ok: "OK"
|
||||
gotIt: "Ho he entès!"
|
||||
cancel: "Cancel·lar"
|
||||
enterUsername: "Introdueix el teu nom d'usuari"
|
||||
renotedBy: "Resignat per {usuari}"
|
||||
noNotes: "Cap nota"
|
||||
noNotifications: "Cap notificació"
|
||||
instance: "Instàncies"
|
||||
settings: "Preferències"
|
||||
basicSettings: "Configuració bàsica"
|
||||
otherSettings: "Configuració avançada"
|
||||
openInWindow: "Obrir en una nova finestra"
|
||||
profile: "Perfil"
|
||||
timeline: "Línia de temps"
|
||||
noAccountDescription: "Aquest usuari encara no ha escrit la seva biografia."
|
||||
login: "Iniciar sessió"
|
||||
loggingIn: "Identificant-se"
|
||||
logout: "Tancar la sessió"
|
||||
signup: "Registrar-se"
|
||||
uploading: "Pujant..."
|
||||
save: "Desar"
|
||||
users: "Usuaris"
|
||||
addUser: "Afegir un usuari"
|
||||
favorite: "Afegir a preferits"
|
||||
favorites: "Favorits"
|
||||
unfavorite: "Eliminar dels preferits"
|
||||
favorited: "Afegit als preferits."
|
||||
alreadyFavorited: "Ja s'ha afegit als preferits."
|
||||
cantFavorite: "No s'ha pogut afegir als preferits."
|
||||
pin: "Fixar al perfil"
|
||||
unpin: "Para de fixar del perfil"
|
||||
copyContent: "Copiar el contingut"
|
||||
copyLink: "Copiar l'enllaç"
|
||||
delete: "Eliminar"
|
||||
deleteAndEdit: "Esborrar i editar"
|
||||
deleteAndEditConfirm: "Estàs segur que vols suprimir aquesta nota i editar-la? Perdràs totes les reaccions, notes i respostes."
|
||||
addToList: "Afegir a una llista"
|
||||
sendMessage: "Enviar un missatge"
|
||||
copyUsername: "Copiar nom d'usuari"
|
||||
searchUser: "Cercar usuaris"
|
||||
reply: "Respondre"
|
||||
loadMore: "Carregar més"
|
||||
showMore: "Veure més"
|
||||
youGotNewFollower: "t'ha seguit"
|
||||
receiveFollowRequest: "Sol·licitud de seguiment rebuda"
|
||||
followRequestAccepted: "Sol·licitud de seguiment acceptada"
|
||||
mention: "Menció"
|
||||
mentions: "Mencions"
|
||||
directNotes: "Notes directes"
|
||||
importAndExport: "Importar / Exportar"
|
||||
import: "Importar"
|
||||
export: "Exportar"
|
||||
files: "Fitxers"
|
||||
download: "Baixar"
|
||||
driveFileDeleteConfirm: "Estàs segur que vols suprimir el fitxer \"{name}\"? Les notes associades a aquest fitxer adjunt també se suprimiran."
|
||||
unfollowConfirm: "Estàs segur que vols deixar de seguir {name}?"
|
||||
exportRequested: "Has sol·licitat una exportació. Això pot trigar una estona. S'afegirà a la teva unitat un cop completat."
|
||||
importRequested: "Has sol·licitat una importació. Això pot trigar una estona."
|
||||
lists: "Llistes"
|
||||
noLists: "No tens cap llista"
|
||||
note: "Nota"
|
||||
notes: "Notes"
|
||||
following: "Seguint"
|
||||
followers: "Seguidors"
|
||||
followsYou: "Et segueix"
|
||||
createList: "Crear llista"
|
||||
manageLists: "Gestionar les llistes"
|
||||
error: "Error"
|
||||
somethingHappened: "S'ha produït un error"
|
||||
retry: "Torna-ho a intentar"
|
||||
pageLoadError: "S'ha produït un error en carregar la pàgina"
|
||||
pageLoadErrorDescription: "Això normalment es deu a errors de xarxa o a la memòria cau del navegador. Prova d'esborrar la memòria cau i torna-ho a provar després d'esperar una estona."
|
||||
serverIsDead: "Aquest servidor no respon. Espera una estona i torna-ho a provar."
|
||||
youShouldUpgradeClient: "Per veure aquesta pàgina, actualitzeu-la per actualitzar el vostre client."
|
||||
enterListName: "Introdueix un nom per a la llista"
|
||||
privacy: "Privadesa"
|
||||
makeFollowManuallyApprove: "Les sol·licituds de seguiment requereixen aprovació"
|
||||
defaultNoteVisibility: "Visibilitat per defecte"
|
||||
follow: "Seguint"
|
||||
followRequest: "Enviar la sol·licitud de seguiment"
|
||||
followRequests: "Sol·licituds de seguiment"
|
||||
unfollow: "Deixar de seguir"
|
||||
followRequestPending: "Sol·licituds de seguiment pendents"
|
||||
enterEmoji: "Introduir un emoji"
|
||||
renote: "Renotar"
|
||||
unrenote: "Anul·lar renota"
|
||||
renoted: "Renotat."
|
||||
cantRenote: "Aquesta publicació no pot ser renotada."
|
||||
cantReRenote: "Impossible renotar una renota."
|
||||
quote: "Citar"
|
||||
pinnedNote: "Nota fixada"
|
||||
pinned: "Fixar al perfil"
|
||||
you: "Tu"
|
||||
clickToShow: "Fes clic per mostrar"
|
||||
sensitive: "NSFW"
|
||||
add: "Afegir"
|
||||
reaction: "Reaccions"
|
||||
reactionSetting: "Reaccions a mostrar al selector de reaccions"
|
||||
reactionSettingDescription2: "Arrossega per reordenar, fes clic per suprimir, prem \"+\" per afegir."
|
||||
rememberNoteVisibility: "Recorda la configuració de visibilitat de les notes"
|
||||
attachCancel: "Eliminar el fitxer adjunt"
|
||||
markAsSensitive: "Marcar com a NSFW"
|
||||
instances: "Instàncies"
|
||||
remove: "Eliminar"
|
||||
nsfw: "NSFW"
|
||||
pinnedNotes: "Nota fixada"
|
||||
userList: "Llistes"
|
||||
smtpUser: "Nom d'usuari"
|
||||
smtpPass: "Contrasenya"
|
||||
user: "Usuaris"
|
||||
searchByGoogle: "Cercar"
|
||||
_email:
|
||||
_follow:
|
||||
title: "t'ha seguit"
|
||||
_mfm:
|
||||
mention: "Menció"
|
||||
quote: "Citar"
|
||||
search: "Cercar"
|
||||
_theme:
|
||||
keys:
|
||||
mention: "Menció"
|
||||
renote: "Renotar"
|
||||
_sfx:
|
||||
note: "Notes"
|
||||
notification: "Notificacions"
|
||||
_2fa:
|
||||
step2Url: "També pots inserir aquest enllaç i utilitzes una aplicació d'escriptori:"
|
||||
_widgets:
|
||||
notifications: "Notificacions"
|
||||
timeline: "Línia de temps"
|
||||
_cw:
|
||||
show: "Carregar més"
|
||||
_visibility:
|
||||
followers: "Seguidors"
|
||||
_profile:
|
||||
username: "Nom d'usuari"
|
||||
_exportOrImport:
|
||||
followingList: "Seguint"
|
||||
userLists: "Llistes"
|
||||
_pages:
|
||||
script:
|
||||
categories:
|
||||
list: "Llistes"
|
||||
blocks:
|
||||
_join:
|
||||
arg1: "Llistes"
|
||||
_randomPick:
|
||||
arg1: "Llistes"
|
||||
_dailyRandomPick:
|
||||
arg1: "Llistes"
|
||||
_seedRandomPick:
|
||||
arg2: "Llistes"
|
||||
_pick:
|
||||
arg1: "Llistes"
|
||||
_listLen:
|
||||
arg1: "Llistes"
|
||||
types:
|
||||
array: "Llistes"
|
||||
_notification:
|
||||
youWereFollowed: "t'ha seguit"
|
||||
_types:
|
||||
follow: "Seguint"
|
||||
mention: "Menció"
|
||||
renote: "Renotar"
|
||||
quote: "Citar"
|
||||
reaction: "Reaccions"
|
||||
_actions:
|
||||
reply: "Respondre"
|
||||
renote: "Renotar"
|
||||
_deck:
|
||||
_columns:
|
||||
notifications: "Notificacions"
|
||||
tl: "Línia de temps"
|
||||
list: "Llistes"
|
||||
mentions: "Mencions"
|
@@ -1,2 +1,556 @@
|
||||
---
|
||||
_lang_: "Čeština"
|
||||
headlineMisskey: "Síť propojená poznámkami"
|
||||
introMisskey: "Vítejte! Misskey je otevřený a decentralizovaný microblogový servis.\n\"Poznámkami\" můžete sdílet co se zrovna děje se všemi ve Vašem okolí. 📡\nPomocí \"reakcí\" můžete sdílet své názory a pocity na ostatní poznámky. 👍\nPojďte objevovat nový svět! 🚀"
|
||||
monthAndDay: "{day}. {month}."
|
||||
search: "Vyhledávání"
|
||||
notifications: "Oznámení"
|
||||
username: "Uživatelské jméno"
|
||||
password: "Heslo"
|
||||
forgotPassword: "Zapomenuté heslo"
|
||||
fetchingAsApObject: "Načítám data z Fediversu..."
|
||||
ok: "Potvrdit"
|
||||
gotIt: "Rozumím!"
|
||||
cancel: "Zrušit"
|
||||
enterUsername: "Zadej uživatelské jméno"
|
||||
renotedBy: "{user} přeposla/a"
|
||||
noNotes: "Žádné poznámky"
|
||||
noNotifications: "Žádná oznámení"
|
||||
instance: "Instance"
|
||||
settings: "Nastavení"
|
||||
basicSettings: "Obecná nastavení"
|
||||
otherSettings: "Rozšířená nastavení"
|
||||
openInWindow: "Otevřít v novém okně"
|
||||
profile: "Váš profil"
|
||||
timeline: "Časová osa"
|
||||
noAccountDescription: "Tento uživatel zatím nenapsal svou biografii."
|
||||
login: "Přihlásit se"
|
||||
loggingIn: "Probíhá přihlašování"
|
||||
logout: "Odhlásit"
|
||||
signup: "Registrace"
|
||||
uploading: "Nahrávám"
|
||||
save: "Uložit"
|
||||
users: "Uživatelé"
|
||||
addUser: "Přidat uživatele"
|
||||
favorite: "Oblíbené"
|
||||
favorites: "Oblíbené"
|
||||
unfavorite: "Odebrat z oblízených"
|
||||
favorited: "Přidáno do oblíbených"
|
||||
alreadyFavorited: "Už je mezi oblíbenými"
|
||||
cantFavorite: "Nepodařilo se přidat mezi oblíbené."
|
||||
pin: "Připnout"
|
||||
unpin: "Odepnout"
|
||||
copyContent: "Zkopírovat obsah"
|
||||
copyLink: "Kopírovat odkaz"
|
||||
delete: "Smazat"
|
||||
deleteAndEdit: "Smazat a upravit"
|
||||
deleteAndEditConfirm: "Jste si jistí že chcete smazat tuto poznámku a editovat ji? Ztratíte tím všechny reakce, sdílení a odpovědi na ni."
|
||||
addToList: "Přidat do seznamu"
|
||||
sendMessage: "Odeslat zprávu"
|
||||
copyUsername: "Kopírovat uživatelské jméno"
|
||||
searchUser: "Vyhledat uživatele"
|
||||
reply: "Odpovědět"
|
||||
loadMore: "Zobrazit více"
|
||||
showMore: "Zobrazit více"
|
||||
youGotNewFollower: "Máte nového následovníka"
|
||||
receiveFollowRequest: "Žádost o sledování přijata"
|
||||
followRequestAccepted: "Žádost o sledování přijata"
|
||||
mention: "Zmínění"
|
||||
mentions: "Zmínění"
|
||||
importAndExport: "Import a export"
|
||||
import: "Importovat"
|
||||
export: "Exportovat"
|
||||
files: "Soubor(ů)"
|
||||
download: "Stáhnout"
|
||||
driveFileDeleteConfirm: "Opravdu chcete smazat soubor \"{name}\"? Poznámky, ke kterým je tento soubor připojen, budou také smazány."
|
||||
unfollowConfirm: "Jste si jisti že už nechcete sledovat {name}?"
|
||||
exportRequested: "Požádali jste o export. To může chvíli trvat. Přidáme ho na váš Disk až bude dokončen."
|
||||
importRequested: "Požádali jste o export. To může chvilku trvat."
|
||||
lists: "Seznamy"
|
||||
noLists: "Nemáte žádné seznamy"
|
||||
note: "Poznámka"
|
||||
notes: "Poznámky"
|
||||
following: "Sledovaní"
|
||||
followers: "Sledující"
|
||||
followsYou: "Sledují vás"
|
||||
createList: "Vytvořit seznam"
|
||||
manageLists: "Spravovat seznam"
|
||||
error: "Chyba"
|
||||
somethingHappened: "Jejda. Něco se nepovedlo."
|
||||
retry: "Opakovat"
|
||||
pageLoadError: "Nepodařilo se načíst stránku"
|
||||
serverIsDead: "Server neodpovídá. Počkejte chvíli a zkuste to znovu."
|
||||
youShouldUpgradeClient: "Pro zobrazení této stránky obnovte stránku pro aktualizaci klienta."
|
||||
enterListName: "Jméno seznamu"
|
||||
privacy: "Soukromí"
|
||||
makeFollowManuallyApprove: "Žádosti o sledování vyžadují potvrzení"
|
||||
defaultNoteVisibility: "Výchozí viditelnost"
|
||||
follow: "Sledovaní"
|
||||
followRequest: "Odeslat žádost o sledování"
|
||||
followRequests: "Žádosti o sledování"
|
||||
unfollow: "Přestat sledovat"
|
||||
followRequestPending: "Čekající žádosti o sledování"
|
||||
enterEmoji: "Vložte emoji"
|
||||
renote: "Přeposlat"
|
||||
unrenote: "Zrušit přeposlání"
|
||||
renoted: "Přeposláno"
|
||||
cantRenote: "Tento příspěvek nelze přeposlat."
|
||||
cantReRenote: "Odpověď nemůže být odstraněna."
|
||||
quote: "Citovat"
|
||||
pinnedNote: "Připnutá poznámka"
|
||||
pinned: "Připnout"
|
||||
you: "Vy"
|
||||
clickToShow: "Klikněte pro zobrazení"
|
||||
sensitive: "NSFW"
|
||||
add: "Přidat"
|
||||
reaction: "Reakce"
|
||||
reactionSettingDescription2: "Přetažením změníte pořadí, kliknutím smažete, zmáčkněte \"+\" k přidání"
|
||||
rememberNoteVisibility: "Zapamatovat nastavení zobrazení poznámky"
|
||||
attachCancel: "Odstranit přílohu"
|
||||
markAsSensitive: "Označit jako NSFW"
|
||||
unmarkAsSensitive: "Odznačit jako NSFW"
|
||||
enterFileName: "Zadejte název souboru"
|
||||
mute: "Ztlumit"
|
||||
unmute: "Odmlčet"
|
||||
block: "Zablokovat"
|
||||
unblock: "Odblokovat"
|
||||
suspend: "Zmrazit"
|
||||
unsuspend: "Odmrazit"
|
||||
blockConfirm: "Jste si jistí že chcete zablokovat tento účet?"
|
||||
unblockConfirm: "Jste si jistí že chcete odblokovat tento účet?"
|
||||
suspendConfirm: "Jste si jistí že chcete suspendovat tenhle účet?"
|
||||
unsuspendConfirm: "Jste si jistí že chcete obnovit tenhle účet?"
|
||||
selectList: "Vybrat seznam"
|
||||
selectAntenna: "Vyberte Anténu"
|
||||
selectWidget: "Zvolte widget"
|
||||
editWidgets: "Upravit widget"
|
||||
editWidgetsExit: "Hotovo"
|
||||
customEmojis: "Vlastní emoji"
|
||||
emoji: "Emoji"
|
||||
emojis: "Emoji"
|
||||
emojiName: "Jméno emoji"
|
||||
emojiUrl: "URL obrázku"
|
||||
addEmoji: "Přidat emoji"
|
||||
settingGuide: "Doporučené nastavení"
|
||||
cacheRemoteFiles: "Ukládání vzdálených souborů do mezipaměti"
|
||||
cacheRemoteFilesDescription: "Zakázání tohoto nastavení způsobí, že vzdálené soubory budou odkazovány přímo, místo aby byly ukládány do mezipaměti. Tím se ušetří úložiště na serveru, ale zvýší se provoz, protože se negenerují miniatury."
|
||||
flagAsBot: "Tento účet je bot"
|
||||
flagAsBotDescription: "Pokud je tento účet kontrolován programem zaškrtněte tuto možnost. To označí tento účet jako bot pro ostatní vývojáře a zabrání tak nekonečným interakcím s ostatními boty a upraví Misskey systém aby se choval k tomuhle účtu jako bot."
|
||||
flagAsCat: "Tenhle účet je kočka"
|
||||
flagAsCatDescription: "Vyberte tuto možnost aby tento účet byl označen jako kočka."
|
||||
flagShowTimelineReplies: "Zobrazovat odpovědi na časové ose"
|
||||
flagShowTimelineRepliesDescription: "Je-li zapnuto, zobrazí odpovědi uživatelů na poznámky jiných uživatelů na vaší časové ose."
|
||||
autoAcceptFollowed: "Automaticky akceptovat následování od účtů které sledujete"
|
||||
addAccount: "Přidat účet"
|
||||
loginFailed: "Přihlášení se nezdařilo."
|
||||
showOnRemote: "Více na původním profilu"
|
||||
general: "Obecně"
|
||||
wallpaper: "Obrázek na pozadí"
|
||||
setWallpaper: "Nastavení obrázku na pozadí"
|
||||
removeWallpaper: "Odstranit pozadí"
|
||||
searchWith: "Hledat: {q}"
|
||||
youHaveNoLists: "Nemáte žádné seznamy"
|
||||
followConfirm: "Jste si jisti, že chcete sledovat {name}?"
|
||||
proxyAccount: "Proxy účet"
|
||||
proxyAccountDescription: "Proxy účet je účet, který za určitých podmínek sleduje uživatele na dálku vaším jménem. Například když uživatel zařadí vzdáleného uživatele do seznamu, pokud nikdo nesleduje uživatele na seznamu, aktivita nebude doručena instanci, takže místo toho bude uživatele sledovat účet proxy."
|
||||
host: "Hostitel"
|
||||
selectUser: "Vyberte uživatele"
|
||||
recipient: "Pro"
|
||||
annotation: "Komentáře"
|
||||
federation: "Federace"
|
||||
instances: "Instance"
|
||||
registeredAt: "Registrován"
|
||||
latestRequestSentAt: "Poslední požadavek poslán"
|
||||
latestRequestReceivedAt: "Poslední požadavek přijat"
|
||||
latestStatus: "Poslední status"
|
||||
storageUsage: "Využití úložiště"
|
||||
charts: "Grafy"
|
||||
perHour: "za hodinu"
|
||||
perDay: "za den"
|
||||
stopActivityDelivery: "Přestat zasílat aktivitu"
|
||||
blockThisInstance: "Blokovat tuto instanci"
|
||||
operations: "Operace"
|
||||
software: "Software"
|
||||
version: "Verze"
|
||||
metadata: "Metadata"
|
||||
withNFiles: "{n} soubor(ů)"
|
||||
monitor: "Monitorovat"
|
||||
jobQueue: "Fronta úloh"
|
||||
cpuAndMemory: "CPU a paměť"
|
||||
network: "Síť"
|
||||
disk: "Disk"
|
||||
instanceInfo: "Informace o instanci"
|
||||
statistics: "Statistiky"
|
||||
clearQueue: "Vyčistit frontu"
|
||||
clearQueueConfirmTitle: "Jste si jisti že zrušit všechny úlohy ve frontě?"
|
||||
clearCachedFiles: "Vyprázdnit mezipaměť"
|
||||
blockedInstances: "Blokované instance"
|
||||
noUsers: "Žádní uživatelé"
|
||||
editProfile: "Upravit můj profil"
|
||||
pinLimitExceeded: "Nemůžete připnout další poznámky."
|
||||
intro: "Instalace Misskey byla dokončena! Prosím vytvořte admina."
|
||||
done: "Hotovo"
|
||||
processing: "Zpracovávám"
|
||||
preview: "Náhled"
|
||||
default: "Výchozí"
|
||||
noCustomEmojis: "Bez Emoji"
|
||||
blocked: "Blokováno"
|
||||
suspended: "Suspendováno"
|
||||
all: "Vše"
|
||||
subscribing: "Odebíráte"
|
||||
publishing: "Publikuji"
|
||||
notResponding: "Neodpovídá"
|
||||
instanceFollowing: "Následovníci na instanci"
|
||||
instanceFollowers: "Následovníci na instanci"
|
||||
instanceUsers: "Uživatelé této instance"
|
||||
changePassword: "Změnit heslo"
|
||||
security: "Zabezpečení"
|
||||
currentPassword: "Současné heslo"
|
||||
newPassword: "Nové heslo"
|
||||
newPasswordRetype: "Nové heslo (znovu)"
|
||||
attachFile: "Přiložit soubor"
|
||||
more: "Více!"
|
||||
featured: "Oblíbené poznámky"
|
||||
usernameOrUserId: "Uživatelské jméno nebo uživatelské id"
|
||||
noSuchUser: "Uživatel nebyl nalezen"
|
||||
announcements: "Oznámení"
|
||||
imageUrl: "URL obrázku"
|
||||
remove: "Smazat"
|
||||
removed: "Smazáno"
|
||||
removeAreYouSure: "Jste si jistí že chcete smazat \"{x}\"?"
|
||||
deleteAreYouSure: "Jste si jistí že chcete smazat \"{x}\"?"
|
||||
resetAreYouSure: "Opravdu resetovat?"
|
||||
saved: "Uloženo"
|
||||
messaging: "Zprávy"
|
||||
upload: "Nahrát soubory"
|
||||
fromDrive: "Z disku"
|
||||
fromUrl: "Z URL"
|
||||
uploadFromUrl: "Nahrát z URL adresy"
|
||||
uploadFromUrlDescription: "URL adresa souboru, který chcete nahrát"
|
||||
uploadFromUrlMayTakeTime: "Může trvat nějakou dobu, dokud nebude dokončeno nahrávání."
|
||||
explore: "Objevovat"
|
||||
messageRead: "Přečtené"
|
||||
noMoreHistory: "To je vše"
|
||||
startMessaging: "Zahájit chat"
|
||||
nUsersRead: "přečteno {n} uživateli"
|
||||
agreeTo: "Souhlasím s {0}"
|
||||
tos: "Podmínky užívání"
|
||||
start: "Začít"
|
||||
home: "Domů"
|
||||
remoteUserCaution: "Tyto informace nemusí být aktuální jelikož uživatel je ze vzdálené instance."
|
||||
activity: "Aktivita"
|
||||
images: "Obrázky"
|
||||
birthday: "Datum narození"
|
||||
yearsOld: "{age} let"
|
||||
registeredDate: "Datum registrace"
|
||||
location: "Lokace"
|
||||
theme: "Vzhled"
|
||||
themeForLightMode: "Vzhled pro použití ve světlém režimu"
|
||||
themeForDarkMode: "Vzhled k použití v tmavém režimu"
|
||||
light: "Světlý"
|
||||
dark: "Tmavý"
|
||||
lightThemes: "Světlý vzhled"
|
||||
darkThemes: "Tmavý vzhled"
|
||||
syncDeviceDarkMode: "Synchronizovat tmavý vzhled s nastavením Vašeho systému"
|
||||
drive: "Úložiště"
|
||||
fileName: "Název souboru"
|
||||
selectFile: "Vybrat soubor"
|
||||
selectFiles: "Vybrat soubory"
|
||||
selectFolder: "Vyberte složku"
|
||||
selectFolders: "Vyberte složky"
|
||||
renameFile: "Přejmenovat soubor"
|
||||
folderName: "Název složky"
|
||||
createFolder: "Vytvořit složku"
|
||||
renameFolder: "Přejmenovat složku"
|
||||
deleteFolder: "Odstranit složku"
|
||||
addFile: "Přidat soubor"
|
||||
emptyFolder: "Tato složka je prázdná"
|
||||
unableToDelete: "Nelze smazat"
|
||||
inputNewFileName: "Zadejte nový název"
|
||||
copyUrl: "Kopírovat URL"
|
||||
rename: "Přejmenovat"
|
||||
avatar: "Avatar"
|
||||
banner: "Baner"
|
||||
nsfw: "NSFW"
|
||||
disconnectedFromServer: "Spojení bylo přerušeno"
|
||||
reload: "Aktualizovat"
|
||||
doNothing: "Ignorovat"
|
||||
watch: "Sledovat"
|
||||
unwatch: "Přestat sledovat"
|
||||
accept: "Souhlasím"
|
||||
reject: "Odmítnout"
|
||||
normal: "Normální"
|
||||
instanceName: "Název instance"
|
||||
instanceDescription: "Popis instance"
|
||||
maintainerName: "Správce"
|
||||
maintainerEmail: "E-mailová adresa správce"
|
||||
tosUrl: "URL pro smluvní podmínky"
|
||||
thisYear: "Tento rok"
|
||||
thisMonth: "Tento měsíc"
|
||||
today: "Dnes"
|
||||
dayX: "{day}"
|
||||
monthX: "{month}"
|
||||
yearX: "{year}"
|
||||
pages: "Stránky"
|
||||
integration: "Integrace"
|
||||
connectService: "Připojit"
|
||||
disconnectService: "Odpojit"
|
||||
enableLocalTimeline: "Povolit lokální čas"
|
||||
enableGlobalTimeline: "Povolit globální čas"
|
||||
registration: "Registrace"
|
||||
enableRegistration: "Povolit registraci novým uživatelům"
|
||||
invite: "Pozvat"
|
||||
inMb: "V megabajtech"
|
||||
iconUrl: "Favicon URL"
|
||||
bannerUrl: "Baner URL"
|
||||
backgroundImageUrl: "Adresa URL obrázku pozadí"
|
||||
basicInfo: "Základní informace"
|
||||
pinnedUsers: "Připnutí uživatelé"
|
||||
pinnedNotes: "Připnutá poznámka"
|
||||
hcaptcha: "hCaptcha"
|
||||
enableHcaptcha: "Aktivovat hCaptchu"
|
||||
hcaptchaSecretKey: "Tajný Klíč (Secret Key)"
|
||||
recaptcha: "reCAPTCHA"
|
||||
enableRecaptcha: "Zapnout ReCAPTCHu"
|
||||
recaptchaSecretKey: "Tajný Klíč (Secret Key)"
|
||||
antennas: "Antény"
|
||||
manageAntennas: "Spravovat Antény"
|
||||
name: "Jméno"
|
||||
antennaSource: "Zdroj Antény"
|
||||
enableServiceworker: "Povolit ServiceWorker"
|
||||
caseSensitive: "Rozlišuje malá a velká písmena"
|
||||
connectedTo: "Následující účty jsou připojeny"
|
||||
popularTags: "Populární tagy"
|
||||
userList: "Seznamy"
|
||||
about: "Informace"
|
||||
aboutMisskey: "O Misskey"
|
||||
administrator: "Administrátor"
|
||||
token: "Token"
|
||||
twoStepAuthentication: "Dvoufaktorová autentikace"
|
||||
moderator: "Moderátor"
|
||||
nUsersMentioned: "{n} uživatelů zmínilo"
|
||||
securityKey: "Bezpečnostní klíč"
|
||||
securityKeyName: "Název klíče"
|
||||
registerSecurityKey: "Registrovat bezpečnostní klíč"
|
||||
lastUsed: "Naposledy použito"
|
||||
unregister: "Odstranit"
|
||||
resetPassword: "Resetovat heslo"
|
||||
newPasswordIs: "Nové heslo je \"{password}\""
|
||||
reduceUiAnimation: "Snížit UI animace"
|
||||
share: "Sdílet"
|
||||
notFound: "Nenalezeno"
|
||||
notFoundDescription: "Nebyla nalezená žádná stránka korespondující se zadanou URL."
|
||||
uploadFolder: "Výchozí lokace pro upload"
|
||||
cacheClear: "Vymazat cache"
|
||||
markAsReadAllNotifications: "Označit všechna oznámení za přečtená"
|
||||
markAsReadAllUnreadNotes: "Označit všechny příspěvky za přečtené"
|
||||
markAsReadAllTalkMessages: "Označit všechny zprávy za přečtené"
|
||||
help: "Nápověda"
|
||||
inputMessageHere: "Sem zadejte zprávu"
|
||||
close: "Zavřít"
|
||||
group: "Skupina"
|
||||
groups: "Skupiny"
|
||||
createGroup: "Vytvořit skupinu"
|
||||
ownedGroups: "Vlastněné skupiny"
|
||||
joinedGroups: "Členství ve skupinách"
|
||||
invites: "Pozvat"
|
||||
groupName: "Název skupiny"
|
||||
members: "Členové"
|
||||
transfer: "Převod"
|
||||
title: "Titulek"
|
||||
text: "Text"
|
||||
enable: "Povolit"
|
||||
next: "Další"
|
||||
retype: "Zadejte znovu"
|
||||
noteOf: "{user} poznámky"
|
||||
inviteToGroup: "Pozvat do skupiny"
|
||||
newMessageExists: "Máte novou zprávu"
|
||||
onlyOneFileCanBeAttached: "Ke zprávě můžete přiložit jenom jeden soubor"
|
||||
signinRequired: "Přihlašte se, prosím"
|
||||
invitations: "Pozvat"
|
||||
checking: "Ověřuji"
|
||||
available: "K dispozici"
|
||||
unavailable: "Není k dispozici"
|
||||
usernameInvalidFormat: "Písmena, čísla a _ jsou povolená."
|
||||
tooShort: "Příliš krátké"
|
||||
tooLong: "Příliš dlouhé"
|
||||
weakPassword: "Slabé heslo"
|
||||
normalPassword: "Dobré heslo"
|
||||
strongPassword: "Silné heslo"
|
||||
passwordMatched: "Hesla se schodují"
|
||||
passwordNotMatched: "Hesla se neschodují"
|
||||
signinWith: "Přihlásit se s {x}"
|
||||
signinFailed: "Nelze se přihlásit. Zkontrolujte prosím své uživatelské jméno a heslo."
|
||||
or: "Nebo"
|
||||
language: "Jazyk"
|
||||
uiLanguage: "Jazyk uživatelského rozhraní"
|
||||
groupInvited: "Pozvat do skupiny"
|
||||
aboutX: "O {x}"
|
||||
useOsNativeEmojis: "Použití nativních emoji operačního systému"
|
||||
youHaveNoGroups: "Nemáte žádné skupiny"
|
||||
joinOrCreateGroup: "Můžete požádat o pozvání do stávající skupiny nebo vytvořit novou."
|
||||
noHistory: "Žádná historie"
|
||||
signinHistory: "Historie přihlášení"
|
||||
category: "Kategorie"
|
||||
tags: "Štítky"
|
||||
createAccount: "Vytvořit účet"
|
||||
existingAccount: "Existující účet"
|
||||
regenerate: "Obnovit"
|
||||
fontSize: "Velikost písma"
|
||||
openImageInNewTab: "Otevřít obrázek v novém panelu"
|
||||
dashboard: "Přehled"
|
||||
local: "Lokální"
|
||||
remote: "Vzdálené"
|
||||
total: "Celkem"
|
||||
weekOverWeekChanges: "Týdně"
|
||||
dayOverDayChanges: "Denně"
|
||||
appearance: "Vzhled"
|
||||
clientSettings: "Nastavení klienta"
|
||||
accountSettings: "Nastavení účtu"
|
||||
promotion: "Propagace"
|
||||
promote: "Propagovat"
|
||||
numberOfDays: "Počet dní"
|
||||
deleteAll: "Smazat vše"
|
||||
showFixedPostForm: "Zobrazit formulář pro nové příspěvky nad časovou osou"
|
||||
masterVolume: "Celková hlasitost"
|
||||
chooseEmoji: "Vybrat emotikon"
|
||||
unableToProcess: "Operace nebyla dokončena."
|
||||
recentUsed: "Naposledy použité"
|
||||
install: "Nainstalovat"
|
||||
uninstall: "Odinstalovat"
|
||||
installedApps: "Autorizované aplikace"
|
||||
nothing: "Nic nebylo nalezeno"
|
||||
lastUsedDate: "Poslední použití"
|
||||
state: "Stav"
|
||||
sort: "Seřadit"
|
||||
ascendingOrder: "Vzestupně"
|
||||
descendingOrder: "Sestupně"
|
||||
scratchpad: "Zápisník"
|
||||
output: "Výstup"
|
||||
script: "Skript"
|
||||
updateRemoteUser: "Aktualizovat informace o vzdáleném účtu"
|
||||
deleteAllFiles: "Smazat všechny soubory"
|
||||
deleteAllFilesConfirm: "Jste si jistí že chcete smazat všechny soubory?"
|
||||
userSuspended: "Tomuto uživateli byl pozastaven účet."
|
||||
menu: "Menu"
|
||||
addItem: "Přidat položku"
|
||||
inboxUrl: "Inbox URL"
|
||||
deletedNote: "Odstraněné příspěvky"
|
||||
invisibleNote: "Skryté příspěvky"
|
||||
description: "Popis"
|
||||
author: "Autor"
|
||||
manage: "Administrace"
|
||||
small: "Malé"
|
||||
generateAccessToken: "Vygenerovat přístupový token"
|
||||
permission: "Oprávnění"
|
||||
enableAll: "Povolit vše"
|
||||
disableAll: "Vypnout vše"
|
||||
notificationType: "Typy oznámení"
|
||||
edit: "Upravit"
|
||||
emailServer: "Mailový server"
|
||||
enableEmail: "Zapnout email dystribuci"
|
||||
email: "Email"
|
||||
emailAddress: "Emailová adresa"
|
||||
smtpConfig: "Konfigurace SMTP serveru"
|
||||
smtpHost: "Hostitel"
|
||||
smtpPort: "Port"
|
||||
smtpUser: "Uživatelské jméno"
|
||||
smtpPass: "Heslo"
|
||||
smtpSecureInfo: "Toto vypněte pokud používáte STARTTLS"
|
||||
makeActive: "Aktivovat"
|
||||
display: "Zobrazit"
|
||||
copy: "Kopírovat"
|
||||
logs: "Logy"
|
||||
database: "Databáze"
|
||||
create: "Vytvořit"
|
||||
notificationSetting: "Nastavení oznámení"
|
||||
useGlobalSetting: "Použít globální nastavení"
|
||||
other: "Ostatní"
|
||||
fileIdOrUrl: "ID nebo URL souboru"
|
||||
behavior: "Chování"
|
||||
sample: "Ukázka"
|
||||
clearCache: "Vyprázdnit mezipaměť"
|
||||
info: "Informace"
|
||||
user: "Uživatelé"
|
||||
administration: "Administrace"
|
||||
searchByGoogle: "Vyhledávání"
|
||||
_email:
|
||||
_follow:
|
||||
title: "Máte nového následovníka"
|
||||
_mfm:
|
||||
mention: "Zmínění"
|
||||
quote: "Citovat"
|
||||
emoji: "Vlastní emoji"
|
||||
search: "Vyhledávání"
|
||||
_theme:
|
||||
description: "Popis"
|
||||
keys:
|
||||
mention: "Zmínění"
|
||||
renote: "Přeposlat"
|
||||
_sfx:
|
||||
note: "Poznámky"
|
||||
notification: "Oznámení"
|
||||
chat: "Zprávy"
|
||||
_widgets:
|
||||
notifications: "Oznámení"
|
||||
timeline: "Časová osa"
|
||||
activity: "Aktivita"
|
||||
federation: "Federace"
|
||||
jobQueue: "Fronta úloh"
|
||||
_cw:
|
||||
show: "Zobrazit více"
|
||||
_visibility:
|
||||
home: "Domů"
|
||||
followers: "Sledující"
|
||||
_profile:
|
||||
name: "Jméno"
|
||||
username: "Uživatelské jméno"
|
||||
_exportOrImport:
|
||||
followingList: "Sledovaní"
|
||||
muteList: "Ztlumit"
|
||||
blockingList: "Zablokovat"
|
||||
userLists: "Seznamy"
|
||||
_charts:
|
||||
federation: "Federace"
|
||||
_timelines:
|
||||
home: "Domů"
|
||||
_pages:
|
||||
blocks:
|
||||
image: "Obrázky"
|
||||
script:
|
||||
categories:
|
||||
list: "Seznamy"
|
||||
blocks:
|
||||
_join:
|
||||
arg1: "Seznamy"
|
||||
_randomPick:
|
||||
arg1: "Seznamy"
|
||||
_dailyRandomPick:
|
||||
arg1: "Seznamy"
|
||||
_seedRandomPick:
|
||||
arg2: "Seznamy"
|
||||
_pick:
|
||||
arg1: "Seznamy"
|
||||
_listLen:
|
||||
arg1: "Seznamy"
|
||||
types:
|
||||
array: "Seznamy"
|
||||
_notification:
|
||||
youWereFollowed: "Máte nového následovníka"
|
||||
youWereInvitedToGroup: "Pozvat do skupiny"
|
||||
_types:
|
||||
follow: "Sledovaní"
|
||||
mention: "Zmínění"
|
||||
renote: "Přeposlat"
|
||||
quote: "Citovat"
|
||||
reaction: "Reakce"
|
||||
_actions:
|
||||
reply: "Odpovědět"
|
||||
renote: "Přeposlat"
|
||||
_deck:
|
||||
_columns:
|
||||
notifications: "Oznámení"
|
||||
tl: "Časová osa"
|
||||
antenna: "Antény"
|
||||
list: "Seznamy"
|
||||
mentions: "Zmínění"
|
||||
|
1104
locales/de-DE.yml
1104
locales/de-DE.yml
File diff suppressed because it is too large
Load Diff
1126
locales/en-US.yml
1126
locales/en-US.yml
File diff suppressed because it is too large
Load Diff
@@ -1,11 +1,13 @@
|
||||
---
|
||||
_lang_: "Español"
|
||||
headlineMisskey: "Red conectada por notas"
|
||||
introMisskey: "¡Bienvenido/a! Misskey es un servicio de microblogging descentralizado de código abierto.\nEscribe \"notas\" para compartir lo que te ocurre ahora o para contar sobre ti a todos 📡\nCon la función de \"reacciones\", puedes también añadir una reacción rápida a las notas de todos 👍\nExplora un nuevo mundo 🚀"
|
||||
monthAndDay: "{day}/{month}"
|
||||
search: "Buscar"
|
||||
notifications: "Notificaciones"
|
||||
username: "Nombre de usuario"
|
||||
password: "Contraseña"
|
||||
forgotPassword: "Olvidé mi Contraseña"
|
||||
fetchingAsApObject: "Buscando en el fediverso"
|
||||
ok: "OK"
|
||||
gotIt: "Entendido"
|
||||
@@ -49,6 +51,7 @@ copyUsername: "Copiar nombre de usuario"
|
||||
searchUser: "Búsqueda de usuarios"
|
||||
reply: "Responder"
|
||||
loadMore: "Ver más"
|
||||
showMore: "Ver más"
|
||||
youGotNewFollower: "te ha seguido"
|
||||
receiveFollowRequest: "Recibiste una solicitud de seguimiento"
|
||||
followRequestAccepted: "La solicitud de seguimiento fue aceptada"
|
||||
@@ -78,6 +81,8 @@ somethingHappened: "Ocurrió un error"
|
||||
retry: "Reintentar"
|
||||
pageLoadError: "Error al leer la página"
|
||||
pageLoadErrorDescription: "Normalmente es debido a la red o al caché del navegador. Por favor limpie el caché o intente más tarde."
|
||||
serverIsDead: "No hay respuesta del servidor. Espere un momento y vuelva a intentarlo."
|
||||
youShouldUpgradeClient: "Para ver esta página, por favor refrezca el navegador y utiliza una versión más reciente del cliente."
|
||||
enterListName: "Ingrese nombre de lista"
|
||||
privacy: "Privacidad"
|
||||
makeFollowManuallyApprove: "Aprobar manualmente las solicitudes de seguimiento"
|
||||
@@ -95,12 +100,13 @@ cantRenote: "No se puede renotar este post"
|
||||
cantReRenote: "No se puede renotar una renota"
|
||||
quote: "Citar"
|
||||
pinnedNote: "Nota fijada"
|
||||
pinned: "Fijar"
|
||||
you: "Tú"
|
||||
clickToShow: "Click para ver"
|
||||
sensitive: "Marcado como sensible"
|
||||
add: "Agregar"
|
||||
reaction: "Reacción"
|
||||
reactionSettingDescription: "Asigne sus reacción favoritas que desean anclar en el selector de reacciones."
|
||||
reactionSetting: "Reacciones para mostrar en el menú de reacciones"
|
||||
reactionSettingDescription2: "Arrastre para reordenar, click para borrar, apriete la tecla + para añadir."
|
||||
rememberNoteVisibility: "Recordar visibilidad"
|
||||
attachCancel: "Quitar adjunto"
|
||||
@@ -124,6 +130,7 @@ editWidgets: "Editar widgets"
|
||||
editWidgetsExit: "Terminar edición"
|
||||
customEmojis: "Emojis personalizados"
|
||||
emoji: "Emoji"
|
||||
emojis: "Emoji"
|
||||
emojiName: "Nombre del emoji"
|
||||
emojiUrl: "URL de la imágen del emoji"
|
||||
addEmoji: "Agregar emoji"
|
||||
@@ -134,8 +141,10 @@ flagAsBot: "Esta cuenta es un bot"
|
||||
flagAsBotDescription: "En caso de que esta cuenta fuera usada por un programa, active esta opción. Al hacerlo, esta opción servirá para otros desarrolladores para evitar cadenas infinitas de reacciones, y ajustará los sistemas internos de Misskey para que trate a esta cuenta como un bot."
|
||||
flagAsCat: "Esta cuenta es un gato"
|
||||
flagAsCatDescription: "En caso de que declare que esta cuenta es de un gato, active esta opción."
|
||||
flagShowTimelineReplies: "Mostrar respuestas a las notas en la biografía"
|
||||
flagShowTimelineRepliesDescription: "Cuando se marca, la línea de tiempo muestra respuestas a otras notas además de las notas del usuario"
|
||||
autoAcceptFollowed: "Aceptar automáticamente las solicitudes de seguimiento de los usuarios que sigues"
|
||||
addAcount: "Agregar cuenta"
|
||||
addAccount: "Agregar Cuenta"
|
||||
loginFailed: "Error al iniciar sesión."
|
||||
showOnRemote: "Ver en una instancia remota"
|
||||
general: "General"
|
||||
@@ -228,6 +237,8 @@ resetAreYouSure: "¿Desea reestablecer?"
|
||||
saved: "Guardado"
|
||||
messaging: "Chat"
|
||||
upload: "Subir"
|
||||
keepOriginalUploading: "Mantener la imagen original"
|
||||
keepOriginalUploadingDescription: "Mantener la versión original al cargar imágenes. Si está desactivado, el navegador generará imágenes para la publicación web en el momento de recargar la página"
|
||||
fromDrive: "Desde el drive"
|
||||
fromUrl: "Desde la URL"
|
||||
uploadFromUrl: "Subir desde una URL"
|
||||
@@ -235,7 +246,6 @@ uploadFromUrlDescription: "URL del fichero que quieres subir"
|
||||
uploadFromUrlRequested: "Subida solicitada"
|
||||
uploadFromUrlMayTakeTime: "Subir el fichero puede tardar un tiempo."
|
||||
explore: "Explorar"
|
||||
games: "Misskey Games"
|
||||
messageRead: "Ya leído"
|
||||
noMoreHistory: "El historial se ha acabado"
|
||||
startMessaging: "Iniciar chat"
|
||||
@@ -275,6 +285,7 @@ emptyDrive: "El drive está vacío"
|
||||
emptyFolder: "La carpeta está vacía"
|
||||
unableToDelete: "No se puede borrar"
|
||||
inputNewFileName: "Ingrese un nuevo nombre de archivo"
|
||||
inputNewDescription: "Ingrese nueva descripción"
|
||||
inputNewFolderName: "Ingrese un nuevo nombre de la carpeta"
|
||||
circularReferenceFolder: "La carpeta de destino es una sub-carpeta de la carpeta que quieres mover."
|
||||
hasChildFilesOrFolders: "No se puede borrar esta carpeta. No está vacía."
|
||||
@@ -306,21 +317,20 @@ monthX: "Mes {month}"
|
||||
yearX: "Año {year}"
|
||||
pages: "Páginas"
|
||||
integration: "Integración"
|
||||
connectSerice: "Conectarse"
|
||||
disconnectSerice: "Desconectarse"
|
||||
connectService: "Conectar"
|
||||
disconnectService: "Desconectar"
|
||||
enableLocalTimeline: "Habilitar linea de tiempo local"
|
||||
enableGlobalTimeline: "Habilitar linea de tiempo global"
|
||||
disablingTimelinesInfo: "Aunque se desactiven estas lineas de tiempo, por conveniencia el administrador y los moderadores pueden seguir usándolos"
|
||||
registration: "Registro"
|
||||
enableRegistration: "Permitir nuevos registros"
|
||||
invite: "Invitar"
|
||||
proxyRemoteFiles: "Hacer proxy de archivos remotos"
|
||||
proxyRemoteFilesDescription: "Si activa esta configuración, los archivos remotos no almacenados o borrados por exceso de capacidad serán mostrados via proxy local y generarán una miniatura. Eso no afectará el almacenamiento del servidor."
|
||||
driveCapacityPerLocalAccount: "Capacidad del drive por usuario local"
|
||||
driveCapacityPerRemoteAccount: "Capacidad del drive por usuario remoto"
|
||||
inMb: "En megabytes"
|
||||
iconUrl: "URL de la imagen del avatar"
|
||||
bannerUrl: "URL de la imagen del banner"
|
||||
backgroundImageUrl: "URL de la imagen de fondo"
|
||||
basicInfo: "Información básica"
|
||||
pinnedUsers: "Usuarios fijados"
|
||||
pinnedUsersDescription: "Describir los usuarios que quiere fijar en la página \"Descubrir\" separados por una linea nueva"
|
||||
@@ -346,7 +356,6 @@ antennaExcludeKeywords: "Palabras clave para excluir"
|
||||
antennaKeywordsDescription: "Separar con espacios es una declaración AND, separar con una linea nueva es una declaración OR"
|
||||
notifyAntenna: "Notificar nueva nota"
|
||||
withFileAntenna: "Sólo notas con archivos adjuntados"
|
||||
serviceworker: "ServiceWorker"
|
||||
enableServiceworker: "Activar ServiceWorker"
|
||||
antennaUsersDescription: "Elegir nombres de usuarios separados por una linea nueva"
|
||||
caseSensitive: "Distinguir mayúsculas de minúsculas"
|
||||
@@ -411,7 +420,6 @@ next: "Siguiente"
|
||||
retype: "Intentar de nuevo"
|
||||
noteOf: "Notas de {user}"
|
||||
inviteToGroup: "Invitar al grupo"
|
||||
maxNoteTextLength: "Límite de caracteres en una nota"
|
||||
quoteAttached: "Cita añadida"
|
||||
quoteQuestion: "¿Quiere añadir una cita?"
|
||||
noMessagesYet: "Aún no hay chat"
|
||||
@@ -435,10 +443,12 @@ signinWith: "Inicie sesión con {x}"
|
||||
signinFailed: "Autenticación fallida. Asegúrate de haber usado el nombre de usuario y contraseña correctos."
|
||||
tapSecurityKey: "Toque la clave de seguridad"
|
||||
or: "O"
|
||||
language: "Idioma"
|
||||
uiLanguage: "Idioma de visualización de la interfaz"
|
||||
groupInvited: "Invitado al grupo"
|
||||
aboutX: "Acerca de {x}"
|
||||
useOsNativeEmojis: "Usa los emojis nativos de la plataforma"
|
||||
disableDrawer: "No mostrar los menús en cajones"
|
||||
youHaveNoGroups: "Sin grupos"
|
||||
joinOrCreateGroup: "Obtenga una invitación para unirse al grupos o puede crear su propio grupo."
|
||||
noHistory: "No hay datos en el historial"
|
||||
@@ -449,7 +459,7 @@ category: "Categoría"
|
||||
tags: "Etiqueta"
|
||||
docSource: "Fuente de este documento"
|
||||
createAccount: "Crear cuenta"
|
||||
existingAcount: "Cuentas existentes"
|
||||
existingAccount: "Cuenta existente"
|
||||
regenerate: "Regenerar"
|
||||
fontSize: "Tamaño de la letra"
|
||||
noFollowRequests: "No hay solicitudes de seguimiento"
|
||||
@@ -522,10 +532,11 @@ removeAllFollowing: "Retener todos los siguientes"
|
||||
removeAllFollowingDescription: "Cancelar todos los siguientes del servidor {host}. Ejecutar en caso de que esta instancia haya dejado de existir"
|
||||
userSuspended: "Este usuario ha sido suspendido."
|
||||
userSilenced: "Este usuario ha sido silenciado."
|
||||
sidebar: "Barra lateral"
|
||||
yourAccountSuspendedTitle: "Esta cuenta ha sido suspendida"
|
||||
yourAccountSuspendedDescription: "Esta cuenta ha sido suspendida debido a violaciones de los términos de servicio del servidor y otras razones. Para más información, póngase en contacto con el administrador. Por favor, no cree una nueva cuenta."
|
||||
menu: "Menú"
|
||||
divider: "Divisor"
|
||||
addItem: "Agregar elemento"
|
||||
rooms: "Cuartos"
|
||||
relays: "Relés"
|
||||
addRelay: "Agregar relé"
|
||||
inboxUrl: "Inbox URL"
|
||||
@@ -542,11 +553,12 @@ disablePlayer: "Cerrar reproductor"
|
||||
expandTweet: "Expandir tweet"
|
||||
themeEditor: "Editor de temas"
|
||||
description: "Descripción"
|
||||
describeFile: "Añade una descripción"
|
||||
enterFileDescription: "Introducir un título"
|
||||
author: "Autor"
|
||||
leaveConfirm: "Hay modificaciones sin guardar. ¿Desea descartarlas?"
|
||||
manage: "Administrar"
|
||||
plugins: "Plugins"
|
||||
pluginInstallWarn: "Por favor no instale plugins que no son de confianza"
|
||||
deck: "Deck"
|
||||
undeck: "Quitar deck"
|
||||
useBlurEffectForModal: "Usar efecto borroso en modales"
|
||||
@@ -565,7 +577,7 @@ pluginTokenRequestedDescription: "Este plugin podrá usar los permisos descritos
|
||||
notificationType: "Tipo de notificación"
|
||||
edit: "Editar"
|
||||
useStarForReactionFallback: "En caso de que los emojis de reacciones no sean claros, usar en su lugar una estrella"
|
||||
emailConfig: "Configuración del servidor de correos"
|
||||
emailServer: "Servidor de correo"
|
||||
enableEmail: "Activar el envío de correos electrónicos"
|
||||
emailConfigInfo: "Usar en caso de validación de correo electrónico y pedido de contraseña"
|
||||
email: "Correo"
|
||||
@@ -580,6 +592,7 @@ smtpSecure: "Usar SSL/TLS implícito en la conexión SMTP"
|
||||
smtpSecureInfo: "Apagar cuando se use STARTTLS"
|
||||
testEmail: "Prueba de envío"
|
||||
wordMute: "Silenciar palabras"
|
||||
instanceMute: "Instancias silenciadas"
|
||||
userSaysSomething: "{name} dijo algo"
|
||||
makeActive: "Activar"
|
||||
display: "Apariencia"
|
||||
@@ -600,7 +613,6 @@ regenerateLoginToken: "Regenerar token de login"
|
||||
regenerateLoginTokenDescription: "Regenerar el token usado internamente durante el login. No siempre es necesario hacerlo. Al hacerlo de nuevo, se deslogueará en todos los dispositivos."
|
||||
setMultipleBySeparatingWithSpace: "Puedes añadir mas de uno, separado por espacios."
|
||||
fileIdOrUrl: "Id del archivo o URL"
|
||||
chatOpenBehavior: "Comportamiento al abrir el chat"
|
||||
behavior: "Comportamiento"
|
||||
sample: "Muestra"
|
||||
abuseReports: "Reportes"
|
||||
@@ -608,6 +620,10 @@ reportAbuse: "Reportar"
|
||||
reportAbuseOf: "Reportar a {name}"
|
||||
fillAbuseReportDescription: "Ingrese los detalles del reporte. Si hay una nota en particular, ingrese la URL de esta."
|
||||
abuseReported: "Se ha enviado el reporte. Muchas gracias."
|
||||
reporteeOrigin: "Informar a"
|
||||
reporterOrigin: "Origen del informe"
|
||||
forwardReport: "Transferir un informe a una instancia remota"
|
||||
forwardReportIsAnonymous: "No puede ver su información de la instancia remota y aparecerá como una cuenta anónima del sistema"
|
||||
send: "Enviar"
|
||||
abuseMarkAsResolved: "Marcar reporte como resuelto"
|
||||
openInNewTab: "Abrir en una Nueva Pestaña"
|
||||
@@ -645,14 +661,205 @@ driveFilesCount: "Cantidad de archivos en el drive"
|
||||
driveUsage: "Uso del drive"
|
||||
noCrawle: "Rechazar indexación del crawler"
|
||||
noCrawleDescription: "Pedir a los motores de búsqueda que no indexen tu perfil, notas, páginas, etc."
|
||||
lockedAccountInfo: "A menos que configures la visibilidad de tus notas como \"Sólo seguidores\", tus notas serán visibles para cualquiera, incluso si requieres que los seguidores sean aprobados manualmente."
|
||||
alwaysMarkSensitive: "Marcar los medios de comunicación como contenido sensible por defecto"
|
||||
loadRawImages: "Cargar las imágenes originales en lugar de mostrar las miniaturas"
|
||||
disableShowingAnimatedImages: "No reproducir imágenes animadas"
|
||||
verificationEmailSent: "Se le ha enviado un correo electrónico de confirmación. Por favor, acceda al enlace proporcionado en el correo electrónico para completar la configuración."
|
||||
notSet: "Sin especificar"
|
||||
emailVerified: "Su dirección de correo electrónico ha sido verificada."
|
||||
noteFavoritesCount: "Número de notas favoritas"
|
||||
pageLikesCount: "Número de favoritos en la página"
|
||||
pageLikedCount: "Número de favoritos de su página"
|
||||
contact: "Contacto"
|
||||
useSystemFont: "Utilizar la tipografía por defecto del sistema"
|
||||
clips: "Clip"
|
||||
experimentalFeatures: "Características experimentales"
|
||||
developer: "Desarrolladores"
|
||||
makeExplorable: "Hacer visible la cuenta en \"Explorar\""
|
||||
makeExplorableDescription: "Si desactiva esta opción, su cuenta no aparecerá en la sección \"Explorar\"."
|
||||
showGapBetweenNotesInTimeline: "Mostrar un intervalo entre notas en la línea de tiempo"
|
||||
duplicate: "Duplicar"
|
||||
left: "Izquierda"
|
||||
center: "Centrar"
|
||||
wide: "Ancho"
|
||||
narrow: "Estrecho"
|
||||
reloadToApplySetting: "Esta configuración sólo se aplicará después de recargar la página. ¿Recargar ahora?"
|
||||
needReloadToApply: "Se requiere un reinicio para la aplicar los cambios"
|
||||
showTitlebar: "Mostrar la barra de título"
|
||||
clearCache: "Limpiar caché"
|
||||
onlineUsersCount: "{n} usuarios en línea"
|
||||
nUsers: "{n} Usuarios"
|
||||
nNotes: "{n} Notas"
|
||||
sendErrorReports: "Envíar informe de errores"
|
||||
sendErrorReportsDescription: "Si habilita esta opción, ayudará a mejorar la calidad de Misskey compartiendo información detallada sobre los errores cuando se produzca un problema.\nEsto incluye información como la versión de su sistema operativo, el tipo de navegador que utiliza, su historial de actividad, etc."
|
||||
myTheme: "Mi Tema"
|
||||
backgroundColor: "Fondo"
|
||||
accentColor: "Acento"
|
||||
textColor: "Texto"
|
||||
saveAs: "Guardar como…"
|
||||
advanced: "Avanzado"
|
||||
value: "Valores"
|
||||
createdAt: "Fecha de creación"
|
||||
updatedAt: "Actualizado"
|
||||
saveConfirm: "¿Guardar cambios?"
|
||||
deleteConfirm: "¿Desea eliminarlo?"
|
||||
invalidValue: "Este no es un valor válido."
|
||||
registry: "Registro"
|
||||
closeAccount: "Cerrar cuenta"
|
||||
currentVersion: "Versión actual"
|
||||
latestVersion: "Última versión"
|
||||
youAreRunningUpToDateClient: "Está utilizando la versión más reciente de su cliente."
|
||||
newVersionOfClientAvailable: "Hay una versión más nueva de su cliente disponible."
|
||||
usageAmount: "Uso"
|
||||
capacity: "Capacidad"
|
||||
inUse: "Usado"
|
||||
editCode: "Editar código"
|
||||
apply: "Aplicar"
|
||||
receiveAnnouncementFromInstance: "Recibir notificaciones de la instancia"
|
||||
emailNotification: "Notificaciones por correo electrónico"
|
||||
publish: "Publicar"
|
||||
inChannelSearch: "Buscar en el canal"
|
||||
useReactionPickerForContextMenu: "Haga clic con el botón derecho para abrir el menu de reacciones"
|
||||
typingUsers: "{users} está escribiendo"
|
||||
jumpToSpecifiedDate: "Saltar a una fecha específica"
|
||||
showingPastTimeline: "Mostrar líneas de tiempo antiguas"
|
||||
clear: "Limpiar"
|
||||
markAllAsRead: "Marcar todo como leído"
|
||||
goBack: "Deseleccionar"
|
||||
fullView: "Vista completa"
|
||||
quitFullView: "quitar vista completa"
|
||||
addDescription: "Agregar descripción"
|
||||
userPagePinTip: "Puede mantener sus notas visibles aquí seleccionando Pin en el menú de notas individuales"
|
||||
notSpecifiedMentionWarning: "Algunas menciones no están incluidas en el destino"
|
||||
info: "Información"
|
||||
userInfo: "Información del usuario"
|
||||
unknown: "Desconocido"
|
||||
onlineStatus: "En línea"
|
||||
hideOnlineStatus: "mostrarse como desconectado"
|
||||
hideOnlineStatusDescription: "Ocultar su estado en línea puede reducir la eficacia de algunas funciones, como la búsqueda"
|
||||
online: "En línea"
|
||||
active: "Activo"
|
||||
offline: "Sin conexión"
|
||||
notRecommended: "obsoleto"
|
||||
botProtection: "Protección contra bots"
|
||||
instanceBlocking: "Instancias bloqueadas"
|
||||
selectAccount: "Elija una cuenta"
|
||||
switchAccount: "Cambiar de cuenta"
|
||||
enabled: "Activado"
|
||||
disabled: "Desactivado"
|
||||
quickAction: "Acciones rápidas"
|
||||
user: "Usuarios"
|
||||
administration: "Administrar"
|
||||
accounts: "Cuentas"
|
||||
switch: "Cambiar"
|
||||
noMaintainerInformationWarning: "No se ha establecido la información del administrador"
|
||||
noBotProtectionWarning: "La protección contra los bots no está configurada"
|
||||
configure: "Configurar"
|
||||
postToGallery: "Crear una nueva publicación en la galería"
|
||||
gallery: "Galería"
|
||||
recentPosts: "Posts recientes"
|
||||
popularPosts: "Más vistos"
|
||||
shareWithNote: "Compartir con una nota"
|
||||
ads: "Anuncios"
|
||||
expiration: "Termina el"
|
||||
memo: "Notas"
|
||||
priority: "Prioridad"
|
||||
high: "Alta"
|
||||
middle: "Mediano"
|
||||
low: "Baja"
|
||||
emailNotConfiguredWarning: "No se ha configurado una dirección de correo electrónico."
|
||||
ratio: "Proporción"
|
||||
previewNoteText: "Mostrar vista preliminar"
|
||||
customCss: "CSS personalizado"
|
||||
customCssWarn: "Este ajuste sólo debe utilizarse si se sabe lo que hace. Introducir valores inadecuados puede hacer que el cliente deje de funcionar con normalidad."
|
||||
global: "Global"
|
||||
squareAvatars: "Mostrar iconos cuadrados"
|
||||
sent: "Enviar"
|
||||
received: "Recibido"
|
||||
searchResult: "Resultados de búsqueda"
|
||||
hashtags: "Hashtag"
|
||||
troubleshooting: "Solución de problemas"
|
||||
useBlurEffect: "Utilizar efecto de desenfoque en la interfaz de usuario"
|
||||
learnMore: "Ver más"
|
||||
misskeyUpdated: "¡Misskey ha sido actualizado!"
|
||||
whatIsNew: "Mostrar cambios"
|
||||
translate: "Traducir"
|
||||
translatedFrom: "Traducido de {x}"
|
||||
accountDeletionInProgress: "La eliminación de la cuenta está en curso"
|
||||
usernameInfo: "Un nombre que identifique su cuenta de otras en este servidor. Puede utilizar el alfabeto (a~z, A~Z), dígitos (0~9) o guiones bajos (_). Los nombres de usuario no se pueden cambiar posteriormente."
|
||||
aiChanMode: "Modo Ai"
|
||||
keepCw: "Mantener la advertencia de contenido"
|
||||
pubSub: "Cuentas Pub/Sub"
|
||||
lastCommunication: "Última comunicación"
|
||||
resolved: "Resuelto"
|
||||
unresolved: "Sin resolver"
|
||||
itsOn: "¡Está encendido!"
|
||||
itsOff: "¡Está apagado!"
|
||||
emailRequiredForSignup: "Se requere una dirección de correo electrónico para el registro de la cuenta"
|
||||
unread: "No leído"
|
||||
filter: "Filtro"
|
||||
controlPanel: "Panel de control"
|
||||
manageAccounts: "Administrar cuenta"
|
||||
makeReactionsPublic: "Hacer el historial de reacciones público"
|
||||
makeReactionsPublicDescription: "Todas las reacciones que hayas hecho serán públicamente visibles."
|
||||
classic: "Clásico"
|
||||
muteThread: "Ocultar hilo"
|
||||
unmuteThread: "Mostrar hilo"
|
||||
ffVisibility: "Visibilidad de seguidores y seguidos"
|
||||
hide: "Ocultar"
|
||||
searchByGoogle: "Buscar"
|
||||
indefinitely: "Sin límite de tiempo"
|
||||
_ffVisibility:
|
||||
public: "Publicar"
|
||||
_accountDelete:
|
||||
accountDelete: "Eliminar Cuenta"
|
||||
_ad:
|
||||
back: "Deseleccionar"
|
||||
_forgotPassword:
|
||||
contactAdmin: "Esta instancia no admite el uso de direcciones de correo electrónico, póngase en contacto con el administrador de la instancia para restablecer su contraseña"
|
||||
_gallery:
|
||||
my: "Mi galería"
|
||||
liked: "Publicaciones que me gustan"
|
||||
like: "¡Muy bien!"
|
||||
unlike: "Quitar me gusta"
|
||||
_email:
|
||||
_follow:
|
||||
title: "te ha seguido"
|
||||
_receiveFollowRequest:
|
||||
title: "Has recibido una solicitud de seguimiento"
|
||||
_plugin:
|
||||
install: "Instalar plugins"
|
||||
installWarn: "Por favor no instale plugins que no son de confianza"
|
||||
manage: "Gestionar plugins"
|
||||
_registry:
|
||||
scope: "Alcance"
|
||||
key: "Clave"
|
||||
keys: "Clave"
|
||||
domain: "Dominio"
|
||||
createKey: "Crear una llave"
|
||||
_aboutMisskey:
|
||||
about: "Misskey es un software de código abierto, desarrollado por syuilo desde el 2014"
|
||||
contributors: "Principales colaboradores"
|
||||
allContributors: "Todos los colaboradores"
|
||||
source: "Código fuente"
|
||||
translation: "Traducir Misskey"
|
||||
donate: "Donar a Misskey"
|
||||
morePatrons: "Muchas más personas nos apoyan. Muchas gracias🥰"
|
||||
patrons: "Patrocinadores"
|
||||
_nsfw:
|
||||
respect: "Ocultar medios NSFW"
|
||||
ignore: "No esconder medios NSFW "
|
||||
force: "Ocultar todos los medios"
|
||||
_mfm:
|
||||
cheatSheet: "Hoja de referencia de MFM"
|
||||
intro: "MFM es un lenguaje de marcado dedicado que se puede usar en varios lugares dentro de Misskey. Aquí puede ver una lista de sintaxis disponibles en MFM."
|
||||
dummy: "Misskey expande el mundo de la Fediverso"
|
||||
mention: "Menciones"
|
||||
mentionDescription: "El signo @ seguido de un nombre de usuario se puede utilizar para notificar a un usuario en particular."
|
||||
hashtag: "Hashtag"
|
||||
url: "URL"
|
||||
urlDescription: "Se pueden mostrar las URL"
|
||||
link: "Vínculo"
|
||||
bold: "Negrita"
|
||||
center: "Centrar"
|
||||
@@ -663,39 +870,8 @@ _mfm:
|
||||
search: "Buscar"
|
||||
flip: "Echar de un capirotazo"
|
||||
flipDescription: "Voltea el contenido hacia arriba / abajo o hacia la izquierda / derecha."
|
||||
_reversi:
|
||||
reversi: "Reversi"
|
||||
gameSettings: "Configuración del juego"
|
||||
chooseBoard: "Elegir tablero"
|
||||
blackOrWhite: "Blancas/Negras"
|
||||
blackIs: "{name} juega con fichas negras"
|
||||
rules: "Reglas"
|
||||
botSettings: "Opciones del bot"
|
||||
thisGameIsStartedSoon: "El juego empezará en segundos"
|
||||
waitingForOther: "Esperando el turno del adversario"
|
||||
waitingForMe: "Esperando mi turno"
|
||||
waitingBoth: "Prepárate"
|
||||
ready: "Listo"
|
||||
cancelReady: "No estoy listo"
|
||||
opponentTurn: "Turno del adversario"
|
||||
myTurn: "Mi turno"
|
||||
turnOf: "Turno de {name}"
|
||||
pastTurnOf: "Turno de {name}"
|
||||
surrender: "Rendirse"
|
||||
surrendered: "Por rendirse"
|
||||
drawn: "Empate"
|
||||
won: "{name} ha ganado"
|
||||
black: "Negro"
|
||||
white: "Blanco"
|
||||
total: "Total"
|
||||
turnCount: "Turno {count}"
|
||||
myGames: "Mis juegos"
|
||||
allGames: "Todos los juegos"
|
||||
ended: "Finalizado"
|
||||
playing: "Jugando"
|
||||
isLlotheo: "El que tenga menos fichas gana (LLoTheO)"
|
||||
loopedMap: "Mapa en bucle"
|
||||
canPutEverywhere: "Puedes colocar donde quieras"
|
||||
font: "Fuente"
|
||||
rotate: "Rotar"
|
||||
_instanceTicker:
|
||||
none: "No mostrar"
|
||||
remote: "Mostrar a usuarios remotos"
|
||||
@@ -714,9 +890,9 @@ _channel:
|
||||
following: "Siguiendo"
|
||||
usersCount: "{n} participantes"
|
||||
notesCount: "{n} notas"
|
||||
_sidebar:
|
||||
full: "Completo"
|
||||
icon: "Avatar"
|
||||
_menuDisplay:
|
||||
sideFull: "Horizontal"
|
||||
sideIcon: "Horizontal (ícono)"
|
||||
hide: "Ocultar"
|
||||
_wordMute:
|
||||
muteWords: "Palabras que silenciar"
|
||||
@@ -727,11 +903,17 @@ _wordMute:
|
||||
soft: "Suave"
|
||||
hard: "Duro"
|
||||
mutedNotes: "Notas silenciadas"
|
||||
_instanceMute:
|
||||
instanceMuteDescription: "Silencia todas las notas y reposts de la instancias seleccionadas, incluyendo respuestas a los usuarios de las mismas"
|
||||
instanceMuteDescription2: "Separar por líneas"
|
||||
title: "Oculta las notas de las instancias listadas."
|
||||
heading: "Instancias a silenciar"
|
||||
_theme:
|
||||
explore: "Explorar temas"
|
||||
install: "Instalar tema"
|
||||
manage: "Gestor de temas"
|
||||
code: "Código del tema"
|
||||
description: "Descripción"
|
||||
installed: "{name} ha sido instalado"
|
||||
alreadyInstalled: "Este tema ya está instalado"
|
||||
invalid: "El formato del tema no es válido"
|
||||
@@ -807,7 +989,6 @@ _sfx:
|
||||
antenna: "Antena receptora"
|
||||
channel: "Notificaciones del canal"
|
||||
_ago:
|
||||
unknown: "Desconocido"
|
||||
future: "Futuro"
|
||||
justNow: "Recién ahora"
|
||||
secondsAgo: "Hace {n} segundos"
|
||||
@@ -918,6 +1099,7 @@ _widgets:
|
||||
federation: "Federación"
|
||||
postForm: "Formulario"
|
||||
button: "Botón"
|
||||
jobQueue: "Cola de trabajos"
|
||||
_cw:
|
||||
hide: "Ocultar"
|
||||
show: "Ver más"
|
||||
@@ -981,8 +1163,8 @@ _exportOrImport:
|
||||
blockingList: "Bloqueados"
|
||||
userLists: "Listas"
|
||||
_charts:
|
||||
federationInstancesIncDec: "Variación de instancias federando"
|
||||
federationInstancesTotal: "Total de instancias federando"
|
||||
federation: "Federación"
|
||||
apRequest: "Pedidos"
|
||||
usersIncDec: "Variación de usuarios"
|
||||
usersTotal: "Total de usuarios"
|
||||
activeUsers: "Cantidad de usuarios activos"
|
||||
@@ -1011,68 +1193,6 @@ _timelines:
|
||||
local: "Local"
|
||||
social: "Social"
|
||||
global: "Global"
|
||||
_rooms:
|
||||
roomOf: "Cuarto de {user}"
|
||||
addFurniture: "Colocar muebles"
|
||||
translate: "Mover"
|
||||
rotate: "Rotar"
|
||||
exit: "Deseleccionar"
|
||||
remove: "Quitar"
|
||||
clear: "Quitar todo"
|
||||
clearConfirm: "¿Quiere quitar todos los muebles?"
|
||||
leaveConfirm: "Hay modificaciones sin guardar. ¿Desea irse?"
|
||||
chooseImage: "Escoger una imagen"
|
||||
roomType: "Estilo de cuarto"
|
||||
carpetColor: "Color de piso"
|
||||
_roomType:
|
||||
default: "Predeterminado"
|
||||
washitsu: "Estilo japonés"
|
||||
_furnitures:
|
||||
milk: "Cartón de leche"
|
||||
bed: "Cama"
|
||||
low-table: "Mesa chica"
|
||||
desk: "Escritorio"
|
||||
chair: "Silla"
|
||||
chair2: "Silla 2"
|
||||
fan: "Ventilador"
|
||||
pc: "Computadora"
|
||||
plant: "Planta decorativa"
|
||||
plant2: "Planta decorativa 2"
|
||||
eraser: "Goma de borrar"
|
||||
pencil: "lápiz"
|
||||
pudding: "Pudín"
|
||||
cardboard-box: "Caja de cartón"
|
||||
cardboard-box2: "Caja de cartón 2"
|
||||
cardboard-box3: "Caja de cartón 3"
|
||||
book: "Libro"
|
||||
book2: "Libro 2"
|
||||
piano: "Piano"
|
||||
facial-tissue: "Caja de pañuelos"
|
||||
server: "Servidor"
|
||||
moon: "Luna"
|
||||
corkboard: "Pizarra de corcho"
|
||||
mousepad: "Alfombrilla de ratón"
|
||||
monitor: "Monitor"
|
||||
keyboard: "Teclado"
|
||||
carpet-stripe: "Alfombra (a rayas)"
|
||||
mat: "Tapete"
|
||||
color-box: "Caja de colores"
|
||||
wall-clock: "Reloj de pared"
|
||||
photoframe: "Fotograma"
|
||||
cube: "Cubo"
|
||||
tv: "Televisor"
|
||||
pinguin: "Pinguino"
|
||||
rubik-cube: "Cubo rubik"
|
||||
poster-h: "Poster (horizontal)"
|
||||
poster-v: "Poster (vertical)"
|
||||
sofa: "Sillón"
|
||||
spiral: "Escalera en espiral"
|
||||
bin: "Papelera"
|
||||
cup-noodle: "Taza de sopa de fideos"
|
||||
holo-display: "Poster holográfico"
|
||||
energy-drink: "Bebida energética"
|
||||
doll-ai: "Muñeca"
|
||||
banknote: "Billetes"
|
||||
_pages:
|
||||
newPage: "Crear página"
|
||||
editPage: "Editar página"
|
||||
@@ -1385,6 +1505,9 @@ _notification:
|
||||
followRequestAccepted: "El seguimiento fue aceptado"
|
||||
groupInvited: "Invitado al grupo"
|
||||
app: "Notificaciones desde aplicaciones"
|
||||
_actions:
|
||||
reply: "Responder"
|
||||
renote: "Renotar"
|
||||
_deck:
|
||||
alwaysShowMainColumn: "Siempre mostrar la columna principal"
|
||||
columnAlign: "Alinear columnas"
|
||||
|
File diff suppressed because it is too large
Load Diff
1
locales/hr-HR.yml
Normal file
1
locales/hr-HR.yml
Normal file
@@ -0,0 +1 @@
|
||||
---
|
1
locales/ht-HT.yml
Normal file
1
locales/ht-HT.yml
Normal file
@@ -0,0 +1 @@
|
||||
---
|
1661
locales/id-ID.yml
Normal file
1661
locales/id-ID.yml
Normal file
File diff suppressed because it is too large
Load Diff
@@ -21,6 +21,8 @@ const languages = [
|
||||
'en-US',
|
||||
'es-ES',
|
||||
'fr-FR',
|
||||
'id-ID',
|
||||
'it-IT',
|
||||
'ja-JP',
|
||||
'ja-KS',
|
||||
'kab-KAB',
|
||||
@@ -31,6 +33,7 @@ const languages = [
|
||||
'pl-PL',
|
||||
'pt-PT',
|
||||
'ru-RU',
|
||||
'sk-SK',
|
||||
'ug-CN',
|
||||
'uk-UA',
|
||||
'zh-CN',
|
||||
@@ -43,7 +46,10 @@ const primaries = {
|
||||
'zh': 'CN',
|
||||
};
|
||||
|
||||
const locales = languages.reduce((a, c) => (a[c] = yaml.safeLoad(fs.readFileSync(`${__dirname}/${c}.yml`, 'utf-8')) || {}, a), {});
|
||||
// 何故か文字列にバックスペース文字が混入することがあり、YAMLが壊れるので取り除く
|
||||
const clean = (text) => text.replace(new RegExp(String.fromCodePoint(0x08), 'g'), '');
|
||||
|
||||
const locales = languages.reduce((a, c) => (a[c] = yaml.load(clean(fs.readFileSync(`${__dirname}/${c}.yml`, 'utf-8'))) || {}, a), {});
|
||||
|
||||
module.exports = Object.entries(locales)
|
||||
.reduce((a, [k ,v]) => (a[k] = (() => {
|
||||
|
1464
locales/it-IT.yml
Normal file
1464
locales/it-IT.yml
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,11 +1,13 @@
|
||||
_lang_: "日本語"
|
||||
|
||||
headlineMisskey: "ノートでつながるネットワーク"
|
||||
introMisskey: "ようこそ!Misskeyは、オープンソースの分散型マイクロブログサービスです。\n「ノート」を作成して、いま起こっていることを共有したり、あなたについて皆に発信しよう📡\n「リアクション」機能で、皆のノートに素早く反応を追加することもできます👍\n新しい世界を探検しよう🚀"
|
||||
monthAndDay: "{month}月 {day}日"
|
||||
search: "検索"
|
||||
notifications: "通知"
|
||||
username: "ユーザー名"
|
||||
password: "パスワード"
|
||||
forgotPassword: "パスワードを忘れた"
|
||||
fetchingAsApObject: "連合に照会中"
|
||||
ok: "OK"
|
||||
gotIt: "わかった"
|
||||
@@ -49,6 +51,7 @@ copyUsername: "ユーザー名をコピー"
|
||||
searchUser: "ユーザーを検索"
|
||||
reply: "返信"
|
||||
loadMore: "もっと見る"
|
||||
showMore: "もっと見る"
|
||||
youGotNewFollower: "フォローされました"
|
||||
receiveFollowRequest: "フォローリクエストされました"
|
||||
followRequestAccepted: "フォローが承認されました"
|
||||
@@ -78,6 +81,8 @@ somethingHappened: "問題が発生しました"
|
||||
retry: "再試行"
|
||||
pageLoadError: "ページの読み込みに失敗しました。"
|
||||
pageLoadErrorDescription: "これは通常、ネットワークまたはブラウザキャッシュが原因です。キャッシュをクリアするか、しばらく待ってから再度試してください。"
|
||||
serverIsDead: "サーバーの応答がありません。しばらく待ってから再度試してください。"
|
||||
youShouldUpgradeClient: "このページを表示するためには、リロードして新しいバージョンのクライアントをご利用ください。"
|
||||
enterListName: "リスト名を入力"
|
||||
privacy: "プライバシー"
|
||||
makeFollowManuallyApprove: "フォローを承認制にする"
|
||||
@@ -95,12 +100,13 @@ cantRenote: "この投稿はRenoteできません。"
|
||||
cantReRenote: "RenoteをRenoteすることはできません。"
|
||||
quote: "引用"
|
||||
pinnedNote: "ピン留めされたノート"
|
||||
pinned: "ピン留め"
|
||||
you: "あなた"
|
||||
clickToShow: "クリックして表示"
|
||||
sensitive: "閲覧注意"
|
||||
add: "追加"
|
||||
reaction: "リアクション"
|
||||
reactionSettingDescription: "リアクションピッカーに表示するリアクションを設定します。"
|
||||
reactionSetting: "ピッカーに表示するリアクション"
|
||||
reactionSettingDescription2: "ドラッグして並び替え、クリックして削除、+を押して追加します。"
|
||||
rememberNoteVisibility: "公開範囲を記憶する"
|
||||
attachCancel: "添付取り消し"
|
||||
@@ -124,6 +130,7 @@ editWidgets: "ウィジェットを編集"
|
||||
editWidgetsExit: "編集を終了"
|
||||
customEmojis: "カスタム絵文字"
|
||||
emoji: "絵文字"
|
||||
emojis: "絵文字"
|
||||
emojiName: "絵文字名"
|
||||
emojiUrl: "絵文字画像URL"
|
||||
addEmoji: "絵文字を追加"
|
||||
@@ -134,8 +141,10 @@ flagAsBot: "Botとして設定"
|
||||
flagAsBotDescription: "このアカウントがプログラムによって運用される場合は、このフラグをオンにします。オンにすると、反応の連鎖を防ぐためのフラグとして他の開発者に役立ったり、Misskeyのシステム上での扱いがBotに合ったものになります。"
|
||||
flagAsCat: "Catとして設定"
|
||||
flagAsCatDescription: "このアカウントが猫であることを示す場合は、このフラグをオンにします。"
|
||||
flagShowTimelineReplies: "タイムラインにノートへの返信を表示する"
|
||||
flagShowTimelineRepliesDescription: "オンにすると、タイムラインにユーザーのノート以外にもそのユーザーの他のノートへの返信を表示します。"
|
||||
autoAcceptFollowed: "フォロー中ユーザーからのフォロリクを自動承認"
|
||||
addAcount: "アカウント追加"
|
||||
addAccount: "アカウントを追加"
|
||||
loginFailed: "ログインに失敗しました"
|
||||
showOnRemote: "リモートで表示"
|
||||
general: "全般"
|
||||
@@ -180,7 +189,7 @@ clearQueueConfirmTitle: "キューをクリアしますか?"
|
||||
clearQueueConfirmText: "未配達の投稿は配送されなくなります。通常この操作を行う必要はありません。"
|
||||
clearCachedFiles: "キャッシュをクリア"
|
||||
clearCachedFilesConfirm: "キャッシュされたリモートファイルをすべて削除しますか?"
|
||||
blockedInstances: "インスタンスブロック"
|
||||
blockedInstances: "ブロックしたインスタンス"
|
||||
blockedInstancesDescription: "ブロックしたいインスタンスのホストを改行で区切って設定します。ブロックされたインスタンスは、このインスタンスとやり取りできなくなります。"
|
||||
muteAndBlock: "ミュートとブロック"
|
||||
mutedUsers: "ミュートしたユーザー"
|
||||
@@ -228,6 +237,8 @@ resetAreYouSure: "リセットしますか?"
|
||||
saved: "保存しました"
|
||||
messaging: "チャット"
|
||||
upload: "アップロード"
|
||||
keepOriginalUploading: "オリジナル画像を保持"
|
||||
keepOriginalUploadingDescription: "画像をアップロードする時にオリジナル版を保持します。オフにするとアップロード時にブラウザでWeb公開用画像を生成します。"
|
||||
fromDrive: "ドライブから"
|
||||
fromUrl: "URLから"
|
||||
uploadFromUrl: "URLアップロード"
|
||||
@@ -235,7 +246,6 @@ uploadFromUrlDescription: "アップロードしたいファイルのURL"
|
||||
uploadFromUrlRequested: "アップロードをリクエストしました"
|
||||
uploadFromUrlMayTakeTime: "アップロードが完了するまで時間がかかる場合があります。"
|
||||
explore: "みつける"
|
||||
games: "Misskey Games"
|
||||
messageRead: "既読"
|
||||
noMoreHistory: "これより過去の履歴はありません"
|
||||
startMessaging: "チャットを開始"
|
||||
@@ -275,6 +285,7 @@ emptyDrive: "ドライブは空です"
|
||||
emptyFolder: "フォルダーは空です"
|
||||
unableToDelete: "削除できません"
|
||||
inputNewFileName: "新しいファイル名を入力してください"
|
||||
inputNewDescription: "新しいキャプションを入力してください"
|
||||
inputNewFolderName: "新しいフォルダ名を入力してください"
|
||||
circularReferenceFolder: "移動先のフォルダーは、移動するフォルダーのサブフォルダーです。"
|
||||
hasChildFilesOrFolders: "このフォルダは空でないため、削除できません。"
|
||||
@@ -306,21 +317,20 @@ monthX: "{month}月"
|
||||
yearX: "{year}年"
|
||||
pages: "ページ"
|
||||
integration: "連携"
|
||||
connectSerice: "接続する"
|
||||
disconnectSerice: "切断する"
|
||||
connectService: "接続する"
|
||||
disconnectService: "切断する"
|
||||
enableLocalTimeline: "ローカルタイムラインを有効にする"
|
||||
enableGlobalTimeline: "グローバルタイムラインを有効にする"
|
||||
disablingTimelinesInfo: "これらのタイムラインを無効化しても、利便性のため管理者およびモデレーターは引き続き利用することができます。"
|
||||
registration: "登録"
|
||||
enableRegistration: "誰でも新規登録できるようにする"
|
||||
invite: "招待"
|
||||
proxyRemoteFiles: "リモートのファイルをプロキシする"
|
||||
proxyRemoteFilesDescription: "この設定を有効にすると、未保存または保存容量超過で削除されたリモートファイルをローカルでプロキシし、サムネイルも生成するようになります。サーバーのストレージには影響しません、"
|
||||
driveCapacityPerLocalAccount: "ローカルユーザーひとりあたりのドライブ容量"
|
||||
driveCapacityPerRemoteAccount: "リモートユーザーひとりあたりのドライブ容量"
|
||||
inMb: "メガバイト単位"
|
||||
iconUrl: "アイコン画像のURL"
|
||||
iconUrl: "アイコン画像のURL (faviconなど)"
|
||||
bannerUrl: "バナー画像のURL"
|
||||
backgroundImageUrl: "背景画像のURL"
|
||||
basicInfo: "基本情報"
|
||||
pinnedUsers: "ピン留めユーザー"
|
||||
pinnedUsersDescription: "「みつける」ページなどにピン留めしたいユーザーを改行で区切って記述します。"
|
||||
@@ -346,8 +356,7 @@ antennaExcludeKeywords: "除外キーワード"
|
||||
antennaKeywordsDescription: "スペースで区切るとAND指定になり、改行で区切るとOR指定になります"
|
||||
notifyAntenna: "新しいノートを通知する"
|
||||
withFileAntenna: "ファイルが添付されたノートのみ"
|
||||
serviceworker: "ServiceWorker"
|
||||
enableServiceworker: "ServiceWorkerを有効にする"
|
||||
enableServiceworker: "ブラウザへのプッシュ通知を有効にする"
|
||||
antennaUsersDescription: "ユーザー名を改行で区切って指定します"
|
||||
caseSensitive: "大文字小文字を区別する"
|
||||
withReplies: "返信を含む"
|
||||
@@ -411,13 +420,12 @@ next: "次"
|
||||
retype: "再入力"
|
||||
noteOf: "{user}のノート"
|
||||
inviteToGroup: "グループに招待"
|
||||
maxNoteTextLength: "ノートの文字数制限"
|
||||
quoteAttached: "引用付き"
|
||||
quoteQuestion: "引用として添付しますか?"
|
||||
noMessagesYet: "まだチャットはありません"
|
||||
newMessageExists: "新しいメッセージがあります"
|
||||
onlyOneFileCanBeAttached: "メッセージに添付できるファイルはひとつです"
|
||||
signinRequired: "ログインしてください"
|
||||
signinRequired: "続行する前に、サインアップまたはサインインが必要です"
|
||||
invitations: "招待"
|
||||
invitationCode: "招待コード"
|
||||
checking: "確認しています"
|
||||
@@ -435,10 +443,12 @@ signinWith: "{x}でログイン"
|
||||
signinFailed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
|
||||
tapSecurityKey: "セキュリティキーにタッチ"
|
||||
or: "もしくは"
|
||||
language: "言語"
|
||||
uiLanguage: "UIの表示言語"
|
||||
groupInvited: "グループに招待されました"
|
||||
aboutX: "{x}について"
|
||||
useOsNativeEmojis: "OSネイティブの絵文字を使用"
|
||||
disableDrawer: "メニューをドロワーで表示しない"
|
||||
youHaveNoGroups: "グループがありません"
|
||||
joinOrCreateGroup: "既存のグループに招待してもらうか、新しくグループを作成してください。"
|
||||
noHistory: "履歴はありません"
|
||||
@@ -449,7 +459,7 @@ category: "カテゴリ"
|
||||
tags: "タグ"
|
||||
docSource: "このドキュメントのソース"
|
||||
createAccount: "アカウントを作成"
|
||||
existingAcount: "既存のアカウント"
|
||||
existingAccount: "既存のアカウント"
|
||||
regenerate: "再生成"
|
||||
fontSize: "フォントサイズ"
|
||||
noFollowRequests: "フォロー申請はありません"
|
||||
@@ -522,10 +532,11 @@ removeAllFollowing: "フォローを全解除"
|
||||
removeAllFollowingDescription: "{host}からのフォローをすべて解除します。そのインスタンスがもう存在しなくなった場合などに実行してください。"
|
||||
userSuspended: "このユーザーは凍結されています。"
|
||||
userSilenced: "このユーザーはサイレンスされています。"
|
||||
sidebar: "サイドバー"
|
||||
yourAccountSuspendedTitle: "アカウントが凍結されています"
|
||||
yourAccountSuspendedDescription: "このアカウントは、サーバーの利用規約に違反したなどの理由により、凍結されています。詳細については管理者までお問い合わせください。新しいアカウントを作らないでください。"
|
||||
menu: "メニュー"
|
||||
divider: "分割線"
|
||||
addItem: "項目を追加"
|
||||
rooms: "ルーム"
|
||||
relays: "リレー"
|
||||
addRelay: "リレーの追加"
|
||||
inboxUrl: "inboxのURL"
|
||||
@@ -542,11 +553,12 @@ disablePlayer: "プレイヤーを閉じる"
|
||||
expandTweet: "ツイートを展開する"
|
||||
themeEditor: "テーマエディター"
|
||||
description: "説明"
|
||||
describeFile: "キャプションを付ける"
|
||||
enterFileDescription: "キャプションを入力"
|
||||
author: "作者"
|
||||
leaveConfirm: "未保存の変更があります。破棄しますか?"
|
||||
manage: "管理"
|
||||
plugins: "プラグイン"
|
||||
pluginInstallWarn: "信頼できないプラグインはインストールしないでください。"
|
||||
deck: "デッキ"
|
||||
undeck: "デッキ解除"
|
||||
useBlurEffectForModal: "モーダルにぼかし効果を使用"
|
||||
@@ -565,7 +577,7 @@ pluginTokenRequestedDescription: "このプラグインはここで設定した
|
||||
notificationType: "通知の種類"
|
||||
edit: "編集"
|
||||
useStarForReactionFallback: "リアクション絵文字が不明な場合、代わりに★を使う"
|
||||
emailConfig: "メールサーバー設定"
|
||||
emailServer: "メールサーバー"
|
||||
enableEmail: "メール配信機能を有効化する"
|
||||
emailConfigInfo: "メールアドレスの確認やパスワードリセットの際に使います"
|
||||
email: "メール"
|
||||
@@ -580,6 +592,9 @@ smtpSecure: "SMTP 接続に暗黙的なSSL/TLSを使用する"
|
||||
smtpSecureInfo: "STARTTLS使用時はオフにします。"
|
||||
testEmail: "配信テスト"
|
||||
wordMute: "ワードミュート"
|
||||
regexpError: "正規表現エラー"
|
||||
regexpErrorDescription: "{tab}ワードミュートの{line}行目の正規表現にエラーが発生しました:"
|
||||
instanceMute: "インスタンスミュート"
|
||||
userSaysSomething: "{name}が何かを言いました"
|
||||
makeActive: "アクティブにする"
|
||||
display: "表示"
|
||||
@@ -600,7 +615,6 @@ regenerateLoginToken: "ログイントークンを再生成"
|
||||
regenerateLoginTokenDescription: "ログインに使用される内部トークンを再生成します。通常この操作を行う必要はありません。再生成すると、全てのデバイスでログアウトされます。"
|
||||
setMultipleBySeparatingWithSpace: "スペースで区切って複数設定できます。"
|
||||
fileIdOrUrl: "ファイルIDまたはURL"
|
||||
chatOpenBehavior: "チャットを開くときの動作"
|
||||
behavior: "動作"
|
||||
sample: "サンプル"
|
||||
abuseReports: "通報"
|
||||
@@ -608,6 +622,11 @@ reportAbuse: "通報"
|
||||
reportAbuseOf: "{name}を通報する"
|
||||
fillAbuseReportDescription: "通報理由の詳細を記入してください。対象のノートがある場合はそのURLも記入してください。"
|
||||
abuseReported: "内容が送信されました。ご報告ありがとうございました。"
|
||||
reporter: "通報者"
|
||||
reporteeOrigin: "通報先"
|
||||
reporterOrigin: "通報元"
|
||||
forwardReport: "リモートインスタンスに通報を転送する"
|
||||
forwardReportIsAnonymous: "リモートインスタンスからはあなたの情報は見れず、匿名のシステムアカウントとして表示されます。"
|
||||
send: "送信"
|
||||
abuseMarkAsResolved: "対応済みにする"
|
||||
openInNewTab: "新しいタブで開く"
|
||||
@@ -655,7 +674,6 @@ emailVerified: "メールアドレスが確認されました"
|
||||
noteFavoritesCount: "お気に入りノートの数"
|
||||
pageLikesCount: "Pageにいいねした数"
|
||||
pageLikedCount: "Pageにいいねされた数"
|
||||
reversiCount: "リバーシの対局数"
|
||||
contact: "連絡先"
|
||||
useSystemFont: "システムのデフォルトのフォントを使う"
|
||||
clips: "クリップ"
|
||||
@@ -670,7 +688,221 @@ center: "中央"
|
||||
wide: "広い"
|
||||
narrow: "狭い"
|
||||
reloadToApplySetting: "設定はページリロード後に反映されます。今すぐリロードしますか?"
|
||||
needReloadToApply: "反映には再起動が必要です。"
|
||||
showTitlebar: "タイトルバーを表示する"
|
||||
clearCache: "キャッシュをクリア"
|
||||
onlineUsersCount: "{n}人がオンライン"
|
||||
nUsers: "{n}ユーザー"
|
||||
nNotes: "{n}ノート"
|
||||
sendErrorReports: "エラーリポートを送信"
|
||||
sendErrorReportsDescription: "オンにすると、問題が発生したときにエラーの詳細情報がMisskeyに共有され、ソフトウェアの品質向上に役立てることができます。エラー情報には、OSのバージョン、ブラウザの種類、行動履歴などが含まれます。"
|
||||
myTheme: "マイテーマ"
|
||||
backgroundColor: "背景"
|
||||
accentColor: "アクセント"
|
||||
textColor: "文字"
|
||||
saveAs: "名前を付けて保存"
|
||||
advanced: "高度"
|
||||
value: "値"
|
||||
createdAt: "作成日時"
|
||||
updatedAt: "更新日時"
|
||||
saveConfirm: "保存しますか?"
|
||||
deleteConfirm: "削除しますか?"
|
||||
invalidValue: "有効な値ではありません。"
|
||||
registry: "レジストリ"
|
||||
closeAccount: "アカウントを閉鎖する"
|
||||
currentVersion: "現在のバージョン"
|
||||
latestVersion: "最新のバージョン"
|
||||
youAreRunningUpToDateClient: "お使いのクライアントは最新です。"
|
||||
newVersionOfClientAvailable: "新しいバージョンのクライアントが利用可能です。"
|
||||
usageAmount: "使用量"
|
||||
capacity: "容量"
|
||||
inUse: "使用中"
|
||||
editCode: "コードを編集"
|
||||
apply: "適用"
|
||||
receiveAnnouncementFromInstance: "インスタンスからのお知らせを受け取る"
|
||||
emailNotification: "メール通知"
|
||||
publish: "公開"
|
||||
inChannelSearch: "チャンネル内検索"
|
||||
useReactionPickerForContextMenu: "右クリックでリアクションピッカーを開く"
|
||||
typingUsers: "{users}が入力中"
|
||||
jumpToSpecifiedDate: "特定の日付にジャンプ"
|
||||
showingPastTimeline: "過去のタイムラインを表示しています"
|
||||
clear: "クリア"
|
||||
markAllAsRead: "全て既読にする"
|
||||
goBack: "戻る"
|
||||
unlikeConfirm: "いいね解除しますか?"
|
||||
fullView: "フルビュー"
|
||||
quitFullView: "フルビュー解除"
|
||||
addDescription: "説明を追加"
|
||||
userPagePinTip: "個々のノートのメニューから「ピン留め」を選択することで、ここにノートを表示しておくことができます。"
|
||||
notSpecifiedMentionWarning: "宛先に含まれていないメンションがあります"
|
||||
info: "情報"
|
||||
userInfo: "ユーザー情報"
|
||||
unknown: "不明"
|
||||
onlineStatus: "オンライン状態"
|
||||
hideOnlineStatus: "オンライン状態を隠す"
|
||||
hideOnlineStatusDescription: "オンライン状態を隠すと、検索などの一部機能において利便性が低下することがあります。"
|
||||
online: "オンライン"
|
||||
active: "アクティブ"
|
||||
offline: "オフライン"
|
||||
notRecommended: "非推奨"
|
||||
botProtection: "Botプロテクション"
|
||||
instanceBlocking: "インスタンスブロック"
|
||||
selectAccount: "アカウントを選択"
|
||||
switchAccount: "アカウントを切り替え"
|
||||
enabled: "有効"
|
||||
disabled: "無効"
|
||||
quickAction: "クイックアクション"
|
||||
user: "ユーザー"
|
||||
administration: "管理"
|
||||
accounts: "アカウント"
|
||||
switch: "切り替え"
|
||||
noMaintainerInformationWarning: "管理者情報が設定されていません。"
|
||||
noBotProtectionWarning: "Botプロテクションが設定されていません。"
|
||||
configure: "設定する"
|
||||
postToGallery: "ギャラリーへ投稿"
|
||||
gallery: "ギャラリー"
|
||||
recentPosts: "最近の投稿"
|
||||
popularPosts: "人気の投稿"
|
||||
shareWithNote: "ノートで共有"
|
||||
ads: "広告"
|
||||
expiration: "期限"
|
||||
memo: "メモ"
|
||||
priority: "優先度"
|
||||
high: "高"
|
||||
middle: "中"
|
||||
low: "低"
|
||||
emailNotConfiguredWarning: "メールアドレスの設定がされていません。"
|
||||
ratio: "比率"
|
||||
previewNoteText: "本文をプレビュー"
|
||||
customCss: "カスタムCSS"
|
||||
customCssWarn: "この設定は必ず知識のある方が行ってください。不適切な設定を行うとクライアントが正常に使用できなくなる恐れがあります。"
|
||||
global: "グローバル"
|
||||
squareAvatars: "アイコンを四角形で表示"
|
||||
sent: "送信"
|
||||
received: "受信"
|
||||
searchResult: "検索結果"
|
||||
hashtags: "ハッシュタグ"
|
||||
troubleshooting: "トラブルシューティング"
|
||||
useBlurEffect: "UIにぼかし効果を使用"
|
||||
learnMore: "詳しく"
|
||||
misskeyUpdated: "Misskeyが更新されました!"
|
||||
whatIsNew: "更新情報を見る"
|
||||
translate: "翻訳"
|
||||
translatedFrom: "{x}から翻訳"
|
||||
accountDeletionInProgress: "アカウントの削除が進行中です"
|
||||
usernameInfo: "サーバー上であなたのアカウントを一意に識別するための名前。アルファベット(a~z, A~Z)、数字(0~9)、およびアンダーバー(_)が使用できます。ユーザー名は後から変更することは出来ません。"
|
||||
aiChanMode: "藍モード"
|
||||
keepCw: "CWを維持する"
|
||||
pubSub: "Pub/Subのアカウント"
|
||||
lastCommunication: "直近の通信"
|
||||
resolved: "解決済み"
|
||||
unresolved: "未解決"
|
||||
breakFollow: "フォロワーを解除"
|
||||
itsOn: "オンになっています"
|
||||
itsOff: "オフになっています"
|
||||
emailRequiredForSignup: "アカウント登録にメールアドレスを必須にする"
|
||||
unread: "未読"
|
||||
filter: "フィルタ"
|
||||
controlPanel: "コントロールパネル"
|
||||
manageAccounts: "アカウントを管理"
|
||||
makeReactionsPublic: "リアクション一覧を公開する"
|
||||
makeReactionsPublicDescription: "あなたがしたリアクション一覧を誰でも見れるようにします。"
|
||||
classic: "クラシック"
|
||||
muteThread: "スレッドをミュート"
|
||||
unmuteThread: "スレッドのミュートを解除"
|
||||
ffVisibility: "つながりの公開範囲"
|
||||
ffVisibilityDescription: "自分のフォロー/フォロワー情報の公開範囲を設定できます。"
|
||||
continueThread: "さらにスレッドを見る"
|
||||
deleteAccountConfirm: "アカウントが削除されます。よろしいですか?"
|
||||
incorrectPassword: "パスワードが間違っています。"
|
||||
voteConfirm: "「{choice}」に投票しますか?"
|
||||
hide: "隠す"
|
||||
leaveGroup: "グループから抜ける"
|
||||
leaveGroupConfirm: "「{name}」から抜けますか?"
|
||||
useDrawerReactionPickerForMobile: "モバイルデバイスのときドロワーで表示"
|
||||
welcomeBackWithName: "おかえりなさい、{name}さん"
|
||||
clickToFinishEmailVerification: "[{ok}]を押して、メールアドレスの確認を完了してください。"
|
||||
overridedDeviceKind: "デバイスタイプ"
|
||||
smartphone: "スマートフォン"
|
||||
tablet: "タブレット"
|
||||
auto: "自動"
|
||||
themeColor: "テーマカラー"
|
||||
size: "サイズ"
|
||||
numberOfColumn: "列の数"
|
||||
searchByGoogle: "検索"
|
||||
instanceDefaultLightTheme: "インスタンスデフォルトのライトテーマ"
|
||||
instanceDefaultDarkTheme: "インスタンスデフォルトのダークテーマ"
|
||||
instanceDefaultThemeDescription: "オブジェクト形式のテーマコードを記入します。"
|
||||
mutePeriod: "ミュートする期限"
|
||||
indefinitely: "無期限"
|
||||
tenMinutes: "10分"
|
||||
oneHour: "1時間"
|
||||
oneDay: "1日"
|
||||
oneWeek: "1週間"
|
||||
reflectMayTakeTime: "反映されるまで時間がかかる場合があります。"
|
||||
failedToFetchAccountInformation: "アカウント情報の取得に失敗しました"
|
||||
rateLimitExceeded: "レート制限を超えました"
|
||||
cropImage: "画像のクロップ"
|
||||
cropImageAsk: "画像をクロップしますか?"
|
||||
|
||||
_emailUnavailable:
|
||||
used: "既に使用されています"
|
||||
format: "形式が正しくありません"
|
||||
disposable: "恒久的に使用可能なアドレスではありません"
|
||||
mx: "正しいメールサーバーではありません"
|
||||
smtp: "メールサーバーが応答しません"
|
||||
|
||||
_ffVisibility:
|
||||
public: "公開"
|
||||
followers: "フォロワーだけに公開"
|
||||
private: "非公開"
|
||||
|
||||
_signup:
|
||||
almostThere: "ほとんど完了です"
|
||||
emailAddressInfo: "あなたが使っているメールアドレスを入力してください。メールアドレスが公開されることはありません。"
|
||||
emailSent: "入力されたメールアドレス({email})宛に確認のメールが送信されました。メールに記載されたリンクにアクセスすると、アカウントの作成が完了します。"
|
||||
|
||||
_accountDelete:
|
||||
accountDelete: "アカウントの削除"
|
||||
mayTakeTime: "アカウントの削除は負荷のかかる処理であるため、作成したコンテンツの数やアップロードしたファイルの数が多いと完了までに時間がかかることがあります。"
|
||||
sendEmail: "アカウントの削除が完了する際は、登録してあったメールアドレス宛に通知を送信します。"
|
||||
requestAccountDelete: "アカウント削除をリクエスト"
|
||||
started: "削除処理が開始されました。"
|
||||
inProgress: "削除が進行中"
|
||||
|
||||
_ad:
|
||||
back: "戻る"
|
||||
reduceFrequencyOfThisAd: "この広告の表示頻度を下げる"
|
||||
|
||||
_forgotPassword:
|
||||
enterEmail: "アカウントに登録したメールアドレスを入力してください。そのアドレス宛てに、パスワードリセット用のリンクが送信されます。"
|
||||
ifNoEmail: "メールアドレスを登録していない場合は、管理者までお問い合わせください。"
|
||||
contactAdmin: "このインスタンスではメールがサポートされていないため、パスワードリセットを行う場合は管理者までお問い合わせください。"
|
||||
|
||||
_gallery:
|
||||
my: "自分の投稿"
|
||||
liked: "いいねした投稿"
|
||||
like: "いいね!"
|
||||
unlike: "いいね解除"
|
||||
|
||||
_email:
|
||||
_follow:
|
||||
title: "フォローされました"
|
||||
_receiveFollowRequest:
|
||||
title: "フォローリクエストを受け取りました"
|
||||
|
||||
_plugin:
|
||||
install: "プラグインのインストール"
|
||||
installWarn: "信頼できないプラグインはインストールしないでください。"
|
||||
manage: "プラグインの管理"
|
||||
|
||||
_registry:
|
||||
scope: "スコープ"
|
||||
key: "キー"
|
||||
keys: "キー"
|
||||
domain: "ドメイン"
|
||||
createKey: "キーを作成"
|
||||
|
||||
_aboutMisskey:
|
||||
about: "Misskeyはsyuiloによって2014年から開発されている、オープンソースのソフトウェアです。"
|
||||
@@ -730,45 +962,27 @@ _mfm:
|
||||
bounce: "アニメーション(バウンド)"
|
||||
bounceDescription: "ぽよんぽよん弾むようなアニメーションを与えます。"
|
||||
shake: "アニメーション(ぶるぶる)"
|
||||
shakeDescription: "ぶるぶるするアニメーションを与えます。"
|
||||
shakeDescription: "ぶるぶる震えるアニメーションを与えます。"
|
||||
twitch: "アニメーション(ブレ)"
|
||||
twitchDescription: "激しくブレるアニメーションを与えます。"
|
||||
spin: "アニメーション(回転)"
|
||||
spinDescription: "回転するアニメーションを与えます。"
|
||||
|
||||
_reversi:
|
||||
reversi: "リバーシ"
|
||||
gameSettings: "対局の設定"
|
||||
chooseBoard: "ボードを選択"
|
||||
blackOrWhite: "先行/後攻"
|
||||
blackIs: "{name}が黒(先行)"
|
||||
rules: "ルール"
|
||||
botSettings: "Botのオプション"
|
||||
thisGameIsStartedSoon: "対局は数秒後に開始されます"
|
||||
waitingForOther: "相手の準備が完了するのを待っています"
|
||||
waitingForMe: "あなたの準備が完了するのを待っています"
|
||||
waitingBoth: "準備してください"
|
||||
ready: "準備完了"
|
||||
cancelReady: "準備を再開"
|
||||
opponentTurn: "相手のターンです"
|
||||
myTurn: "あなたのターンです"
|
||||
turnOf: "{name}のターンです"
|
||||
pastTurnOf: "{name}のターン"
|
||||
surrender: "投了"
|
||||
surrendered: "投了により"
|
||||
drawn: "引き分け"
|
||||
won: "{name}の勝ち"
|
||||
black: "黒"
|
||||
white: "白"
|
||||
total: "合計"
|
||||
turnCount: "{count}ターン目"
|
||||
myGames: "自分の対局"
|
||||
allGames: "みんなの対局"
|
||||
ended: "終了"
|
||||
playing: "対局中"
|
||||
isLlotheo: "石の少ない方が勝ち(ロセオ)"
|
||||
loopedMap: "ループマップ"
|
||||
canPutEverywhere: "どこでも置けるモード"
|
||||
x2: "大きく"
|
||||
x2Description: "内容を大きく表示します。"
|
||||
x3: "とても大きく"
|
||||
x3Description: "内容をとても大きく表示します。"
|
||||
x4: "究極に大きく"
|
||||
x4Description: "内容を究極に大きく表示します。"
|
||||
blur: "ぼかし"
|
||||
blurDescription: "内容をぼかすことができます。ポインターを上に乗せるとはっきり見えるようになります。"
|
||||
font: "フォント"
|
||||
fontDescription: "内容のフォントを指定することができます。"
|
||||
rainbow: "レインボー"
|
||||
rainbowDescription: "内容をレインボーにします。"
|
||||
sparkle: "キラキラ"
|
||||
sparkleDescription: "キラキラしたパーティクルのエフェクトを追加します。"
|
||||
rotate: "回転"
|
||||
rotateDescription: "指定した角度で回転させます。"
|
||||
|
||||
_instanceTicker:
|
||||
none: "表示しない"
|
||||
@@ -791,9 +1005,10 @@ _channel:
|
||||
usersCount: "{n}人が参加中"
|
||||
notesCount: "{n}投稿があります"
|
||||
|
||||
_sidebar:
|
||||
full: "フル"
|
||||
icon: "アイコン"
|
||||
_menuDisplay:
|
||||
sideFull: "横"
|
||||
sideIcon: "横(アイコン)"
|
||||
top: "上部"
|
||||
hide: "隠す"
|
||||
|
||||
_wordMute:
|
||||
@@ -806,11 +1021,18 @@ _wordMute:
|
||||
hard: "ハード"
|
||||
mutedNotes: "ミュートされたノート"
|
||||
|
||||
_instanceMute:
|
||||
instanceMuteDescription: "ミュートしたインスタンスのユーザーへの返信を含めて、設定したインスタンスの全てのノートとRenoteをミュートします。"
|
||||
instanceMuteDescription2: "改行で区切って設定します"
|
||||
title: "設定したインスタンスのノートを隠します。"
|
||||
heading: "ミュートするインスタンス"
|
||||
|
||||
_theme:
|
||||
explore: "テーマを探す"
|
||||
install: "テーマのインストール"
|
||||
manage: "テーマの管理"
|
||||
code: "テーマコード"
|
||||
description: "説明"
|
||||
installed: "{name}をインストールしました"
|
||||
installedThemes: "インストールされたテーマ"
|
||||
builtinThemes: "標準のテーマ"
|
||||
@@ -889,11 +1111,8 @@ _sfx:
|
||||
chatBg: "チャット(バックグラウンド)"
|
||||
antenna: "アンテナ受信"
|
||||
channel: "チャンネル通知"
|
||||
reversiPutBlack: "リバーシ: 黒が打ったとき"
|
||||
reversiPutWhite: "リバーシ: 白が打ったとき"
|
||||
|
||||
_ago:
|
||||
unknown: "謎"
|
||||
future: "未来"
|
||||
justNow: "たった今"
|
||||
secondsAgo: "{n}秒前"
|
||||
@@ -940,6 +1159,7 @@ _2fa:
|
||||
registerKey: "キーを登録"
|
||||
step1: "まず、{a}や{b}などの認証アプリをお使いのデバイスにインストールします。"
|
||||
step2: "次に、表示されているQRコードをアプリでスキャンします。"
|
||||
step2Url: "デスクトップアプリでは次のURLを入力します:"
|
||||
step3: "アプリに表示されているトークンを入力して完了です。"
|
||||
step4: "これからログインするときも、同じようにトークンを入力します。"
|
||||
securityKeyInfo: "FIDO2をサポートするハードウェアセキュリティキーもしくは端末の指紋認証やPINを使用してログインするように設定できます。"
|
||||
@@ -973,6 +1193,10 @@ _permissions:
|
||||
"write:user-groups": "ユーザーグループを操作する"
|
||||
"read:channels": "チャンネルを見る"
|
||||
"write:channels": "チャンネルを操作する"
|
||||
"read:gallery": "ギャラリーを見る"
|
||||
"write:gallery": "ギャラリーを操作する"
|
||||
"read:gallery-likes": "ギャラリーのいいねを見る"
|
||||
"write:gallery-likes": "ギャラリーのいいねを操作する"
|
||||
|
||||
_auth:
|
||||
shareAccess: "「{name}」がアカウントにアクセスすることを許可しますか?"
|
||||
@@ -1013,6 +1237,11 @@ _widgets:
|
||||
postForm: "投稿フォーム"
|
||||
slideshow: "スライドショー"
|
||||
button: "ボタン"
|
||||
onlineUsers: "オンラインユーザー"
|
||||
jobQueue: "ジョブキュー"
|
||||
serverMetric: "サーバーメトリクス"
|
||||
aiscript: "AiScriptコンソール"
|
||||
aichan: "藍"
|
||||
|
||||
_cw:
|
||||
hide: "隠す"
|
||||
@@ -1074,7 +1303,7 @@ _profile:
|
||||
youCanIncludeHashtags: "ハッシュタグを含めることができます。"
|
||||
metadata: "追加情報"
|
||||
metadataEdit: "追加情報を編集"
|
||||
metadataDescription: "プロフィールに表として4つまでの追加情報を表示することができます。"
|
||||
metadataDescription: "プロフィールに表として追加情報を表示することができます。"
|
||||
metadataLabel: "ラベル"
|
||||
metadataContent: "内容"
|
||||
changeAvatar: "アバター画像を変更"
|
||||
@@ -1086,10 +1315,12 @@ _exportOrImport:
|
||||
muteList: "ミュート"
|
||||
blockingList: "ブロック"
|
||||
userLists: "リスト"
|
||||
excludeMutingUsers: "ミュートしているユーザーを除外"
|
||||
excludeInactiveUsers: "使われていないアカウントを除外"
|
||||
|
||||
_charts:
|
||||
federationInstancesIncDec: "連合の増減"
|
||||
federationInstancesTotal: "連合の合計"
|
||||
federation: "連合"
|
||||
apRequest: "リクエスト"
|
||||
usersIncDec: "ユーザーの増減"
|
||||
usersTotal: "ユーザーの合計"
|
||||
activeUsers: "アクティブユーザー数"
|
||||
@@ -1121,69 +1352,6 @@ _timelines:
|
||||
social: "ソーシャル"
|
||||
global: "グローバル"
|
||||
|
||||
_rooms:
|
||||
roomOf: "{user}のルーム"
|
||||
addFurniture: "家具を置く"
|
||||
translate: "移動"
|
||||
rotate: "回転"
|
||||
exit: "戻る"
|
||||
remove: "しまう"
|
||||
clear: "片付け"
|
||||
clearConfirm: "全ての家具をしまいますか?"
|
||||
leaveConfirm: "未保存の変更があります、移動しますか?"
|
||||
chooseImage: "画像を選択"
|
||||
roomType: "部屋のタイプ"
|
||||
carpetColor: "床の色"
|
||||
_roomType:
|
||||
default: "デフォルト"
|
||||
washitsu: "和室"
|
||||
_furnitures:
|
||||
milk: "牛乳パック"
|
||||
bed: "ベッド"
|
||||
low-table: "ローテーブル"
|
||||
desk: "デスク"
|
||||
chair: "チェア"
|
||||
chair2: "チェア2"
|
||||
fan: "換気扇"
|
||||
pc: "パソコン"
|
||||
plant: "観葉植物"
|
||||
plant2: "観葉植物2"
|
||||
eraser: "消しゴム"
|
||||
pencil: "鉛筆"
|
||||
pudding: "プリン"
|
||||
cardboard-box: "段ボール箱"
|
||||
cardboard-box2: "段ボール箱2"
|
||||
cardboard-box3: "段ボール箱3"
|
||||
book: "本"
|
||||
book2: "本2"
|
||||
piano: "ピアノ"
|
||||
facial-tissue: "ティッシュボックス"
|
||||
server: "サーバー"
|
||||
moon: "月"
|
||||
corkboard: "コルクボード"
|
||||
mousepad: "マウスパッド"
|
||||
monitor: "モニター"
|
||||
keyboard: "キーボード"
|
||||
carpet-stripe: "カーペット(縞)"
|
||||
mat: "マット"
|
||||
color-box: "カラーボックス"
|
||||
wall-clock: "壁掛け時計"
|
||||
photoframe: "額縁"
|
||||
cube: "キューブ"
|
||||
tv: "テレビ"
|
||||
pinguin: "ピンギン"
|
||||
rubik-cube: "ルービックキューブ"
|
||||
poster-h: "ポスター(横長)"
|
||||
poster-v: "ポスター(縦長)"
|
||||
sofa: "ソファ"
|
||||
spiral: "螺旋階段"
|
||||
bin: "ゴミ箱"
|
||||
cup-noodle: "カップ麺"
|
||||
holo-display: "ホログラフィックディスプレイ"
|
||||
energy-drink: "エナジードリンク"
|
||||
doll-ai: "藍ちゃん人形"
|
||||
banknote: "札束"
|
||||
|
||||
_pages:
|
||||
newPage: "ページの作成"
|
||||
editPage: "ページの編集"
|
||||
@@ -1503,7 +1671,9 @@ _notification:
|
||||
youWereFollowed: "フォローされました"
|
||||
youReceivedFollowRequest: "フォローリクエストが来ました"
|
||||
yourFollowRequestAccepted: "フォローリクエストが承認されました"
|
||||
youWereInvitedToGroup: "グループに招待されました"
|
||||
youWereInvitedToGroup: "{userName}があなたをグループに招待しました"
|
||||
pollEnded: "アンケートの結果が出ました"
|
||||
emptyPushNotificationMessage: "プッシュ通知の更新をしました"
|
||||
|
||||
_types:
|
||||
all: "すべて"
|
||||
@@ -1514,11 +1684,17 @@ _notification:
|
||||
quote: "引用"
|
||||
reaction: "リアクション"
|
||||
pollVote: "アンケートに投票された"
|
||||
pollEnded: "アンケートが終了"
|
||||
receiveFollowRequest: "フォロー申請を受け取った"
|
||||
followRequestAccepted: "フォローが受理された"
|
||||
groupInvited: "グループに招待された"
|
||||
app: "連携アプリからの通知"
|
||||
|
||||
_actions:
|
||||
followBack: "フォローバック"
|
||||
reply: "返信"
|
||||
renote: "Renote"
|
||||
|
||||
_deck:
|
||||
alwaysShowMainColumn: "常にメインカラムを表示"
|
||||
columnAlign: "カラムの寄せ"
|
||||
@@ -1531,6 +1707,7 @@ _deck:
|
||||
swapDown: "下に移動"
|
||||
stackLeft: "左に重ねる"
|
||||
popRight: "右に出す"
|
||||
profile: "プロファイル"
|
||||
|
||||
_columns:
|
||||
main: "メイン"
|
||||
|
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user