summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints
diff options
context:
space:
mode:
authorHakaba Hitoyo <tsukadayoshio@gmail.com>2018-11-21 23:44:59 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2018-11-21 23:44:59 +0900
commitac14adfd3e9f3ad8b4d91ce1ede7a3916b7324f3 (patch)
tree6b2ea196061adc9c9fcaf1747b9c161be512bfaa /src/server/api/endpoints
parentImprove usability (diff)
downloadsharkey-ac14adfd3e9f3ad8b4d91ce1ede7a3916b7324f3.tar.gz
sharkey-ac14adfd3e9f3ad8b4d91ce1ede7a3916b7324f3.tar.bz2
sharkey-ac14adfd3e9f3ad8b4d91ce1ede7a3916b7324f3.zip
Feature / user recommendation config in admin ui (#3357)
* add config for external user recommendation into admin ui * debug * correct admin ui * switch external user recommendation to admin ui config * debug * debug * debug * Revert "debug" This reverts commit f4a0460e5bde21cd1f39a735f496a2d74233ef3f. * explicit parseInt radix * add Japanese message * change default engine to https * remove unused settings * debug * nullable externalUserRecommendationTimeout
Diffstat (limited to 'src/server/api/endpoints')
-rw-r--r--src/server/api/endpoints/admin/update-meta.ts33
-rw-r--r--src/server/api/endpoints/meta.ts10
-rw-r--r--src/server/api/endpoints/users/recommendation.ts10
3 files changed, 49 insertions, 4 deletions
diff --git a/src/server/api/endpoints/admin/update-meta.ts b/src/server/api/endpoints/admin/update-meta.ts
index bbae212bd7..edbb51e3dc 100644
--- a/src/server/api/endpoints/admin/update-meta.ts
+++ b/src/server/api/endpoints/admin/update-meta.ts
@@ -200,6 +200,27 @@ export const meta = {
desc: {
'ja-JP': 'DiscordアプリのClient Secret'
}
+ },
+
+ enableExternalUserRecommendation: {
+ validator: $.bool.optional,
+ desc: {
+ 'ja-JP': '外部ユーザーレコメンデーションを有効にする'
+ }
+ },
+
+ externalUserRecommendationEngine: {
+ validator: $.str.optional.nullable,
+ desc: {
+ 'ja-JP': '外部ユーザーレコメンデーションのサードパーティエンジン'
+ }
+ },
+
+ externalUserRecommendationTimeout: {
+ validator: $.num.optional.nullable.min(0),
+ desc: {
+ 'ja-JP': '外部ユーザーレコメンデーションのタイムアウト (ミリ秒)'
+ }
}
}
};
@@ -315,6 +336,18 @@ export default define(meta, (ps) => new Promise(async (res, rej) => {
set.discordClientSecret = ps.discordClientSecret;
}
+ if (ps.enableExternalUserRecommendation !== undefined) {
+ set.enableExternalUserRecommendation = ps.enableExternalUserRecommendation;
+ }
+
+ if (ps.externalUserRecommendationEngine !== undefined) {
+ set.externalUserRecommendationEngine = ps.externalUserRecommendationEngine;
+ }
+
+ if (ps.externalUserRecommendationTimeout !== undefined) {
+ set.externalUserRecommendationTimeout = ps.externalUserRecommendationTimeout;
+ }
+
await Meta.update({}, {
$set: set
}, { upsert: true });
diff --git a/src/server/api/endpoints/meta.ts b/src/server/api/endpoints/meta.ts
index 9846e95959..faee9423d8 100644
--- a/src/server/api/endpoints/meta.ts
+++ b/src/server/api/endpoints/meta.ts
@@ -72,6 +72,10 @@ export default define(meta, (ps, me) => new Promise(async (res, rej) => {
enableTwitterIntegration: instance.enableTwitterIntegration,
enableGithubIntegration: instance.enableGithubIntegration,
enableDiscordIntegration: instance.enableDiscordIntegration,
+
+ enableExternalUserRecommendation: instance.enableExternalUserRecommendation,
+ externalUserRecommendationEngine: instance.externalUserRecommendationEngine,
+ externalUserRecommendationTimeout: instance.externalUserRecommendationTimeout
};
if (ps.detail) {
@@ -85,7 +89,11 @@ export default define(meta, (ps, me) => new Promise(async (res, rej) => {
github: instance.enableGithubIntegration,
discord: instance.enableDiscordIntegration,
serviceWorker: config.sw ? true : false,
- userRecommendation: config.user_recommendation ? config.user_recommendation : {}
+ userRecommendation: {
+ external: instance.enableExternalUserRecommendation,
+ engine: instance.externalUserRecommendationEngine,
+ timeout: instance.externalUserRecommendationTimeout
+ }
};
}
diff --git a/src/server/api/endpoints/users/recommendation.ts b/src/server/api/endpoints/users/recommendation.ts
index 127029f83c..52e075006f 100644
--- a/src/server/api/endpoints/users/recommendation.ts
+++ b/src/server/api/endpoints/users/recommendation.ts
@@ -6,6 +6,8 @@ import Mute from '../../../../models/mute';
import * as request from 'request';
import config from '../../../../config';
import define from '../../define';
+import fetchMeta from '../../../../misc/fetch-meta';
+
export const meta = {
desc: {
@@ -30,13 +32,15 @@ export const meta = {
};
export default define(meta, (ps, me) => new Promise(async (res, rej) => {
- if (config.user_recommendation && config.user_recommendation.external) {
+ const instance = await fetchMeta();
+
+ if (instance.enableExternalUserRecommendation) {
const userName = me.username;
const hostName = config.hostname;
const limit = ps.limit;
const offset = ps.offset;
- const timeout = config.user_recommendation.timeout;
- const engine = config.user_recommendation.engine;
+ const timeout = instance.externalUserRecommendationTimeout;
+ const engine = instance.externalUserRecommendationEngine;
const url = engine
.replace('{{host}}', hostName)
.replace('{{user}}', userName)