diff --git a/README.md b/README.md index f8738421cf..7a10f5b811 100644 --- a/README.md +++ b/README.md @@ -5,9 +5,7 @@ [![][travis-badge]][travis-link] [![][dependencies-badge]][dependencies-link] -[![][himawari-badge]][himasaku] -[![][sakurako-badge]][himasaku] -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) +[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) [![Greenkeeper badge](https://badges.greenkeeper.io/syuilo/misskey.svg)](https://greenkeeper.io/) > Lead Maintainer: [syuilo][syuilo-link] @@ -16,7 +14,7 @@ ultimately sophisticated professional microblogging software. Become a Patron! -![](https://c10.patreonusercontent.com/3/e30%3D/patreon-posts/RsKWEDEKf8D_wYDQWAbex9CSb-1DnXW1nfqfLvuys5ROj2k0VF6_luuzHMTyf95n.png?token-time=1529539200&token-hash=RmcSP0947mw5o2-B6g1L6aU_OoDXANe198kLU6HMO30%3D) +![](https://ja.mstdn.wiki/images/e/ed/Deck.jpg) :sparkles: Features ---------------------------------------------------------------- @@ -26,7 +24,7 @@ ultimately sophisticated professional microblogging software. * and widgets! * Private messages * Mute -* Streaming +* Real-time timelines * ActivityPub compatible and more! You can see it with your own eyes at [misskey.xyz](https://misskey.xyz). @@ -49,9 +47,9 @@ If you want to... [![Backers][backers-image]][support-url] [![Sponsors][sponsors-image]][support-url] -| ![][ooo-icon] | -|:-:| -| [ooo][ooo-link] | +| ![][nagarus-icon] | ![][dansup-icon] | +|:-:|:-:| +| [nagarus][nagarus-link] | [dansup][dansup-link] | :four_leaf_clover: Copyright ---------------------------------------------------------------- @@ -67,9 +65,6 @@ Misskey is an open-source software licensed under [GNU AGPLv3](LICENSE). [travis-badge]: http://img.shields.io/travis/syuilo/misskey/master.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 -[himasaku]: https://himasaku.net -[himawari-badge]: https://img.shields.io/badge/%E5%8F%A4%E8%B0%B7-%E5%90%91%E6%97%A5%E8%91%B5-1684c5.svg?style=flat-square -[sakurako-badge]: https://img.shields.io/badge/%E5%A4%A7%E5%AE%A4-%E6%AB%BB%E5%AD%90-efb02a.svg?style=flat-square [backer-url]: #backers [backer-badge]: https://opencollective.com/misskey/backers/badge.svg @@ -82,5 +77,8 @@ Misskey is an open-source software licensed under [GNU AGPLv3](LICENSE). [syuilo-link]: https://syuilo.com [syuilo-icon]: https://avatars2.githubusercontent.com/u/4439005?v=3&s=70 -[ooo-link]: https://www.patreon.com/user/creators?u=11601413 -[ooo-icon]: https://c10.patreonusercontent.com/3/eyJ2IjoiMSIsInciOjIwMH0%3D/patreon-media/user/11601413/20cb15f209924302b399b99d3c98b850?token-time=2145916800&token-hash=IO31nK6VZCMWBWU2VAk2c824BX2QZ4DNPKyHHZXS0iw%3D +[nagarus-link]: https://www.patreon.com/user/creators?u=11601413 +[nagarus-icon]: https://c10.patreonusercontent.com/3/eyJ2IjoiMSIsInciOjIwMH0%3D/patreon-media/user/11601413/20cb15f209924302b399b99d3c98b850?token-time=2145916800&token-hash=IO31nK6VZCMWBWU2VAk2c824BX2QZ4DNPKyHHZXS0iw%3D +[dansup-link]: https://www.patreon.com/dansup +[dansup-icon]: https://c10.patreonusercontent.com/3/eyJ2IjoiMSIsInciOjIwMH0%3D/patreon-media/user/4503830/ccf2cc867ea64de0b524bb2e24b9a1cb?token-time=2145916800&token-hash=opXAM_pnhUTuN1jCA6p_Nn_YsaqohY465YFjWFqMEEE%3D + diff --git a/DONATORS.md b/docs/DONATORS.md similarity index 74% rename from DONATORS.md rename to docs/DONATORS.md index 6fe5df04b7..9da5c1a94e 100644 --- a/DONATORS.md +++ b/docs/DONATORS.md @@ -22,8 +22,4 @@ The list of people who have sent donation for Misskey. --- -If your name is missing, please contact us! - -If you want to donate to Misskey, please get in touch with [@syuilo][syuilo-link]. - -[syuilo-link]: https://syuilo.com +If your name is missing, please contact us! diff --git a/docs/donate.ja.md b/docs/donate.ja.md deleted file mode 100644 index b19d7bc370..0000000000 --- a/docs/donate.ja.md +++ /dev/null @@ -1,26 +0,0 @@ -# Misskeyにカンパする方法 -Misskeyのサポートにご興味をお持ちいただきありがとうございます! -Misskeyにカンパをしていただくと、貴方のお名前と好きなURLなどをMisskeyのリポジトリに刻む権利がもらえます。 - -Misskeyにカンパして開発・運営をサポートするには、次のいくつかの方法があります: - -## ConoHaカードを購入する -(本家)Misskeyは、ConoHaというVPSサービスを利用しています。ConoHaカードを購入して、 -カードに記載されているクーポンコードを syuilotan@yahoo.co.jp までお送りいただければ、 -そのクーポンをチャージしてサーバーの運営費に充てることができます。 - -ConoHaカードについてはこちらをご覧ください: https://www.conoha.jp/conohacard/ - -Amazonでも買えます: https://www.amazon.co.jp/dp/B01N9E3416 - -## Amazonギフトカード -これは間接的な方法です。 - -## 銀行振込 -syuilotan@yahoo.co.jp までお問い合わせください。 - -## 手渡し -オフ会を行ったときなどに行使できる方法です。 - -## その他 -なにかいいアイデアがあればお教えください。 diff --git a/locales/en.yml b/locales/en.yml index 3b80c9b586..cdb179fe9e 100644 --- a/locales/en.yml +++ b/locales/en.yml @@ -553,7 +553,7 @@ desktop/views/components/timeline.vue: global: "Global" list: "Lists" desktop/views/components/ui.header.vue: - welcome-back: "おかえりなさい、" + welcome-back: "Welcome back, " desktop/views/components/ui.header.account.vue: profile: "Your profile" drive: "Drive" diff --git a/locales/index.ts b/locales/index.ts index 2ae84f30ae..45b5df0957 100644 --- a/locales/index.ts +++ b/locales/index.ts @@ -5,7 +5,7 @@ import * as fs from 'fs'; import * as yaml from 'js-yaml'; -export type LangKey = 'de' | 'en' | 'fr' | 'ja' | 'pl'; +export type LangKey = 'de' | 'en' | 'fr' | 'ja' | 'pl' | 'es'; export type LocaleObject = { [key: string]: any }; const loadLang = (lang: LangKey) => yaml.safeLoad( @@ -18,7 +18,8 @@ const langs: { [key: string]: LocaleObject } = { 'en': loadLang('en'), 'fr': loadLang('fr'), 'ja': native, - 'pl': loadLang('pl') + 'pl': loadLang('pl'), + 'es': loadLang('es') }; Object.entries(langs).map(([, locale]) => { diff --git a/locales/ja.yml b/locales/ja.yml index f2a85eb4e6..fc790d8c53 100644 --- a/locales/ja.yml +++ b/locales/ja.yml @@ -47,12 +47,22 @@ common: e: "ここに書いてください" f: "あなたが書くのを待っています..." + search: "検索" delete: "削除" loading: "読み込み中" ok: "わかった" + update-available-title: "更新があります" update-available: "Misskeyの新しいバージョンがあります({newer}。現在{current}を利用中)。ページを再度読み込みすると更新が適用されます。" my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。" i-like-sushi: "私は(プリンよりむしろ)寿司が好き" + show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示" + + reversi: + drawn: "引き分け" + my-turn: "あなたのターンです" + opponent-turn: "相手のターンです" + turn-of: "{}のターンです" + past-turn-of: "{}のターン" widgets: analog-clock: "アナログ時計" @@ -270,6 +280,13 @@ common/views/widgets/memo.vue: memo: "ここに書いて!" save: "保存" +common/views/pages/follow.vue: + signed-in-as: "{}としてサインイン中" + following: "フォロー中" + follow: "フォロー" + request-pending: "フォロー許可待ち" + follow-request: "フォロー申請" + desktop/views/components/activity.chart.vue: total: "Black ... Total" notes: "Blue ... Notes" @@ -444,7 +461,7 @@ desktop/views/components/post-form.vue: attach-media-from-local: "PCからメディアを添付" attach-media-from-drive: "ドライブからメディアを添付" attach-cancel: "添付取り消し" - insert-a-kao: "v(‘ω’)v" + insert-a-kao: "v('ω')v" create-poll: "アンケートを作成" text-remain: "残り{}文字" @@ -622,6 +639,9 @@ desktop/views/components/timeline.vue: global: "グローバル" list: "リスト" +desktop/views/components/ui.header.vue: + welcome-back: "おかえりなさい、" + desktop/views/components/ui.header.account.vue: profile: "プロフィール" drive: "ドライブ" @@ -727,7 +747,7 @@ desktop/views/pages/user/user.friends.vue: loading: "読み込み中" no-users: "よく話すユーザーはいません" -desktop/views/pages/user/user.header.vue: +desktop/views/pages/user/user.vue: is-suspended: "このユーザーは凍結されています。" is-remote: "このユーザーはリモートユーザーです。" view-remote: "正確な情報を見る" @@ -749,6 +769,12 @@ desktop/views/pages/user/user.profile.vue: muted: "ミュートしています" unmute: "ミュート解除" +desktop/views/pages/user/user.header.vue: + posts: "投稿" + following: "フォロー" + followers: "フォロワー" + is-bot: "このアカウントはBotです" + desktop/views/pages/user/user.timeline.vue: default: "投稿" with-replies: "投稿と返信" diff --git a/package.json b/package.json index 9961782c9d..7c84161a98 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { "name": "misskey", "author": "syuilo ", - "version": "4.3.0", - "clientVersion": "1.0.6630", + "version": "4.14.0", + "clientVersion": "1.0.6815", "codename": "nighthike", "main": "./built/index.js", "private": true, @@ -33,7 +33,8 @@ "@types/bcryptjs": "2.4.1", "@types/debug": "0.0.30", "@types/deep-equal": "1.0.1", - "@types/elasticsearch": "5.0.23", + "@types/elasticsearch": "5.0.24", + "@types/file-type": "5.2.1", "@types/gm": "1.18.0", "@types/gulp": "3.8.36", "@types/gulp-htmlmin": "1.3.32", @@ -42,51 +43,52 @@ "@types/gulp-replace": "0.0.31", "@types/gulp-uglify": "3.0.5", "@types/gulp-util": "3.0.34", - "@types/inquirer": "0.0.41", + "@types/inquirer": "0.0.42", "@types/is-root": "1.0.0", "@types/is-url": "1.2.28", "@types/js-yaml": "3.11.1", - "@types/koa": "2.0.45", - "@types/koa-bodyparser": "4.2.0", + "@types/jsdom": "11.0.6", + "@types/koa": "2.0.46", + "@types/koa-bodyparser": "5.0.0", "@types/koa-compress": "2.0.8", "@types/koa-favicon": "2.0.19", "@types/koa-logger": "3.1.0", "@types/koa-mount": "3.0.1", "@types/koa-multer": "1.0.0", - "@types/koa-router": "7.0.28", + "@types/koa-router": "7.0.30", "@types/koa-send": "4.1.1", "@types/koa-views": "2.0.3", "@types/koa__cors": "2.2.2", - "@types/kue": "0.11.8", + "@types/kue": "0.11.9", "@types/license-checker": "15.0.0", "@types/mkdirp": "0.5.2", - "@types/mocha": "5.2.0", - "@types/mongodb": "3.0.18", + "@types/mocha": "5.2.3", + "@types/mongodb": "3.0.21", "@types/ms": "0.7.30", - "@types/node": "10.1.2", + "@types/node": "10.3.6", "@types/nopt": "3.0.29", - "@types/parse5": "3.0.0", + "@types/parse5": "5.0.0", "@types/pug": "2.0.4", - "@types/qrcode": "0.8.1", + "@types/qrcode": "1.2.0", "@types/ratelimiter": "2.1.28", "@types/redis": "2.8.6", - "@types/request": "2.47.0", - "@types/request-promise-native": "1.0.14", + "@types/request": "2.47.1", + "@types/request-promise-native": "1.0.15", "@types/rimraf": "2.0.2", "@types/seedrandom": "2.4.27", "@types/single-line-log": "1.1.0", "@types/speakeasy": "2.0.2", "@types/tmp": "0.0.33", "@types/uuid": "3.4.3", - "@types/webpack": "4.4.0", + "@types/webpack": "4.4.3", "@types/webpack-stream": "3.2.10", "@types/websocket": "0.0.39", - "@types/ws": "5.1.1", + "@types/ws": "5.1.2", "animejs": "2.2.0", "autosize": "4.0.2", "autwh": "0.1.0", "bcryptjs": "2.4.3", - "bootstrap-vue": "2.0.0-rc.6", + "bootstrap-vue": "2.0.0-rc.11", "cafy": "8.0.0", "chalk": "2.4.1", "crc-32": "1.2.0", @@ -95,12 +97,12 @@ "deep-equal": "1.0.1", "deepcopy": "0.6.3", "diskusage": "0.2.4", - "dompurify": "1.0.4", + "dompurify": "1.0.5", "elasticsearch": "15.0.0", - "element-ui": "2.3.9", + "element-ui": "2.4.1", "emojilib": "2.2.12", "escape-regexp": "0.0.1", - "eslint": "4.19.1", + "eslint": "5.0.1", "eslint-plugin-vue": "4.5.0", "eventemitter3": "3.1.0", "exif-js": "2.3.0", @@ -114,7 +116,7 @@ "gulp-imagemin": "4.1.0", "gulp-mocha": "6.0.0", "gulp-pug": "4.0.1", - "gulp-rename": "1.2.3", + "gulp-rename": "1.3.0", "gulp-replace": "1.0.0", "gulp-sourcemaps": "2.6.4", "gulp-stylus": "2.7.0", @@ -122,14 +124,14 @@ "gulp-typescript": "4.0.2", "gulp-uglify": "3.0.0", "gulp-util": "3.0.8", - "hard-source-webpack-plugin": "0.6.10", + "hard-source-webpack-plugin": "0.9.0", "highlight.js": "9.12.0", - "html-minifier": "3.5.16", + "html-minifier": "3.5.17", "http-signature": "1.2.0", - "inquirer": "5.2.0", + "inquirer": "6.0.0", "is-root": "2.0.0", "is-url": "1.2.4", - "js-yaml": "3.11.0", + "js-yaml": "3.12.0", "jsdom": "11.11.0", "koa": "2.5.1", "koa-bodyparser": "4.2.1", @@ -140,11 +142,11 @@ "koa-mount": "3.0.0", "koa-multer": "1.0.2", "koa-router": "7.4.0", - "koa-send": "4.1.3", + "koa-send": "5.0.0", "koa-slow": "2.1.0", "koa-views": "6.1.4", "kue": "0.11.6", - "license-checker": "20.0.0", + "license-checker": "20.1.0", "loader-utils": "1.1.0", "mecab-async": "0.1.2", "mkdirp": "0.5.1", @@ -155,7 +157,7 @@ "ms": "2.1.1", "nan": "2.10.0", "node-sass": "4.9.0", - "node-sass-json-importer": "3.2.0", + "node-sass-json-importer": "3.3.1", "nopt": "4.0.1", "nprogress": "0.2.0", "object-assign-deep": "0.4.0", @@ -168,7 +170,7 @@ "pug": "2.0.3", "punycode": "2.1.1", "qrcode": "1.2.0", - "ratelimiter": "3.0.3", + "ratelimiter": "3.1.0", "recaptcha-promise": "0.1.3", "reconnecting-websocket": "3.2.2", "redis": "2.8.0", @@ -177,7 +179,7 @@ "rimraf": "2.6.2", "rndstr": "1.0.0", "s-age": "1.1.2", - "sass-loader": "7.0.1", + "sass-loader": "7.0.3", "seedrandom": "2.4.3", "single-line-log": "1.1.2", "speakeasy": "2.0.0", @@ -190,33 +192,38 @@ "tcp-port-used": "0.1.2", "textarea-caret": "3.1.0", "tmp": "0.0.33", - "ts-loader": "4.3.0", - "ts-node": "6.0.4", + "ts-loader": "4.4.1", + "ts-node": "7.0.0", "tslint": "5.10.0", - "typescript": "2.8.3", - "typescript-eslint-parser": "15.0.0", + "typescript": "2.9.2", + "typescript-eslint-parser": "16.0.0", "uglify-es": "3.3.9", "url-loader": "1.0.1", - "uuid": "3.2.1", + "uuid": "3.3.0", "v-animate-css": "0.0.2", "vue": "2.5.16", - "vue-cropperjs": "2.2.0", - "vue-js-modal": "1.3.13", + "vue-cropperjs": "2.2.1", + "vue-js-modal": "1.3.15", "vue-json-tree-view": "2.1.4", - "vue-loader": "15.2.1", + "vue-loader": "15.2.4", "vue-router": "3.0.1", "vue-template-compiler": "2.5.16", "vuedraggable": "2.16.0", "vuex": "3.0.1", "vuex-persistedstate": "^2.5.4", - "web-push": "3.3.1", + "web-push": "3.3.2", "webfinger.js": "2.6.6", - "webpack": "4.9.1", - "webpack-cli": "2.1.4", + "webpack": "4.12.1", + "webpack-cli": "3.0.8", "websocket": "1.0.26", - "ws": "5.2.0", - "xev": "2.0.1", - "@types/file-type": "5.2.1", - "@types/jsdom": "11.0.5" + "ws": "5.2.1", + "xev": "2.0.1" + }, + "greenkeeper": { + "ignore": [ + "deepcopy", + "cafy", + "@types/gulp" + ] } } diff --git a/src/client/app/common/scripts/can-hide-text.ts b/src/client/app/common/scripts/can-hide-text.ts deleted file mode 100644 index 4a4be8d9d0..0000000000 --- a/src/client/app/common/scripts/can-hide-text.ts +++ /dev/null @@ -1,16 +0,0 @@ -export default function(note) { - if (note.text == null) return true; - - let txt = note.text; - - if (note.media) { - note.media.forEach(file => { - txt = txt.replace(file.url, ''); - if (file.src) txt = txt.replace(file.src, ''); - }); - - if (txt == '') return true; - } - - return false; -} diff --git a/src/client/app/common/scripts/check-for-update.ts b/src/client/app/common/scripts/check-for-update.ts index b5ba6916d1..4445eefc39 100644 --- a/src/client/app/common/scripts/check-for-update.ts +++ b/src/client/app/common/scripts/check-for-update.ts @@ -23,7 +23,10 @@ export default async function(mios: MiOS, force = false, silent = false) { } if (!silent) { - alert('%i18n:common.update-available%'.replace('{newer}', newer).replace('{current}', current)); + mios.apis.dialog({ + title: '%i18n:common.update-available-title%', + text: '%i18n:common.update-available%'.replace('{newer}', newer).replace('{current}', current) + }); } return newer; diff --git a/src/client/app/common/scripts/compose-notification.ts b/src/client/app/common/scripts/compose-notification.ts index cc28f75998..2e58649ac2 100644 --- a/src/client/app/common/scripts/compose-notification.ts +++ b/src/client/app/common/scripts/compose-notification.ts @@ -20,34 +20,6 @@ export default function(type, data): Notification { icon: data.url + '?thumbnail&size=64' }; - case 'mention': - return { - title: `${getUserName(data.user)}さんから:`, - body: getNoteSummary(data), - icon: data.user.avatarUrl + '?thumbnail&size=64' - }; - - case 'reply': - return { - title: `${getUserName(data.user)}さんから返信:`, - body: getNoteSummary(data), - icon: data.user.avatarUrl + '?thumbnail&size=64' - }; - - case 'quote': - return { - title: `${getUserName(data.user)}さんが引用:`, - body: getNoteSummary(data), - icon: data.user.avatarUrl + '?thumbnail&size=64' - }; - - case 'reaction': - return { - title: `${getUserName(data.user)}: ${getReactionEmoji(data.reaction)}:`, - body: getNoteSummary(data.note), - icon: data.user.avatarUrl + '?thumbnail&size=64' - }; - case 'unread_messaging_message': return { title: `${getUserName(data.user)}さんからメッセージ:`, @@ -62,6 +34,40 @@ export default function(type, data): Notification { icon: data.parent.avatarUrl + '?thumbnail&size=64' }; + case 'notification': + switch (data.type) { + case 'mention': + return { + title: `${getUserName(data.user)}さんから:`, + body: getNoteSummary(data), + icon: data.user.avatarUrl + '?thumbnail&size=64' + }; + + case 'reply': + return { + title: `${getUserName(data.user)}さんから返信:`, + body: getNoteSummary(data), + icon: data.user.avatarUrl + '?thumbnail&size=64' + }; + + case 'quote': + return { + title: `${getUserName(data.user)}さんが引用:`, + body: getNoteSummary(data), + icon: data.user.avatarUrl + '?thumbnail&size=64' + }; + + case 'reaction': + return { + title: `${getUserName(data.user)}: ${getReactionEmoji(data.reaction)}:`, + body: getNoteSummary(data.note), + icon: data.user.avatarUrl + '?thumbnail&size=64' + }; + + default: + return null; + } + default: return null; } diff --git a/src/client/app/common/scripts/get-kao.ts b/src/client/app/common/scripts/get-kao.ts index 2168c5be88..d380187510 100644 --- a/src/client/app/common/scripts/get-kao.ts +++ b/src/client/app/common/scripts/get-kao.ts @@ -1,5 +1,5 @@ export default () => [ '(=^・・^=)', - 'v(‘ω’)v', + 'v('ω')v', '🐡( \'-\' 🐡 )フグパンチ!!!!' ][Math.floor(Math.random() * 3)]; diff --git a/src/client/app/common/views/components/google.vue b/src/client/app/common/views/components/google.vue index 92817d3c1f..8272961ef2 100644 --- a/src/client/app/common/views/components/google.vue +++ b/src/client/app/common/views/components/google.vue @@ -1,7 +1,7 @@ diff --git a/src/client/app/common/views/components/index.ts b/src/client/app/common/views/components/index.ts index 5b2fa084fb..e2cba2e53b 100644 --- a/src/client/app/common/views/components/index.ts +++ b/src/client/app/common/views/components/index.ts @@ -9,7 +9,7 @@ import forkit from './forkit.vue'; import acct from './acct.vue'; import avatar from './avatar.vue'; import nav from './nav.vue'; -import noteHtml from './note-html'; +import misskeyFlavoredMarkdown from './misskey-flavored-markdown'; import poll from './poll.vue'; import pollEditor from './poll-editor.vue'; import reactionIcon from './reaction-icon.vue'; @@ -47,7 +47,7 @@ Vue.component('mk-forkit', forkit); Vue.component('mk-acct', acct); Vue.component('mk-avatar', avatar); Vue.component('mk-nav', nav); -Vue.component('mk-note-html', noteHtml); +Vue.component('misskey-flavored-markdown', misskeyFlavoredMarkdown); Vue.component('mk-poll', poll); Vue.component('mk-poll-editor', pollEditor); Vue.component('mk-reaction-icon', reactionIcon); diff --git a/src/client/app/common/views/components/messaging-room.message.vue b/src/client/app/common/views/components/messaging-room.message.vue index a77b5f3658..f33173da6f 100644 --- a/src/client/app/common/views/components/messaging-room.message.vue +++ b/src/client/app/common/views/components/messaging-room.message.vue @@ -8,7 +8,7 @@ Delete
- +
@@ -32,7 +32,7 @@ + + diff --git a/src/client/app/common/views/widgets/hashtags.vue b/src/client/app/common/views/widgets/hashtags.vue index 9ab855d927..2065bd407c 100644 --- a/src/client/app/common/views/widgets/hashtags.vue +++ b/src/client/app/common/views/widgets/hashtags.vue @@ -6,7 +6,9 @@

%fa:spinner .pulse .fw%%i18n:common.loading%

%fa:exclamation-circle%%i18n:@empty%

- + + +
#{{ stat.tag }} @@ -14,7 +16,8 @@
- +
+
diff --git a/src/client/app/desktop/script.ts b/src/client/app/desktop/script.ts index 201ab0a83d..297100e0e0 100644 --- a/src/client/app/desktop/script.ts +++ b/src/client/app/desktop/script.ts @@ -36,6 +36,7 @@ import MkSearch from './views/pages/search.vue'; import MkTag from './views/pages/tag.vue'; import MkReversi from './views/pages/reversi.vue'; import MkShare from './views/pages/share.vue'; +import MkFollow from '../common/views/pages/follow.vue'; /** * init @@ -67,7 +68,8 @@ init(async (launch) => { { path: '/reversi', component: MkReversi }, { path: '/reversi/:game', component: MkReversi }, { path: '/@:user', component: MkUser }, - { path: '/notes/:note', component: MkNote } + { path: '/notes/:note', component: MkNote }, + { path: '/authorize-follow', component: MkFollow } ] }); @@ -115,6 +117,15 @@ function registerNotifications(stream: HomeStreamManager) { }); function attach(connection) { + connection.on('notification', notification => { + const _n = composeNotification('notification', notification); + const n = new Notification(_n.title, { + body: _n.body, + icon: _n.icon + }); + setTimeout(n.close.bind(n), 6000); + }); + connection.on('drive_file_created', file => { const _n = composeNotification('drive_file_created', file); const n = new Notification(_n.title, { @@ -124,33 +135,6 @@ function registerNotifications(stream: HomeStreamManager) { setTimeout(n.close.bind(n), 5000); }); - connection.on('mention', note => { - const _n = composeNotification('mention', note); - const n = new Notification(_n.title, { - body: _n.body, - icon: _n.icon - }); - setTimeout(n.close.bind(n), 6000); - }); - - connection.on('reply', note => { - const _n = composeNotification('reply', note); - const n = new Notification(_n.title, { - body: _n.body, - icon: _n.icon - }); - setTimeout(n.close.bind(n), 6000); - }); - - connection.on('quote', note => { - const _n = composeNotification('quote', note); - const n = new Notification(_n.title, { - body: _n.body, - icon: _n.icon - }); - setTimeout(n.close.bind(n), 6000); - }); - connection.on('unread_messaging_message', message => { const _n = composeNotification('unread_messaging_message', message); const n = new Notification(_n.title, { diff --git a/src/client/app/desktop/views/components/home.vue b/src/client/app/desktop/views/components/home.vue index ba48ce24e8..ab276d3c4b 100644 --- a/src/client/app/desktop/views/components/home.vue +++ b/src/client/app/desktop/views/components/home.vue @@ -66,7 +66,7 @@
- +
diff --git a/src/client/app/desktop/views/components/note-detail.vue b/src/client/app/desktop/views/components/note-detail.vue index 4b5e5bebdf..e3d16d7056 100644 --- a/src/client/app/desktop/views/components/note-detail.vue +++ b/src/client/app/desktop/views/components/note-detail.vue @@ -40,16 +40,13 @@
%i18n:@private% %i18n:@deleted% - +
-
- {{ tag }} -
%fa:map-marker-alt% %i18n:@location%
@@ -83,7 +80,7 @@ @@ -76,31 +102,11 @@ export default Vue.extend({ diff --git a/src/client/app/desktop/views/pages/user/user.home.vue b/src/client/app/desktop/views/pages/user/user.home.vue deleted file mode 100644 index afaf97dc9e..0000000000 --- a/src/client/app/desktop/views/pages/user/user.home.vue +++ /dev/null @@ -1,103 +0,0 @@ - - - - - diff --git a/src/client/app/desktop/views/pages/user/user.profile.vue b/src/client/app/desktop/views/pages/user/user.profile.vue index 5aa08f7c85..0134d6f0be 100644 --- a/src/client/app/desktop/views/pages/user/user.profile.vue +++ b/src/client/app/desktop/views/pages/user/user.profile.vue @@ -15,48 +15,17 @@
-
{{ user.description }}
-
-

%fa:birthday-cake%{{ user.profile.birthday.replace('-', '年').replace('-', '月') + '日' }} ({{ age }}歳)

-
-
-

%fa:B twitter%@{{ user.twitter.screenName }}

-
-
-

%fa:angle-right%{{ user.notesCount }}投稿

-

%fa:angle-right%{{ user.followingCount }}人をフォロー

-

%fa:angle-right%{{ user.followersCount }}人のフォロワー

-
diff --git a/src/client/app/desktop/views/pages/user/user.timeline.vue b/src/client/app/desktop/views/pages/user/user.timeline.vue index 812b5b4229..67987fcb94 100644 --- a/src/client/app/desktop/views/pages/user/user.timeline.vue +++ b/src/client/app/desktop/views/pages/user/user.timeline.vue @@ -1,9 +1,9 @@