Add nodeinfo
This commit is contained in:
parent
8894bb5513
commit
8fa6ac0a4c
|
@ -28,6 +28,7 @@ import {
|
||||||
import { streamingController } from './controllers/api/streaming.ts';
|
import { streamingController } from './controllers/api/streaming.ts';
|
||||||
import { indexController } from './controllers/site.ts';
|
import { indexController } from './controllers/site.ts';
|
||||||
import { hostMetaController } from './controllers/well-known/host-meta.ts';
|
import { hostMetaController } from './controllers/well-known/host-meta.ts';
|
||||||
|
import { nodeInfoController, nodeInfoSchemaController } from './controllers/well-known/nodeinfo.ts';
|
||||||
import { nostrController } from './controllers/well-known/nostr.ts';
|
import { nostrController } from './controllers/well-known/nostr.ts';
|
||||||
import { webfingerController } from './controllers/well-known/webfinger.ts';
|
import { webfingerController } from './controllers/well-known/webfinger.ts';
|
||||||
import { auth19, requireAuth } from './middleware/auth19.ts';
|
import { auth19, requireAuth } from './middleware/auth19.ts';
|
||||||
|
@ -61,8 +62,11 @@ app.use('*', cors({ origin: '*', exposeHeaders: ['link'] }), auth19, auth98());
|
||||||
|
|
||||||
app.get('/.well-known/webfinger', webfingerController);
|
app.get('/.well-known/webfinger', webfingerController);
|
||||||
app.get('/.well-known/host-meta', hostMetaController);
|
app.get('/.well-known/host-meta', hostMetaController);
|
||||||
|
app.get('/.well-known/nodeinfo', nodeInfoController);
|
||||||
app.get('/.well-known/nostr.json', nostrController);
|
app.get('/.well-known/nostr.json', nostrController);
|
||||||
|
|
||||||
|
app.get('/nodeinfo/:version', nodeInfoSchemaController);
|
||||||
|
|
||||||
app.get('/api/v1/instance', instanceController);
|
app.get('/api/v1/instance', instanceController);
|
||||||
|
|
||||||
app.get('/api/v1/apps/verify_credentials', appCredentialsController);
|
app.get('/api/v1/apps/verify_credentials', appCredentialsController);
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
import { Conf } from '@/config.ts';
|
||||||
|
|
||||||
|
import type { AppController } from '@/app.ts';
|
||||||
|
|
||||||
|
const nodeInfoController: AppController = (c) => {
|
||||||
|
return c.json({
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
rel: 'http://nodeinfo.diaspora.software/ns/schema/2.0',
|
||||||
|
href: Conf.local('/nodeinfo/2.0'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
rel: 'http://nodeinfo.diaspora.software/ns/schema/2.1',
|
||||||
|
href: Conf.local('/nodeinfo/2.1'),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const nodeInfoSchemaController: AppController = (c) => {
|
||||||
|
return c.json({
|
||||||
|
version: '2.1',
|
||||||
|
software: {
|
||||||
|
name: 'ditto',
|
||||||
|
version: '0.0.0',
|
||||||
|
repository: 'https://gitlab.com/soapbox-pub/ditto',
|
||||||
|
homepage: 'https://soapbox.pub',
|
||||||
|
},
|
||||||
|
protocols: [
|
||||||
|
'activitypub',
|
||||||
|
],
|
||||||
|
services: {
|
||||||
|
inbound: [],
|
||||||
|
outbound: [],
|
||||||
|
},
|
||||||
|
openRegistrations: false,
|
||||||
|
usage: {
|
||||||
|
users: {
|
||||||
|
total: 0,
|
||||||
|
activeMonth: 0,
|
||||||
|
activeHalfyear: 0,
|
||||||
|
},
|
||||||
|
localPosts: 0,
|
||||||
|
localComments: 0,
|
||||||
|
},
|
||||||
|
metadata: {
|
||||||
|
features: [
|
||||||
|
'nip05',
|
||||||
|
'nostr_bridge',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
export { nodeInfoController, nodeInfoSchemaController };
|
Loading…
Reference in New Issue