Mastodon API: convert IDs in conversations

This commit is contained in:
Vyr Cossont 2023-08-14 12:18:57 -07:00
parent fd4bf7f333
commit 6773ef711a
2 changed files with 19 additions and 2 deletions

View file

@ -74,3 +74,13 @@ export function convertStatus(status: Entity.Status) {
return status; return status;
} }
export function convertConversation(conversation: Entity.Conversation) {
conversation.id = convertId(conversation.id, IdType.MastodonId);
conversation.accounts = conversation.accounts.map(convertAccount);
if (conversation.last_status) {
conversation.last_status = convertStatus(conversation.last_status);
}
return conversation;
}

View file

@ -1,7 +1,12 @@
import Router from "@koa/router"; import Router from "@koa/router";
import { getClient } from "../ApiMastodonCompatibleService.js"; import { getClient } from "../ApiMastodonCompatibleService.js";
import { ParsedUrlQuery } from "querystring"; import { ParsedUrlQuery } from "querystring";
import { convertAccount, convertList, convertStatus } from "../converters.js"; import {
convertAccount,
convertConversation,
convertList,
convertStatus,
} from "../converters.js";
import { convertId, IdType } from "../../index.js"; import { convertId, IdType } from "../../index.js";
export function limitToInt(q: ParsedUrlQuery) { export function limitToInt(q: ParsedUrlQuery) {
@ -136,7 +141,9 @@ export function apiTimelineMastodon(router: Router): void {
const data = await client.getConversationTimeline( const data = await client.getConversationTimeline(
convertTimelinesArgsId(limitToInt(ctx.query)), convertTimelinesArgsId(limitToInt(ctx.query)),
); );
ctx.body = data.data; ctx.body = data.data.map((conversation) =>
convertConversation(conversation),
);
} catch (e: any) { } catch (e: any) {
console.error(e); console.error(e);
console.error(e.response.data); console.error(e.response.data);