diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2018-11-23 08:01:29 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2018-11-23 08:01:29 +0900 |
| commit | 7e803ff9a9400e835d3db1369b7ced73e42fcab9 (patch) | |
| tree | 4e8c9ddfad0db6cf89396fa204351d045491d26a /src/remote/activitypub | |
| parent | Improve user operations (diff) | |
| parent | Update koa requirement from 2.6.1 to 2.6.2 (#3386) (diff) | |
| download | sharkey-7e803ff9a9400e835d3db1369b7ced73e42fcab9.tar.gz sharkey-7e803ff9a9400e835d3db1369b7ced73e42fcab9.tar.bz2 sharkey-7e803ff9a9400e835d3db1369b7ced73e42fcab9.zip | |
Merge branch 'develop' of https://github.com/syuilo/misskey into develop
Diffstat (limited to 'src/remote/activitypub')
| -rw-r--r-- | src/remote/activitypub/models/note.ts | 9 | ||||
| -rw-r--r-- | src/remote/activitypub/renderer/note.ts | 13 | ||||
| -rw-r--r-- | src/remote/activitypub/type.ts | 1 |
3 files changed, 22 insertions, 1 deletions
diff --git a/src/remote/activitypub/models/note.ts b/src/remote/activitypub/models/note.ts index 82d6d267c2..0f0f0bc2bf 100644 --- a/src/remote/activitypub/models/note.ts +++ b/src/remote/activitypub/models/note.ts @@ -96,6 +96,13 @@ export async function createNote(value: any, resolver?: Resolver, silent = false // リプライ const reply = note.inReplyTo ? await resolveNote(note.inReplyTo, resolver) : null; + // 引用 + let quote: INote; + + if (note._misskey_quote && typeof note._misskey_quote == 'string') { + quote = await resolveNote(note._misskey_quote).catch(() => null); + } + // テキストのパース const text = note._misskey_content ? note._misskey_content : htmlToMFM(note.content); @@ -112,7 +119,7 @@ export async function createNote(value: any, resolver?: Resolver, silent = false createdAt: new Date(note.published), files: files, reply, - renote: undefined, + renote: quote, cw: note.summary, text: text, viaMobile: false, diff --git a/src/remote/activitypub/renderer/note.ts b/src/remote/activitypub/renderer/note.ts index d6e2d612c7..a854ad9f19 100644 --- a/src/remote/activitypub/renderer/note.ts +++ b/src/remote/activitypub/renderer/note.ts @@ -42,6 +42,18 @@ export default async function renderNote(note: INote, dive = true): Promise<any> inReplyTo = null; } + let quote; + + if (note.renoteId) { + const renote = await Note.findOne({ + _id: note.renoteId, + }); + + if (renote) { + quote = renote.uri ? renote.uri : `${config.url}/notes/${renote._id}`; + } + } + const user = await User.findOne({ _id: note.userId }); @@ -112,6 +124,7 @@ export default async function renderNote(note: INote, dive = true): Promise<any> summary: note.cw, content, _misskey_content: text, + _misskey_quote: quote, published: note.createdAt.toISOString(), to, cc, diff --git a/src/remote/activitypub/type.ts b/src/remote/activitypub/type.ts index 2344035013..530aaa13db 100644 --- a/src/remote/activitypub/type.ts +++ b/src/remote/activitypub/type.ts @@ -41,6 +41,7 @@ export interface IOrderedCollection extends IObject { export interface INote extends IObject { type: 'Note'; _misskey_content: string; + _misskey_quote: string; } export interface IPerson extends IObject { |