Выпущена 27.6.1 версия BrowserAutomationStudio

Bablosoft News
  • а почему cookie не работают, 27.5 пашут, пишет ошибка синтаксиса, как исправить?

  • Пожалуйста добавте стрелочки Фокса

  • по cookie никто не подскажет , как поправить?

  • @chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:

    по cookie никто не подскажет , как поправить?

    У меня нет таких проблем, как все работало до этого, так и работает. С предыдущей версии экспортированные данные(кукисы, локальное хранилище, etc) загружаются в текущую версию.

  • Is this version already rolled out? When I open BAS it shows 27.5.1 and nothing update update.

  • @sergerdn 27.5.1 куки работают, гружу куки через 27.6.1 не работают

  • @chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:

    @sergerdn 27.5.1 куки работают, гружу куки через 27.6.1 не работают

    Есть какая-то странная фигня с кукисами, подтверждаю. Пока изучаю, но все выглядит очень странно.

    @m4zuper, пожалуйста, проверь, нет ли странного поведения с кукисами.

  • какие-то работают на новой версии, какие-то нет,х.з поэтому и спрашиваю

  • @chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:

    какие-то работают на новой версии, какие-то нет,х.з поэтому и спрашиваю

    Я посмотрел, на первый взгляд формат кукисов не менялся, но если восстановить сохраненные кукисы из предыдущей версии в текущую и потом опять их получить(восстановленные), то будет совсем пусто.

    Судя по всему в рамках текущей версии все работает.

    Пока не разбирался откуда растут ноги, думаю, что есть какая-то разница в хранении данных.

    @m4zuper, зову на помощь.

  • @chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:

    @sergerdn 27.5.1 куки работают, гружу куки через 27.6.1 не работают

    @m4zuper

    Я нашел причину, как минимум одну. У Chromium частично поменялся формат данных, если при восстановлении кукисов присутствует хоть одна кука старого формата, то кукисы вообще восстановлены не будут.

    Хуже всего, что все происходит тихо и незаметно, пока воткнул в скриптах простую проверку, проверяю после восстановления, что кукисы реально существуют в браузере.

    Потом воткну простой конвертер данных.

    Если я удалю из сохраненных данных куки, что поменяли формат, то остальные кукисы будут восстановлены.

    Старый формат:

    {
    	"domain": ".example.com",
    	"expires": 1750256760.245414,
    	"httpOnly": true,
    	"name": "cf_clearance",
    	"partitionKey": "https://example.com",
    	"path": "/",
    	"priority": "Medium",
    	"sameParty": false,
    	"sameSite": "None",
    	"secure": true,
    	"session": false,
    	"size": 161,
    	"sourcePort": 443,
    	"sourceScheme": "Secure",
    	"value": "blabla"
    }
    

    Новый формат(изменен формат partitionKey):

    {
    	"domain": ".example.com",
    	"expires": 1753675151.508734,
    	"httpOnly": true,
    	"name": "cf_clearance",
    	"partitionKey": {
    		"hasCrossSiteAncestor": false,
    		"topLevelSite": "https://example.com"
    	},
    	"path": "/",
    	"priority": "Medium",
    	"sameParty": false,
    	"sameSite": "None",
    	"secure": true,
    	"session": false,
    	"size": 161,
    	"sourcePort": 443,
    	"sourceScheme": "Secure",
    	"value": "blabla"
    }
    

    Текущий формат данных описан тут:

    https://chromedevtools.github.io/devtools-protocol/tot/Network/#type-Cookie

  • то есть старые восстановить, для работы в новой версии баса уже не получится? я правильно понял?

  • @chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:

    то есть старые восстановить, для работы в новой версии баса уже не получится? я правильно понял?

    Получится, почему же.

    Вот код конвертации:

    function convertOldToNew(oldCookies) {
        var newCookies = {
            cookies: []
        };
    
        // Get the current time in seconds
        var currentTime = Math.floor(Date.now() / 1000);
    
        for (var i = 0; i < oldCookies.cookies.length; i++) {
            var cookie = oldCookies.cookies[i];
            var newCookie = {};
    
            for (var key in cookie) {
                if (cookie.hasOwnProperty(key)) {
                    newCookie[key] = cookie[key];
                }
            }
    
            // Check if the cookie's expires time is in the past
            if (cookie.expires < currentTime) {
                // Set expires to one month from the current time
                var oneMonthLater = currentTime + (30 * 24 * 60 * 60); // 30 days in seconds
                newCookie.expires = oneMonthLater;
            }
    
            // Check if partitionKey exists and transform it
            if (cookie.partitionKey) {
                newCookie.partitionKey = {
                    hasCrossSiteAncestor: false,
                    topLevelSite: cookie.partitionKey
                };
            }
    
            newCookies.cookies.push(newCookie);
        }
    
        return newCookies;
    }
    
    // [[COOKIES]] - данные в стандартном формате BAS, в виде объекта, не строки!
    // Конвертация строки с кукисами в объект: [[COOKIES]] = JSON.parse([[COOKIES_STR]])
    
    VAR_COOKIES_CONVERTED = convertOldToNew(VAR_COOKIES);
    //log(JSON.stringify(VAR_COOKIES_CONVERTED, null, 4));
    
    // конвертация обратно в строку: [[COOKIES_ NEW_STR]] = JSON.stringify([[COOKIES_CONVERTED]])
    

    Код дополнительно продляет кукисы на 1 месяц, если истек их срок действия, если не нужно, можно выпилить.

    Код довольно простой, без проверок формата, который описан в документации.

  • можно телегу, пару вопросов?

  • @chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:

    можно телегу, пару вопросов?

    Обычно я не оказываю бесплатных приватных консультаций, ни в личке, ни в телеге, ни еще где-либо кроме тех случаев, когда я сам предложил.

    И даже в этих случаях, я не пишу код за других, могу сказать что надо сделать, но не как.

    В виде исключения отпишу через минуту телеграм в личные сообщения, я не люблю переписываться, пожалуйста, будь готов говорить голосом.

  • может кто поможет , это сделать в .xml?

  • @chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:

    может кто поможет , это сделать в .xml?

    В теории, разработчик может сделать фикс бага(фичи) в следующем релизе. А вот будет или нет он делать, пока не известно.

    Так как обходной путь существует, а значит вероятность, что будет фикс, не очень высокая.

  • @sergerdn я тебя правильно понял, что изменения коснулись только "partitionKey" ?

  • @A-Former-User said in Выпущена 27.6.1 версия BrowserAutomationStudio:

    @sergerdn я тебя правильно понял, что изменения коснулись только "partitionKey" ?

    Неправильно, как минимум коснулись, иначе говоря есть ли что-то еще, понятия не имею. Надо смотреть лог изменений, что я делать не планировал.

  • ну тогда просьба к разработчику пофиксить этот баг

  • При подключении профиля, если указано загружать прокси из профиля, вылетает ошибка

    "Custom IP information function" parameter is not a function