From e66d7babc5ae477d7a60628e5599f9c390426c81 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 18 Jun 2018 14:28:43 +0900 Subject: yatta --- src/remote/activitypub/kernel/accept/index.ts | 4 ++-- src/remote/activitypub/kernel/announce/index.ts | 4 ++-- src/remote/activitypub/kernel/announce/note.ts | 4 ++-- src/remote/activitypub/kernel/create/image.ts | 2 +- src/remote/activitypub/kernel/create/note.ts | 2 +- src/remote/activitypub/kernel/delete/index.ts | 3 ++- src/remote/activitypub/kernel/reject/index.ts | 4 ++-- src/remote/activitypub/kernel/undo/index.ts | 4 ++-- src/remote/activitypub/misc/get-note-html.ts | 2 +- src/remote/activitypub/models/image.ts | 2 +- src/remote/activitypub/models/note.ts | 24 ++++++++++++------------ src/remote/activitypub/renderer/accept.ts | 2 +- src/remote/activitypub/renderer/announce.ts | 2 +- src/remote/activitypub/renderer/create.ts | 2 +- src/remote/activitypub/renderer/delete.ts | 2 +- src/remote/activitypub/renderer/document.ts | 7 ++++--- src/remote/activitypub/renderer/image.ts | 5 +++-- src/remote/activitypub/renderer/like.ts | 3 ++- src/remote/activitypub/renderer/mention.ts | 4 ++-- src/remote/activitypub/renderer/note.ts | 6 +++--- src/remote/activitypub/renderer/person.ts | 4 ++-- src/remote/activitypub/renderer/undo.ts | 2 +- src/remote/activitypub/resolver.ts | 4 ++-- src/remote/resolve-user.ts | 2 +- 24 files changed, 52 insertions(+), 48 deletions(-) (limited to 'src/remote') diff --git a/src/remote/activitypub/kernel/accept/index.ts b/src/remote/activitypub/kernel/accept/index.ts index 2f9d646d14..572a254d9a 100644 --- a/src/remote/activitypub/kernel/accept/index.ts +++ b/src/remote/activitypub/kernel/accept/index.ts @@ -3,7 +3,7 @@ import * as debug from 'debug'; import Resolver from '../../resolver'; import { IRemoteUser } from '../../../../models/user'; import acceptFollow from './follow'; -import { IAccept } from '../../type'; +import { IAccept, IFollow } from '../../type'; const log = debug('misskey:activitypub'); @@ -25,7 +25,7 @@ export default async (actor: IRemoteUser, activity: IAccept): Promise => { switch (object.type) { case 'Follow': - acceptFollow(actor, object); + acceptFollow(actor, object as IFollow); break; default: diff --git a/src/remote/activitypub/kernel/announce/index.ts b/src/remote/activitypub/kernel/announce/index.ts index a2cf2d5762..612b5dee84 100644 --- a/src/remote/activitypub/kernel/announce/index.ts +++ b/src/remote/activitypub/kernel/announce/index.ts @@ -3,7 +3,7 @@ import * as debug from 'debug'; import Resolver from '../../resolver'; import { IRemoteUser } from '../../../../models/user'; import announceNote from './note'; -import { IAnnounce } from '../../type'; +import { IAnnounce, INote } from '../../type'; const log = debug('misskey:activitypub'); @@ -25,7 +25,7 @@ export default async (actor: IRemoteUser, activity: IAnnounce): Promise => switch (object.type) { case 'Note': - announceNote(resolver, actor, activity, object); + announceNote(resolver, actor, activity, object as INote); break; default: diff --git a/src/remote/activitypub/kernel/announce/note.ts b/src/remote/activitypub/kernel/announce/note.ts index e258567389..7aa6aa5707 100644 --- a/src/remote/activitypub/kernel/announce/note.ts +++ b/src/remote/activitypub/kernel/announce/note.ts @@ -2,7 +2,7 @@ import * as debug from 'debug'; import Resolver from '../../resolver'; import post from '../../../../services/note/create'; -import { IRemoteUser } from '../../../../models/user'; +import { IRemoteUser, IUser } from '../../../../models/user'; import { IAnnounce, INote } from '../../type'; import { fetchNote, resolveNote } from '../../models/note'; import { resolvePerson } from '../../models/person'; @@ -36,7 +36,7 @@ export default async function(resolver: Resolver, actor: IRemoteUser, activity: //#region Visibility let visibility = 'public'; - let visibleUsers = []; + let visibleUsers: IUser[] = []; if (!note.to.includes('https://www.w3.org/ns/activitystreams#Public')) { if (note.cc.includes('https://www.w3.org/ns/activitystreams#Public')) { visibility = 'home'; diff --git a/src/remote/activitypub/kernel/create/image.ts b/src/remote/activitypub/kernel/create/image.ts index 2a55522220..9c19abbcc4 100644 --- a/src/remote/activitypub/kernel/create/image.ts +++ b/src/remote/activitypub/kernel/create/image.ts @@ -1,6 +1,6 @@ import { IRemoteUser } from '../../../../models/user'; import { createImage } from '../../models/image'; -export default async function(actor: IRemoteUser, image): Promise { +export default async function(actor: IRemoteUser, image: any): Promise { await createImage(image.url, actor); } diff --git a/src/remote/activitypub/kernel/create/note.ts b/src/remote/activitypub/kernel/create/note.ts index ed9fb6e54c..0f874b9fbf 100644 --- a/src/remote/activitypub/kernel/create/note.ts +++ b/src/remote/activitypub/kernel/create/note.ts @@ -5,7 +5,7 @@ import { createNote, fetchNote } from '../../models/note'; /** * 投稿作成アクティビティを捌きます */ -export default async function(resolver: Resolver, actor: IRemoteUser, note, silent = false): Promise { +export default async function(resolver: Resolver, actor: IRemoteUser, note: any, silent = false): Promise { const exist = await fetchNote(note); if (exist == null) { await createNote(note); diff --git a/src/remote/activitypub/kernel/delete/index.ts b/src/remote/activitypub/kernel/delete/index.ts index 10b47dc4ca..5d7a23584f 100644 --- a/src/remote/activitypub/kernel/delete/index.ts +++ b/src/remote/activitypub/kernel/delete/index.ts @@ -2,11 +2,12 @@ import Resolver from '../../resolver'; import deleteNote from './note'; import Note from '../../../../models/note'; import { IRemoteUser } from '../../../../models/user'; +import { IDelete } from '../../type'; /** * 削除アクティビティを捌きます */ -export default async (actor: IRemoteUser, activity): Promise => { +export default async (actor: IRemoteUser, activity: IDelete): Promise => { if ('actor' in activity && actor.uri !== activity.actor) { throw new Error('invalid actor'); } diff --git a/src/remote/activitypub/kernel/reject/index.ts b/src/remote/activitypub/kernel/reject/index.ts index a82c3fd61e..d89985c238 100644 --- a/src/remote/activitypub/kernel/reject/index.ts +++ b/src/remote/activitypub/kernel/reject/index.ts @@ -3,7 +3,7 @@ import * as debug from 'debug'; import Resolver from '../../resolver'; import { IRemoteUser } from '../../../../models/user'; import rejectFollow from './follow'; -import { IReject } from '../../type'; +import { IReject, IFollow } from '../../type'; const log = debug('misskey:activitypub'); @@ -25,7 +25,7 @@ export default async (actor: IRemoteUser, activity: IReject): Promise => { switch (object.type) { case 'Follow': - rejectFollow(actor, object); + rejectFollow(actor, object as IFollow); break; default: diff --git a/src/remote/activitypub/kernel/undo/index.ts b/src/remote/activitypub/kernel/undo/index.ts index 71f547aeb9..5d9535403b 100644 --- a/src/remote/activitypub/kernel/undo/index.ts +++ b/src/remote/activitypub/kernel/undo/index.ts @@ -1,7 +1,7 @@ import * as debug from 'debug'; import { IRemoteUser } from '../../../../models/user'; -import { IUndo } from '../../type'; +import { IUndo, IFollow } from '../../type'; import unfollow from './follow'; import Resolver from '../../resolver'; @@ -29,7 +29,7 @@ export default async (actor: IRemoteUser, activity: IUndo): Promise => { switch (object.type) { case 'Follow': - unfollow(actor, object); + unfollow(actor, object as IFollow); break; } diff --git a/src/remote/activitypub/misc/get-note-html.ts b/src/remote/activitypub/misc/get-note-html.ts index 33dd381689..0ceecdd00b 100644 --- a/src/remote/activitypub/misc/get-note-html.ts +++ b/src/remote/activitypub/misc/get-note-html.ts @@ -1,4 +1,4 @@ -import { INote } from "../../../models/note"; +import { INote } from '../../../models/note'; import toHtml from '../../../text/html'; import parse from '../../../text/parse'; import config from '../../../config'; diff --git a/src/remote/activitypub/models/image.ts b/src/remote/activitypub/models/image.ts index 0d5a690c6c..fb17a7c9e5 100644 --- a/src/remote/activitypub/models/image.ts +++ b/src/remote/activitypub/models/image.ts @@ -10,7 +10,7 @@ const log = debug('misskey:activitypub'); /** * Imageを作成します。 */ -export async function createImage(actor: IRemoteUser, value): Promise { +export async function createImage(actor: IRemoteUser, value: any): Promise { // 投稿者が凍結されていたらスキップ if (actor.isSuspended) { return null; diff --git a/src/remote/activitypub/models/note.ts b/src/remote/activitypub/models/note.ts index 974fce433b..b0fe045e6d 100644 --- a/src/remote/activitypub/models/note.ts +++ b/src/remote/activitypub/models/note.ts @@ -1,5 +1,5 @@ import * as mongo from 'mongodb'; -import * as parse5 from 'parse5'; +const parse5 = require('parse5'); import * as debug from 'debug'; import config from '../../../config'; @@ -9,30 +9,30 @@ import post from '../../../services/note/create'; import { INote as INoteActivityStreamsObject, IObject } from '../type'; import { resolvePerson, updatePerson } from './person'; import { resolveImage } from './image'; -import { IRemoteUser } from '../../../models/user'; +import { IRemoteUser, IUser } from '../../../models/user'; const log = debug('misskey:activitypub'); function parse(html: string): string { - const dom = parse5.parseFragment(html) as parse5.AST.Default.Document; + const dom = parse5.parseFragment(html); let text = ''; - dom.childNodes.forEach(n => analyze(n)); + dom.childNodes.forEach((n: any) => analyze(n)); return text.trim(); - function getText(node) { + function getText(node: any) { if (node.nodeName == '#text') return node.value; if (node.childNodes) { - return node.childNodes.map(n => getText(n)).join(''); + return node.childNodes.map((n: any) => getText(n)).join(''); } return ''; } - function analyze(node) { + function analyze(node: any) { switch (node.nodeName) { case '#text': text += node.value; @@ -51,7 +51,7 @@ function parse(html: string): string { if (part.length == 2) { //#region ホスト名部分が省略されているので復元する - const href = new URL(node.attrs.find(x => x.name == 'href').value); + const href = new URL(node.attrs.find((x: any) => x.name == 'href').value); const acct = txt + '@' + href.hostname; text += acct; break; @@ -63,20 +63,20 @@ function parse(html: string): string { } if (node.childNodes) { - node.childNodes.forEach(n => analyze(n)); + node.childNodes.forEach((n: any) => analyze(n)); } break; case 'p': text += '\n\n'; if (node.childNodes) { - node.childNodes.forEach(n => analyze(n)); + node.childNodes.forEach((n: any) => analyze(n)); } break; default: if (node.childNodes) { - node.childNodes.forEach(n => analyze(n)); + node.childNodes.forEach((n: any) => analyze(n)); } break; } @@ -135,7 +135,7 @@ export async function createNote(value: any, resolver?: Resolver, silent = false //#region Visibility let visibility = 'public'; - let visibleUsers = []; + let visibleUsers: IUser[] = []; if (!note.to.includes('https://www.w3.org/ns/activitystreams#Public')) { if (note.cc.includes('https://www.w3.org/ns/activitystreams#Public')) { visibility = 'home'; diff --git a/src/remote/activitypub/renderer/accept.ts b/src/remote/activitypub/renderer/accept.ts index 00c76883a9..76326285fd 100644 --- a/src/remote/activitypub/renderer/accept.ts +++ b/src/remote/activitypub/renderer/accept.ts @@ -1,4 +1,4 @@ -export default object => ({ +export default (object: any) => ({ type: 'Accept', object }); diff --git a/src/remote/activitypub/renderer/announce.ts b/src/remote/activitypub/renderer/announce.ts index 8e4b3d26a6..8c3ff9f113 100644 --- a/src/remote/activitypub/renderer/announce.ts +++ b/src/remote/activitypub/renderer/announce.ts @@ -1,4 +1,4 @@ -export default object => ({ +export default (object: any) => ({ type: 'Announce', object }); diff --git a/src/remote/activitypub/renderer/create.ts b/src/remote/activitypub/renderer/create.ts index de411e1951..b8bf98a655 100644 --- a/src/remote/activitypub/renderer/create.ts +++ b/src/remote/activitypub/renderer/create.ts @@ -1,4 +1,4 @@ -export default object => ({ +export default (object: any) => ({ type: 'Create', object }); diff --git a/src/remote/activitypub/renderer/delete.ts b/src/remote/activitypub/renderer/delete.ts index d15cb447e6..f468a22e24 100644 --- a/src/remote/activitypub/renderer/delete.ts +++ b/src/remote/activitypub/renderer/delete.ts @@ -1,4 +1,4 @@ -export default object => ({ +export default (object: any) => ({ type: 'Delete', object }); diff --git a/src/remote/activitypub/renderer/document.ts b/src/remote/activitypub/renderer/document.ts index 91a9f7df38..1985c6bc8b 100644 --- a/src/remote/activitypub/renderer/document.ts +++ b/src/remote/activitypub/renderer/document.ts @@ -1,7 +1,8 @@ import config from '../../../config'; +import { IDriveFile } from '../../../models/drive-file'; -export default ({ _id, contentType }) => ({ +export default (file: IDriveFile) => ({ type: 'Document', - mediaType: contentType, - url: `${config.drive_url}/${_id}` + mediaType: file.contentType, + url: `${config.drive_url}/${file._id}` }); diff --git a/src/remote/activitypub/renderer/image.ts b/src/remote/activitypub/renderer/image.ts index d671a57e7c..cf91ce3a0c 100644 --- a/src/remote/activitypub/renderer/image.ts +++ b/src/remote/activitypub/renderer/image.ts @@ -1,6 +1,7 @@ import config from '../../../config'; +import { IDriveFile } from '../../../models/drive-file'; -export default ({ _id }) => ({ +export default (fileId: IDriveFile['_id']) => ({ type: 'Image', - url: `${config.drive_url}/${_id}` + url: `${config.drive_url}/${fileId}` }); diff --git a/src/remote/activitypub/renderer/like.ts b/src/remote/activitypub/renderer/like.ts index 33e1341a20..523cb4f1ad 100644 --- a/src/remote/activitypub/renderer/like.ts +++ b/src/remote/activitypub/renderer/like.ts @@ -1,7 +1,8 @@ import config from '../../../config'; import { ILocalUser } from '../../../models/user'; +import { INote } from '../../../models/note'; -export default (user: ILocalUser, note, reaction: string) => ({ +export default (user: ILocalUser, note: INote, reaction: string) => ({ type: 'Like', actor: `${config.url}/users/${user._id}`, object: note.uri ? note.uri : `${config.url}/notes/${note._id}`, diff --git a/src/remote/activitypub/renderer/mention.ts b/src/remote/activitypub/renderer/mention.ts index 95cae52aa2..8d12e6d8bf 100644 --- a/src/remote/activitypub/renderer/mention.ts +++ b/src/remote/activitypub/renderer/mention.ts @@ -1,5 +1,5 @@ -import { IUser, isRemoteUser } from "../../../models/user"; -import config from "../../../config"; +import { IUser, isRemoteUser } from '../../../models/user'; +import config from '../../../config'; export default (mention: IUser) => ({ type: 'Mention', diff --git a/src/remote/activitypub/renderer/note.ts b/src/remote/activitypub/renderer/note.ts index 556054fa93..b908f8bb1e 100644 --- a/src/remote/activitypub/renderer/note.ts +++ b/src/remote/activitypub/renderer/note.ts @@ -2,13 +2,13 @@ import renderDocument from './document'; import renderHashtag from './hashtag'; import renderMention from './mention'; import config from '../../../config'; -import DriveFile from '../../../models/drive-file'; +import DriveFile, { IDriveFile } from '../../../models/drive-file'; import Note, { INote } from '../../../models/note'; import User from '../../../models/user'; import toHtml from '../misc/get-note-html'; -export default async function renderNote(note: INote, dive = true) { - const promisedFiles = note.mediaIds +export default async function renderNote(note: INote, dive = true): Promise { + const promisedFiles: Promise = note.mediaIds ? DriveFile.find({ _id: { $in: note.mediaIds } }) : Promise.resolve([]); diff --git a/src/remote/activitypub/renderer/person.ts b/src/remote/activitypub/renderer/person.ts index b2ac885f46..8825c56c25 100644 --- a/src/remote/activitypub/renderer/person.ts +++ b/src/remote/activitypub/renderer/person.ts @@ -16,8 +16,8 @@ export default (user: ILocalUser) => { preferredUsername: user.username, name: user.name, summary: user.description, - icon: user.avatarId && renderImage({ _id: user.avatarId }), - image: user.bannerId && renderImage({ _id: user.bannerId }), + icon: user.avatarId && renderImage(user.avatarId), + image: user.bannerId && renderImage(user.bannerId), manuallyApprovesFollowers: user.isLocked, publicKey: renderKey(user) }; diff --git a/src/remote/activitypub/renderer/undo.ts b/src/remote/activitypub/renderer/undo.ts index f38e224b60..4498409a57 100644 --- a/src/remote/activitypub/renderer/undo.ts +++ b/src/remote/activitypub/renderer/undo.ts @@ -1,4 +1,4 @@ -export default object => ({ +export default (object: any) => ({ type: 'Undo', object }); diff --git a/src/remote/activitypub/resolver.ts b/src/remote/activitypub/resolver.ts index f405ff10c3..0b053ca774 100644 --- a/src/remote/activitypub/resolver.ts +++ b/src/remote/activitypub/resolver.ts @@ -12,7 +12,7 @@ export default class Resolver { this.history = new Set(); } - public async resolveCollection(value) { + public async resolveCollection(value: any) { const collection = typeof value === 'string' ? await this.resolve(value) : value; @@ -33,7 +33,7 @@ export default class Resolver { return collection; } - public async resolve(value): Promise { + public async resolve(value: any): Promise { if (value == null) { throw new Error('resolvee is null (or undefined)'); } diff --git a/src/remote/resolve-user.ts b/src/remote/resolve-user.ts index c612a8c949..1e8fc5d750 100644 --- a/src/remote/resolve-user.ts +++ b/src/remote/resolve-user.ts @@ -4,7 +4,7 @@ import webFinger from './webfinger'; import config from '../config'; import { createPerson } from './activitypub/models/person'; -export default async (username, _host, option?): Promise => { +export default async (username: string, _host: string, option?: any): Promise => { const usernameLower = username.toLowerCase(); if (_host == null) { -- cgit v1.2.3-freya