Как загрузить профиль без замены переменных?

material

Client
Регистрация
23.03.2021
Сообщения
286
Благодарностей
101
Баллы
43
Доброго дня.
Столкнулся с простой проблемой, с которой не могу справиться.

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

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

Проблема в том, что не всегда нужно, чтобы загружаемый в проект профиль, заменял значения переменных, даже если он был сохранен с сохранением переменных. Цели у профилей могут быть разные, и информация хранимая в переменных может как пригодиться, так и не пригодиться. Не смотря на это, при загрузке профиля в проект переменные заменяются всегда.

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

P.S.
Загружая профиль у нас есть функционал в виде "Создавать недостоющие переменные" и "Выводить ошибку при загрузке несовместимогопрофиля", было бы здорово добавить функцию "Загружать профиль игнорируя значения его переменных".

Может быть есть C# решение? Буду очень благодарен за помощь и подсказки.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 710
Баллы
113
сделай предложение разработчикам по внедрению этого функционала. через годик другой сделают.
или сделай свой снипет, который выгрузит все переменные в текстовик и после загрузки профиля, загружай их обратно.
 

material

Client
Регистрация
23.03.2021
Сообщения
286
Благодарностей
101
Баллы
43
сделай предложение разработчикам по внедрению этого функционала. через годик другой сделают.
или сделай свой снипет, который выгрузит все переменные в текстовик и после загрузки профиля, загружай их обратно.
Значит простого решения нет. Думал, может что пропустил, крайне же полезная, а главное простая функция.

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

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 580
Благодарностей
1 010
Баллы
113
Выход - 2 профиля с и без переменными - это же очевидно )
 

material

Client
Регистрация
23.03.2021
Сообщения
286
Благодарностей
101
Баллы
43
Выход - 2 профиля с и без переменными - это же очевидно )
Цели у профилей могут быть разные, и информация хранимая в переменных может как пригодиться, так и не пригодиться. Не смотря на это, при загрузке профиля в проект переменные заменяются всегда.
 

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 580
Благодарностей
1 010
Баллы
113
Правда не доходит? )
Два кубика делай подряд один сохраянет С другой другой БЕЗ - пути - /blabla-peremen и /blabala
Потом если тебе надо загрузить с переменными грузишь из /blabla-peremen если без то из /blabala - надо не галочки жать а пути поменять, а так ты этот функционал будешь ждать несколько лет )
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 710
Баллы
113
Правда не доходит? )
Два кубика делай подряд один сохраянет С другой другой БЕЗ - пути - /blabla-peremen и /blabala
Потом если тебе надо загрузить с переменными грузишь из /blabla-peremen если без то из /blabala - надо не галочки жать а пути поменять, а так ты этот функционал будешь ждать несколько лет )
да больше. еще года 3 назад об этом просили, но ничего не изменилось. и вряд ли изменится :bk:
 
  • Спасибо
Реакции: material

material

Client
Регистрация
23.03.2021
Сообщения
286
Благодарностей
101
Баллы
43
Правда не доходит? )
Два кубика делай подряд один сохраянет С другой другой БЕЗ - пути - /blabla-peremen и /blabala
Потом если тебе надо загрузить с переменными грузишь из /blabla-peremen если без то из /blabala - надо не галочки жать а пути поменять, а так ты этот функционал будешь ждать несколько лет )
Это разные проекты и интервалы, то есть сначала один проект сохраняет профиль с переменными и их значениями, а потом другой проект этот профиль уже использует, через 1, 2 и т.д. месяцев. Переменные и их значениям, могут пригодиться через месяцы работы, а могут и не пригодиться, это уже зависит от поставленных целей.

В рамках одного проекта уже ничего не пересохранишь, так как проект выполняется и в него загружается новый профиль и знать заранее потребуются переменные этого проекта или нет - нельзя. Софт сам разберется и без моего вмешательства, для этого ZennoPoster и нужен. Был бы вариант с сохранениями профилей уже давно бы его использовал, сейчас вот решаю вопрос сохранением переменных в список с последующей их подгрузкой в проект после загрузки профиля. Костыль одним словом, а что делать.
 

material

