add basic nodeinfo 2.0
This commit is contained in:
parent
ca724dab9a
commit
0fc002b399
2 changed files with 55 additions and 0 deletions
35
src/routes/nodeinfo/nodeinfo_2.0.ts
Normal file
35
src/routes/nodeinfo/nodeinfo_2.0.ts
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
import { RouteOptions } from "fastify";
|
||||||
|
import { IsNull } from "typeorm";
|
||||||
|
|
||||||
|
import MercuryDataSource from "~/db/index.js";
|
||||||
|
import { Blog } from "~/db/entities/blog.js";
|
||||||
|
import { Post } from "~/db/entities/post.js";
|
||||||
|
|
||||||
|
const route: RouteOptions = {
|
||||||
|
method: "GET",
|
||||||
|
url: "/nodeinfo/2.0",
|
||||||
|
handler: async (_, res) => {
|
||||||
|
const userCount = await MercuryDataSource.getRepository(Blog).countBy({
|
||||||
|
host: IsNull(),
|
||||||
|
});
|
||||||
|
const postCount = await MercuryDataSource.getRepository(Post).count({
|
||||||
|
relations: { blog: true },
|
||||||
|
where: { blog: { host: IsNull() } },
|
||||||
|
});
|
||||||
|
|
||||||
|
res.send({
|
||||||
|
version: "2.0",
|
||||||
|
software: { name: "mercury", version: "0.1.0-dev" },
|
||||||
|
protocols: ["activitypub"],
|
||||||
|
openRegistrations: false, // TODO: get from database
|
||||||
|
usage: {
|
||||||
|
users: {
|
||||||
|
total: userCount,
|
||||||
|
},
|
||||||
|
localPosts: postCount,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default route;
|
20
src/routes/well-known/nodeinfo.ts
Normal file
20
src/routes/well-known/nodeinfo.ts
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
import { RouteOptions } from "fastify";
|
||||||
|
|
||||||
|
import { BASE_URL } from "~/config.js";
|
||||||
|
|
||||||
|
const route: RouteOptions = {
|
||||||
|
method: "GET",
|
||||||
|
url: "/.well-known/nodeinfo",
|
||||||
|
handler: async (_, res) => {
|
||||||
|
res.send({
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
href: `${BASE_URL}/nodeinfo/2.0`,
|
||||||
|
rel: "http://nodeinfo.diaspora.software/ns/schema/2.0",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default route;
|
Loading…
Reference in a new issue