diff options
| author | MeiMei <30769358+mei23@users.noreply.github.com> | 2021-05-31 13:04:13 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-05-31 13:04:13 +0900 |
| commit | caf40e40fbd444c050d8d3cc60f4dd2898950900 (patch) | |
| tree | 480f907740d8c9e86d9dea7bd8d9845f3e31b68e /src/remote/activitypub/models | |
| parent | New Crowdin updates (#7527) (diff) | |
| download | sharkey-caf40e40fbd444c050d8d3cc60f4dd2898950900.tar.gz sharkey-caf40e40fbd444c050d8d3cc60f4dd2898950900.tar.bz2 sharkey-caf40e40fbd444c050d8d3cc60f4dd2898950900.zip | |
Supports Array ActivityStreams type (#7536)
* Supports Array type
* Fix
* Fix Service to Note
* Update type.ts
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
Diffstat (limited to 'src/remote/activitypub/models')
| -rw-r--r-- | src/remote/activitypub/models/note.ts | 6 | ||||
| -rw-r--r-- | src/remote/activitypub/models/person.ts | 8 |
2 files changed, 7 insertions, 7 deletions
diff --git a/src/remote/activitypub/models/note.ts b/src/remote/activitypub/models/note.ts index 09e066708f..3b7452c3cb 100644 --- a/src/remote/activitypub/models/note.ts +++ b/src/remote/activitypub/models/note.ts @@ -17,7 +17,7 @@ import { deliverQuestionUpdate } from '../../../services/note/polls/update'; import { extractDbHost, toPuny } from '@/misc/convert-host'; import { Emojis, Polls, MessagingMessages } from '../../../models'; import { Note } from '../../../models/entities/note'; -import { IObject, getOneApId, getApId, getOneApHrefNullable, validPost, IPost, isEmoji } from '../type'; +import { IObject, getOneApId, getApId, getOneApHrefNullable, validPost, IPost, isEmoji, getApType } from '../type'; import { Emoji } from '../../../models/entities/emoji'; import { genId } from '@/misc/gen-id'; import { fetchMeta } from '@/misc/fetch-meta'; @@ -36,8 +36,8 @@ export function validateNote(object: any, uri: string) { return new Error('invalid Note: object is null'); } - if (!validPost.includes(object.type)) { - return new Error(`invalid Note: invalid object type ${object.type}`); + if (!validPost.includes(getApType(object))) { + return new Error(`invalid Note: invalid object type ${getApType(object)}`); } if (object.id && extractDbHost(object.id) !== expectHost) { diff --git a/src/remote/activitypub/models/person.ts b/src/remote/activitypub/models/person.ts index 5b032d9d9c..1062fe2995 100644 --- a/src/remote/activitypub/models/person.ts +++ b/src/remote/activitypub/models/person.ts @@ -4,7 +4,7 @@ import * as promiseLimit from 'promise-limit'; import config from '@/config'; import Resolver from '../resolver'; import { resolveImage } from './image'; -import { isCollectionOrOrderedCollection, isCollection, IPerson, getApId, getOneApHrefNullable, IObject, isPropertyValue, IApPropertyValue } from '../type'; +import { isCollectionOrOrderedCollection, isCollection, IPerson, getApId, getOneApHrefNullable, IObject, isPropertyValue, IApPropertyValue, getApType } from '../type'; import { fromHtml } from '../../../mfm/from-html'; import { htmlToMfm } from '../misc/html-to-mfm'; import { resolveNote, extractEmojis } from './note'; @@ -137,7 +137,7 @@ export async function createPerson(uri: string, resolver?: Resolver): Promise<Us const tags = extractApHashtags(person.tag).map(tag => normalizeForSearch(tag)).splice(0, 32); - const isBot = object.type === 'Service'; + const isBot = getApType(object) === 'Service'; const bday = person['vcard:bday']?.match(/^\d{4}-\d{2}-\d{2}/); @@ -337,7 +337,7 @@ export async function updatePerson(uri: string, resolver?: Resolver | null, hint emojis: emojiNames, name: person.name, tags, - isBot: object.type === 'Service', + isBot: getApType(object) === 'Service', isCat: (person as any).isCat === true, isLocked: !!person.manuallyApprovesFollowers, isExplorable: !!person.discoverable, @@ -476,7 +476,7 @@ export async function updateFeatured(userId: User['id']) { // Resolve and regist Notes const limit = promiseLimit<Note | null>(2); const featuredNotes = await Promise.all(items - .filter(item => item.type === 'Note') + .filter(item => getApType(item) === 'Note') // TODO: Noteでなくてもいいかも .slice(0, 5) .map(item => limit(() => resolveNote(item, resolver)))); |