Client
Регистрация
23.03.2021
Сообщения
286
Благодарностей
101
Баллы
43
да больше. еще года 3 назад об этом просили, но ничего не изменилось. и вряд ли изменится :bk:
Создал тему с голосованием "Добавить возможность загружать профиль без замены переменных." будут пальцы вверх, как минимум обратим в нимание на проблему. Если проект большой и сложный, то человек с данной проблемой столкнется неизбежно, а значит многие уже решают этот вопрос через различного рода костыли.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 710
Баллы
113
Создал тему с голосованием "Добавить возможность загружать профиль без замены переменных." будут пальцы вверх, как минимум обратим в нимание на проблему. Если проект большой и сложный, то человек с данной проблемой столкнется неизбежно, а значит многие уже решают этот вопрос через различного рода костыли.
Не надо сохранять переменные в профиль, вот и все решение.
Насчет костылей не соглашусь. Софты испокон веков используют ini файлы и никто не называл это костылем. на текущий момент костыль это вот как раз сохранять нужные переменные в профиль. То есть в черный ящик с которым никто не может нормально работать.
На текущий момент нужные переменные и их значения можно сохранять в базе данных, сетевой или локальной, в ini файле, в структуре xml , как современной замене ini файлам. уверен что на гитхабе есть открытые проекты для работы по этому направлению. Ну а как пройтись по всем переменным зенки, считать, создать, это есть на этом форуме.
 
  • Спасибо
Реакции: material

material

Client
Регистрация
23.03.2021
Сообщения
286
Благодарностей
101
Баллы
43
Не надо сохранять переменные в профиль, вот и все решение.
Что это за решение, как не сохранять? Говорю переменные нужны как воздух и без них работа невозможна... Совет - не сохраняй переменные! Больше на троллинг похоже))

В переменных храниться абсолютно вся информация о проекте, которая может понадобиться в будущем в любой момент и тем более никогда не знаешь, что пригодиться завтра. Или есть экшен предсказывать будущее? Может я что-то пропустил.

ini, xml, гитхаб... ещё раз приложил скриншот, как можно решить вопрос, неужели поставить одну и единственную галочку сложнее ini, xml, гитхаб и т.п.? Жизнь и без того сложная, нет смысла усложнять ещё и такой до одури простой функционал.
 

Вложения

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 710
Баллы
113
Что это за решение, как не сохранять? Говорю переменные нужны как воздух и без них работа невозможна... Совет - не сохраняй переменные! Больше на троллинг похоже))
у меня десятки проектов и ни в одном ни разу не понадобилось сохранение переменных в профиль. так что это не тролинг, а обычный совет не усложнять себе жизнь.
Что такого может понадобится в проекте, что прям без переменных работа будет невозможна ?
что нельзя сохранить в обычный csv файл под тем же именем, что и проект ? что мешает загрузить его обратно или пропустить загрузку при работе с профилем ?
Создал тему с голосованием, молодец. на этом все, можешь ждать годика 2-4 пока сделают. Или не сделают вовсе, так как никто голосовать не будет. Зенке не один год, а такой простой функционал (ну судя по твоим сообщениям) так и не сделали. А разговор был про это, но воз и ныне там.
Разберись лучше сам как писать/читать переменные из ini/csv/БД , быстрее будет нужный тебе результат.
И да я писал что бы ТЫ разобрался с ini, xml, гитхаб и т.п. а не разработчики :bm: это же тебе надо, а не им.

PS. и да еще... а ты уверен что разработчики даже в таком простом вопросе сделают все так как надо ? и это будет работать именно так как ты хочешь ?
вот яркий пример того что хотели и то что получилось по факту. https://zennolab.com/discussion/threads/kubik-obnovlenie-profilja-brauzera-dorabotka-kubika-zagruzki-profilja.82564/
по факту, предложение было реализовано, но оно не рабочее от слова совсем. Потому что у разработчиков свой путь и они не пользуются своим продуктом так как им пользуемся мы.
Можешь сам сравнить то что просили и что имеем сейчас по факту :bk:
 
Последнее редактирование:
  • Спасибо
Реакции: Gfoblin и material

material

Client
Регистрация
23.03.2021
Сообщения
286
Благодарностей
101
Баллы
43
Можешь сам сравнить то что просили и что имеем сейчас по факту :bk:
Видел данный функционал, даже разбираться не стал в логике, но то что слёту не получилось понять, говорит о том, что что-то здесь не так. К тому же не было сильной потребности, поэтому много времени уделять не стал, но с экшеном знаком.

