0
0

enhance(sw): If receiving a push notification issued more than a day, ignore it. (#8980)

* enhance(sw): ignore old push notification

* ✌️

* 半日

* !==

* 1日
This commit is contained in:
tamaina 2022-07-10 15:15:21 +09:00 committed by GitHub
parent 7f808eaf42
commit 83ebe79a3f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 1 deletions

View File

@ -64,6 +64,7 @@ export async function pushNotification<T extends keyof pushNotificationsTypes>(u
type, type,
body: type === 'notification' ? truncateNotification(body as Packed<'Notification'>) : body, body: type === 'notification' ? truncateNotification(body as Packed<'Notification'>) : body,
userId, userId,
dateTime: (new Date()).getTime(),
}), { }), {
proxy: config.proxy, proxy: config.proxy,
}).catch((err: any) => { }).catch((err: any) => {

View File

@ -42,8 +42,12 @@ self.addEventListener('push', ev => {
// case 'driveFileCreated': // case 'driveFileCreated':
case 'notification': case 'notification':
case 'unreadMessagingMessage': case 'unreadMessagingMessage':
// 1日以上経過している場合は無視
if ((new Date()).getTime() - data.dateTime > 1000 * 60 * 60 * 24) break;
// クライアントがあったらストリームに接続しているということなので通知しない // クライアントがあったらストリームに接続しているということなので通知しない
if (clients.length != 0) return; if (clients.length !== 0) break;
return createNotification(data); return createNotification(data);
case 'readAllNotifications': case 'readAllNotifications':
for (const n of await self.registration.getNotifications()) { for (const n of await self.registration.getNotifications()) {

View File

@ -24,6 +24,7 @@ export type pushNotificationData<K extends keyof pushNotificationDataSourceMap>
type: K; type: K;
body: pushNotificationDataSourceMap[K]; body: pushNotificationDataSourceMap[K];
userId: string; userId: string;
dateTime: number;
}; };
export type pushNotificationDataMap = { export type pushNotificationDataMap = {