From 960d4e2e7b8f2838a7f80bfaa1315ffcb29673b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Thu, 31 Jan 2019 17:30:56 +0900 Subject: [PATCH] Close #3380 (#4061) * Delete index.ts * Delete emoji.ts * Update index.ts --- src/server/api/index.ts | 2 - src/server/api/mastodon/emoji.ts | 35 ------------ src/server/api/mastodon/index.ts | 98 -------------------------------- 3 files changed, 135 deletions(-) delete mode 100644 src/server/api/mastodon/emoji.ts delete mode 100644 src/server/api/mastodon/index.ts diff --git a/src/server/api/index.ts b/src/server/api/index.ts index 04fc8759f..17a2579f2 100644 --- a/src/server/api/index.ts +++ b/src/server/api/index.ts @@ -56,8 +56,6 @@ router.use(require('./service/discord').routes()); router.use(require('./service/github').routes()); router.use(require('./service/twitter').routes()); -router.use(require('./mastodon').routes()); - // Return 404 for unknown API router.all('*', async ctx => { ctx.status = 404; diff --git a/src/server/api/mastodon/emoji.ts b/src/server/api/mastodon/emoji.ts deleted file mode 100644 index df19c6e75..000000000 --- a/src/server/api/mastodon/emoji.ts +++ /dev/null @@ -1,35 +0,0 @@ -export type IMastodonEmoji = { - shortcode: string, - url: string, - static_url: string, - visible_in_picker: boolean -}; - -export async function toMastodonEmojis(emoji: any): Promise { - return [{ - shortcode: emoji.name, - url: emoji.url, - static_url: emoji.url, // TODO: Implement ensuring static emoji - visible_in_picker: true - }, ...(emoji.aliases as string[] || []).map(x => ({ - shortcode: x, - url: emoji.url, - static_url: emoji.url, - visible_in_picker: true - }))]; -} - -export function toMisskeyEmojiSync(emoji: IMastodonEmoji) { - return { - name: emoji.shortcode, - url: emoji.url - }; -} - -export function toMisskeyEmojiWithAliasesSync(emoji: IMastodonEmoji, ...aliases: string[]) { - return { - name: emoji.shortcode, - aliases, - url: emoji.url - }; -} diff --git a/src/server/api/mastodon/index.ts b/src/server/api/mastodon/index.ts deleted file mode 100644 index 3680f22d7..000000000 --- a/src/server/api/mastodon/index.ts +++ /dev/null @@ -1,98 +0,0 @@ -import * as Router from 'koa-router'; -import User from '../../../models/user'; -import { toASCII } from 'punycode'; -import config from '../../../config'; -import { ObjectID } from 'bson'; -import Emoji from '../../../models/emoji'; -import { toMastodonEmojis } from './emoji'; -import fetchMeta from '../../../misc/fetch-meta'; -import * as pkg from '../../../../package.json'; - -// Init router -const router = new Router(); - -router.get('/v1/custom_emojis', async ctx => ctx.body = - (await Emoji.find({ host: null }, { - fields: { - _id: false - } - })).map(x => toMastodonEmojis(x))); - -router.get('/v1/instance', async ctx => { // TODO: This is a temporary implementation. Consider creating helper methods! - const meta = await fetchMeta(); - const { originalNotesCount, originalUsersCount } = meta.stats; - const domains = await User.distinct('host', { host: { $ne: null } }) as any as [] || []; - const maintainer = await User.findOne({ isAdmin: true }) || { - _id: ObjectID.createFromTime(0), - username: '', // TODO: Consider making this better! - host: config.host, - name: '', - isLocked: false, - isBot: false, - createdAt: new Date(0), - description: '', - avatarUrl: '', - bannerUrl: '', - followersCount: 0, - followingCount: 0, - notesCount: 0 - }; - const acct = maintainer.host ? `${maintainer.username}@${maintainer.host}` : maintainer.username; - const emojis = (await Emoji.find({ host: null }, { - fields: { - _id: false - } - })).map(toMastodonEmojis); - - ctx.body = { - uri: config.hostname, - title: meta.name || 'Misskey', - description: meta.description || '', - email: meta.maintainer.email, - version: `0.0.0 (compatible; Misskey ${pkg.version})`, // TODO: commit hash - thumbnail: meta.bannerUrl, - /* - urls: { - streaming_api: config.ws_url + '/mastodon' // TODO: Implement compatible streaming API - }, */ - stats: { - user_count: originalUsersCount, - status_count: originalNotesCount, - domain_count: domains.length - }, - languages: meta.langs || [ 'ja' ], - contact_account: { - id: maintainer._id, - username: maintainer.username, - acct: acct, - display_name: maintainer.name || '', - locked: maintainer.isLocked, - bot: maintainer.isBot, - created_at: maintainer.createdAt, - note: maintainer.description, - url: `${config.url}/@${acct}`, - avatar: maintainer.avatarUrl || '', - /* - avatar_static: maintainer.avatarUrl || '', // TODO: Implement static avatar url (ensure non-animated GIF) - */ - header: maintainer.bannerUrl || '', - /* - header_static: maintainer.bannerUrl || '', // TODO: Implement static header url (ensure non-animated GIF) - */ - followers_count: maintainer.followersCount, - following_count: maintainer.followingCount, - statuses_count: maintainer.notesCount, - emojis: emojis, - moved: null, - fields: null - } - }; -}); - -router.get('/v1/instance/peers', async ctx => { - const peers = await User.distinct('host', { host: { $ne: null } }) as any as string[]; - const punyCodes = peers.map(peer => toASCII(peer)); - ctx.body = punyCodes; -}); - -module.exports = router;