This commit is contained in:
syuilo 2020-02-19 06:36:50 +09:00
parent e2186fa0b9
commit 1fb6f5c2eb
2 changed files with 24 additions and 2 deletions

View file

@ -20,6 +20,28 @@ export async function getFallbackReaction(): Promise<string> {
return meta.useStarForReactionFallback ? '⭐' : '👍'; 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> { export async function toDbReaction(reaction?: string | null): Promise<string> {
if (reaction == null) return await getFallbackReaction(); if (reaction == null) return await getFallbackReaction();

View file

@ -6,7 +6,7 @@ import { Emojis, Users, PollVotes, DriveFiles, NoteReactions, Followings, Polls
import { ensure } from '../../prelude/ensure'; import { ensure } from '../../prelude/ensure';
import { SchemaType } from '../../misc/schema'; import { SchemaType } from '../../misc/schema';
import { awaitAll } from '../../prelude/await-all'; 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>; export type PackedNote = SchemaType<typeof packedNoteSchema>;
@ -187,7 +187,7 @@ export class NoteRepository extends Repository<Note> {
viaMobile: note.viaMobile || undefined, viaMobile: note.viaMobile || undefined,
renoteCount: note.renoteCount, renoteCount: note.renoteCount,
repliesCount: note.repliesCount, repliesCount: note.repliesCount,
reactions: note.reactions, // v12 TODO: convert legacy reaction reactions: convertLegacyReactions(note.reactions),
tags: note.tags.length > 0 ? note.tags : undefined, tags: note.tags.length > 0 ? note.tags : undefined,
emojis: populateEmojis(note.emojis, host, Object.keys(note.reactions)), emojis: populateEmojis(note.emojis, host, Object.keys(note.reactions)),
fileIds: note.fileIds, fileIds: note.fileIds,