From e14f244e83b08a140f572e4e91032c5e17922755 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Sat, 4 Aug 2018 00:14:18 +0000 Subject: [PATCH 01/26] fix(package): update commander to version 2.17.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ba5eab2fbb..0e6d74df02 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,7 @@ "bootstrap-vue": "2.0.0-rc.11", "cafy": "11.3.0", "chalk": "2.4.1", - "commander": "2.16.0", + "commander": "2.17.0", "crc-32": "1.2.0", "css-loader": "1.0.0", "dateformat": "3.0.3", From 864d1a39cd700c0fb1a58428dee4f52982b3f762 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Sat, 4 Aug 2018 01:48:39 +0000 Subject: [PATCH 02/26] fix(package): update @types/node to version 10.5.6 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8eff18b097..92e4067c4b 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "@types/mocha": "5.2.3", "@types/mongodb": "3.1.3", "@types/ms": "0.7.30", - "@types/node": "10.5.5", + "@types/node": "10.5.6", "@types/portscanner": "2.1.0", "@types/pug": "2.0.4", "@types/qrcode": "1.2.0", From 5de8edf15f822077ecbe20740556beb826eb9b0f Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 4 Aug 2018 23:10:59 +0900 Subject: [PATCH 03/26] New translations ja.yml (Korean) --- locales/ko.yml | 146 ++++++++++++++++++++++++------------------------- 1 file changed, 73 insertions(+), 73 deletions(-) diff --git a/locales/ko.yml b/locales/ko.yml index bc214b7943..bad8e53a10 100644 --- a/locales/ko.yml +++ b/locales/ko.yml @@ -5,93 +5,93 @@ meta: common: misskey: "A ⭐ of fediverse" about-title: "A ⭐ of fediverse." - about: "Misskeyを見つけていただき、ありがとうございます。Misskeyは、地球で生まれた分散マイクロブログSNSです。Fediverse(様々なSNSで構成される宇宙)の中に存在するため、他のSNSと相互に繋がっています。暫し都会の喧騒から離れて、新しいインターネットにダイブしてみませんか。" + about: "Misskey를 찾아 주셔서 감사합니다. Misskey은 지구에서 태어난 분산 마이크로 블로그 SNS 입니다. Fediverse (다양한 SNS로 구성되는 우주)에 존재하는 다른 SNS와 상호 연결되어 있습니다. 잠시 도시의 번잡함에서 벗어나 새로운 인터넷에 다이브 해 보지 않겠습니까." adblock: - detected: "広告ブロッカーを無効にしてください" - warning: "Misskeyは広告を掲載していませんが、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。" - application-authorization: "アプリの連携" - close: "閉じる" + detected: "광고 차단기를 해제하십시오" + warning: "Misskey는 광고를 게재하지 않습니다 그러나 광고를 차단하는 기능 기능을 사용할 경우 일부 기능을 사용할 수 없게 될 가능성이나 결함이 발생하는 경우가 있습니다." + application-authorization: "앱의 연계" + close: "닫기" customization-tips: - title: "カスタマイズのヒント" - paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。" - paragraph2: "一部のウィジェットは、クリックすることで表示を変更することができます。" - paragraph3: "ウィジェットを削除するには、ヘッダーの「ゴミ箱」と書かれたエリアにウィジェットをドラッグ&ドロップします。" - paragraph4: "カスタマイズを終了するには、右上の「完了」をクリックします。" + title: "사용자 정의 팁" + paragraph1: "홈 정의는 위젯을 추가 / 삭제하거나 드래그 앤 드롭하여 정렬 할 수 있습니다." + paragraph2: "일부 위젯은 오른쪽 클릭 하여 모양을 변경할 수 있습니다." + paragraph3: "위젯을 삭제하려면 헤더 \"휴지통\" 라고 쓰여진 영역으로 끌어다 놓습니다." + paragraph4: "사용자 정의를 종료하려면 오른쪽 상단의 '완료' 를 클릭합니다." gotit: "Got it!" notification: - file-uploaded: "ファイルがアップロードされました" - message-from: "{}さんからメッセージ:" - reversi-invited: "対局への招待があります" - reversi-invited-by: "{}さんから" - notified-by: "{}さんから" - reply-from: "{}さんから返信:" - quoted-by: "{}さんが引用:" + file-uploaded: "파일이 업로드되었습니다" + message-from: "{}씨로부터 메시지:" + reversi-invited: "대결에 초대되어 있습니다" + reversi-invited-by: "{}님" + notified-by: "{}님" + reply-from: "{}님으로부터 답글:" + quoted-by: "{}씨가 인용:" name: "Misskey" time: - unknown: "なぞのじかん" - future: "未来" - just_now: "たった今" - seconds_ago: "{}秒前" - minutes_ago: "{}分前" - hours_ago: "{}時間前" - days_ago: "{}日前" - weeks_ago: "{}週間前" - months_ago: "{}ヶ月前" - years_ago: "{}年前" - trash: "ゴミ箱" + unknown: "수수께끼의 시간" + future: "미래" + just_now: "방금" + seconds_ago: "{}초전" + minutes_ago: "{}분전" + hours_ago: "{}시간전" + days_ago: "{}일전" + weeks_ago: "{}주전" + months_ago: "{}개월전" + years_ago: "{}년전" + trash: "휴지통" date: - full-year: "年" - month: "月" - day: "日" - hours: "時" - minutes: "分" + full-year: "년" + month: "달" + day: "일" + hours: "때" + minutes: "분" weekday-short: - sunday: "日" - monday: "月" - tuesday: "火" - wednesday: "水" - thursday: "木" - friday: "金" - saturday: "土" + sunday: "일" + monday: "월" + tuesday: "화" + wednesday: "수" + thursday: "목" + friday: "금" + saturday: "토" weekday: - sunday: "日曜日" - monday: "月曜日" - tuesday: "火曜日" - wednesday: "水曜日" - thursday: "木曜日" - friday: "金曜日" - saturday: "土曜日" + sunday: "일요일" + monday: "월요일" + tuesday: "화요일" + wednesday: "수요일" + thursday: "목요일" + friday: "금요일" + saturday: "토요일" reactions: - like: "いいね" - love: "しゅき" - laugh: "笑" - hmm: "ふぅ~む" - surprise: "わお" - congrats: "おめでとう" - angry: "おこ" - confused: "こまこまのこまり" + like: "좋네" + love: "좋아" + laugh: "크크" + hmm: "음..." + surprise: "와우" + congrats: "받으세요" + angry: "화냈어" + confused: "곤란하고 있어" pudding: "Pudding" note-placeholders: - a: "今どうしてる?" - b: "何かありましたか?" - c: "何をお考えですか?" - d: "言いたいことは?" - e: "ここに書いてください" - f: "あなたが書くのを待っています..." - search: "検索" - delete: "削除" - loading: "読み込み中" - ok: "わかった" - update-available-title: "更新があります" - update-available: "Misskeyの新しいバージョンがあります({newer}。現在{current}を利用中)。ページを再度読み込みすると更新が適用されます。" - my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。" - i-like-sushi: "私は(プリンよりむしろ)寿司が好き" - show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示" - verified-user: "認証済みのユーザー" + a: "지금 어떻게하고있어?" + b: "뭔가 있었습니까?" + c: "무엇을 생각하십니까?" + d: "말하고 싶은 것은?" + e: "여기에 써주십시오" + f: "당신이 쓸 것을 당신 기다리고 있습니다..." + search: "검색" + delete: "삭제" + loading: "로드 중" + ok: "확인" + update-available-title: "갱신이 있습니다" + update-available: "Misskey의 새로운 버전이 있습니다 ({newer} 현재 {current}을 사용 중). 페이지를 다시로드하면 업데이트가 적용됩니다." + my-token-regenerated: "당신의 토큰이 업데이트되어 있기 때문에 로그 아웃합니다." + i-like-sushi: "나는(푸딩보다 오히려)스시가 좋아" + show-reversi-board-labels: "리버시 보드의 행과 열 레이블을 표시" + verified-user: "인증 된 사용자" disable-animated-mfm: "投稿内の動きのあるテキストを無効にする" reversi: - drawn: "引き分け" - my-turn: "あなたのターンです" + drawn: "무승부" + my-turn: "당신의 차례입니다" opponent-turn: "相手のターンです" turn-of: "{}のターンです" past-turn-of: "{}のターン" From fc8d06a9ab843c55baa00c577b45f4b5632fe3ba Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 4 Aug 2018 23:20:55 +0900 Subject: [PATCH 04/26] New translations ja.yml (Korean) --- locales/ko.yml | 64 +++++++++++++++++++++++++------------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/locales/ko.yml b/locales/ko.yml index bad8e53a10..83abddd378 100644 --- a/locales/ko.yml +++ b/locales/ko.yml @@ -88,42 +88,42 @@ common: i-like-sushi: "나는(푸딩보다 오히려)스시가 좋아" show-reversi-board-labels: "리버시 보드의 행과 열 레이블을 표시" verified-user: "인증 된 사용자" - disable-animated-mfm: "投稿内の動きのあるテキストを無効にする" + disable-animated-mfm: "게시물의 문자 애니메이션을 비활성화 할" reversi: drawn: "무승부" my-turn: "당신의 차례입니다" - opponent-turn: "相手のターンです" - turn-of: "{}のターンです" - past-turn-of: "{}のターン" - won: "{}の勝ち" - black: "黒" - white: "白" - total: "合計" - this-turn: "{}ターン目" + opponent-turn: "상대의 차례입니다" + turn-of: "{}의 차례입니다" + past-turn-of: "{} 턴" + won: "{} 승리" + black: "검정" + white: "흰색" + total: "합계" + this-turn: "{}턴눈" widgets: - analog-clock: "アナログ時計" - profile: "プロフィール" - calendar: "カレンダー" - timemachine: "カレンダー(タイムマシン)" - activity: "アクティビティ" - rss: "RSSリーダー" - memo: "付箋" - trends: "トレンド" - photo-stream: "フォトストリーム" - posts-monitor: "投稿チャート" - slideshow: "スライドショー" - version: "バージョン" - broadcast: "ブロードキャスト" - notifications: "通知" - users: "おすすめユーザー" - polls: "アンケート" - post-form: "投稿フォーム" - messaging: "メッセージ" - server: "サーバー情報" - donation: "寄付のお願い" - nav: "ナビゲーション" - tips: "ヒント" - hashtags: "ハッシュタグ" + analog-clock: "아날로그 시계" + profile: "프로필" + calendar: "달력" + timemachine: "달력(타임머신)" + activity: "활동" + rss: "RSS 리더" + memo: "끈끈이" + trends: "트렌드" + photo-stream: "포토 스트림" + posts-monitor: "게시물 차트" + slideshow: "슬라이드 쇼" + version: "버전" + broadcast: "브로드 캐스트" + notifications: "통지" + users: "추천 사용자" + polls: "설문" + post-form: "게시 양식" + messaging: "메시지" + server: "서버 정보" + donation: "기부 요청" + nav: "네비게이션" + tips: "팁" + hashtags: "해시 태그" deck: widgets: "ウィジェット" home: "ホーム" From a3531981ee2b84a4bdbcf2149716495aae5046f8 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 5 Aug 2018 00:30:59 +0900 Subject: [PATCH 05/26] New translations ja.yml (French) --- locales/fr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locales/fr.yml b/locales/fr.yml index fd8cbc8498..015ad4e1cc 100644 --- a/locales/fr.yml +++ b/locales/fr.yml @@ -99,7 +99,7 @@ common: black: "Noirs" white: "Blancs" total: "Total" - this-turn: "Tour de {}" + this-turn: "Tour {}" widgets: analog-clock: "Horloge analogique" profile: "Profil" @@ -721,7 +721,7 @@ desktop/views/components/timeline.vue: global: "Global" list: "Listes" desktop/views/components/ui.header.vue: - welcome-back: "Vous êtes de retour !" + welcome-back: "Content de vous revoir !" desktop/views/components/ui.header.account.vue: profile: "Votre profil" drive: "Drive" From cd28504dd8e4623ed864de2ad76e88e1022b08b1 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 5 Aug 2018 12:33:51 +0900 Subject: [PATCH 06/26] Add new MFM syntax --- .../components/misskey-flavored-markdown.ts | 11 ++++++++++ src/mfm/html.ts | 6 ++++++ src/mfm/parse/elements/motion.ts | 20 +++++++++++++++++++ src/mfm/parse/index.ts | 7 +++++-- test/mfm.ts | 8 ++++++++ 5 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 src/mfm/parse/elements/motion.ts diff --git a/src/client/app/common/views/components/misskey-flavored-markdown.ts b/src/client/app/common/views/components/misskey-flavored-markdown.ts index f9c97bd35a..683b4e806c 100644 --- a/src/client/app/common/views/components/misskey-flavored-markdown.ts +++ b/src/client/app/common/views/components/misskey-flavored-markdown.ts @@ -69,6 +69,17 @@ export default Vue.component('misskey-flavored-markdown', { }] }, token.big); + case 'motion': + return (createElement as any)('span', { + attrs: { + style: 'display: inline-block;' + }, + directives: [this.$store.state.settings.disableAnimatedMfm ? {} : { + name: 'animate-css', + value: { classes: 'rubberBand', iteration: 'infinite' } + }] + }, token.motion); + case 'url': return createElement(MkUrl, { props: { diff --git a/src/mfm/html.ts b/src/mfm/html.ts index dfe291b3a5..c11bd55cf4 100644 --- a/src/mfm/html.ts +++ b/src/mfm/html.ts @@ -18,6 +18,12 @@ const handlers: { [key: string]: (window: any, token: any, mentionedRemoteUsers: document.body.appendChild(b); }, + motion({ document }, { big }) { + const b = document.createElement('strong'); + b.textContent = big; + document.body.appendChild(b); + }, + code({ document }, { code }) { const pre = document.createElement('pre'); const inner = document.createElement('code'); diff --git a/src/mfm/parse/elements/motion.ts b/src/mfm/parse/elements/motion.ts new file mode 100644 index 0000000000..555a989750 --- /dev/null +++ b/src/mfm/parse/elements/motion.ts @@ -0,0 +1,20 @@ +/** + * Motion + */ + +export type TextElementMotion = { + type: 'motion' + content: string + motion: string +}; + +export default function(text: string) { + const match = text.match(/^\(\(\((.+?)\)\)\)/); + if (!match) return null; + const motion = match[0]; + return { + type: 'motion', + content: motion, + motion: match[1] + } as TextElementMotion; +} diff --git a/src/mfm/parse/index.ts b/src/mfm/parse/index.ts index 066c062559..99c00ae649 100644 --- a/src/mfm/parse/index.ts +++ b/src/mfm/parse/index.ts @@ -14,6 +14,7 @@ import { TextElementQuote } from './elements/quote'; import { TextElementSearch } from './elements/search'; import { TextElementTitle } from './elements/title'; import { TextElementUrl } from './elements/url'; +import { TextElementMotion } from './elements/motion'; const elements = [ require('./elements/big'), @@ -27,7 +28,8 @@ const elements = [ require('./elements/inline-code'), require('./elements/quote'), require('./elements/emoji'), - require('./elements/search') + require('./elements/search'), + require('./elements/motion') ].map(element => element.default as TextElementProcessor); export type TextElement = { type: 'text', content: string } @@ -42,7 +44,8 @@ export type TextElement = { type: 'text', content: string } | TextElementQuote | TextElementSearch | TextElementTitle - | TextElementUrl; + | TextElementUrl + | TextElementMotion; export type TextElementProcessor = (text: string, i: number) => TextElement | TextElement[]; export default (source: string): TextElement[] => { diff --git a/test/mfm.ts b/test/mfm.ts index 1a22e1491b..fcd5f3f076 100644 --- a/test/mfm.ts +++ b/test/mfm.ts @@ -39,6 +39,14 @@ describe('Text', () => { ], tokens); }); + it('motion', () => { + const tokens = analyze('(((Strawberry))) Pasta'); + assert.deepEqual([ + { type: 'motion', content: '***Strawberry***', motion: 'Strawberry' }, + { type: 'text', content: ' Pasta' } + ], tokens); + }); + it('mention', () => { const tokens = analyze('@himawari お腹ペコい'); assert.deepEqual([ From b68f74f39c7a8c86fdeecb5d298cfe7c8d98ebf2 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 5 Aug 2018 12:33:55 +0900 Subject: [PATCH 07/26] typo --- src/mfm/parse/elements/big.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mfm/parse/elements/big.ts b/src/mfm/parse/elements/big.ts index ca798986e9..8e39c75a55 100644 --- a/src/mfm/parse/elements/big.ts +++ b/src/mfm/parse/elements/big.ts @@ -1,5 +1,5 @@ /** - * Bold + * Big */ export type TextElementBig = { From 128a201b9d417038583abdbcda09dba1e8c0239d Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 5 Aug 2018 13:40:26 +0900 Subject: [PATCH 08/26] =?UTF-8?q?#2080=20=E3=81=AA=E3=81=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/games/reversi/reversi.game.vue | 28 +++++++++++++++- .../games/reversi/reversi.gameroom.vue | 16 +++++++-- .../games/reversi/reversi.index.vue | 6 +--- .../components/games/reversi/reversi.vue | 33 ++++++++++++++----- .../app/desktop/views/pages/games/reversi.vue | 13 +++++--- .../app/mobile/views/pages/games/reversi.vue | 11 +++++-- 6 files changed, 84 insertions(+), 23 deletions(-) diff --git a/src/client/app/common/views/components/games/reversi/reversi.game.vue b/src/client/app/common/views/components/games/reversi/reversi.game.vue index 66973e1970..5ecbc9d8c1 100644 --- a/src/client/app/common/views/components/games/reversi/reversi.game.vue +++ b/src/client/app/common/views/components/games/reversi/reversi.game.vue @@ -1,5 +1,6 @@