HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux wordpress-ubuntu-s-2vcpu-4gb-fra1-01 5.4.0-169-generic #187-Ubuntu SMP Thu Nov 23 14:52:28 UTC 2023 x86_64
User: root (0)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //var/www/zaklada/html/node_modules/sane/src/utils/recrawl-warning-dedupe.js
'use strict';

var RECRAWL_WARNINGS = []; // shared structure, one per process.
var REG = /Recrawled this watch (\d+) times, most recently because:\n([^:]+)/;

module.exports = RecrawlWarning;
function RecrawlWarning(root, count) {
  this.root = root;
  this.count = count;
}

RecrawlWarning.RECRAWL_WARNINGS = RECRAWL_WARNINGS;
RecrawlWarning.REGEXP = REG;

RecrawlWarning.findByRoot = function(root) {
  for (var i = 0; i < RECRAWL_WARNINGS.length; i++) {
    var warning = RECRAWL_WARNINGS[i];
    if (warning.root === root) {
      return warning;
    }
  }
};

RecrawlWarning.isRecrawlWarningDupe = function(warningMessage) {
  if (typeof warningMessage !== 'string') { return false; }
  var match = warningMessage.match(REG);
  if (!match) { return false; }
  var count = Number(match[1]);
  var root = match[2];

  var warning = RecrawlWarning.findByRoot(root);

  if (warning) {
    // only keep the highest count, assume count to either stay the same or
    // increase.
    if (warning.count >= count ) {
      return true;
    } else {
      // update the existing warning to the latest (highest) count
      warning.count = count;
      return false;
    }
  } else {
    RECRAWL_WARNINGS.push(new RecrawlWarning(root, count));
    return false;
  }
};