diff --git a/src/docs/article.pug b/src/docs/article.pug
index 38494fec6c..48f501d406 100644
--- a/src/docs/article.pug
+++ b/src/docs/article.pug
@@ -6,4 +6,4 @@ block main
block footer
p
= i18n('docs.edit-this-page-on-github')
- a(href=src target="_blank")= i18n('docs.edit-this-page-on-github-link')
+ a(href=src rel="noopener" target="_blank")= i18n('docs.edit-this-page-on-github-link')
diff --git a/src/server/web/views/note.pug b/src/server/web/views/note.pug
index 983c731a04..0580e959f7 100644
--- a/src/server/web/views/note.pug
+++ b/src/server/web/views/note.pug
@@ -26,6 +26,9 @@ block meta
meta(name='twitter:card' content='summary')
// todo
+ if user.host
+ meta(name='robots' content='noindex')
+
if user.twitter
meta(name='twitter:creator' content=`@${user.twitter.screenName}`)
diff --git a/src/server/web/views/user.pug b/src/server/web/views/user.pug
index bff98ba80f..9b257afb7b 100644
--- a/src/server/web/views/user.pug
+++ b/src/server/web/views/user.pug
@@ -24,6 +24,9 @@ block meta
meta(name='twitter:card' content='summary')
+ if user.host
+ meta(name='robots' content='noindex')
+
if profile.twitter
meta(name='twitter:creator' content=`@${profile.twitter.screenName}`)
--
cgit v1.2.3-freya
From b128b593c205df895d8d9d3c5763d87f7e7ebd71 Mon Sep 17 00:00:00 2001
From: MeiMei <30769358+mei23@users.noreply.github.com>
Date: Tue, 14 May 2019 02:53:05 +0900
Subject: Fix: user menu (#4845) (#4920)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Fix: Firefoxで自分のメニューが開けないなど
* 自分のユーザーメニューにはミュートなどを表示しないようになど
---
.../app/common/views/components/user-menu.vue | 31 ++++++++++++----------
.../app/desktop/views/home/user/user.header.vue | 13 +--------
2 files changed, 18 insertions(+), 26 deletions(-)
(limited to 'src/client')
diff --git a/src/client/app/common/views/components/user-menu.vue b/src/client/app/common/views/components/user-menu.vue
index 0af0fdb7e4..7cbffa9f9a 100644
--- a/src/client/app/common/views/components/user-menu.vue
+++ b/src/client/app/common/views/components/user-menu.vue
@@ -7,7 +7,6 @@
diff --git a/src/client/app/common/views/components/signup.vue b/src/client/app/common/views/components/signup.vue
index 9b1df79771..bf8e5d25b8 100644
--- a/src/client/app/common/views/components/signup.vue
+++ b/src/client/app/common/views/components/signup.vue
@@ -37,8 +37,13 @@
{{ $t('password-not-matched') }}
+
+
+ {{ $t('tos') }}
+
+
-
{{ $t('create') }}
+
{{ $t('create') }}
@@ -64,7 +69,8 @@ export default Vue.extend({
usernameState: null,
passwordStrength: '',
passwordRetypeState: null,
- meta: null
+ meta: {},
+ ToSAgreement: false
}
},
diff --git a/src/models/entities/meta.ts b/src/models/entities/meta.ts
index 2c36b8333f..c3797a9ed6 100644
--- a/src/models/entities/meta.ts
+++ b/src/models/entities/meta.ts
@@ -268,4 +268,24 @@ export class Meta {
nullable: true
})
public discordClientSecret: string | null;
+
+ @Column('varchar', {
+ length: 512,
+ nullable: true
+ })
+ public ToSUrl: string | null;
+
+ @Column('varchar', {
+ length: 512,
+ default: 'https://github.com/syuilo/misskey',
+ nullable: false
+ })
+ public repositoryUrl: string;
+
+ @Column('varchar', {
+ length: 512,
+ default: 'https://github.com/syuilo/misskey/issues/new',
+ nullable: true
+ })
+ public feedbackUrl: string | null;
}
diff --git a/src/server/api/endpoints/admin/update-meta.ts b/src/server/api/endpoints/admin/update-meta.ts
index 8a2019fcc1..e34840e907 100644
--- a/src/server/api/endpoints/admin/update-meta.ts
+++ b/src/server/api/endpoints/admin/update-meta.ts
@@ -330,6 +330,27 @@ export const meta = {
'ja-JP': 'ServiceWorkerのVAPIDキーペアの秘密鍵'
}
},
+
+ ToSUrl: {
+ validator: $.optional.nullable.str,
+ desc: {
+ 'ja-JP': '利用規約のURL'
+ }
+ },
+
+ repositoryUrl: {
+ validator: $.optional.str,
+ desc: {
+ 'ja-JP': 'リポジトリのURL'
+ }
+ },
+
+ feedbackUrl: {
+ validator: $.optional.str,
+ desc: {
+ 'ja-JP': 'フィードバックのURL'
+ }
+ }
}
};
@@ -516,6 +537,18 @@ export default define(meta, async (ps) => {
set.swPrivateKey = ps.swPrivateKey;
}
+ if (ps.ToSUrl !== undefined) {
+ set.ToSUrl = ps.ToSUrl;
+ }
+
+ if (ps.repositoryUrl !== undefined) {
+ set.repositoryUrl = ps.repositoryUrl;
+ }
+
+ if (ps.feedbackUrl !== undefined) {
+ set.feedbackUrl = ps.feedbackUrl;
+ }
+
await getConnection().transaction(async transactionalEntityManager => {
const meta = await transactionalEntityManager.findOne(Meta, {
order: {
diff --git a/src/server/api/endpoints/meta.ts b/src/server/api/endpoints/meta.ts
index 5667e7fbb4..e29edae266 100644
--- a/src/server/api/endpoints/meta.ts
+++ b/src/server/api/endpoints/meta.ts
@@ -106,6 +106,9 @@ export default define(meta, async (ps, me) => {
uri: config.url,
description: instance.description,
langs: instance.langs,
+ ToSUrl: instance.ToSUrl,
+ repositoryUrl: instance.repositoryUrl,
+ feedbackUrl: instance.feedbackUrl,
secure: config.https != null,
machine: os.hostname(),
diff --git a/src/server/nodeinfo.ts b/src/server/nodeinfo.ts
index d3ad90fab5..da1e4e7b5e 100644
--- a/src/server/nodeinfo.ts
+++ b/src/server/nodeinfo.ts
@@ -26,6 +26,9 @@ const nodeinfo2 = async () => {
maintainerName,
maintainerEmail,
langs,
+ ToSUrl,
+ repositoryUrl,
+ feedbackUrl,
announcements,
disableRegistration,
disableLocalTimeline,
@@ -77,6 +80,9 @@ const nodeinfo2 = async () => {
email: maintainerEmail
},
langs,
+ ToSUrl,
+ repositoryUrl,
+ feedbackUrl,
announcements,
disableRegistration,
disableLocalTimeline,
--
cgit v1.2.3-freya
From 5d42ee2359c1f9a0018fc3ae9c7b3f2f2c6fbccc Mon Sep 17 00:00:00 2001
From: Satsuki Yanagi <17376330+u1-liquid@users.noreply.github.com>
Date: Tue, 14 May 2019 10:50:20 +0900
Subject: Fix tag cloud on Welcome page (#4922)
Resolve #4754
---
src/client/app/common/views/components/tag-cloud.vue | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'src/client')
diff --git a/src/client/app/common/views/components/tag-cloud.vue b/src/client/app/common/views/components/tag-cloud.vue
index b5eef964b6..3fa5e3b9d4 100644
--- a/src/client/app/common/views/components/tag-cloud.vue
+++ b/src/client/app/common/views/components/tag-cloud.vue
@@ -4,7 +4,7 @@
{{ $t('empty') }}
@@ -43,7 +43,7 @@ export default Vue.extend({
},
methods: {
fetch() {
- this.$root.api('aggregation/hashtags').then(tags => {
+ this.$root.api('hashtags/trend').then(tags => {
this.tags = tags;
this.fetching = false;
});
--
cgit v1.2.3-freya
From f9f574532e3a6baca7e04190c78600c5b334aaa0 Mon Sep 17 00:00:00 2001
From: syuilo
Date: Tue, 14 May 2019 20:49:09 +0900
Subject: インスタンスブロックを設定できるように
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
locales/ja-JP.yml | 2 ++
src/client/app/admin/views/federation.vue | 36 ++++++++++++++++++++++++---
src/server/api/endpoints/admin/update-meta.ts | 11 ++++++++
src/server/api/endpoints/meta.ts | 1 +
4 files changed, 47 insertions(+), 3 deletions(-)
(limited to 'src/client')
diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index c3bb4f7756..9390af40a9 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -1486,6 +1486,8 @@ admin/views/federation.vue:
chart-spans:
hour: "1時間ごと"
day: "1日ごと"
+ blocked-hosts: "ブロック"
+ blocked-hosts-info: "ブロックしたいホストを改行で区切って記述します。"
desktop/views/pages/welcome.vue:
about: "詳しく..."
diff --git a/src/client/app/admin/views/federation.vue b/src/client/app/admin/views/federation.vue
index 25400393b9..4d0b4b7c77 100644
--- a/src/client/app/admin/views/federation.vue
+++ b/src/client/app/admin/views/federation.vue
@@ -54,7 +54,6 @@
{{ $t('latest-request-received-at') }}
- {{ $t('block') }}
{{ $t('marked-as-closed') }}
{{ $t('charts') }}
@@ -142,6 +141,16 @@
{{ $t('result-is-truncated', { n: limit }) }}
+
+
+ {{ $t('blocked-hosts') }}
+
+
+ {{ $t('blocked-hosts-info') }}
+
+ {{ $t('save') }}
+
+
@@ -149,7 +158,7 @@
import Vue from 'vue';
import i18n from '../../i18n';
import { faPaperPlane } from '@fortawesome/free-regular-svg-icons';
-import { faGlobe, faTerminal, faSearch, faMinusCircle, faServer, faCrosshairs, faEnvelopeOpenText, faUsers, faCaretDown, faCaretUp, faTrafficLight, faInbox } from '@fortawesome/free-solid-svg-icons';
+import { faBan, faGlobe, faTerminal, faSearch, faMinusCircle, faServer, faCrosshairs, faEnvelopeOpenText, faUsers, faCaretDown, faCaretUp, faTrafficLight, faInbox } from '@fortawesome/free-solid-svg-icons';
import ApexCharts from 'apexcharts';
import * as tinycolor from 'tinycolor2';
@@ -176,7 +185,8 @@ export default Vue.extend({
chartSrc: 'requests',
chartSpan: 'hour',
chartInstance: null,
- faGlobe, faTerminal, faSearch, faMinusCircle, faServer, faCrosshairs, faEnvelopeOpenText, faUsers, faCaretDown, faCaretUp, faPaperPlane, faTrafficLight, faInbox
+ blockedHosts: '',
+ faBan, faGlobe, faTerminal, faSearch, faMinusCircle, faServer, faCrosshairs, faEnvelopeOpenText, faUsers, faCaretDown, faCaretUp, faPaperPlane, faTrafficLight, faInbox
};
},
@@ -246,6 +256,10 @@ export default Vue.extend({
mounted() {
this.fetchInstances();
+
+ this.$root.getMeta().then(meta => {
+ this.blockedHosts = meta.blockedHosts.join('\n');
+ });
},
beforeDestroy() {
@@ -477,6 +491,22 @@ export default Vue.extend({
}]
};
},
+
+ saveBlockedHosts() {
+ this.$root.api('admin/update-meta', {
+ blockedHosts: this.blockedHosts.split('\n')
+ }).then(() => {
+ this.$root.dialog({
+ type: 'success',
+ text: this.$t('saved')
+ });
+ }).catch(e => {
+ this.$root.dialog({
+ type: 'error',
+ text: e
+ });
+ });
+ }
}
});
diff --git a/src/server/api/endpoints/admin/update-meta.ts b/src/server/api/endpoints/admin/update-meta.ts
index e34840e907..e4f2e86aaa 100644
--- a/src/server/api/endpoints/admin/update-meta.ts
+++ b/src/server/api/endpoints/admin/update-meta.ts
@@ -70,6 +70,13 @@ export const meta = {
}
},
+ blockedHosts: {
+ validator: $.optional.nullable.arr($.str),
+ desc: {
+ 'ja-JP': 'ブロックするホスト'
+ }
+ },
+
mascotImageUrl: {
validator: $.optional.nullable.str,
desc: {
@@ -389,6 +396,10 @@ export default define(meta, async (ps) => {
set.hiddenTags = ps.hiddenTags;
}
+ if (Array.isArray(ps.blockedHosts)) {
+ set.blockedHosts = ps.blockedHosts;
+ }
+
if (ps.mascotImageUrl !== undefined) {
set.mascotImageUrl = ps.mascotImageUrl;
}
diff --git a/src/server/api/endpoints/meta.ts b/src/server/api/endpoints/meta.ts
index e29edae266..1bd88a1e6d 100644
--- a/src/server/api/endpoints/meta.ts
+++ b/src/server/api/endpoints/meta.ts
@@ -165,6 +165,7 @@ export default define(meta, async (ps, me) => {
response.useStarForReactionFallback = instance.useStarForReactionFallback;
response.pinnedUsers = instance.pinnedUsers;
response.hiddenTags = instance.hiddenTags;
+ response.blockedHosts = instance.blockedHosts;
response.recaptchaSecretKey = instance.recaptchaSecretKey;
response.proxyAccount = instance.proxyAccount;
response.twitterConsumerKey = instance.twitterConsumerKey;
--
cgit v1.2.3-freya
From c3529f06910c6c50d1f653e8853194f69396aeca Mon Sep 17 00:00:00 2001
From: syuilo
Date: Tue, 14 May 2019 20:53:49 +0900
Subject: Improve usability
---
locales/ja-JP.yml | 1 +
src/client/app/admin/views/instance.vue | 8 +++++---
2 files changed, 6 insertions(+), 3 deletions(-)
(limited to 'src/client')
diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index 9390af40a9..7068e7c3ed 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -1272,6 +1272,7 @@ admin/views/instance.vue:
save: "保存"
saved: "保存しました"
pinned-users: "ピン留めユーザー"
+ pinned-users-info: "ピン留めしたいユーザーを改行で区切って記述します。"
email-config: "メールサーバーの設定"
email-config-info: "メールアドレス確認やパスワードリセットの際に使われます。"
enable-email: "メール配信を有効にする"
diff --git a/src/client/app/admin/views/instance.vue b/src/client/app/admin/views/instance.vue
index 3bbe6579d3..4e7411a723 100644
--- a/src/client/app/admin/views/instance.vue
+++ b/src/client/app/admin/views/instance.vue
@@ -87,8 +87,10 @@
{{ $t('pinned-users') }}
-
-
+
+
+ {{ $t('pinned-users-info') }}
+
{{ $t('save') }}
@@ -204,7 +206,7 @@ export default Vue.extend({
enableServiceWorker: false,
swPublicKey: null,
swPrivateKey: null,
- pinnedUsers: [],
+ pinnedUsers: '',
faHeadset, faShieldAlt, faGhost, faUserPlus, farEnvelope, faBolt
};
},
--
cgit v1.2.3-freya
From 811f9c22d78438a107061b24714539225d44c9c3 Mon Sep 17 00:00:00 2001
From: syuilo
Date: Tue, 14 May 2019 20:57:24 +0900
Subject: :art:
---
src/client/app/admin/views/instance.vue | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
(limited to 'src/client')
diff --git a/src/client/app/admin/views/instance.vue b/src/client/app/admin/views/instance.vue
index 4e7411a723..5cdd22296f 100644
--- a/src/client/app/admin/views/instance.vue
+++ b/src/client/app/admin/views/instance.vue
@@ -86,7 +86,7 @@
- {{ $t('pinned-users') }}
+ {{ $t('pinned-users') }}
{{ $t('pinned-users-info') }}
@@ -149,7 +149,7 @@ import Vue from 'vue';
import i18n from '../../i18n';
import { url, host } from '../../config';
import { toUnicode } from 'punycode';
-import { faHeadset, faShieldAlt, faGhost, faUserPlus, faBolt } from '@fortawesome/free-solid-svg-icons';
+import { faHeadset, faShieldAlt, faGhost, faUserPlus, faBolt, faThumbtack } from '@fortawesome/free-solid-svg-icons';
import { faEnvelope as farEnvelope } from '@fortawesome/free-regular-svg-icons';
export default Vue.extend({
@@ -207,7 +207,7 @@ export default Vue.extend({
swPublicKey: null,
swPrivateKey: null,
pinnedUsers: '',
- faHeadset, faShieldAlt, faGhost, faUserPlus, farEnvelope, faBolt
+ faHeadset, faShieldAlt, faGhost, faUserPlus, farEnvelope, faBolt, faThumbtack
};
},
--
cgit v1.2.3-freya
From b779ff08e0aeb95b879972b7dc26bc81a81e627c Mon Sep 17 00:00:00 2001
From: syuilo
Date: Tue, 14 May 2019 21:08:35 +0900
Subject: 特定のインスタンスのファイルをすべて削除できるように
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
locales/ja-JP.yml | 1 +
src/client/app/admin/views/federation.vue | 19 +++++++++++++--
.../endpoints/admin/federation/delete-all-files.ts | 27 ++++++++++++++++++++++
3 files changed, 45 insertions(+), 2 deletions(-)
create mode 100644 src/server/api/endpoints/admin/federation/delete-all-files.ts
(limited to 'src/client')
diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index 7068e7c3ed..ed0da44d68 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -1441,6 +1441,7 @@ admin/views/federation.vue:
latest-request-received-at: "直近のリクエスト受信"
remove-all-following: "フォローを全解除"
remove-all-following-info: "{host}からのフォローをすべて解除します。そのインスタンスがもう存在しなくなった場合などに実行してください。"
+ delete-all-files: "ファイルをすべて削除"
block: "ブロック"
marked-as-closed: "閉鎖されているとマーク"
lookup: "照会"
diff --git a/src/client/app/admin/views/federation.vue b/src/client/app/admin/views/federation.vue
index 4d0b4b7c77..8b7719069c 100644
--- a/src/client/app/admin/views/federation.vue
+++ b/src/client/app/admin/views/federation.vue
@@ -78,6 +78,10 @@
+
+ {{ $t('delete-all-files') }}
+ {{ $t('delete-all-files') }}
+
{{ $t('remove-all-following') }}
{{ $t('remove-all-following') }}
@@ -158,7 +162,7 @@
import Vue from 'vue';
import i18n from '../../i18n';
import { faPaperPlane } from '@fortawesome/free-regular-svg-icons';
-import { faBan, faGlobe, faTerminal, faSearch, faMinusCircle, faServer, faCrosshairs, faEnvelopeOpenText, faUsers, faCaretDown, faCaretUp, faTrafficLight, faInbox } from '@fortawesome/free-solid-svg-icons';
+import { faTrashAlt, faBan, faGlobe, faTerminal, faSearch, faMinusCircle, faServer, faCrosshairs, faEnvelopeOpenText, faUsers, faCaretDown, faCaretUp, faTrafficLight, faInbox } from '@fortawesome/free-solid-svg-icons';
import ApexCharts from 'apexcharts';
import * as tinycolor from 'tinycolor2';
@@ -186,7 +190,7 @@ export default Vue.extend({
chartSpan: 'hour',
chartInstance: null,
blockedHosts: '',
- faBan, faGlobe, faTerminal, faSearch, faMinusCircle, faServer, faCrosshairs, faEnvelopeOpenText, faUsers, faCaretDown, faCaretUp, faPaperPlane, faTrafficLight, faInbox
+ faTrashAlt, faBan, faGlobe, faTerminal, faSearch, faMinusCircle, faServer, faCrosshairs, faEnvelopeOpenText, faUsers, faCaretDown, faCaretUp, faPaperPlane, faTrafficLight, faInbox
};
},
@@ -307,6 +311,17 @@ export default Vue.extend({
});
},
+ deleteAllFiles() {
+ this.$root.api('admin/federation/delete-all-files', {
+ host: this.instance.host
+ }).then(() => {
+ this.$root.dialog({
+ type: 'success',
+ splash: true
+ });
+ });
+ },
+
updateInstance() {
this.$root.api('admin/federation/update-instance', {
host: this.instance.host,
diff --git a/src/server/api/endpoints/admin/federation/delete-all-files.ts b/src/server/api/endpoints/admin/federation/delete-all-files.ts
new file mode 100644
index 0000000000..befb362264
--- /dev/null
+++ b/src/server/api/endpoints/admin/federation/delete-all-files.ts
@@ -0,0 +1,27 @@
+import $ from 'cafy';
+import define from '../../../define';
+import del from '../../../../../services/drive/delete-file';
+import { DriveFiles } from '../../../../../models';
+
+export const meta = {
+ tags: ['admin'],
+
+ requireCredential: true,
+ requireModerator: true,
+
+ params: {
+ host: {
+ validator: $.str
+ }
+ }
+};
+
+export default define(meta, async (ps, me) => {
+ const files = await DriveFiles.find({
+ userHost: ps.host
+ });
+
+ for (const file of files) {
+ del(file);
+ }
+});
--
cgit v1.2.3-freya