summaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-05-14 21:25:24 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-05-14 21:25:24 +0900
commit466fe9c3684082e352bc294bed82c7769fedf495 (patch)
treed963c2c09d898b22f7530c717181d64ca98ab9c8 /src/server
parentMerge branch 'develop' (diff)
parent11.13.0 (diff)
downloadmisskey-466fe9c3684082e352bc294bed82c7769fedf495.tar.gz
misskey-466fe9c3684082e352bc294bed82c7769fedf495.tar.bz2
misskey-466fe9c3684082e352bc294bed82c7769fedf495.zip
Merge branch 'develop'
Diffstat (limited to 'src/server')
-rw-r--r--src/server/activitypub/featured.ts5
-rw-r--r--src/server/api/endpoints/admin/federation/delete-all-files.ts27
-rw-r--r--src/server/api/endpoints/admin/update-meta.ts44
-rw-r--r--src/server/api/endpoints/meta.ts4
-rw-r--r--src/server/nodeinfo.ts6
-rw-r--r--src/server/web/views/note.pug3
-rw-r--r--src/server/web/views/user.pug3
7 files changed, 91 insertions, 1 deletions
diff --git a/src/server/activitypub/featured.ts b/src/server/activitypub/featured.ts
index 86ec1000c7..dae72f16b6 100644
--- a/src/server/activitypub/featured.ts
+++ b/src/server/activitypub/featured.ts
@@ -21,7 +21,10 @@ export default async (ctx: Router.IRouterContext) => {
return;
}
- const pinings = await UserNotePinings.find({ userId: user.id });
+ const pinings = await UserNotePinings.find({
+ where: { userId: user.id },
+ order: { id: 'DESC' }
+ });
const pinnedNotes = await Promise.all(pinings.map(pining =>
Notes.findOne(pining.noteId).then(ensure)));
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);
+ }
+});
diff --git a/src/server/api/endpoints/admin/update-meta.ts b/src/server/api/endpoints/admin/update-meta.ts
index 8a2019fcc1..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: {
@@ -330,6 +337,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'
+ }
+ }
}
};
@@ -368,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;
}
@@ -516,6 +548,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..1bd88a1e6d 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(),
@@ -162,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;
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,
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}`)