Skip to content

Commit ed51209

Browse files
committed
絵文字のライセンスを表示できるように
1 parent 2be93b1 commit ed51209

File tree

5 files changed

+74
-18
lines changed

5 files changed

+74
-18
lines changed

packages/backend/src/server/api/EndpointsModule.ts

+4
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,7 @@ import * as ep___i_webhooks_update from './endpoints/i/webhooks/update.js';
223223
import * as ep___i_webhooks_delete from './endpoints/i/webhooks/delete.js';
224224
import * as ep___meta from './endpoints/meta.js';
225225
import * as ep___emojis from './endpoints/emojis.js';
226+
import * as ep___emoji from './endpoints/emoji.js';
226227
import * as ep___miauth_genToken from './endpoints/miauth/gen-token.js';
227228
import * as ep___mute_create from './endpoints/mute/create.js';
228229
import * as ep___mute_delete from './endpoints/mute/delete.js';
@@ -550,6 +551,7 @@ const $i_webhooks_update: Provider = { provide: 'ep:i/webhooks/update', useClass
550551
const $i_webhooks_delete: Provider = { provide: 'ep:i/webhooks/delete', useClass: ep___i_webhooks_delete.default };
551552
const $meta: Provider = { provide: 'ep:meta', useClass: ep___meta.default };
552553
const $emojis: Provider = { provide: 'ep:emojis', useClass: ep___emojis.default };
554+
const $emoji: Provider = { provide: 'ep:emoji', useClass: ep___emoji.default };
553555
const $miauth_genToken: Provider = { provide: 'ep:miauth/gen-token', useClass: ep___miauth_genToken.default };
554556
const $mute_create: Provider = { provide: 'ep:mute/create', useClass: ep___mute_create.default };
555557
const $mute_delete: Provider = { provide: 'ep:mute/delete', useClass: ep___mute_delete.default };
@@ -881,6 +883,7 @@ const $retention: Provider = { provide: 'ep:retention', useClass: ep___retention
881883
$i_webhooks_delete,
882884
$meta,
883885
$emojis,
886+
$emoji,
884887
$miauth_genToken,
885888
$mute_create,
886889
$mute_delete,
@@ -1206,6 +1209,7 @@ const $retention: Provider = { provide: 'ep:retention', useClass: ep___retention
12061209
$i_webhooks_delete,
12071210
$meta,
12081211
$emojis,
1212+
$emoji,
12091213
$miauth_genToken,
12101214
$mute_create,
12111215
$mute_delete,

packages/backend/src/server/api/endpoints.ts

+2
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,7 @@ import * as ep___i_webhooks_update from './endpoints/i/webhooks/update.js';
223223
import * as ep___i_webhooks_delete from './endpoints/i/webhooks/delete.js';
224224
import * as ep___meta from './endpoints/meta.js';
225225
import * as ep___emojis from './endpoints/emojis.js';
226+
import * as ep___emoji from './endpoints/emoji.js';
226227
import * as ep___miauth_genToken from './endpoints/miauth/gen-token.js';
227228
import * as ep___mute_create from './endpoints/mute/create.js';
228229
import * as ep___mute_delete from './endpoints/mute/delete.js';
@@ -548,6 +549,7 @@ const eps = [
548549
['i/webhooks/delete', ep___i_webhooks_delete],
549550
['meta', ep___meta],
550551
['emojis', ep___emojis],
552+
['emoji', ep___emoji],
551553
['miauth/gen-token', ep___miauth_genToken],
552554
['mute/create', ep___mute_create],
553555
['mute/delete', ep___mute_delete],
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import { IsNull } from 'typeorm';
2+
import { Inject, Injectable } from '@nestjs/common';
3+
import type { EmojisRepository } from '@/models/index.js';
4+
import { Endpoint } from '@/server/api/endpoint-base.js';
5+
import { EmojiEntityService } from '@/core/entities/EmojiEntityService.js';
6+
import type { Config } from '@/config.js';
7+
import { DI } from '@/di-symbols.js';
8+
9+
export const meta = {
10+
tags: ['meta'],
11+
12+
requireCredential: false,
13+
allowGet: true,
14+
cacheSec: 3600,
15+
16+
res: {
17+
type: 'object',
18+
optional: false, nullable: false,
19+
ref: 'EmojiDetailed',
20+
},
21+
} as const;
22+
23+
export const paramDef = {
24+
type: 'object',
25+
properties: {
26+
name: {
27+
type: 'string',
28+
},
29+
},
30+
required: ['name'],
31+
} as const;
32+
33+
// eslint-disable-next-line import/no-default-export
34+
@Injectable()
35+
export default class extends Endpoint<typeof meta, typeof paramDef> {
36+
constructor(
37+
@Inject(DI.config)
38+
private config: Config,
39+
40+
@Inject(DI.emojisRepository)
41+
private emojisRepository: EmojisRepository,
42+
43+
private emojiEntityService: EmojiEntityService,
44+
) {
45+
super(meta, paramDef, async (ps, me) => {
46+
const emoji = await this.emojisRepository.findOneOrFail({
47+
where: {
48+
name: ps.name,
49+
host: IsNull(),
50+
},
51+
});
52+
53+
return this.emojiEntityService.packDetailed(emoji);
54+
});
55+
}
56+
}

packages/backend/src/server/api/endpoints/emojis.ts

+1-18
Original file line numberDiff line numberDiff line change
@@ -23,24 +23,7 @@ export const meta = {
2323
items: {
2424
type: 'object',
2525
optional: false, nullable: false,
26-
properties: {
27-
name: {
28-
type: 'string',
29-
optional: false, nullable: false,
30-
},
31-
aliases: {
32-
type: 'array',
33-
optional: false, nullable: false,
34-
items: {
35-
type: 'string',
36-
optional: false, nullable: false,
37-
},
38-
},
39-
category: {
40-
type: 'string',
41-
optional: false, nullable: true,
42-
},
43-
},
26+
ref: 'EmojiSimple',
4427
},
4528
},
4629
},

packages/frontend/src/pages/emojis.emoji.vue

+11
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,17 @@ function menu(ev) {
3434
copyToClipboard(`:${props.emoji.name}:`);
3535
os.success();
3636
},
37+
}, {
38+
text: i18n.ts.info,
39+
icon: 'ti ti-info-circle',
40+
action: () => {
41+
os.apiGet('emoji', { name: props.emoji.name }).then(res => {
42+
os.alert({
43+
type: 'info',
44+
text: `License: ${res.license}`,
45+
});
46+
});
47+
},
3748
}], ev.currentTarget ?? ev.target);
3849
}
3950
</script>

0 commit comments

Comments
 (0)