Compare commits
	
		
			24 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 4f071a66b6 | ||
|   | 39f2303429 | ||
|   | cacf072027 | ||
|   | 6ab1fdfe1a | ||
|   | 6e5c93f926 | ||
|   | 1670737075 | ||
|   | fee235c4e4 | ||
|   | 7a39d489f2 | ||
|   | 7c634218d1 | ||
|   | 2704c5be73 | ||
|   | 489b51ba9f | ||
|   | 21807c29f1 | ||
|   | 3bc62fe3eb | ||
|   | ba0e3c4a5f | ||
|   | 9ec1fb5e37 | ||
|   | d708409462 | ||
|   | 07d05d4f86 | ||
|   | bbdb2ebb40 | ||
|   | f7908ba098 | ||
|   | f2fda3075e | ||
|   | 1338a68979 | ||
|   | e7da505fb3 | ||
|   | 5a9228372f | ||
|   | c4a6ba9097 | 
| @@ -1,6 +1,11 @@ | ||||
| ChangeLog | ||||
| ========= | ||||
|  | ||||
| 10.64.1 | ||||
| ------- | ||||
| * レートリミットの調整 | ||||
| * アニメーションの調整 | ||||
|  | ||||
| 10.64.0 | ||||
| ------- | ||||
| * いくつかのアニメーションを追加 | ||||
|   | ||||
							
								
								
									
										14
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								README.md
									
									
									
									
									
								
							| @@ -3,9 +3,9 @@ | ||||
