Support quotes provided as 'quoteUri' field (#9399)
This commit is contained in:
commit
37117fb748
4 changed files with 5 additions and 2 deletions
|
@ -157,7 +157,7 @@ export async function createNote(value: string | IObject, resolver?: Resolver, s
|
||||||
// Quote
|
// Quote
|
||||||
let quote: Note | undefined | null;
|
let quote: Note | undefined | null;
|
||||||
|
|
||||||
if (note._misskey_quote || note.quoteUrl) {
|
if (note._misskey_quote || note.quoteUrl || note.quoteUri) {
|
||||||
const tryResolveNote = async (uri: string): Promise<{
|
const tryResolveNote = async (uri: string): Promise<{
|
||||||
status: 'ok';
|
status: 'ok';
|
||||||
res: Note | null;
|
res: Note | null;
|
||||||
|
@ -184,7 +184,7 @@ export async function createNote(value: string | IObject, resolver?: Resolver, s
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const uris = unique([note._misskey_quote, note.quoteUrl].filter((x): x is string => typeof x === 'string'));
|
const uris = unique([note._misskey_quote, note.quoteUrl, note.quoteUri].filter((x): x is string => typeof x === 'string'));
|
||||||
const results = await Promise.all(uris.map(uri => tryResolveNote(uri)));
|
const results = await Promise.all(uris.map(uri => tryResolveNote(uri)));
|
||||||
|
|
||||||
quote = results.filter((x): x is { status: 'ok', res: Note | null } => x.status === 'ok').map(x => x.res).find(x => x);
|
quote = results.filter((x): x is { status: 'ok', res: Note | null } => x.status === 'ok').map(x => x.res).find(x => x);
|
||||||
|
|
|
@ -22,6 +22,7 @@ export const renderActivity = (x: any): IActivity | null => {
|
||||||
movedToUri: 'as:movedTo',
|
movedToUri: 'as:movedTo',
|
||||||
sensitive: 'as:sensitive',
|
sensitive: 'as:sensitive',
|
||||||
Hashtag: 'as:Hashtag',
|
Hashtag: 'as:Hashtag',
|
||||||
|
quoteUri: 'fedibird:quoteUri',
|
||||||
quoteUrl: 'as:quoteUrl',
|
quoteUrl: 'as:quoteUrl',
|
||||||
// Mastodon
|
// Mastodon
|
||||||
toot: 'http://joinmastodon.org/ns#',
|
toot: 'http://joinmastodon.org/ns#',
|
||||||
|
|
|
@ -142,6 +142,7 @@ export default async function renderNote(note: Note, dive = true, isTalk = false
|
||||||
mediaType: "text/x.misskeymarkdown",
|
mediaType: "text/x.misskeymarkdown",
|
||||||
},
|
},
|
||||||
_misskey_quote: quote,
|
_misskey_quote: quote,
|
||||||
|
quoteUri: quote,
|
||||||
quoteUrl: quote,
|
quoteUrl: quote,
|
||||||
published: note.createdAt.toISOString(),
|
published: note.createdAt.toISOString(),
|
||||||
to,
|
to,
|
||||||
|
|
|
@ -112,6 +112,7 @@ export interface IPost extends IObject {
|
||||||
};
|
};
|
||||||
_misskey_quote?: string;
|
_misskey_quote?: string;
|
||||||
quoteUrl?: string;
|
quoteUrl?: string;
|
||||||
|
quoteUri?: string;
|
||||||
_misskey_talk: boolean;
|
_misskey_talk: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue