@@ -1463,10 +1463,11 @@ self.addEventListener('hiddenSettingsChanged', ( ) => {
1463
1463
1464
1464
/******************************************************************************/
1465
1465
1466
- µb . scheduleAssetUpdater = ( ( ) => {
1466
+ {
1467
1467
let timer , next = 0 ;
1468
1468
1469
- return function ( updateDelay ) {
1469
+ µb . scheduleAssetUpdater = async function ( updateDelay ) {
1470
+
1470
1471
if ( timer ) {
1471
1472
clearTimeout ( timer ) ;
1472
1473
timer = undefined ;
@@ -1475,24 +1476,45 @@ self.addEventListener('hiddenSettingsChanged', ( ) => {
1475
1476
next = 0 ;
1476
1477
return ;
1477
1478
}
1479
+
1480
+ const assetDict = await io . metadata ( ) ;
1478
1481
const now = Date . now ( ) ;
1482
+
1483
+ let needEmergencyUpdate = false ;
1484
+ for ( const asset of Object . values ( assetDict ) ) {
1485
+ if ( asset . hasRemoteURL !== true ) { continue ; }
1486
+ if ( asset . content === 'filters' && asset . off === true ) { continue ; }
1487
+ if ( asset . obsolete !== true ) { continue ; }
1488
+ const lastUpdateInDays = ( now - asset . writeTime ) / 86400000 ;
1489
+ const daysSinceVeryObsolete = lastUpdateInDays - 2 * asset . updateAfter ;
1490
+ if ( daysSinceVeryObsolete < 0 ) { continue ; }
1491
+ needEmergencyUpdate = true ;
1492
+ break ;
1493
+ }
1494
+
1479
1495
// Use the new schedule if and only if it is earlier than the previous
1480
1496
// one.
1481
1497
if ( next !== 0 ) {
1482
1498
updateDelay = Math . min ( updateDelay , Math . max ( next - now , 0 ) ) ;
1483
1499
}
1500
+
1501
+ if ( needEmergencyUpdate ) {
1502
+ updateDelay = Math . min ( updateDelay , 15000 ) ;
1503
+ }
1504
+
1484
1505
next = now + updateDelay ;
1506
+
1507
+ const fetchDelay = needEmergencyUpdate
1508
+ ? 2000
1509
+ : this . hiddenSettings . autoUpdateAssetFetchPeriod * 1000 || 60000 ;
1510
+
1485
1511
timer = vAPI . setTimeout ( ( ) => {
1486
1512
timer = undefined ;
1487
1513
next = 0 ;
1488
- io . updateStart ( {
1489
- delay : this . hiddenSettings . autoUpdateAssetFetchPeriod * 1000 ||
1490
- 120000 ,
1491
- auto : true ,
1492
- } ) ;
1514
+ io . updateStart ( { delay : fetchDelay , auto : true } ) ;
1493
1515
} , updateDelay ) ;
1494
1516
} ;
1495
- } ) ( ) ;
1517
+ }
1496
1518
1497
1519
/******************************************************************************/
1498
1520
0 commit comments