diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2020-02-14 01:09:39 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2020-02-14 01:09:39 +0900 |
| commit | f5f7654f4b9a99d3b57d55435e6d467084186c4d (patch) | |
| tree | edeccdea7eb1474fbffc4772374a2194128aaa5d /src/server/api/endpoints/admin/emoji | |
| parent | 動きのあるMFMを無効にするオプション (diff) | |
| download | sharkey-f5f7654f4b9a99d3b57d55435e6d467084186c4d.tar.gz sharkey-f5f7654f4b9a99d3b57d55435e6d467084186c4d.tar.bz2 sharkey-f5f7654f4b9a99d3b57d55435e6d467084186c4d.zip | |
Improve custom emoji managemant
Diffstat (limited to 'src/server/api/endpoints/admin/emoji')
| -rw-r--r-- | src/server/api/endpoints/admin/emoji/add.ts | 47 | ||||
| -rw-r--r-- | src/server/api/endpoints/admin/emoji/update.ts | 9 |
2 files changed, 16 insertions, 40 deletions
diff --git a/src/server/api/endpoints/admin/emoji/add.ts b/src/server/api/endpoints/admin/emoji/add.ts index 3a17760e53..610efbbe8f 100644 --- a/src/server/api/endpoints/admin/emoji/add.ts +++ b/src/server/api/endpoints/admin/emoji/add.ts @@ -1,11 +1,12 @@ import $ from 'cafy'; import define from '../../../define'; -import { detectUrlMime } from '../../../../../misc/detect-url-mime'; -import { Emojis } from '../../../../../models'; +import { Emojis, DriveFiles } from '../../../../../models'; import { genId } from '../../../../../misc/gen-id'; import { getConnection } from 'typeorm'; import { insertModerationLog } from '../../../../../services/insert-moderation-log'; import { ApiError } from '../../../error'; +import { ID } from '../../../../../misc/cafy-id'; +import rndstr from 'rndstr'; export const meta = { desc: { @@ -18,52 +19,36 @@ export const meta = { requireModerator: true, params: { - name: { - validator: $.str.min(1) + fileId: { + validator: $.type(ID) }, - - url: { - validator: $.str.min(1) - }, - - category: { - validator: $.optional.str - }, - - aliases: { - validator: $.optional.arr($.str.min(1)), - default: [] as string[] - } }, errors: { - emojiAlredyExists: { - message: 'Emoji already exists.', - code: 'EMOJI_ALREADY_EXISTS', + noSuchFile: { + message: 'No such file.', + code: 'MO_SUCH_FILE', id: 'fc46b5a4-6b92-4c33-ac66-b806659bb5cf' } } }; export default define(meta, async (ps, me) => { - const type = await detectUrlMime(ps.url); + const file = await DriveFiles.findOne(ps.fileId); - const exists = await Emojis.findOne({ - name: ps.name, - host: null - }); + if (file == null) throw new ApiError(meta.errors.noSuchFile); - if (exists != null) throw new ApiError(meta.errors.emojiAlredyExists); + const name = file.name.split('.')[0].match(/^[a-z0-9_]+$/) ? file.name.split('.')[0] : `_${rndstr('a-z0-9', 8)}_`; const emoji = await Emojis.save({ id: genId(), updatedAt: new Date(), - name: ps.name, - category: ps.category, + name: name, + category: null, host: null, - aliases: ps.aliases, - url: ps.url, - type, + aliases: [], + url: file.url, + type: file.type, }); await getConnection().queryResultCache!.remove(['meta_emojis']); diff --git a/src/server/api/endpoints/admin/emoji/update.ts b/src/server/api/endpoints/admin/emoji/update.ts index 0651b8d283..b6ecb39b43 100644 --- a/src/server/api/endpoints/admin/emoji/update.ts +++ b/src/server/api/endpoints/admin/emoji/update.ts @@ -1,6 +1,5 @@ import $ from 'cafy'; import define from '../../../define'; -import { detectUrlMime } from '../../../../../misc/detect-url-mime'; import { ID } from '../../../../../misc/cafy-id'; import { Emojis } from '../../../../../models'; import { getConnection } from 'typeorm'; @@ -29,10 +28,6 @@ export const meta = { validator: $.optional.str }, - url: { - validator: $.str - }, - aliases: { validator: $.arr($.str) } @@ -52,15 +47,11 @@ export default define(meta, async (ps) => { if (emoji == null) throw new ApiError(meta.errors.noSuchEmoji); - const type = await detectUrlMime(ps.url); - await Emojis.update(emoji.id, { updatedAt: new Date(), name: ps.name, category: ps.category, aliases: ps.aliases, - url: ps.url, - type, }); await getConnection().queryResultCache!.remove(['meta_emojis']); |