1- import { differenceInHours } from 'date-fns' ;
21import { StorageParams } from '../storage/storage-params' ;
32import { isDomainEquals } from '../utils/common' ;
43import { Settings } from './settings' ;
54import { Deffering } from '../entity/deffering' ;
65import { injectStorage } from '../storage/inject-storage' ;
76import { MINUTE } from '../utils/time' ;
87import { log } from '../utils/logger' ;
8+ import { millisecondsInHour } from 'date-fns' ;
99
1010export async function isInDeferList ( url : string ) : Promise < boolean > {
1111 const deferList = ( await Settings . getInstance ( ) . getSetting (
1212 StorageParams . BLOCK_DEFERRAL_TIME ,
1313 ) ) as Deffering [ ] ;
14- const array = Object . values ( deferList ) ;
15- const item = array ?. find ( x => isDomainEquals ( x . domain , url ) ) ;
16- if ( item != undefined )
17- log (
18- `Deferring time ${ url } ${ new Date ( item . time ) } diff ${ differenceInHours (
19- new Date ( item . time ) ,
20- new Date ( ) ,
21- ) } `,
22- ) ;
14+ const item = deferList ?. find ( x => isDomainEquals ( x . domain , url ) ) ;
15+ if ( item != undefined ) log ( `Deferring time ${ url } ${ new Date ( item . time ) } ` ) ;
2316 return item != undefined && item . time > Date . now ( ) ;
2417}
2518
2619export async function canDefering ( url : string ) : Promise < boolean > {
2720 const deferList = ( await Settings . getInstance ( ) . getSetting (
2821 StorageParams . BLOCK_DEFERRAL_TIME ,
2922 ) ) as Deffering [ ] ;
30- const array = Object . values ( deferList ) ;
31- const item = array ?. find ( x => isDomainEquals ( x . domain , url ) ) ;
32- if ( item != undefined )
33- log (
34- `Deferring time ${ url } ${ new Date ( item . time ) } diff ${ differenceInHours (
35- new Date ( item . time ) ,
36- new Date ( ) ,
37- ) } `,
38- ) ;
23+ const item = deferList ?. find ( x => isDomainEquals ( x . domain , url ) ) ;
24+ if ( item != undefined ) log ( `Deferring time ${ url } ${ new Date ( item . time ) } ` ) ;
3925 if ( item == undefined ) return true ;
4026
41- return item != undefined && differenceInHours ( new Date ( item . time ) , new Date ( ) ) > 24 ;
27+ return item != undefined && Date . now ( ) - new Date ( item . time ) . getTime ( ) > millisecondsInHour * 24 ;
4228}
4329
4430export async function defering ( url : string , timeInMinutes : number ) : Promise < void > {
@@ -47,10 +33,9 @@ export async function defering(url: string, timeInMinutes: number): Promise<void
4733 const deferList = ( await Settings . getInstance ( ) . getSetting (
4834 StorageParams . BLOCK_DEFERRAL_TIME ,
4935 ) ) as Deffering [ ] ;
50- const array = Object . values ( deferList ) ;
51- const item = array ?. find ( x => isDomainEquals ( x . domain , url ) ) ;
36+ const item = deferList ?. find ( x => isDomainEquals ( x . domain , url ) ) ;
5237 if ( item != undefined ) item . time = Date . now ( ) + timeInMinutes * MINUTE ;
53- else array . push ( new Deffering ( url , 5 ) ) ;
38+ else deferList . push ( new Deffering ( url , 5 ) ) ;
5439
55- await settingsStorage . saveValue ( StorageParams . BLOCK_DEFERRAL_TIME , array ) ;
40+ await settingsStorage . saveValue ( StorageParams . BLOCK_DEFERRAL_TIME , deferList ) ;
5641}
0 commit comments