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

  • Автор темы Автор темы material
  • Дата начала Дата начала

material

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

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

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

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

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

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

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

Значит простого решения нет. Думал, может что пропустил, крайне же полезная, а главное простая функция.

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

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

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

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

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

Что это за решение, как не сохранять? Говорю переменные нужны как воздух и без них работа невозможна... Совет - не сохраняй переменные! Больше на троллинг похоже))

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

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

Вложения

  • img-20523528.png
    img-20523528.png
    10,8 KB · Просмотры: 24
Что это за решение, как не сохранять? Говорю переменные нужны как воздух и без них работа невозможна... Совет - не сохраняй переменные! Больше на троллинг похоже))

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

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

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

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

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

Разберись лучше сам как писать/читать переменные из ini/csv/БД , быстрее будет нужный тебе результат.

Как только будет задача для которой не найдется костыль, добавлю в проект ещё файлов различного расширнения, пока их и так выше крыши, ещё немного и сам начну блудить между ними. Не хочу решать столь простую задачу, добавлением новых файлов, для чтения\записи, в проект.
 
Был бы вариант с сохранениями профилей уже давно бы его использовал, сейчас вот решаю вопрос сохранением переменных в список с последующей их подгрузкой в проект после загрузки профиля.
Что за супер переменные? )
А если вдруг понадобится 2-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
я бы допилил костыль, который при старте с переменными сохранял бы их куда нибудь, очищал переменные в профиле, а после окончания работы - возвращал бы все обратно. все делается стандартными кубиками.

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

так или иначе - все подводится к какой то БД
 
да все можно допилить самому... только будет ли кто заморачиваться ?
к тому же у автора топика нет ясных условий при которых переменные должны загружаться, а при каких нет. условие - Зеннопостер сам разберётся, это вот как щас и есть.... он сам как то разбирается :bk:
 

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