Fix: Punycodeなインスタンスが重複登録される (#4667)
This commit is contained in:
parent
6abc053a48
commit
81006566a5
2 changed files with 6 additions and 2 deletions
|
@ -16,7 +16,8 @@ import discord from './service/discord';
|
||||||
import github from './service/github';
|
import github from './service/github';
|
||||||
import twitter from './service/twitter';
|
import twitter from './service/twitter';
|
||||||
import Instance from '../../models/instance';
|
import Instance from '../../models/instance';
|
||||||
import { toASCII } from 'punycode';
|
import { toApHost } from '../../misc/convert-host';
|
||||||
|
import { unique } from '../../prelude/array';
|
||||||
|
|
||||||
// Init app
|
// Init app
|
||||||
const app = new Koa();
|
const app = new Koa();
|
||||||
|
@ -72,7 +73,7 @@ router.get('/v1/instance/peers', async ctx => {
|
||||||
host: 1
|
host: 1
|
||||||
});
|
});
|
||||||
|
|
||||||
const punyCodes = instances.map(instance => toASCII(instance.host));
|
const punyCodes = unique(instances.map(instance => toApHost(instance.host)));
|
||||||
|
|
||||||
ctx.body = punyCodes;
|
ctx.body = punyCodes;
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
import Instance, { IInstance } from '../models/instance';
|
import Instance, { IInstance } from '../models/instance';
|
||||||
import federationChart from '../services/chart/federation';
|
import federationChart from '../services/chart/federation';
|
||||||
|
import { toDbHost } from '../misc/convert-host';
|
||||||
|
|
||||||
export async function registerOrFetchInstanceDoc(host: string): Promise<IInstance> {
|
export async function registerOrFetchInstanceDoc(host: string): Promise<IInstance> {
|
||||||
if (host == null) return null;
|
if (host == null) return null;
|
||||||
|
|
||||||
|
host = toDbHost(host);
|
||||||
|
|
||||||
const index = await Instance.findOne({ host });
|
const index = await Instance.findOne({ host });
|
||||||
|
|
||||||
if (index == null) {
|
if (index == null) {
|
||||||
|
|
Loading…
Reference in a new issue