diff --git a/src/site/api/api.js b/src/site/api/api.js index b9ff912..cd8c235 100644 --- a/src/site/api/api.js +++ b/src/site/api/api.js @@ -10,9 +10,59 @@ function reply(statusCode, content) { } module.exports = [ - {route: `/api/user/(${constants.external.username_regex})`, methods: ["GET"], code: async ({fill}) => { - const user = await fetchUser(fill[0]) - const data = user.export() - return reply(200, data) - }} + { + route: `/api/user/(${constants.external.username_regex})`, methods: ["GET"], code: async ({fill}) => { + const user = await fetchUser(fill[0]) + const data = user.export() + return reply(200, data) + } + }, + { + route: "/.well-known/nodeinfo", methods: ["GET"], code: async ({fill}) => { + return reply(200, { + link: [ + { + rel: "http://nodeinfo.diaspora.software/ns/schema/2.0", + href: `${constants.website_origin}/api/stats/2.0` + } + ] + }) + } + }, + { + route: "/api/stats/2.0", methods: ["GET"], code: async ({fill}) => { + return reply(200, { + version: "2.0", + software: { + name: "bibliogram", + version: "1.0.0" + }, + protocols: [], + services: { + inbound: [ + "instagram" + ], + outbound: [] + }, + openRegistrations: false, + usage: { + users: { + total: 0, + activeHalfyear: 0, + activeMonth: 0 + } + }, + metadata: { + bibliogram: { + version: "1.0", + features: [ + "PAGE_PROFILE", + "PAGE_POST", + "API_STATS" + ] + } + } + }) + } + } ]