Поймал интересный баг BAS (решено)

Поддержка
  • Версия последняя 25.7.0 и 25.8.0 проблема актуальна.

    Есть код который отчищает список от ссылок ведущих не на домен который щас открыт

    var filteredUrls = [];
    var domain = [[PARSED_URL_HOST]];
    
    var regex = new RegExp(domain, 'i');
    
    for (var i = 0; i < [[URLS_LIST]].length; i++) {
        var url = [[URLS_LIST]][i];
        if (regex.test(url)) {
            filteredUrls.push(url);
        }
    }
    
    [[URLS_LIST]] = filteredUrls;
    

    Есть переменная CURRENT_URL которая получает ссылку на страницу которая открыта.. на 1 круге система работает отлично. А вот при повторной попытке получить CURRENT_URL оказывается что в нем уже есть данные, а именно после выполнения кода туда записало откинутую ссылку, которую сбросить никак не выходит. CURRENT_URL зависает ошибкой, и ни установка новой переменной, ни присвоение ей значения. Данный параметр не сбрасывает.

    2.xml

  • @Dodok Скорей всего в кубике выполнить код переопределил встроенную функцию, в БАС это очень легко получается сделать к сожалению

  • @UserTrue Есть предположение что domain и CURRENT_URL связаны, но вопрос в том как вернуть как было.

    Городить списки с переборами вместо кода, вообще нет желания.

  • @Dodok Вот код действия Текущий url

    url()!
    

    Ты его сломал своим кодом

  • Переделал работает.

    Вдруг кому будет нужен код

    var filteredUrls = [];
    var domain = [[PARSED_URL_HOST]];
    
    var regex = new RegExp(domain, 'i');
    
    for (var i = 0; i < [[URLS_LIST]].length; i++) {
        var currentUrl = [[URLS_LIST]][i];
        if (regex.test(currentUrl)) {
            filteredUrls.push('url(' + currentUrl + ')');
        }
    }
    
    [[URLS_LIST]] = filteredUrls;
    
  • Так же код который может помочь убрать лишние ссылки на файлы из списка сайтов

    // Исходный список URL-адресов
    var urlsList = [[URLS_LIST]];
    
    // Окончания файлов для фильтрации
    var fileExtensions = ['.css', '.js', '.wow', '.php', '.doc', '.html', '.pdf', '.txt', '.zip', '.wav'];
    
    // Расширения файлов для фильтрации
    var mediaExtensions = ['.mp3', '.jpg', '.jpeg', '.png', '.gif', '.bmp', '.svg', '.webp', '.ico'];
    
    // Результирующий список URL-адресов
    var filteredUrls = [];
    
    urlsList.forEach(function(url) {
      // Проверка окончаний файлов
      var hasInvalidFileExtension = fileExtensions.some(function(extension) {
        var regex = new RegExp(extension.replace('.', '\\.') + '($|\\W)');
        return regex.test(url);
      });
    
      // Проверка расширений файлов
      var hasInvalidMediaExtension = mediaExtensions.some(function(extension) {
        var regex = new RegExp(extension.replace('.', '\\.') + '($|\\W)', 'i');
        return regex.test(url);
      });
    
      if (!hasInvalidFileExtension && !hasInvalidMediaExtension) {
        filteredUrls.push(url);
      }
    });
    
    // Запись результата обратно в переменную [[URLS_LIST]]
    [[URLS_LIST]] = filteredUrls;
    
    // Преобразование списка в строку с новой строкой в качестве разделителя
    var result = filteredUrls.join('\n');
    
    

  • 0 Votes
    2 Posts
    193 Views
  • 0 Votes
    3 Posts
    557 Views
  • BAS and OpenVPN

    Moved Поддержка
    1 Votes
    2 Posts
    528 Views
  • 0 Votes
    14 Posts
    905 Views
  • 1 Votes
    5 Posts
    1398 Views