summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2019-03-15 00:23:24 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2019-03-15 00:23:24 +0900
commit56eb896a03068b32469be4ce4dd0dceb8c4a2b4f (patch)
tree07ac43cef3c98fc39620dd887a3452f3afaaff49 /src
parentFix hashtag style (diff)
downloadsharkey-56eb896a03068b32469be4ce4dd0dceb8c4a2b4f.tar.gz
sharkey-56eb896a03068b32469be4ce4dd0dceb8c4a2b4f.tar.bz2
sharkey-56eb896a03068b32469be4ce4dd0dceb8c4a2b4f.zip
Accept Article object (#4499)
Diffstat (limited to 'src')
-rw-r--r--src/models/note.ts5
-rw-r--r--src/remote/activitypub/kernel/announce/index.ts4
-rw-r--r--src/remote/activitypub/kernel/create/index.ts4
-rw-r--r--src/remote/activitypub/kernel/delete/index.ts4
-rw-r--r--src/remote/activitypub/models/note.ts3
-rw-r--r--src/server/api/endpoints/ap/show.ts2
-rw-r--r--src/services/note/create.ts2
7 files changed, 13 insertions, 11 deletions
diff --git a/src/models/note.ts b/src/models/note.ts
index 466d1837c5..369a009162 100644
--- a/src/models/note.ts
+++ b/src/models/note.ts
@@ -41,6 +41,7 @@ export type INote = {
replyId: mongo.ObjectID;
renoteId: mongo.ObjectID;
poll: IPoll;
+ name?: string;
text: string;
tags: string[];
tagsLower: string[];
@@ -391,6 +392,10 @@ export const pack = async (
}
//#endregion
+ if (_note.name) {
+ _note.text = `【${_note.name}】\n${_note.text}`;
+ }
+
if (_note.user.isCat && _note.text) {
_note.text = (_note.text
// ja-JP
diff --git a/src/remote/activitypub/kernel/announce/index.ts b/src/remote/activitypub/kernel/announce/index.ts
index 3b2eeb7aa2..5f738da6c7 100644
--- a/src/remote/activitypub/kernel/announce/index.ts
+++ b/src/remote/activitypub/kernel/announce/index.ts
@@ -24,10 +24,8 @@ export default async (actor: IRemoteUser, activity: IAnnounce): Promise<void> =>
switch (object.type) {
case 'Note':
- announceNote(resolver, actor, activity, object as INote);
- break;
-
case 'Question':
+ case 'Article':
announceNote(resolver, actor, activity, object as INote);
break;
diff --git a/src/remote/activitypub/kernel/create/index.ts b/src/remote/activitypub/kernel/create/index.ts
index 2afdc01377..6e314d0b82 100644
--- a/src/remote/activitypub/kernel/create/index.ts
+++ b/src/remote/activitypub/kernel/create/index.ts
@@ -29,10 +29,8 @@ export default async (actor: IRemoteUser, activity: ICreate): Promise<void> => {
break;
case 'Note':
- createNote(resolver, actor, object);
- break;
-
case 'Question':
+ case 'Article':
createNote(resolver, actor, object);
break;
diff --git a/src/remote/activitypub/kernel/delete/index.ts b/src/remote/activitypub/kernel/delete/index.ts
index 864c9f5f7d..c9c385b1fa 100644
--- a/src/remote/activitypub/kernel/delete/index.ts
+++ b/src/remote/activitypub/kernel/delete/index.ts
@@ -21,10 +21,8 @@ export default async (actor: IRemoteUser, activity: IDelete): Promise<void> => {
switch (object.type) {
case 'Note':
- deleteNote(actor, uri);
- break;
-
case 'Question':
+ case 'Article':
deleteNote(actor, uri);
break;
diff --git a/src/remote/activitypub/models/note.ts b/src/remote/activitypub/models/note.ts
index c8939279eb..6251621527 100644
--- a/src/remote/activitypub/models/note.ts
+++ b/src/remote/activitypub/models/note.ts
@@ -57,7 +57,7 @@ export async function createNote(value: any, resolver?: Resolver, silent = false
const object: any = await resolver.resolve(value);
- if (!object || !['Note', 'Question'].includes(object.type)) {
+ if (!object || !['Note', 'Question', 'Article'].includes(object.type)) {
logger.error(`invalid note: ${value}`, {
resolver: {
history: resolver.getHistory()
@@ -199,6 +199,7 @@ export async function createNote(value: any, resolver?: Resolver, silent = false
files,
reply,
renote: quote,
+ name: note.name,
cw,
text,
viaMobile: false,
diff --git a/src/server/api/endpoints/ap/show.ts b/src/server/api/endpoints/ap/show.ts
index 861c8bce2e..7f4afa1f6e 100644
--- a/src/server/api/endpoints/ap/show.ts
+++ b/src/server/api/endpoints/ap/show.ts
@@ -103,7 +103,7 @@ async function fetchAny(uri: string) {
};
}
- if (['Note', 'Question'].includes(object.type)) {
+ if (['Note', 'Question', 'Article'].includes(object.type)) {
const note = await createNote(object.id);
return {
type: 'Note',
diff --git a/src/services/note/create.ts b/src/services/note/create.ts
index 88598e1db5..5f69329a4e 100644
--- a/src/services/note/create.ts
+++ b/src/services/note/create.ts
@@ -91,6 +91,7 @@ class NotificationManager {
type Option = {
createdAt?: Date;
+ name?: string;
text?: string;
reply?: INote;
renote?: INote;
@@ -437,6 +438,7 @@ async function insertNote(user: IUser, data: Option, tags: string[], emojis: str
fileIds: data.files ? data.files.map(file => file._id) : [],
replyId: data.reply ? data.reply._id : null,
renoteId: data.renote ? data.renote._id : null,
+ name: data.name,
text: data.text,
poll: data.poll,
cw: data.cw == null ? null : data.cw,