summaryrefslogtreecommitdiff
path: root/packages/backend/src
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-03-16 15:08:48 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-03-16 15:08:48 +0900
commit8ae9d2eaa8b0842671558370f787902e94b7f5a3 (patch)
tree90c37521f7cbe381d8b880e68fba89dc2f6fe7f1 /packages/backend/src
parentUpdate NotificationService.ts (diff)
downloadmisskey-8ae9d2eaa8b0842671558370f787902e94b7f5a3.tar.gz
misskey-8ae9d2eaa8b0842671558370f787902e94b7f5a3.tar.bz2
misskey-8ae9d2eaa8b0842671558370f787902e94b7f5a3.zip
enhance: カスタム絵文字にライセンス情報を付与できるように
Resolve #10091
Diffstat (limited to 'packages/backend/src')
-rw-r--r--packages/backend/src/core/CustomEmojiService.ts2
-rw-r--r--packages/backend/src/core/entities/EmojiEntityService.ts1
-rw-r--r--packages/backend/src/models/entities/Emoji.ts5
-rw-r--r--packages/backend/src/models/json-schema/emoji.ts4
-rw-r--r--packages/backend/src/queue/processors/ImportCustomEmojisProcessorService.ts1
-rw-r--r--packages/backend/src/server/api/endpoints/admin/emoji/add.ts1
-rw-r--r--packages/backend/src/server/api/endpoints/admin/emoji/copy.ts1
-rw-r--r--packages/backend/src/server/api/endpoints/admin/emoji/update.ts2
8 files changed, 17 insertions, 0 deletions
diff --git a/packages/backend/src/core/CustomEmojiService.ts b/packages/backend/src/core/CustomEmojiService.ts
index 4ef21e5117..b404848d7d 100644
--- a/packages/backend/src/core/CustomEmojiService.ts
+++ b/packages/backend/src/core/CustomEmojiService.ts
@@ -44,6 +44,7 @@ export class CustomEmojiService {
category: string | null;
aliases: string[];
host: string | null;
+ license: string | null;
}): Promise<Emoji> {
const emoji = await this.emojisRepository.insert({
id: this.idService.genId(),
@@ -55,6 +56,7 @@ export class CustomEmojiService {
originalUrl: data.driveFile.url,
publicUrl: data.driveFile.webpublicUrl ?? data.driveFile.url,
type: data.driveFile.webpublicType ?? data.driveFile.type,
+ license: data.license,
}).then(x => this.emojisRepository.findOneByOrFail(x.identifiers[0]));
if (data.host == null) {
diff --git a/packages/backend/src/core/entities/EmojiEntityService.ts b/packages/backend/src/core/entities/EmojiEntityService.ts
index 02e513fa3c..3bad048bc0 100644
--- a/packages/backend/src/core/entities/EmojiEntityService.ts
+++ b/packages/backend/src/core/entities/EmojiEntityService.ts
@@ -50,6 +50,7 @@ export class EmojiEntityService {
host: emoji.host,
// || emoji.originalUrl してるのは後方互換性のため(publicUrlはstringなので??はだめ)
url: emoji.publicUrl || emoji.originalUrl,
+ license: emoji.license,
};
}
diff --git a/packages/backend/src/models/entities/Emoji.ts b/packages/backend/src/models/entities/Emoji.ts
index 7332dd1857..dbb437d439 100644
--- a/packages/backend/src/models/entities/Emoji.ts
+++ b/packages/backend/src/models/entities/Emoji.ts
@@ -55,4 +55,9 @@ export class Emoji {
array: true, length: 128, default: '{}',
})
public aliases: string[];
+
+ @Column('varchar', {
+ length: 1024, nullable: true,
+ })
+ public license: string | null;
}
diff --git a/packages/backend/src/models/json-schema/emoji.ts b/packages/backend/src/models/json-schema/emoji.ts
index c00c3dac1d..db4fd62cf6 100644
--- a/packages/backend/src/models/json-schema/emoji.ts
+++ b/packages/backend/src/models/json-schema/emoji.ts
@@ -59,5 +59,9 @@ export const packedEmojiDetailedSchema = {
type: 'string',
optional: false, nullable: false,
},
+ license: {
+ type: 'string',
+ optional: false, nullable: true,
+ },
},
} as const;
diff --git a/packages/backend/src/queue/processors/ImportCustomEmojisProcessorService.ts b/packages/backend/src/queue/processors/ImportCustomEmojisProcessorService.ts
index 4ecf8daf74..ed96e9a525 100644
--- a/packages/backend/src/queue/processors/ImportCustomEmojisProcessorService.ts
+++ b/packages/backend/src/queue/processors/ImportCustomEmojisProcessorService.ts
@@ -102,6 +102,7 @@ export class ImportCustomEmojisProcessorService {
host: null,
aliases: emojiInfo.aliases,
driveFile,
+ license: emojiInfo.license,
});
}
diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/add.ts b/packages/backend/src/server/api/endpoints/admin/emoji/add.ts
index 04c58050ff..2fb3e489e7 100644
--- a/packages/backend/src/server/api/endpoints/admin/emoji/add.ts
+++ b/packages/backend/src/server/api/endpoints/admin/emoji/add.ts
@@ -56,6 +56,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
category: null,
aliases: [],
host: null,
+ license: null,
});
this.moderationLogService.insertModerationLog(me, 'addEmoji', {
diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/copy.ts b/packages/backend/src/server/api/endpoints/admin/emoji/copy.ts
index 6381a8743e..fea11a67d6 100644
--- a/packages/backend/src/server/api/endpoints/admin/emoji/copy.ts
+++ b/packages/backend/src/server/api/endpoints/admin/emoji/copy.ts
@@ -87,6 +87,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
originalUrl: driveFile.url,
publicUrl: driveFile.webpublicUrl ?? driveFile.url,
type: driveFile.webpublicType ?? driveFile.type,
+ license: emoji.license,
}).then(x => this.emojisRepository.findOneByOrFail(x.identifiers[0]));
await this.db.queryResultCache?.remove(['meta_emojis']);
diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/update.ts b/packages/backend/src/server/api/endpoints/admin/emoji/update.ts
index 02efb8710a..dad0e3ef86 100644
--- a/packages/backend/src/server/api/endpoints/admin/emoji/update.ts
+++ b/packages/backend/src/server/api/endpoints/admin/emoji/update.ts
@@ -35,6 +35,7 @@ export const paramDef = {
aliases: { type: 'array', items: {
type: 'string',
} },
+ license: { type: 'string', nullable: true },
},
required: ['id', 'name', 'aliases'],
} as const;
@@ -64,6 +65,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
name: ps.name,
category: ps.category,
aliases: ps.aliases,
+ license: ps.license,
});
await this.db.queryResultCache?.remove(['meta_emojis']);