fix: some Masotdon API compat issues (#9592)

Co-authored-by: GeopJr <geopjr@noreply.codeberg.org>
Co-committed-by: GeopJr <geopjr@noreply.codeberg.org>
This commit is contained in:
GeopJr 2023-02-10 02:58:52 +00:00 committed by Kainoa Kanter
parent 6554b2eb9a
commit da2368bf7a
7 changed files with 17 additions and 18 deletions

View File

@ -33,7 +33,7 @@ export function apiAccountMastodon(router: Router): void {
ctx.body = e.response.data; ctx.body = e.response.data;
} }
}); });
router.patch('/v1/accounts/update_credentials', async (ctx) => { router.patch('/v1/accounts/update_credentials', koaBody({ multipart: true }), async (ctx) => {
const BASE_URL = `${ctx.protocol}://${ctx.hostname}`; const BASE_URL = `${ctx.protocol}://${ctx.hostname}`;
const accessTokens = ctx.headers.authorization; const accessTokens = ctx.headers.authorization;
const client = getClient(BASE_URL, accessTokens); const client = getClient(BASE_URL, accessTokens);
@ -177,7 +177,7 @@ export function apiAccountMastodon(router: Router): void {
ctx.body = e.response.data; ctx.body = e.response.data;
} }
}); });
router.post<{ Params: { id: string } }>('/v1/accounts/:id/mute', async (ctx) => { router.post<{ Params: { id: string } }>('/v1/accounts/:id/mute', koaBody({ multipart: true }), async (ctx) => {
const BASE_URL = `${ctx.protocol}://${ctx.hostname}`; const BASE_URL = `${ctx.protocol}://${ctx.hostname}`;
const accessTokens = ctx.headers.authorization; const accessTokens = ctx.headers.authorization;
const client = getClient(BASE_URL, accessTokens); const client = getClient(BASE_URL, accessTokens);

View File

@ -42,7 +42,7 @@ const writeScope = [
export function apiAuthMastodon(router: Router): void { export function apiAuthMastodon(router: Router): void {
router.post('/v1/apps', async (ctx) => { router.post('/v1/apps', koaBody({ multipart: true }), async (ctx) => {
const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`; const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`;
const accessTokens = ctx.request.headers.authorization; const accessTokens = ctx.request.headers.authorization;
const client = getClient(BASE_URL, accessTokens); const client = getClient(BASE_URL, accessTokens);

View File

@ -5,7 +5,7 @@ import { getClient } from '../ApiMastodonCompatibleService.js';
export function apiFilterMastodon(router: Router): void { export function apiFilterMastodon(router: Router): void {
router.get('/v1/filters', async (ctx) => { router.get('/v1/filters', koaBody({ multipart: true }), async (ctx) => {
const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`; const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`;
const accessTokens = ctx.request.headers.authorization; const accessTokens = ctx.request.headers.authorization;
const client = getClient(BASE_URL, accessTokens); const client = getClient(BASE_URL, accessTokens);
@ -20,7 +20,7 @@ export function apiFilterMastodon(router: Router): void {
} }
}); });
router.get('/v1/filters/:id', async (ctx) => { router.get('/v1/filters/:id', koaBody({ multipart: true }), async (ctx) => {
const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`; const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`;
const accessTokens = ctx.request.headers.authorization; const accessTokens = ctx.request.headers.authorization;
const client = getClient(BASE_URL, accessTokens); const client = getClient(BASE_URL, accessTokens);
@ -35,7 +35,7 @@ export function apiFilterMastodon(router: Router): void {
} }
}); });
router.post('/v1/filters', async (ctx) => { router.post('/v1/filters', koaBody({ multipart: true }), async (ctx) => {
const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`; const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`;
const accessTokens = ctx.request.headers.authorization; const accessTokens = ctx.request.headers.authorization;
const client = getClient(BASE_URL, accessTokens); const client = getClient(BASE_URL, accessTokens);
@ -50,7 +50,7 @@ export function apiFilterMastodon(router: Router): void {
} }
}); });
router.post('/v1/filters/:id', async (ctx) => { router.post('/v1/filters/:id', koaBody({ multipart: true }), async (ctx) => {
const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`; const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`;
const accessTokens = ctx.request.headers.authorization; const accessTokens = ctx.request.headers.authorization;
const client = getClient(BASE_URL, accessTokens); const client = getClient(BASE_URL, accessTokens);
@ -65,7 +65,7 @@ export function apiFilterMastodon(router: Router): void {
} }
}); });
router.delete('/v1/filters/:id', async (ctx) => { router.delete('/v1/filters/:id', koaBody({ multipart: true }), async (ctx) => {
const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`; const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`;
const accessTokens = ctx.request.headers.authorization; const accessTokens = ctx.request.headers.authorization;
const client = getClient(BASE_URL, accessTokens); const client = getClient(BASE_URL, accessTokens);

View File

@ -10,7 +10,7 @@ function toLimitToInt(q: any) {
export function apiNotificationsMastodon(router: Router): void { export function apiNotificationsMastodon(router: Router): void {
router.get('/v1/notifications', async (ctx) => { router.get('/v1/notifications', async (ctx) => {
const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`; const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`;
const accessTokens = ctx.request.headers.authorization; const accessTokens = ctx.request.headers.authorization;
const client = getClient(BASE_URL, accessTokens); const client = getClient(BASE_URL, accessTokens);
@ -35,7 +35,7 @@ export function apiNotificationsMastodon(router: Router): void {
} }
}); });
router.get('/v1/notification/:id', async (ctx) => { router.get('/v1/notification/:id', async (ctx) => {
const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`; const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`;
const accessTokens = ctx.request.headers.authorization; const accessTokens = ctx.request.headers.authorization;
const client = getClient(BASE_URL, accessTokens); const client = getClient(BASE_URL, accessTokens);
@ -56,7 +56,7 @@ export function apiNotificationsMastodon(router: Router): void {
} }
}); });
router.post('/v1/notifications/clear', async (ctx) => { router.post('/v1/notifications/clear', async (ctx) => {
const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`; const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`;
const accessTokens = ctx.request.headers.authorization; const accessTokens = ctx.request.headers.authorization;
const client = getClient(BASE_URL, accessTokens); const client = getClient(BASE_URL, accessTokens);
@ -71,7 +71,7 @@ export function apiNotificationsMastodon(router: Router): void {
} }
}); });
router.post('/v1/notification/:id/dismiss', async (ctx) => { router.post('/v1/notification/:id/dismiss', koaBody({ multipart: true }), async (ctx) => {
const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`; const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`;
const accessTokens = ctx.request.headers.authorization; const accessTokens = ctx.request.headers.authorization;
const client = getClient(BASE_URL, accessTokens); const client = getClient(BASE_URL, accessTokens);

View File

@ -1,11 +1,10 @@
import megalodon, { MegalodonInterface } from '@cutls/megalodon'; import megalodon, { MegalodonInterface } from '@cutls/megalodon';
import Router from "@koa/router"; import Router from "@koa/router";
import { koaBody } from 'koa-body';
import { getClient } from '../ApiMastodonCompatibleService.js'; import { getClient } from '../ApiMastodonCompatibleService.js';
export function apiSearchMastodon(router: Router): void { export function apiSearchMastodon(router: Router): void {
router.get('/v1/search', async (ctx) => { router.get('/v1/search', async (ctx) => {
const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`; const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`;
const accessTokens = ctx.request.headers.authorization; const accessTokens = ctx.request.headers.authorization;
const client = getClient(BASE_URL, accessTokens); const client = getClient(BASE_URL, accessTokens);

View File

@ -11,7 +11,7 @@ import axios from 'axios';
const pump = promisify(pipeline); const pump = promisify(pipeline);
export function apiStatusMastodon(router: Router): void { export function apiStatusMastodon(router: Router): void {
router.post('/v1/statuses', async (ctx, reply) => { router.post('/v1/statuses', koaBody({ multipart: true }), async (ctx, reply) => {
const BASE_URL = `${ctx.protocol}://${ctx.hostname}`; const BASE_URL = `${ctx.protocol}://${ctx.hostname}`;
const accessTokens = ctx.headers.authorization; const accessTokens = ctx.headers.authorization;
const client = getClient(BASE_URL, accessTokens); const client = getClient(BASE_URL, accessTokens);
@ -284,7 +284,7 @@ export function apiStatusMastodon(router: Router): void {
ctx.body = e.response.data; ctx.body = e.response.data;
} }
}); });
router.put<{ Params: { id: string } }>('/v1/media/:id', async (ctx, reply) => { router.put<{ Params: { id: string } }>('/v1/media/:id', koaBody({ multipart: true }), async (ctx, reply) => {
const BASE_URL = `${ctx.protocol}://${ctx.hostname}`; const BASE_URL = `${ctx.protocol}://${ctx.hostname}`;
const accessTokens = ctx.headers.authorization; const accessTokens = ctx.headers.authorization;
const client = getClient(BASE_URL, accessTokens); const client = getClient(BASE_URL, accessTokens);
@ -310,7 +310,7 @@ export function apiStatusMastodon(router: Router): void {
ctx.body = e.response.data; ctx.body = e.response.data;
} }
}); });
router.post<{ Params: { id: string } }>('/v1/polls/:id/votes', async (ctx, reply) => { router.post<{ Params: { id: string } }>('/v1/polls/:id/votes', koaBody({ multipart: true }), async (ctx, reply) => {
const BASE_URL = `${ctx.protocol}://${ctx.hostname}`; const BASE_URL = `${ctx.protocol}://${ctx.hostname}`;
const accessTokens = ctx.headers.authorization; const accessTokens = ctx.headers.authorization;
const client = getClient(BASE_URL, accessTokens); const client = getClient(BASE_URL, accessTokens);

View File

@ -141,7 +141,7 @@ router.get("/oauth/authorize", async (ctx) => {
ctx.redirect(Buffer.from(client_id?.toString() || '', 'base64').toString()); ctx.redirect(Buffer.from(client_id?.toString() || '', 'base64').toString());
}); });
router.get("/oauth/token", async (ctx) => { router.post("/oauth/token", async (ctx) => {
const body: any = ctx.request.body; const body: any = ctx.request.body;
const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`; const BASE_URL = `${ctx.request.protocol}://${ctx.request.hostname}`;
const generator = (megalodon as any).default; const generator = (megalodon as any).default;