mirror of
https://github.com/misskey-dev/misskey.git
synced 2026-05-25 13:13:56 +02:00
Fix: 通知のページネーションで2つ以上読み込めなくなることがある問題 (#15277)
* fix: notifications-groupedのinclude/exclude typesに:groupedを指定できてしまう問題 * refactor: 通知の取得処理を Notification Service に移動 * feat: add function to parse additional part of id * fix: 通知のページネーションが正しく動かない問題 Redisにのページネーションで使用する時間及びidとRedis上のものが混同されていたので、Misskeyが生成するものに寄せました。 * pnpm run build-misskey-js-with-types * chore: XADDをretryするように * fix: notifications-groupedでxrevrangeしているのを消し忘れていた
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
// https://misskey.m544.net/notes/71899acdcc9859ec5708ac24
|
||||
|
||||
import { customAlphabet } from 'nanoid';
|
||||
import { parseBigInt36 } from '@/misc/bigint.js';
|
||||
|
||||
export const aidxRegExp = /^[0-9a-z]{16}$/;
|
||||
|
||||
@@ -16,6 +17,7 @@ const TIME2000 = 946684800000;
|
||||
const TIME_LENGTH = 8;
|
||||
const NODE_LENGTH = 4;
|
||||
const NOISE_LENGTH = 4;
|
||||
const AIDX_LENGTH = TIME_LENGTH + NODE_LENGTH + NOISE_LENGTH;
|
||||
|
||||
const nodeId = customAlphabet('0123456789abcdefghijklmnopqrstuvwxyz', NODE_LENGTH)();
|
||||
let counter = 0;
|
||||
@@ -42,6 +44,12 @@ export function parseAidx(id: string): { date: Date; } {
|
||||
return { date: new Date(time) };
|
||||
}
|
||||
|
||||
export function parseAidxFull(id: string): { date: number; additional: bigint; } {
|
||||
const date = parseInt(id.slice(0, TIME_LENGTH), 36) + TIME2000;
|
||||
const additional = parseBigInt36(id.slice(TIME_LENGTH, AIDX_LENGTH));
|
||||
return { date, additional };
|
||||
}
|
||||
|
||||
export function isSafeAidxT(t: number): boolean {
|
||||
return t > TIME2000;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user