From d892e66072a622c40054933fbad19d6cb88aecc3 Mon Sep 17 00:00:00 2001 From: syuilo Date: Tue, 17 Apr 2018 22:20:25 +0900 Subject: Fix bug --- src/remote/activitypub/models/note.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/remote/activitypub/models/note.ts') diff --git a/src/remote/activitypub/models/note.ts b/src/remote/activitypub/models/note.ts index ab6dd99a77..b2b5077c5e 100644 --- a/src/remote/activitypub/models/note.ts +++ b/src/remote/activitypub/models/note.ts @@ -1,3 +1,4 @@ +import * as mongo from 'mongodb'; import { JSDOM } from 'jsdom'; import * as debug from 'debug'; @@ -22,7 +23,8 @@ export async function fetchNote(value: string | IObject, resolver?: Resolver): P // URIがこのサーバーを指しているならデータベースからフェッチ if (uri.startsWith(config.url + '/')) { - return await Note.findOne({ _id: uri.split('/').pop() }); + const id = new mongo.ObjectID(uri.split('/').pop()); + return await Note.findOne({ _id: id }); } //#region このサーバーに既に登録されていたらそれを返す -- cgit v1.2.3-freya From 0e2bb5bddc43e088112ef2b35ec087e3c62cabe7 Mon Sep 17 00:00:00 2001 From: syuilo Date: Wed, 18 Apr 2018 14:48:40 +0900 Subject: Fix #1473 --- src/remote/activitypub/models/note.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/remote/activitypub/models/note.ts') diff --git a/src/remote/activitypub/models/note.ts b/src/remote/activitypub/models/note.ts index b2b5077c5e..c947243664 100644 --- a/src/remote/activitypub/models/note.ts +++ b/src/remote/activitypub/models/note.ts @@ -75,7 +75,9 @@ export async function createNote(value: any, resolver?: Resolver, silent = false // リプライ const reply = note.inReplyTo ? await resolveNote(note.inReplyTo, resolver) : null; - const { window } = new JSDOM(note.content); + // MastodonはHTMLを送り付けてくる + // そして改行は
で表現されている + const { window } = new JSDOM(note.content.replace(/
/g, '\n')); // ユーザーの情報が古かったらついでに更新しておく if (actor.updatedAt == null || Date.now() - actor.updatedAt.getTime() > 1000 * 60 * 60 * 24) { -- cgit v1.2.3-freya From 02fd46f64f6fb18e812acda523224011b405d546 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 19 Apr 2018 09:17:42 +0900 Subject: Fix bug --- src/remote/activitypub/models/note.ts | 5 +++-- src/services/note/create.ts | 3 +-- src/services/note/reaction/create.ts | 5 ++--- 3 files changed, 6 insertions(+), 7 deletions(-) (limited to 'src/remote/activitypub/models/note.ts') diff --git a/src/remote/activitypub/models/note.ts b/src/remote/activitypub/models/note.ts index c947243664..94d723e239 100644 --- a/src/remote/activitypub/models/note.ts +++ b/src/remote/activitypub/models/note.ts @@ -47,7 +47,8 @@ export async function createNote(value: any, resolver?: Resolver, silent = false const object = await resolver.resolve(value) as any; if (object == null || object.type !== 'Note') { - throw new Error('invalid note'); + log(`invalid note: ${object}`); + return null; } const note: INoteActivityStreamsObject = object; @@ -62,7 +63,7 @@ export async function createNote(value: any, resolver?: Resolver, silent = false if (!note.to.includes('https://www.w3.org/ns/activitystreams#Public')) visibility = 'unlisted'; if (note.cc.length == 0) visibility = 'private'; // TODO - if (visibility != 'public') throw new Error('unspported visibility'); + if (visibility != 'public') return null; //#endergion // 添付メディア diff --git a/src/services/note/create.ts b/src/services/note/create.ts index 599126b861..bdef5e09fc 100644 --- a/src/services/note/create.ts +++ b/src/services/note/create.ts @@ -1,4 +1,3 @@ -import { MongoError } from 'mongodb'; import Note, { pack, INote } from '../../models/note'; import User, { isLocalUser, IUser, isRemoteUser } from '../../models/user'; import stream, { publishLocalTimelineStream, publishGlobalTimelineStream } from '../../publishers/stream'; @@ -91,7 +90,7 @@ export default async (user: IUser, data: { note = await Note.insert(insert); } catch (e) { // duplicate key error - if (e instanceof MongoError && e.code === 11000) { + if (e.code === 11000) { return res(null); } diff --git a/src/services/note/reaction/create.ts b/src/services/note/reaction/create.ts index dd3d4be8b7..dcfbe481af 100644 --- a/src/services/note/reaction/create.ts +++ b/src/services/note/reaction/create.ts @@ -9,7 +9,6 @@ import watch from '../watch'; import renderLike from '../../../remote/activitypub/renderer/like'; import { deliver } from '../../../queue'; import pack from '../../../remote/activitypub/renderer'; -import { MongoError } from 'mongodb'; export default async (user: IUser, note: INote, reaction: string) => new Promise(async (res, rej) => { // Myself @@ -27,8 +26,8 @@ export default async (user: IUser, note: INote, reaction: string) => new Promise }); } catch (e) { // duplicate key error - if (e instanceof MongoError && e.code === 11000) { - return rej('already reacted'); + if (e.code === 11000) { + return res(null); } console.error(e); -- cgit v1.2.3-freya From bd207b5012568a70403104208b77b185e88ddd6a Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 19 Apr 2018 18:54:34 +0900 Subject: Implement suspend account --- cli/suspend.js | 18 ++++++++++++++++++ locales/en.yml | 2 ++ locales/fr.yml | 2 ++ locales/ja.yml | 2 ++ .../app/desktop/views/pages/user/user.header.vue | 12 ++++++++++-- src/client/app/mobile/views/pages/user.vue | 12 ++++++++++-- src/remote/activitypub/models/image.ts | 5 +++++ src/remote/activitypub/models/note.ts | 5 +++++ 8 files changed, 54 insertions(+), 4 deletions(-) create mode 100644 cli/suspend.js (limited to 'src/remote/activitypub/models/note.ts') diff --git a/cli/suspend.js b/cli/suspend.js new file mode 100644 index 0000000000..0f22bba477 --- /dev/null +++ b/cli/suspend.js @@ -0,0 +1,18 @@ +const mongo = require('mongodb'); +const User = require('../built/models/user').default; + +const args = process.argv.slice(2); + +const userId = new mongo.ObjectID(args[0]); + +console.log(`Suspending ${userId}...`); + +User.update({ _id: userId }, { + $set: { + isSuspended: true + } +}).then(() => { + console.log(`Suspended ${userId}`); +}, e => { + console.error(e); +}); diff --git a/locales/en.yml b/locales/en.yml index 4eb0a3446c..81357c075c 100644 --- a/locales/en.yml +++ b/locales/en.yml @@ -406,6 +406,7 @@ desktop/views/pages/user/user.friends.vue: no-users: "No users" desktop/views/pages/user/user.header.vue: + is-suspended: "This account has been suspended." is-remote: "This user is a remote user, so the information is not accurate. " view-remote: "See accurate information" @@ -594,6 +595,7 @@ mobile/views/pages/user.vue: overview: "Overview" timeline: "Timeline" media: "Media" + is-suspended: "This account has been suspended." is-remote: "This user is a remote user, so the information is not accurate. " view-remote: "See accurate information" diff --git a/locales/fr.yml b/locales/fr.yml index 0e0019e565..8fb7543446 100644 --- a/locales/fr.yml +++ b/locales/fr.yml @@ -406,6 +406,7 @@ desktop/views/pages/user/user.friends.vue: no-users: "Pas d'utilisateurs" desktop/views/pages/user/user.header.vue: + is-suspended: "This account has been suspended." is-remote: "Cet utilisateur n'est pas un utilisateur de Misskey. Certaines informations peuvent être erronées " view-remote: "Voir les informations détaillées" @@ -594,6 +595,7 @@ mobile/views/pages/user.vue: overview: "Aperçu" timeline: "Fil d'actualité" media: "Media" + is-suspended: "This account has been suspended." is-remote: "Cet utilisateur n'est pas un utilisateur de Misskey. Certaines informations peuvent être erronées " view-remote: "Voir les informations détaillées" diff --git a/locales/ja.yml b/locales/ja.yml index f5d304349e..2f69a6f3d3 100644 --- a/locales/ja.yml +++ b/locales/ja.yml @@ -406,6 +406,7 @@ desktop/views/pages/user/user.friends.vue: no-users: "よく話すユーザーはいません" desktop/views/pages/user/user.header.vue: + is-suspended: "このユーザーは凍結されています。" is-remote: "このユーザーはリモートユーザーです。" view-remote: "正確な情報を見る" @@ -594,6 +595,7 @@ mobile/views/pages/user.vue: overview: "概要" timeline: "タイムライン" media: "メディア" + is-suspended: "このユーザーは凍結されています。" is-remote: "このユーザーはリモートユーザーです。" view-remote: "正確な情報を見る" diff --git a/src/client/app/desktop/views/pages/user/user.header.vue b/src/client/app/desktop/views/pages/user/user.header.vue index 90bedf7161..5c94c86889 100644 --- a/src/client/app/desktop/views/pages/user/user.header.vue +++ b/src/client/app/desktop/views/pages/user/user.header.vue @@ -1,5 +1,6 @@