diff --git a/package.json b/package.json index e47fe7993..1b7b1921b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "2024.3.1-host.4b", + "version": "2024.3.1-host.4c", "codename": "nasubi", "repository": { "type": "git", diff --git a/packages/backend/src/server/api/endpoints/users/get-following-birthday-users.ts b/packages/backend/src/server/api/endpoints/users/get-following-birthday-users.ts index 9377583df..bf35fc9e4 100644 --- a/packages/backend/src/server/api/endpoints/users/get-following-birthday-users.ts +++ b/packages/backend/src/server/api/endpoints/users/get-following-birthday-users.ts @@ -126,13 +126,16 @@ export default class extends Endpoint { // eslint- ) ).map(u => [u.id, u])); + const now = new Date(); return birthdayUsers .map(item => { - const birthday = new Date(); - birthday.setMonth(Math.floor(item.birthday_date / 100) - 1); - birthday.setDate(item.birthday_date % 100); - birthday.setHours(0, 0, 0, 0); - if (birthday.getTime() < Date.now()) birthday.setFullYear(new Date().getFullYear() + 1); + const birthday = new Date( + now.getFullYear(), + Math.floor(item.birthday_date / 100) - 1, + item.birthday_date % 100, + 0, 0, 0, 0, + ); + if (birthday.getTime() < now.getTime()) birthday.setFullYear(now.getFullYear() + 1); return { birthday: birthday.toISOString(), user: users.get(item.user_id) }; }) .filter(item => item.user !== undefined) diff --git a/packages/frontend/src/components/MkAutocomplete.vue b/packages/frontend/src/components/MkAutocomplete.vue index 06de95ab1..43ce8bbb5 100644 --- a/packages/frontend/src/components/MkAutocomplete.vue +++ b/packages/frontend/src/components/MkAutocomplete.vue @@ -281,13 +281,7 @@ function exec() { emojis.value = searchEmoji(props.q, emojiDb.value); } else if (props.type === 'emojiComplete') { - if (!props.q || props.q === '') { - // 最近使った絵文字をサジェスト - emojis.value = defaultStore.state.recentlyUsedEmojis.map(emoji => unicodeEmojiDB.value.find(dbEmoji => dbEmoji.emoji === emoji)).filter(x => x) as EmojiDef[]; - return; - } - - emojis.value = searchEmoji(props.q, unicodeEmojiDB.value); + emojis.value = searchEmoji(props.q, unicodeEmojiDB.value, true); } else if (props.type === 'mfmTag') { if (!props.q || props.q === '') { mfmTags.value = MFM_TAGS; diff --git a/packages/frontend/src/pages/user/home.vue b/packages/frontend/src/pages/user/home.vue index f30d01ca2..9831f4050 100644 --- a/packages/frontend/src/pages/user/home.vue +++ b/packages/frontend/src/pages/user/home.vue @@ -326,7 +326,7 @@ async function fetchSkebStatus() { function buildSkebStatus(): string { if (!userSkebStatus.value) return ''; - if (userSkebStatus.value.isCreator) { + if (userSkebStatus.value.isAcceptable || userSkebStatus.value.isCreator) { let status = ''; if (userSkebStatus.value.isAcceptable) { diff --git a/packages/frontend/src/scripts/search-emoji.ts b/packages/frontend/src/scripts/search-emoji.ts index 2e77e985b..217d2672e 100644 --- a/packages/frontend/src/scripts/search-emoji.ts +++ b/packages/frontend/src/scripts/search-emoji.ts @@ -16,7 +16,7 @@ export type EmojiDef = { }; type EmojiScore = { emoji: EmojiDef, score: number }; -export function searchEmoji(query: string | null, emojiDb: EmojiDef[], max = 30): EmojiDef[] { +export function searchEmoji(query: string | null, emojiDb: EmojiDef[], exact = false, max = 30): EmojiDef[] { if (!query) { return []; } @@ -40,6 +40,13 @@ export function searchEmoji(query: string | null, emojiDb: EmojiDef[], max = 30) }); } + if (exact) { + return [...matched.values()] + .sort((x, y) => y.score - x.score) + .slice(0, max) + .map(it => it.emoji); + } + // 前方一致(エイリアスなし) if (matched.size < max) { emojiDb.some(x => { diff --git a/packages/misskey-js/package.json b/packages/misskey-js/package.json index 5b0f3081b..d7d77290e 100644 --- a/packages/misskey-js/package.json +++ b/packages/misskey-js/package.json @@ -1,7 +1,7 @@ { "type": "module", "name": "misskey-js", - "version": "2024.3.1-host.4b", + "version": "2024.3.1-host.4c", "description": "Misskey SDK for JavaScript", "types": "./built/dts/index.d.ts", "exports": {