summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2021-04-18 00:07:33 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2021-04-18 00:07:33 +0900
commit938fcb3e5ecc6862e40c9cb85b8010af63c69181 (patch)
tree512fa77d5b4dca9efd38af00a805c187876029fc /src/server/api/endpoints
parentMerge branch 'develop' (diff)
parent12.77.0 (diff)
downloadmisskey-938fcb3e5ecc6862e40c9cb85b8010af63c69181.tar.gz
misskey-938fcb3e5ecc6862e40c9cb85b8010af63c69181.tar.bz2
misskey-938fcb3e5ecc6862e40c9cb85b8010af63c69181.zip
Merge branch 'develop'
Diffstat (limited to 'src/server/api/endpoints')
-rw-r--r--src/server/api/endpoints/ap/get.ts38
-rw-r--r--src/server/api/endpoints/federation/dns.ts43
-rw-r--r--src/server/api/endpoints/get-online-users-count.ts19
-rw-r--r--src/server/api/endpoints/i/update.ts5
4 files changed, 96 insertions, 9 deletions
diff --git a/src/server/api/endpoints/ap/get.ts b/src/server/api/endpoints/ap/get.ts
new file mode 100644
index 0000000000..c889d472bb
--- /dev/null
+++ b/src/server/api/endpoints/ap/get.ts
@@ -0,0 +1,38 @@
+import $ from 'cafy';
+import define from '../../define';
+import Resolver from '../../../../remote/activitypub/resolver';
+import { ApiError } from '../../error';
+
+export const meta = {
+ tags: ['federation'],
+
+ desc: {
+ 'ja-JP': 'URIを指定してActivityPubオブジェクトを参照します。',
+ 'en-US': 'Browse to the ActivityPub object by specifying the URI.'
+ },
+
+ requireCredential: false as const,
+
+ params: {
+ uri: {
+ validator: $.str,
+ desc: {
+ 'ja-JP': 'ActivityPubオブジェクトのURI'
+ }
+ },
+ },
+
+ errors: {
+ },
+
+ res: {
+ type: 'object' as const,
+ optional: false as const, nullable: false as const,
+ }
+};
+
+export default define(meta, async (ps) => {
+ const resolver = new Resolver();
+ const object = await resolver.resolve(ps.uri);
+ return object;
+});
diff --git a/src/server/api/endpoints/federation/dns.ts b/src/server/api/endpoints/federation/dns.ts
new file mode 100644
index 0000000000..a188f46ac1
--- /dev/null
+++ b/src/server/api/endpoints/federation/dns.ts
@@ -0,0 +1,43 @@
+import { promises as dns } from 'dns';
+import $ from 'cafy';
+import define from '../../define';
+import { Instances } from '../../../../models';
+import { toPuny } from '@/misc/convert-host';
+
+const resolver = new dns.Resolver();
+resolver.setServers(['1.1.1.1']);
+
+export const meta = {
+ tags: ['federation'],
+
+ requireCredential: false as const,
+
+ params: {
+ host: {
+ validator: $.str
+ }
+ },
+};
+
+export default define(meta, async (ps, me) => {
+ const instance = await Instances.findOneOrFail({ host: toPuny(ps.host) });
+
+ const [
+ resolved4,
+ resolved6,
+ resolvedCname,
+ resolvedTxt,
+ ] = await Promise.all([
+ resolver.resolve4(instance.host).catch(() => []),
+ resolver.resolve6(instance.host).catch(() => []),
+ resolver.resolveCname(instance.host).catch(() => []),
+ resolver.resolveTxt(instance.host).catch(() => []),
+ ]);
+
+ return {
+ a: resolved4,
+ aaaa: resolved6,
+ cname: resolvedCname,
+ txt: resolvedTxt,
+ };
+});
diff --git a/src/server/api/endpoints/get-online-users-count.ts b/src/server/api/endpoints/get-online-users-count.ts
index 150ac9e365..a13363055f 100644
--- a/src/server/api/endpoints/get-online-users-count.ts
+++ b/src/server/api/endpoints/get-online-users-count.ts
@@ -1,6 +1,7 @@
+import { USER_ONLINE_THRESHOLD } from '@/const';
+import { Users } from '@/models';
+import { MoreThan } from 'typeorm';
import define from '../define';
-import { redisClient } from '../../../db/redis';
-import config from '@/config';
export const meta = {
tags: ['meta'],
@@ -11,12 +12,12 @@ export const meta = {
}
};
-export default define(meta, (ps, user) => {
- return new Promise((res, rej) => {
- redisClient.pubsub('numsub', config.host, (_, x) => {
- res({
- count: x[1]
- });
- });
+export default define(meta, async () => {
+ const count = await Users.count({
+ lastActiveDate: MoreThan(new Date(Date.now() - USER_ONLINE_THRESHOLD))
});
+
+ return {
+ count
+ };
});
diff --git a/src/server/api/endpoints/i/update.ts b/src/server/api/endpoints/i/update.ts
index c0ffd75e23..032dccd91a 100644
--- a/src/server/api/endpoints/i/update.ts
+++ b/src/server/api/endpoints/i/update.ts
@@ -96,6 +96,10 @@ export const meta = {
validator: $.optional.bool,
},
+ hideOnlineStatus: {
+ validator: $.optional.bool,
+ },
+
carefulBot: {
validator: $.optional.bool,
desc: {
@@ -228,6 +232,7 @@ export default define(meta, async (ps, _user, token) => {
if (ps.mutingNotificationTypes !== undefined) profileUpdates.mutingNotificationTypes = ps.mutingNotificationTypes as typeof notificationTypes[number][];
if (typeof ps.isLocked === 'boolean') updates.isLocked = ps.isLocked;
if (typeof ps.isExplorable === 'boolean') updates.isExplorable = ps.isExplorable;
+ if (typeof ps.hideOnlineStatus === 'boolean') updates.hideOnlineStatus = ps.hideOnlineStatus;
if (typeof ps.isBot === 'boolean') updates.isBot = ps.isBot;
if (typeof ps.carefulBot === 'boolean') profileUpdates.carefulBot = ps.carefulBot;
if (typeof ps.autoAcceptFollowed === 'boolean') profileUpdates.autoAcceptFollowed = ps.autoAcceptFollowed;