@tomriad, It's already fixed
@GhostZ said in Выпущена 27.1.0 версия BrowserAutomationStudio:
Fixed version of the module: IdleEmulation.zip
@chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:
какие-то работают на новой версии, какие-то нет,х.з поэтому и спрашиваю
Я посмотрел, на первый взгляд формат кукисов не менялся, но если восстановить сохраненные кукисы из предыдущей версии в текущую и потом опять их получить(восстановленные), то будет совсем пусто.
Судя по всему в рамках текущей версии все работает.
Пока не разбирался откуда растут ноги, думаю, что есть какая-то разница в хранении данных.
@m4zuper, зову на помощь.
@chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:
@sergerdn 27.5.1 куки работают, гружу куки через 27.6.1 не работают
Я нашел причину, как минимум одну. У 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:
можно телегу, пару вопросов?
Обычно я не оказываю бесплатных приватных консультаций, ни в личке, ни в телеге, ни еще где-либо кроме тех случаев, когда я сам предложил.
И даже в этих случаях, я не пишу код за других, могу сказать что надо сделать, но не как.
В виде исключения отпишу через минуту телеграм в личные сообщения, я не люблю переписываться, пожалуйста, будь готов говорить голосом.
@chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:
может кто поможет , это сделать в .xml?
В теории, разработчик может сделать фикс бага(фичи) в следующем релизе. А вот будет или нет он делать, пока не известно.
Так как обходной путь существует, а значит вероятность, что будет фикс, не очень высокая.
@A-Former-User said in Выпущена 27.6.1 версия BrowserAutomationStudio:
@sergerdn я тебя правильно понял, что изменения коснулись только "partitionKey" ?
Неправильно, как минимум коснулись, иначе говоря есть ли что-то еще, понятия не имею. Надо смотреть лог изменений, что я делать не планировал.
@Inwnew
На какой версии был создан профиль? И с помощью какого действия?
Каким именно действием применяете профиль?
В каком режиме возникает ошибка (запуск, запись, скомпилированный)?
В каком формате был указан прокси? Можете написать прокси в ЛС?
@Inwnew
По идее эту ошибку возвращает действие применения прокси, если в качестве метода получения информации об IP указано "custom function", но сама функция при этом не указана. Вы уверены, что ошибку возвращает именно действия применения профиля? Прикрепите, пожалуйста, тестовый проект.
@sergerdn said in Выпущена 27.6.1 версия BrowserAutomationStudio:
В теории, разработчик может сделать фикс бага(фичи) в следующем релизе. А вот будет или нет он делать, пока не известно.
Передано разработчику, но каким образом это должно фикситься, я не совсем понимаю)
@m4zuper Профили созданы с помощью стандартных настроек браузера. В принципе, я уже разобрался, если с нуля создавать действие, то таких проблем нет. Плюс, такая ошибка возникает, если установлен модуль ProxyCustom от @FastSpace , надо полностью его удалить, в т.ч. из файла проекта.
Хотя, конечно, запрос в таком случае идет на ip . bablosoft. com , а он, как известно, частенько подлагивает.
@m4zuper said in Выпущена 27.6.1 версия BrowserAutomationStudio:
@sergerdn said in Выпущена 27.6.1 версия BrowserAutomationStudio:
В теории, разработчик может сделать фикс бага(фичи) в следующем релизе. А вот будет или нет он делать, пока не известно.
Передано разработчику, но каким образом это должно фикситься, я не совсем понимаю)
Таким же, каким и я пофиксил, я написал выше немного кода, который "понимает" тот ли формат и если он не тот, то конвертирует в тот. Но код простой и без каких либо проверок.
@FastSpace
"That is, now you can change the IP by link right inside the browser"
What you mean change ip by link? Do you use the default proxy module that comes in bas?