| [](https://misskey.xyz/) | ||||
| ================================================================ | ||||
|  | ||||
| [](https://circleci.com/gh/syuilo/misskey) | ||||
| [![][dependencies-badge]][dependencies-link] | ||||
| [](http://makeapullrequest.com) | ||||
| [](https://circleci.com/gh/syuilo/misskey) | ||||
| [](https://david-dm.org/syuilo/misskey) | ||||
| [](http://makeapullrequest.com) | ||||
|  | ||||
| **Sophisticated microblogging platform, evolving forever.** | ||||
|  | ||||
| @@ -77,7 +77,7 @@ Please see [Contribution guide](./CONTRIBUTING.md). | ||||
| <td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/13376668/71f3cf87ec6c4393a44b1b9df5ee3d12/1?token-time=2145916800&token-hash=7pSmWqgMfMSJHVIEcNsuuQoKeU3TRluew5p0EGTzWA4%3D" alt="Arctic"></td> | ||||
| <td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12731202/0995c46cdcb54153ab5f073f5869b70a/1?token-time=2145916800&token-hash=Yd60FK_SWfQO56SeiJpy1tDHOnCV4xdEywQe8gn5_Wo%3D" alt="negao"></td> | ||||
| <td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12913507/f7181eacafe8469a93033d85f5969c29/2?token-time=2145916800&token-hash=mgPdX9TqZxEg4TTPuc477dxhIgYk9246qafjWZEqZ7g%3D" alt="Melilot"></td> | ||||
| <td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12999811/5f349fafcce44dd1824a8b1ebbec4564/2?token-time=2145916800&token-hash=rwZ8qvbm_kpA4ib3kc07tVKupXeySpY5ATQFGxfL9v0%3D" alt="Xeltica"></td> | ||||
| <td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12999811/5f349fafcce44dd1824a8b1ebbec4564/3?token-time=2145916800&token-hash=ybYtxfpte1b-rGg6Zecpys2ZdZDtwR_UNJHQjt-3eoU%3D" alt="Xeltica"></td> | ||||
| <td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/3384329/8b713330cb27404ea6e9fac50ff96efe/1?token-time=2145916800&token-hash=0eu4-m1gTWA9PhptVZt6rdKcusqcD7RB87rJT23VVFI%3D" alt="べすれい"></td> | ||||
| <td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12021162/963128bb8d14476dbd8407943db8f31a/1?token-time=2145916800&token-hash=GgJ_NmUB6_nnRNLVGUWjV-WX91On7BOu59LKncYV9fE%3D" alt="gutfuckllc"></td> | ||||
| <td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/11357794/923ce94cd8c44ba788ee931907881839/1?token-time=2145916800&token-hash=I8lJVM8LeW6TSo5W6uIIRZ42cw83zp1wK_FsbzY0mcQ%3D" alt="mydarkstar"></td> | ||||
| @@ -118,7 +118,7 @@ Please see [Contribution guide](./CONTRIBUTING.md). | ||||
| <td><a href="https://www.patreon.com/user?u=12531784">Takashi Shibuya</a></td> | ||||
| </tr></table> | ||||
|  | ||||
| **Last updated:** Thu, 06 Dec 2018 14:22:05 UTC | ||||
| **Last updated:** Sun, 16 Dec 2018 13:46:05 UTC | ||||
| <!-- PATREON_END --> | ||||
|  | ||||
| :four_leaf_clover: Copyright | ||||
| @@ -130,9 +130,7 @@ Misskey is an open-source software licensed under the [GNU AGPLv3](LICENSE). | ||||
| [![][agpl-3.0-badge]][AGPL-3.0] | ||||
|  | ||||
| [agpl-3.0]:           https://www.gnu.org/licenses/agpl-3.0.en.html | ||||
| [agpl-3.0-badge]:     https://img.shields.io/badge/license-AGPL--3.0-444444.svg?style=flat-square | ||||
| [dependencies-link]:  https://david-dm.org/syuilo/misskey | ||||
| [dependencies-badge]: https://img.shields.io/david/syuilo/misskey.svg?style=flat-square | ||||
| [agpl-3.0-badge]:     https://img.shields.io/badge/license-AGPL--3.0-444444.svg?style=for-the-badge | ||||
|  | ||||
| [backer-url]: #backers | ||||
| [backer-badge]: https://opencollective.com/misskey/backers/badge.svg | ||||
|   | ||||
| @@ -111,7 +111,6 @@ common: | ||||
|   i-like-sushi: "私は(プリンよりむしろ)寿司が好き" | ||||
|   show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示" | ||||
|   use-white-black-reversi-stones: "リバーシに白黒の石を使う" | ||||
|   use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける" | ||||
|   verified-user: "公式アカウント" | ||||
|   disable-animated-mfm: "投稿内の動きのあるテキストを無効にする" | ||||
|   suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する" | ||||
|   | ||||
| @@ -111,7 +111,6 @@ common: | ||||
|   i-like-sushi: "Ich bevorzuge Sushi anstelle von Pudding" | ||||
|   show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示" | ||||
|   use-white-black-reversi-stones: "リバーシに白黒の石を使う" | ||||
|   use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける" | ||||
|   verified-user: "Verifizierter Benutzer" | ||||
|   disable-animated-mfm: "投稿内の動きのあるテキストを無効にする" | ||||
|   suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する" | ||||
|   | ||||
| @@ -111,7 +111,6 @@ common: | ||||
|   i-like-sushi: "I prefer sushi rather than pudding" | ||||
|   show-reversi-board-labels: "Show row and column labels in Reversi" | ||||
|   use-white-black-reversi-stones: "Use white-black stone in reversi" | ||||
|   use-contrast-reversi-stones: "Make the stone color clear in reversi" | ||||
|   verified-user: "Verified account" | ||||
|   disable-animated-mfm: "Disable animated texts in a post" | ||||
|   suggest-recent-hashtags: "Suggest recently used hashtags within the post composition area" | ||||
|   | ||||
| @@ -111,7 +111,6 @@ common: | ||||
|   i-like-sushi: "Prefiero sushi a pudín" | ||||
|   show-reversi-board-labels: "Mostrar etiquetas de filas y columnas en Reversi" | ||||
|   use-white-black-reversi-stones: "リバーシに白黒の石を使う" | ||||
|   use-contrast-reversi-stones: "Hacer el color de la piedra claro en Reversi" | ||||
|   verified-user: "Cuenta verificada" | ||||
|   disable-animated-mfm: "Desactivar texto animado en una publicación" | ||||
|   suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する" | ||||
|   | ||||
| @@ -111,7 +111,6 @@ common: | ||||
|   i-like-sushi: "Je préfère les sushis plutôt que le pudding" | ||||
|   show-reversi-board-labels: "Afficher les étiquettes des lignes et colonnes dans Reversi" | ||||
|   use-white-black-reversi-stones: "Jouer avec des pions noirs et blancs sur Reversi" | ||||
|   use-contrast-reversi-stones: "Icône avec contraste sur Reversi" | ||||
|   verified-user: "Compte vérifié" | ||||
|   disable-animated-mfm: "Désactiver les textes animés dans les publications" | ||||
|   suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する" | ||||
|   | ||||
| @@ -111,7 +111,6 @@ common: | ||||
|   i-like-sushi: "私は(プリンよりむしろ)寿司が好き" | ||||
|   show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示" | ||||
|   use-white-black-reversi-stones: "リバーシに白黒の石を使う" | ||||
|   use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける" | ||||
|   verified-user: "公式アカウント" | ||||
|   disable-animated-mfm: "投稿内の動きのあるテキストを無効にする" | ||||
|   suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する" | ||||
|   | ||||
| @@ -119,7 +119,6 @@ common: | ||||
|   i-like-sushi: "私は(プリンよりむしろ)寿司が好き" | ||||
|   show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示" | ||||
|   use-white-black-reversi-stones: "リバーシに白黒の石を使う" | ||||
|   use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける" | ||||
|   verified-user: "公式アカウント" | ||||
|   disable-animated-mfm: "投稿内の動きのあるテキストを無効にする" | ||||
|   suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する" | ||||
|   | ||||
| @@ -111,7 +111,6 @@ common: | ||||
|   i-like-sushi: "寿司(のほうがプリンよりむしろ)ウマい、タコ焼きはあらへんけど。" | ||||
|   show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示や!" | ||||
|   use-white-black-reversi-stones: "リバーシに白黒の石を使う" | ||||
|   use-contrast-reversi-stones: "リバーシのアイコンにコントラストをつけんで!" | ||||
|   verified-user: "アメちゃん付きアカウント" | ||||
|   disable-animated-mfm: "投稿内のちょろちょろ動いてんのを止める" | ||||
|   suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する" | ||||
|   | ||||
| @@ -111,7 +111,6 @@ common: | ||||
|   i-like-sushi: "저는 (푸딩보다 차라리) 초밥이 좋아요" | ||||
|   show-reversi-board-labels: "리버시 보드의 행과 열 레이블을 표시" | ||||
|   use-white-black-reversi-stones: "리버시에 흑백 돌을 사용" | ||||
|   use-contrast-reversi-stones: "리버시 아이콘의 대비를 높이기" | ||||
|   verified-user: "공식 계정" | ||||
|   disable-animated-mfm: "글의 문자 애니메이션을 비활성화" | ||||
|   suggest-recent-hashtags: "최근 해시태그를 글 작성란에 표시" | ||||
| @@ -1057,18 +1056,18 @@ admin/views/charts.vue: | ||||
|     network-usage: "통신량" | ||||
| admin/views/drive.vue: | ||||
|   sort: | ||||
|     title: "ソート" | ||||
|     createdAtAsc: "アップロード日時が古い順" | ||||
|     createdAtDesc: "アップロード日時が新しい順" | ||||
|     sizeAsc: "サイズが小さい順" | ||||
|     sizeDesc: "サイズが大きい順" | ||||
|     title: "정렬" | ||||
|     createdAtAsc: "업로드 날짜 오랜 순" | ||||
|     createdAtDesc: "업로드 날짜 최신순" | ||||
|     sizeAsc: "크기가 작은 순" | ||||
|     sizeDesc: "크기가 큰 순" | ||||
|   origin: | ||||
|     title: "オリジン" | ||||
|     combined: "ローカル+リモート" | ||||
|     local: "ローカル" | ||||
|     remote: "リモート" | ||||
|   delete: "削除" | ||||
|   deleted: "削除しました" | ||||
|     title: "출처" | ||||
|     combined: "로컬 + 리모트" | ||||
|     local: "로컬" | ||||
|     remote: "리모트" | ||||
|   delete: "삭제" | ||||
|   deleted: "삭제하였습니다" | ||||
| admin/views/users.vue: | ||||
|   operation: "작업" | ||||
|   username-or-userid: "사용자명 혹은 사용자 ID" | ||||
|   | ||||
| @@ -111,7 +111,6 @@ common: | ||||
|   i-like-sushi: "私は(プリンよりむしろ)寿司が好き" | ||||
|   show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示" | ||||
|   use-white-black-reversi-stones: "リバーシに白黒の石を使う" | ||||
|   use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける" | ||||
|   verified-user: "公式アカウント" | ||||
|   disable-animated-mfm: "投稿内の動きのあるテキストを無効にする" | ||||
|   suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する" | ||||
|   | ||||
| @@ -111,7 +111,6 @@ common: | ||||
|   i-like-sushi: "私は(プリンよりむしろ)寿司が好き" | ||||
|   show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示" | ||||
|   use-white-black-reversi-stones: "リバーシに白黒の石を使う" | ||||
|   use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける" | ||||
|   verified-user: "公式アカウント" | ||||
|   disable-animated-mfm: "投稿内の動きのあるテキストを無効にする" | ||||
|   suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する" | ||||
|   | ||||
| @@ -111,7 +111,6 @@ common: | ||||
|   i-like-sushi: "Wolę sushi od puddingu" | ||||
|   show-reversi-board-labels: "Pokazuj podpisy wierszy i kolumn w Reversi" | ||||
|   use-white-black-reversi-stones: "リバーシに白黒の石を使う" | ||||
|   use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける" | ||||
|   verified-user: "Zweryfikowane konto" | ||||
|   disable-animated-mfm: "Wyłącz animowany tekst we wpisach" | ||||
|   suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する" | ||||
|   | ||||
| @@ -111,7 +111,6 @@ common: | ||||
|   i-like-sushi: "Eu prefiro sushi a pudim" | ||||
|   show-reversi-board-labels: "Mostrar etiquetas de colunas e linhas no Reversi" | ||||
|   use-white-black-reversi-stones: "リバーシに白黒の石を使う" | ||||
|   use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける" | ||||
|   verified-user: "Conta verificada" | ||||
|   disable-animated-mfm: "Desativar texto animado nas publicações" | ||||
|   suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する" | ||||
|   | ||||
| @@ -111,7 +111,6 @@ common: | ||||
|   i-like-sushi: "私は(プリンよりむしろ)寿司が好き" | ||||
|   show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示" | ||||
|   use-white-black-reversi-stones: "リバーシに白黒の石を使う" | ||||
|   use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける" | ||||
|   verified-user: "公式アカウント" | ||||
|   disable-animated-mfm: "Отключить анимированный текст в постах" | ||||
|   suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する" | ||||
|   | ||||
| @@ -111,7 +111,6 @@ common: | ||||
|   i-like-sushi: "相比于布丁来说, 我更喜欢寿司。" | ||||
|   show-reversi-board-labels: "在 Reversi 中显示行和列表签" | ||||
|   use-white-black-reversi-stones: "リバーシに白黒の石を使う" | ||||
|   use-contrast-reversi-stones: "Make the stone color clear in Reversi" | ||||
|   verified-user: "认证用户" | ||||
|   disable-animated-mfm: "在帖子中禁用动画文本" | ||||
|   suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する" | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| { | ||||
| 	"name": "misskey", | ||||
| 	"author": "syuilo <i@syuilo.com>", | ||||
| 	"version": "10.64.0", | ||||
| 	"clientVersion": "2.0.12768", | ||||
| 	"version": "10.64.1", | ||||
| 	"clientVersion": "2.0.12792", | ||||
| 	"codename": "nighthike", | ||||
| 	"main": "./built/index.js", | ||||
| 	"private": true, | ||||
|   | ||||
| @@ -31,8 +31,8 @@ | ||||
| 						@click="set(i)" | ||||
| 						:title="`${String.fromCharCode(65 + o.transformPosToXy(i)[0])}${o.transformPosToXy(i)[1] + 1}`"> | ||||
| 					<template v-if="!$store.state.settings.games.reversi.useWhiteBlackStones"> | ||||
| 						<img v-if="stone === true" :src="blackUser.avatarUrl" alt="black" :class="{ contrast: $store.state.settings.games.reversi.useContrastStones }"> | ||||
| 						<img v-if="stone === false" :src="whiteUser.avatarUrl" alt="white" :class="{ contrast: $store.state.settings.games.reversi.useContrastStones }"> | ||||
| 						<img v-if="stone === true" :src="blackUser.avatarUrl" alt="black"> | ||||
| 						<img v-if="stone === false" :src="whiteUser.avatarUrl" alt="white"> | ||||
| 					</template> | ||||
| 					<template v-if="$store.state.settings.games.reversi.useWhiteBlackStones"> | ||||
| 						<fa v-if="stone === true" :icon="fasCircle"/> | ||||
| @@ -430,13 +430,6 @@ export default Vue.extend({ | ||||
| 						width 100% | ||||
| 						height 100% | ||||
|  | ||||
| 						&.contrast | ||||
| 							&[alt="black"] | ||||
| 								filter brightness(.5) | ||||
|  | ||||
| 							&[alt="white"] | ||||
| 								filter brightness(2) | ||||
|  | ||||
| 	> .graph | ||||
| 		display grid | ||||
| 		grid-template-columns repeat(61, 1fr) | ||||
|   | ||||
| @@ -1,36 +1,104 @@ | ||||
| <template> | ||||
| <div class="mk-reactions-viewer"> | ||||
| 	<template v-if="reactions"> | ||||
| 		<span :class="{ reacted: note.myReaction == 'like' }" @click="react('like')" v-if="reactions.like" v-particle><mk-reaction-icon reaction="like"/><span>{{ reactions.like }}</span></span> | ||||
| 		<span :class="{ reacted: note.myReaction == 'love' }" @click="react('love')" v-if="reactions.love" v-particle><mk-reaction-icon reaction="love"/><span>{{ reactions.love }}</span></span> | ||||
| 		<span :class="{ reacted: note.myReaction == 'laugh' }" @click="react('laugh')" v-if="reactions.laugh" v-particle><mk-reaction-icon reaction="laugh"/><span>{{ reactions.laugh }}</span></span> | ||||
| 		<span :class="{ reacted: note.myReaction == 'hmm' }" @click="react('hmm')" v-if="reactions.hmm" v-particle><mk-reaction-icon reaction="hmm"/><span>{{ reactions.hmm }}</span></span> | ||||
| 		<span :class="{ reacted: note.myReaction == 'surprise' }" @click="react('surprise')" v-if="reactions.surprise" v-particle><mk-reaction-icon reaction="surprise"/><span>{{ reactions.surprise }}</span></span> | ||||
| 		<span :class="{ reacted: note.myReaction == 'congrats' }" @click="react('congrats')" v-if="reactions.congrats" v-particle><mk-reaction-icon reaction="congrats"/><span>{{ reactions.congrats }}</span></span> | ||||
| 		<span :class="{ reacted: note.myReaction == 'angry' }" @click="react('angry')" v-if="reactions.angry" v-particle><mk-reaction-icon reaction="angry"/><span>{{ reactions.angry }}</span></span> | ||||
| 		<span :class="{ reacted: note.myReaction == 'confused' }" @click="react('confused')" v-if="reactions.confused" v-particle><mk-reaction-icon reaction="confused"/><span>{{ reactions.confused }}</span></span> | ||||
| 		<span :class="{ reacted: note.myReaction == 'rip' }" @click="react('rip')" v-if="reactions.rip" v-particle><mk-reaction-icon reaction="rip"/><span>{{ reactions.rip }}</span></span> | ||||
| 		<span :class="{ reacted: note.myReaction == 'pudding' }" @click="react('pudding')" v-if="reactions.pudding" v-particle><mk-reaction-icon reaction="pudding"/><span>{{ reactions.pudding }}</span></span> | ||||
| 		<span :class="{ reacted: note.myReaction == 'like' }" @click="react('like')" v-if="reactions.like" v-particle><mk-reaction-icon reaction="like" ref="like"/><span>{{ reactions.like }}</span></span> | ||||
| 		<span :class="{ reacted: note.myReaction == 'love' }" @click="react('love')" v-if="reactions.love" v-particle><mk-reaction-icon reaction="love" ref="love"/><span>{{ reactions.love }}</span></span> | ||||
| 		<span :class="{ reacted: note.myReaction == 'laugh' }" @click="react('laugh')" v-if="reactions.laugh" v-particle><mk-reaction-icon reaction="laugh" ref="laugh"/><span>{{ reactions.laugh }}</span></span> | ||||
| 		<span :class="{ reacted: note.myReaction == 'hmm' }" @click="react('hmm')" v-if="reactions.hmm" v-particle><mk-reaction-icon reaction="hmm" ref="hmm"/><span>{{ reactions.hmm }}</span></span> | ||||
| 		<span :class="{ reacted: note.myReaction == 'surprise' }" @click="react('surprise')" v-if="reactions.surprise" v-particle><mk-reaction-icon reaction="surprise" ref="surprise"/><span>{{ reactions.surprise }}</span></span> | ||||
| 		<span :class="{ reacted: note.myReaction == 'congrats' }" @click="react('congrats')" v-if="reactions.congrats" v-particle><mk-reaction-icon reaction="congrats" ref="congrats"/><span>{{ reactions.congrats }}</span></span> | ||||
| 		<span :class="{ reacted: note.myReaction == 'angry' }" @click="react('angry')" v-if="reactions.angry" v-particle><mk-reaction-icon reaction="angry" ref="angry"/><span>{{ reactions.angry }}</span></span> | ||||
| 		<span :class="{ reacted: note.myReaction == 'confused' }" @click="react('confused')" v-if="reactions.confused" v-particle><mk-reaction-icon reaction="confused" ref="confused"/><span>{{ reactions.confused }}</span></span> | ||||
| 		<span :class="{ reacted: note.myReaction == 'rip' }" @click="react('rip')" v-if="reactions.rip" v-particle><mk-reaction-icon reaction="rip" ref="rip"/><span>{{ reactions.rip }}</span></span> | ||||
| 		<span :class="{ reacted: note.myReaction == 'pudding' }" @click="react('pudding')" v-if="reactions.pudding" v-particle><mk-reaction-icon reaction="pudding" ref="pudding"/><span>{{ reactions.pudding }}</span></span> | ||||
| 	</template> | ||||
| </div> | ||||
| </template> | ||||
|  | ||||
| <script lang="ts"> | ||||
| import Vue from 'vue'; | ||||
| import Icon from './reaction-icon.vue'; | ||||
| import * as anime from 'animejs'; | ||||
|  | ||||
| export default Vue.extend({ | ||||
| 	props: ['note'], | ||||
| 	computed: { | ||||
| 		reactions(): number { | ||||
| 		reactions(): any { | ||||
| 			return this.note.reactionCounts; | ||||
| 		} | ||||
| 	}, | ||||
| 	watch: { | ||||
| 		'reactions.like'() { | ||||
| 			this.anime('like'); | ||||
| 		}, | ||||
| 		'reactions.love'() { | ||||
| 			this.anime('love'); | ||||
| 		}, | ||||
| 		'reactions.laugh'() { | ||||
| 			this.anime('laugh'); | ||||
| 		}, | ||||
| 		'reactions.hmm'() { | ||||
| 			this.anime('hmm'); | ||||
| 		}, | ||||
| 		'reactions.surprise'() { | ||||
| 			this.anime('surprise'); | ||||
| 		}, | ||||
| 		'reactions.congrats'() { | ||||
| 			this.anime('congrats'); | ||||
| 		}, | ||||
| 		'reactions.angry'() { | ||||
| 			this.anime('angry'); | ||||
| 		}, | ||||
| 		'reactions.confused'() { | ||||
| 			this.anime('confused'); | ||||
| 		}, | ||||
| 		'reactions.rip'() { | ||||
| 			this.anime('rip'); | ||||
| 		}, | ||||
| 		'reactions.pudding'() { | ||||
| 			this.anime('pudding'); | ||||
| 		} | ||||
| 	}, | ||||
| 	methods: { | ||||
| 		react(reaction: string) { | ||||
| 			this.$root.api('notes/reactions/create', { | ||||
| 				noteId: this.note.id, | ||||
| 				reaction: reaction | ||||
| 			}); | ||||
| 		}, | ||||
| 		anime(reaction: string) { | ||||
| 			this.$nextTick(() => { | ||||
| 				const rect = this.$refs[reaction].$el.getBoundingClientRect(); | ||||
|  | ||||
| 				const x = rect.left; | ||||
| 				const y = rect.top; | ||||
|  | ||||
| 				const icon = new Icon({ | ||||
| 					parent: this, | ||||
| 					propsData: { | ||||
| 						reaction: reaction | ||||
| 					} | ||||
| 				}).$mount(); | ||||
|  | ||||
| 				icon.$el.style.position = 'absolute'; | ||||
| 				icon.$el.style.zIndex = 100; | ||||
| 				icon.$el.style.top = (y + window.scrollY) + 'px'; | ||||
| 				icon.$el.style.left = (x + window.scrollX) + 'px'; | ||||
| 				icon.$el.style.fontSize = window.getComputedStyle(this.$refs[reaction].$el).fontSize; | ||||
|  | ||||
| 				document.body.appendChild(icon.$el); | ||||
|  | ||||
| 				anime({ | ||||
| 					targets: icon.$el, | ||||
| 					opacity: [1, 0], | ||||
| 					translateY: [0, -64], | ||||
| 					duration: 1000, | ||||
| 					easing: 'linear', | ||||
| 					complete: () => { | ||||
| 						icon.destroyDom(); | ||||
| 					} | ||||
| 				}); | ||||
| 			}); | ||||
| 		} | ||||
| 	} | ||||
| }); | ||||
|   | ||||
| @@ -137,7 +137,6 @@ | ||||
| 			<section> | ||||
| 				<ui-switch v-model="games_reversi_showBoardLabels">{{ $t('@.show-reversi-board-labels') }}</ui-switch> | ||||
| 				<ui-switch v-model="games_reversi_useWhiteBlackStones">{{ $t('@.use-white-black-reversi-stones') }}</ui-switch> | ||||
| 				<ui-switch v-model="games_reversi_useContrastStones">{{ $t('@.use-contrast-reversi-stones') }}</ui-switch> | ||||
| 			</section> | ||||
| 		</ui-card> | ||||
|  | ||||
| @@ -511,11 +510,6 @@ export default Vue.extend({ | ||||
| 			set(value) { this.$store.dispatch('settings/set', { key: 'games.reversi.useWhiteBlackStones', value }); } | ||||
| 		}, | ||||
|  | ||||
| 		games_reversi_useContrastStones: { | ||||
| 			get() { return this.$store.state.settings.games.reversi.useContrastStones; }, | ||||
| 			set(value) { this.$store.dispatch('settings/set', { key: 'games.reversi.useContrastStones', value }); } | ||||
| 		}, | ||||
|  | ||||
| 		disableAnimatedMfm: { | ||||
| 			get() { return this.$store.state.settings.disableAnimatedMfm; }, | ||||
| 			set(value) { this.$store.dispatch('settings/set', { key: 'disableAnimatedMfm', value }); } | ||||
|   | ||||
| @@ -33,7 +33,7 @@ | ||||
|  | ||||
| 				<section> | ||||
| 					<ui-switch v-model="games_reversi_showBoardLabels">{{ $t('@.show-reversi-board-labels') }}</ui-switch> | ||||
| 					<ui-switch v-model="games_reversi_useContrastStones">{{ $t('@.use-contrast-reversi-stones') }}</ui-switch> | ||||
| 					<ui-switch v-model="games_reversi_useWhiteBlackStones">{{ $t('@.use-white-black-reversi-stones') }}</ui-switch> | ||||
| 				</section> | ||||
|  | ||||
| 				<section> | ||||
| @@ -287,9 +287,9 @@ export default Vue.extend({ | ||||
| 			set(value) { this.$store.dispatch('settings/set', { key: 'games.reversi.showBoardLabels', value }); } | ||||
| 		}, | ||||
|  | ||||
| 		games_reversi_useContrastStones: { | ||||
| 			get() { return this.$store.state.settings.games.reversi.useContrastStones; }, | ||||
| 			set(value) { this.$store.dispatch('settings/set', { key: 'games.reversi.useContrastStones', value }); } | ||||
| 		games_reversi_useWhiteBlackStones: { | ||||
| 			get() { return this.$store.state.settings.games.reversi.useWhiteBlackStones; }, | ||||
| 			set(value) { this.$store.dispatch('settings/set', { key: 'games.reversi.useWhiteBlackStones', value }); } | ||||
| 		}, | ||||
|  | ||||
| 		disableAnimatedMfm: { | ||||
|   | ||||
| @@ -40,8 +40,7 @@ const defaultSettings = { | ||||
| 	games: { | ||||
| 		reversi: { | ||||
| 			showBoardLabels: false, | ||||
| 			useWhileBlackStones: false, | ||||
| 			useContrastStones: false | ||||
| 			useWhiteBlackStones: false, | ||||
| 		} | ||||
| 	} | ||||
| }; | ||||
|   | ||||
| @@ -3,6 +3,7 @@ import Note from '../../../../models/note'; | ||||
| import deleteNote from '../../../../services/note/delete'; | ||||
| import User from '../../../../models/user'; | ||||
| import define from '../../define'; | ||||
| const ms = require('ms'); | ||||
|  | ||||
| export const meta = { | ||||
| 	stability: 'stable', | ||||
| @@ -16,6 +17,12 @@ export const meta = { | ||||
|  | ||||
| 	kind: 'note-write', | ||||
|  | ||||
| 	limit: { | ||||
| 		duration: ms('1hour'), | ||||
| 		max: 300, | ||||
| 		minInterval: ms('1sec') | ||||
| 	}, | ||||
|  | ||||
| 	params: { | ||||
| 		noteId: { | ||||
| 			validator: $.type(ID), | ||||
|   | ||||
		Reference in New Issue
	
	Block a user