diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2020-02-19 06:36:50 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2020-02-19 06:36:50 +0900 |
| commit | b23b3e4d2102c274e4e1dd4bdc4ca6cfec42c354 (patch) | |
| tree | 1df68d528ebb773ebfee04a8cb0a5121a3d0ddb5 /src | |
| parent | Improve notification (diff) | |
| download | sharkey-b23b3e4d2102c274e4e1dd4bdc4ca6cfec42c354.tar.gz sharkey-b23b3e4d2102c274e4e1dd4bdc4ca6cfec42c354.tar.bz2 sharkey-b23b3e4d2102c274e4e1dd4bdc4ca6cfec42c354.zip | |
Fix #5984
Diffstat (limited to 'src')
| -rw-r--r-- | src/misc/reaction-lib.ts | 22 | ||||
| -rw-r--r-- | src/models/repositories/note.ts | 4 |
2 files changed, 24 insertions, 2 deletions
diff --git a/src/misc/reaction-lib.ts b/src/misc/reaction-lib.ts index eba57ea303..c525d89385 100644 --- a/src/misc/reaction-lib.ts +++ b/src/misc/reaction-lib.ts @@ -20,6 +20,28 @@ export async function getFallbackReaction(): Promise<string> { return meta.useStarForReactionFallback ? '⭐' : '👍'; } +export function convertLegacyReactions(reactions: Record<string, number>) { + const _reactions = {} as Record<string, number>; + + for (const reaction of Object.keys(reactions)) { + if (Object.keys(legacy10).includes(reaction)) { + if (_reactions[legacy10[reaction]]) { + _reactions[legacy10[reaction]] += reactions[reaction]; + } else { + _reactions[legacy10[reaction]] = reactions[reaction]; + } + } else { + if (_reactions[reaction]) { + _reactions[reaction] += reactions[reaction]; + } else { + _reactions[reaction] = reactions[reaction]; + } + } + } + + return _reactions; +} + export async function toDbReaction(reaction?: string | null): Promise<string> { if (reaction == null) return await getFallbackReaction(); diff --git a/src/models/repositories/note.ts b/src/models/repositories/note.ts index 59ec63b45c..cc856f2ba1 100644 --- a/src/models/repositories/note.ts +++ b/src/models/repositories/note.ts @@ -6,7 +6,7 @@ import { Emojis, Users, PollVotes, DriveFiles, NoteReactions, Followings, Polls import { ensure } from '../../prelude/ensure'; import { SchemaType } from '../../misc/schema'; import { awaitAll } from '../../prelude/await-all'; -import { convertLegacyReaction } from '../../misc/reaction-lib'; +import { convertLegacyReaction, convertLegacyReactions } from '../../misc/reaction-lib'; export type PackedNote = SchemaType<typeof packedNoteSchema>; @@ -187,7 +187,7 @@ export class NoteRepository extends Repository<Note> { viaMobile: note.viaMobile || undefined, renoteCount: note.renoteCount, repliesCount: note.repliesCount, - reactions: note.reactions, // v12 TODO: convert legacy reaction + reactions: convertLegacyReactions(note.reactions), tags: note.tags.length > 0 ? note.tags : undefined, emojis: populateEmojis(note.emojis, host, Object.keys(note.reactions)), fileIds: note.fileIds, |