activitypub: use quoteUri instead of quoteUrl
All checks were successful
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/lint-sw Pipeline was successful
ci/woodpecker/push/test Pipeline was successful

It's not quite Mastodon, but still, I said they'd use a different approach...

Changelog: Changed
This commit is contained in:
Johann150 2023-01-04 20:56:06 +01:00
parent 0230f819e2
commit 48f8fb97df
Signed by: Johann150
GPG key ID: 9EE6577A2A06F8F1
4 changed files with 8 additions and 6 deletions

View file

@ -157,7 +157,7 @@ export async function createNote(value: string | IObject, resolver: Resolver, si
// 引用 // 引用
let quote: Note | undefined | null; let quote: Note | undefined | null;
if (note._misskey_quote || note.quoteUrl) { if (note._misskey_quote || 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, si
} }
}; };
const uris = unique([note._misskey_quote, note.quoteUrl].filter((x): x is string => typeof x === 'string')); const uris = unique([note._misskey_quote, 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);

View file

@ -21,12 +21,14 @@ export const renderActivity = (x: any): IActivity | null => {
manuallyApprovesFollowers: 'as:manuallyApprovesFollowers', manuallyApprovesFollowers: 'as:manuallyApprovesFollowers',
sensitive: 'as:sensitive', sensitive: 'as:sensitive',
Hashtag: 'as:Hashtag', Hashtag: 'as:Hashtag',
quoteUrl: 'as:quoteUrl',
// Mastodon // Mastodon
toot: 'http://joinmastodon.org/ns#', toot: 'http://joinmastodon.org/ns#',
Emoji: 'toot:Emoji', Emoji: 'toot:Emoji',
featured: 'toot:featured', featured: 'toot:featured',
discoverable: 'toot:discoverable', discoverable: 'toot:discoverable',
// Fedibird
fedibird: 'http://fedibird.com/ns#',
quoteUri: 'fedibird:quoteUri',
// schema // schema
schema: 'http://schema.org#', schema: 'http://schema.org#',
PropertyValue: 'schema:PropertyValue', PropertyValue: 'schema:PropertyValue',

View file

@ -141,7 +141,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,
quoteUrl: quote, quoteUri: quote,
published: note.createdAt.toISOString(), published: note.createdAt.toISOString(),
to, to,
cc, cc,

View file

@ -111,7 +111,7 @@ export interface IPost extends IObject {
mediaType: string; mediaType: string;
}; };
_misskey_quote?: string; _misskey_quote?: string;
quoteUrl?: string; quoteUri?: string;
_misskey_talk: boolean; _misskey_talk: boolean;
} }
@ -122,7 +122,7 @@ export interface IQuestion extends IObject {
mediaType: string; mediaType: string;
}; };
_misskey_quote?: string; _misskey_quote?: string;
quoteUrl?: string; quoteUri?: string;
oneOf?: IQuestionChoice[]; oneOf?: IQuestionChoice[];
anyOf?: IQuestionChoice[]; anyOf?: IQuestionChoice[];
endTime?: Date; endTime?: Date;