у меня десятки проектов и ни в одном ни разу не понадобилось сохранение переменных в профиль. так что это не тролинг, а обычный совет не усложнять себе жизнь.
Каждый через ZennoPoster работает в своих нишах, и работа может отличаться координально, то что один может годами не замечать, другому костью в горле будет стоять. Вот такой пример, не хватило нервов решил создать тему, пока я на форуме. "Доработать логику поиска по проекту" - у кого проекты небольшие даже не заметят этого, у кого нет необходимости сохранять часто проект, вообще не поймут о чем я говорю, так как ни разу не сталкивались с этим.

Разберись лучше сам как писать/читать переменные из ini/csv/БД , быстрее будет нужный тебе результат.
Как только будет задача для которой не найдется костыль, добавлю в проект ещё файлов различного расширнения, пока их и так выше крыши, ещё немного и сам начну блудить между ними. Не хочу решать столь простую задачу, добавлением новых файлов, для чтения\записи, в проект.
 

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 580
Благодарностей
1 010
Баллы
113
Был бы вариант с сохранениями профилей уже давно бы его использовал, сейчас вот решаю вопрос сохранением переменных в список с последующей их подгрузкой в проект после загрузки профиля.
Что за супер переменные? )
А если вдруг понадобится 2-3 сервера с зенками ты опять всё будешь переделывать? )))
Используй базу и хреначь туда, можно масштабировать до бесконечности!
 

dozeido

Client
Регистрация
10.12.2019
Сообщения
3
Благодарностей
4
Баллы
3
добавлю в копилку ответов ещё один
Может быть есть C# решение? Буду очень благодарен за помощь и подсказки.
у меня есть решение для смежного вопроса, возможно код или идея могут быть полезны.
в моём случае загружался профиль и несколько переменных проекта в нём - логин, пароль, выдернутые куки, токены.
проект тесно работал лишь с одним профилем, но был нужен способ переключить бота на другую учётку, если пользователь захочет.
проверялось всё по одной переменной - логину, и если он не совпадал, кубик выходил по красной ветке, которая запускала инстанс и логинилась в новую учётку.
C#:
string login = project.Variables["login"].Value; // вписываем значение переменной до загрузки профиля в значение локальной переменной
string zppro = project.Variables["zpProfilePath"].Value; // тут путь к профилю.зппрофайл
if (File.Exists(zppro)) // смотрим, существует ли файл профиля
{
    project.Profile.Load(zppro, true); // загрузили профиль с переменными
    if (login != project.Variables["login"].Value) // сразу после загрузки проверяем логин
    {
        project.Variables["login"].Value = login; // меняем значение переменной из загруженного профиля на изначальное значение
        project.Variables["clearCookies"].Value = "yes"; // устанавливаем флажок для настройки инстанса при запуске, оставил для примера
        // в кубе запуска инстанса куки чистились кодом:
         //        if (project.Variables["clearCookies"].Value.Contains("yes")) instance.ClearCookie();
        if (File.Exists(zppro)) File.Delete(zppro); // удаляем загруженный зппрофайл, чтобы потом сделать новый
        throw new Exception("mismatching login"); // выдаём исключение и выходим по красной
    }
}
else
{
    throw new Exception("no profile"); // если файла нет - выходим по красной без доп. настроек (например, очистки кук)
}
// здесь мы уже имеем загруженный профиль с совпадающим логином и выход по зелёной ветке
мне подумалось, этот способ подойдёт для обработки профилей, в которых могут быть переменные, но он сыроват и требует додумывания\допиливания для вашей ситуации.
это довольно простой способ проверить переменную "на лету" - во время загрузки профиля, и вернуть прежнее значение при необходимости. если подобных переменных мало - вариант вполне рабочий, даже сейчас в одном из моих живых проектов так проверяется логин, юзерагент, прокси и срок жизни токена.
на актуальность кода не претендую, всё же это наработки времён .зппрофайл профилей, профилей-папок тогда ещё не придумали, но раз ломал над этим голову в своё время - почему бы не поделиться? :-)
 
  • Спасибо
Реакции: material

Konrod_m

Client
Регистрация
18.09.2014
Сообщения
1 694
Благодарностей
940
Баллы
113
я бы допилил костыль, который при старте с переменными сохранял бы их куда нибудь, очищал переменные в профиле, а после окончания работы - возвращал бы все обратно. все делается стандартными кубиками.

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

так или иначе - все подводится к какой то БД
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 710
Баллы
113
да все можно допилить самому... только будет ли кто заморачиваться ?
к тому же у автора топика нет ясных условий при которых переменные должны загружаться, а при каких нет. условие - Зеннопостер сам разберётся, это вот как щас и есть.... он сам как то разбирается :bk:
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)