summaryrefslogtreecommitdiff
path: root/src/remote
diff options
context:
space:
mode:
authortamaina <tamaina@hotmail.co.jp>2018-09-15 22:15:56 +0900
committerGitHub <noreply@github.com>2018-09-15 22:15:56 +0900
commit8f8c67ad6d33eb9ced1844bb372d517204df6c6f (patch)
treebcaedee83bb5960a6b63291795dd95f9ed603a99 /src/remote
parentfix mk-media darkmode (diff)
parent8.41.0 (diff)
downloadmisskey-8f8c67ad6d33eb9ced1844bb372d517204df6c6f.tar.gz
misskey-8f8c67ad6d33eb9ced1844bb372d517204df6c6f.tar.bz2
misskey-8f8c67ad6d33eb9ced1844bb372d517204df6c6f.zip
Merge branch 'develop' into improve-media
Diffstat (limited to 'src/remote')
-rw-r--r--src/remote/activitypub/misc/get-note-html.ts3
-rw-r--r--src/remote/activitypub/models/note.ts8
-rw-r--r--src/remote/activitypub/renderer/announce.ts2
-rw-r--r--src/remote/activitypub/renderer/note.ts5
-rw-r--r--src/remote/activitypub/type.ts1
5 files changed, 10 insertions, 9 deletions
diff --git a/src/remote/activitypub/misc/get-note-html.ts b/src/remote/activitypub/misc/get-note-html.ts
index 8df440930b..f92e91c34e 100644
--- a/src/remote/activitypub/misc/get-note-html.ts
+++ b/src/remote/activitypub/misc/get-note-html.ts
@@ -4,9 +4,8 @@ import parse from '../../../mfm/parse';
import config from '../../../config';
export default function(note: INote) {
- if (note.text == null) return null;
-
let html = toHtml(parse(note.text), note.mentionedRemoteUsers);
+ if (html == null) html = '';
if (note.poll != null) {
const url = `${config.url}/notes/${note._id}`;
diff --git a/src/remote/activitypub/models/note.ts b/src/remote/activitypub/models/note.ts
index 1dfeebfdf7..b4afda765a 100644
--- a/src/remote/activitypub/models/note.ts
+++ b/src/remote/activitypub/models/note.ts
@@ -78,11 +78,11 @@ export async function createNote(value: any, resolver?: Resolver, silent = false
}
//#endergion
- // 添付メディア
+ // 添付ファイル
// TODO: attachmentは必ずしもImageではない
// TODO: attachmentは必ずしも配列ではない
// Noteがsensitiveなら添付もsensitiveにする
- const media = note.attachment
+ const files = note.attachment
.map(attach => attach.sensitive = note.sensitive)
? await Promise.all(note.attachment.map(x => resolveImage(actor, x)))
: [];
@@ -91,7 +91,7 @@ export async function createNote(value: any, resolver?: Resolver, silent = false
const reply = note.inReplyTo ? await resolveNote(note.inReplyTo, resolver) : null;
// テキストのパース
- const text = htmlToMFM(note.content);
+ const text = note._misskey_content ? note._misskey_content : htmlToMFM(note.content);
// ユーザーの情報が古かったらついでに更新しておく
if (actor.updatedAt == null || Date.now() - actor.updatedAt.getTime() > 1000 * 60 * 60 * 24) {
@@ -100,7 +100,7 @@ export async function createNote(value: any, resolver?: Resolver, silent = false
return await post(actor, {
createdAt: new Date(note.published),
- media,
+ files: files,
reply,
renote: undefined,
cw: note.summary,
diff --git a/src/remote/activitypub/renderer/announce.ts b/src/remote/activitypub/renderer/announce.ts
index f6276ade04..18e23cc336 100644
--- a/src/remote/activitypub/renderer/announce.ts
+++ b/src/remote/activitypub/renderer/announce.ts
@@ -5,7 +5,7 @@ export default (object: any, note: INote) => {
const attributedTo = `${config.url}/users/${note.userId}`;
return {
- id: `${config.url}/notes/${note._id}`,
+ id: `${config.url}/notes/${note._id}/activity`,
actor: `${config.url}/users/${note.userId}`,
type: 'Announce',
published: note.createdAt.toISOString(),
diff --git a/src/remote/activitypub/renderer/note.ts b/src/remote/activitypub/renderer/note.ts
index 1d169d3088..04e131637a 100644
--- a/src/remote/activitypub/renderer/note.ts
+++ b/src/remote/activitypub/renderer/note.ts
@@ -8,8 +8,8 @@ import User from '../../../models/user';
import toHtml from '../misc/get-note-html';
export default async function renderNote(note: INote, dive = true): Promise<any> {
- const promisedFiles: Promise<IDriveFile[]> = note.mediaIds
- ? DriveFile.find({ _id: { $in: note.mediaIds } })
+ const promisedFiles: Promise<IDriveFile[]> = note.fileIds
+ ? DriveFile.find({ _id: { $in: note.fileIds } })
: Promise.resolve([]);
let inReplyTo;
@@ -87,6 +87,7 @@ export default async function renderNote(note: INote, dive = true): Promise<any>
attributedTo,
summary: note.cw,
content: toHtml(note),
+ _misskey_content_: note.text,
published: note.createdAt.toISOString(),
to,
cc,
diff --git a/src/remote/activitypub/type.ts b/src/remote/activitypub/type.ts
index 3d40ad48cb..28763d3e83 100644
--- a/src/remote/activitypub/type.ts
+++ b/src/remote/activitypub/type.ts
@@ -40,6 +40,7 @@ export interface IOrderedCollection extends IObject {
export interface INote extends IObject {
type: 'Note';
+ _misskey_content: string;
}
export interface IPerson extends IObject {