diff --git a/megalodon/src/detector.ts b/megalodon/src/detector.ts index ad467dae..b90c8292 100644 --- a/megalodon/src/detector.ts +++ b/megalodon/src/detector.ts @@ -74,7 +74,7 @@ export const detector = async (url: string): Promise<'mastodon' | 'pleroma' | 'f case 'gotosocial': return 'gotosocial' default: - if (res.data.metadata.upstream?.name && res.data.metadata.upstream.name === 'mastodon') { + if (res.data.metadata.upstream?.name && res.data.metadata.upstream.name.toLowerCase() === 'mastodon') { return 'mastodon' } throw new NodeinfoError('Unknown SNS') @@ -98,7 +98,7 @@ export const detector = async (url: string): Promise<'mastodon' | 'pleroma' | 'f case 'gotosocial': return 'gotosocial' default: - if (res.data.metadata.upstream?.name && res.data.metadata.upstream.name === 'mastodon') { + if (res.data.metadata.upstream?.name && res.data.metadata.upstream.name.toLowerCase() === 'mastodon') { return 'mastodon' } throw new NodeinfoError('Unknown SNS') @@ -122,7 +122,7 @@ export const detector = async (url: string): Promise<'mastodon' | 'pleroma' | 'f case 'gotosocial': return 'gotosocial' default: - if (res.data.metadata.upstream?.name && res.data.metadata.upstream.name === 'mastodon') { + if (res.data.metadata.upstream?.name && res.data.metadata.upstream.name.toLowerCase() === 'mastodon') { return 'mastodon' } throw new NodeinfoError('Unknown SNS') diff --git a/megalodon/test/integration/detector.spec.ts b/megalodon/test/integration/detector.spec.ts index dbabed34..25251530 100644 --- a/megalodon/test/integration/detector.spec.ts +++ b/megalodon/test/integration/detector.spec.ts @@ -65,6 +65,14 @@ describe('detector', () => { }) }) + describe('kmy.blue', () => { + const url = 'https://kmy.blue' + it('should be mastodon', async () => { + const kmyblue = await detector(url) + expect(kmyblue).toEqual('mastodon') + }) + }) + describe('unknown', () => { const url = 'https://google.com' it('should be null', async () => {