Miranda NG Official Community Forum

Miranda NG русскоязычный форум => Общие разговоры о Miranda NG => Topic started by: Constantin2022 on 29 06 2022, 11:36:54

Title: Импорт настроек при конвертации базы
Post by: Constantin2022 on 29 06 2022, 11:36:54
Здравствуйте! Есть проблема: при обновлении с 95.4 с базой в формате mmap до новой версии (и программы и базы), но файлы autoexec_*.ini перемещаются в корзину, а в базу не попадают.
Если после перезагрузки новой версии программы с обновленной базой положить туда файлы autoexec_*.ini, то они применяются и потом перемещаются в корзину.
Как правильно автоматизировать применение autoexec_*.ini в этом случае?
Спасибо!
Title: Re: Импорт настроек при конвертации базы
Post by: dartraiden on 29 06 2022, 16:23:42
Ну так положить файлы рядом с 0.95.4, запустить её, она их втянет в базу. Затем обновляться.
Title: Re: Импорт настроек при конвертации базы
Post by: Constantin2022 on 30 06 2022, 08:02:14
Ну так положить файлы рядом с 0.95.4, запустить её, она их втянет в базу. Затем обновляться.

Механизм какой мыслится:
Есть старая Миранда со старыми базами в локальных профилях пользователей.
Централизованно скриптом распространяется (старая удаляется) папка Миранды в Program Files. В папке уже есть все необходимые плагины и эти файлы autoexec_*.ini
Новая версия Миранды запускается, преобразует локальную базу в новый формат и применяет эти INI файлы.

В предложенной вами схеме есть один неудобный момент - как отследить, что INI применились и можно приступать к распространению новой версии программы? На множестве пользователей, которые могут быть в отпуске (выключен компьютер, папка Миранды недоступна) в момент первого этапа.

Тогда уже более приемлем вариант не удалять autoexec_*.ini после применения.

Или есть какие-то более удобные механизмы?
Title: Re: Импорт настроек при конвертации базы
Post by: dartraiden on 30 06 2022, 14:45:18
Как вариант
- поднять в локалке свой сервер с обновлениями Миранды
- всем раскатать PluginUpdater от 0.95.4 и autoexec_0.ini, который засадит в базу опцию "кастомный сервер обновлений" и урл этого сервера (в локальной сети)
- также раскатать те самые ваши autoexec_*.ini

Что произойдет:
- когда юзер в первый раз включит Миранду, она всосёт все инишки
- затем апдейтер ломанётся на ваш сервер за обновлениями и обновит Миранду
- Миранда перезапустится и сконвертирует базу

То есть, не руками обновлять бинарники, а доверить это апдейтеру.
Title: Re: Импорт настроек при конвертации базы
Post by: dartraiden on 30 06 2022, 18:50:58
при обновлении с 95.4 с базой в формате mmap до новой версии (и программы и базы), но файлы autoexec_*.ini перемещаются в корзину, а в базу не попадают.
Не удаётся повторить.

Беру профиль, созданный в 0.95.4. Беру стабильную версию с сайта. Подкладываю к ней dbx_mmap, чтобы старый профиль прочитался. Кладу рядом autoexec_1.ini с содержимым

Code: [Select]
SETTINGS:

[CLC]
TestOption=b1

Запускаю, идёт вопрос про конвертацию, затем вопрос импортировать ли инишку. По итогу, в сконвертированной базе появляется TestOption => всё работает, как полагается.
Title: Re: Импорт настроек при конвертации базы
Post by: Constantin2022 on 01 07 2022, 07:46:32
Не удаётся повторить.

Беру профиль, созданный в 0.95.4. Беру стабильную версию с сайта. Подкладываю к ней dbx_mmap, чтобы старый профиль прочитался. Кладу рядом autoexec_1.ini с содержимым

Code: [Select]
SETTINGS:

[CLC]
TestOption=b1

Запускаю, идёт вопрос про конвертацию, затем вопрос импортировать ли инишку. По итогу, в сконвертированной базе появляется TestOption => всё работает, как полагается.

Запросы на применение появляются, но  вот этот параметр не применяется. Такая же ситуация со значками.
[JABBER_1]
HostNameAsResource=b1
Title: Re: Импорт настроек при конвертации базы
Post by: dartraiden on 01 07 2022, 12:54:36
А вот эта не применяется. Интересное...
Title: Re: Импорт настроек при конвертации базы
Post by: dartraiden on 01 07 2022, 17:14:28
Исправлено в версии в разработке. Попробуйте. Если починилось, портируем в стаблю.
Title: Re: Импорт настроек при конвертации базы
Post by: Constantin2022 on 04 07 2022, 09:36:38
Вроде сработало. Правда, сначала не распознавал старую базу. Но после подсовывания dev-версий mdbx, mmap дело пошло на лад.

Всё импортировалось, за исключением последних строчек в TipperItems:
Module1=s
Module2=sЩ?)A№@щ€:aAYCy“!9DyЉ:AI№‡:щЌ:№‰:щ†:№†:©`™a©cй_Й^iF9aiaЙaйI)bYbcyc‘JyIБEсG9‡:GщEЩFЙJ   IqK!J)H™H9K1Fс™!ЎFIGЃGщ‡:QLy€:№G©K‰L±IaHYJK9‰:СHбKLQS)O   PYQЃN   ^iM9^APщ‰:!Q1MЎMyPSaO±P™Oщd№eigЙgщЉ:©i9d©fNidйP™gyf‘Q‰SЩMЙQy‹:R9RБLщLСOqR©RбRYeINщg№N№‹:сNyWiT)VaV№U™VYйhСV   dQZщ‹:‰ZсUЎT
Module3=g!"q"б""±")""Q"Y"С"‰\n"!   "й   "I   "Щ\n") ""с"q   "Y"С"9\n"A"Ў "‘"№"Ў"с "Щ"Й"№ ")"y"Q"   \r"1\r"I"ьN™"Ѓ\r"ЎфFaяNiLPщKZGZ‰CZ"9"йCZ№IZ"©{)GP›`№FZ9EZСGP)CZQљ`iHZБ“`   EZ   y)wY"щEZй˜`йFZ™KZй“`iEZщ"iKZ   ")•`±”`б"№wй"9KZ9"i"Й"‘"a"‰"±"с"™yб–`ЩAZa”`щBZ9”`‰”`±™`9BZ™“`ЎLP№–`!"©AZЩDZ‘–`yAZ™HZБ˜`q“`!“`™"qчF‰"щ"ЙyБ"Щuб"""©xYwYz‰wЩxЎ"iy)}№}
Name0=ubirthday_age
Name1=ubirthday_date
Name2=ubirthday_next
Name3=uStatus
NextFuncId=d23
Setting0=sBirth
Setting1=sBirth
Setting2=sBirth
Setting3=sStatus
TransFuncId0=d9
TransFuncId1=d8
TransFuncId2=d12
TransFuncId3=d1
Trans_<prefix>Day|Month to days to next birthday=d12
Trans_<prefix>Day|Month|Year to age=d9
Trans_<prefix>Day|Month|Year to date=d8
Trans_<prefix>Day|Month|Year|Hours|Minutes|Seconds to time difference=d11
Trans_<prefix>Hours|Minutes to time=d14
Trans_<prefix>Hours|Minutes|Seconds to time=d10
Trans_BYTE timezone to time=d19
Trans_BYTE to Male/Female (ICQ)=d5
Trans_BYTE to Yes/No=d4
Trans_BYTE to language (ICQ)=d22
Trans_DWORD seconds to time difference=d18
Trans_DWORD timestamp to date (long)=d16
Trans_DWORD timestamp to date (short)=d15
Trans_DWORD timestamp to time=d2
Trans_DWORD timestamp to time (no seconds)=d13
Trans_DWORD timestamp to time difference=d3
Trans_DWORD to IP address=d7
Trans_WORD to country name=d6
Trans_WORD to name of a day (0..6, 0 is Sunday)=d20
Trans_WORD to name of a month (1..12, 1 is January)=d21
Trans_WORD to status description=d1
Trans_xStatus: empty xStatus name to default name=d17
Type0=b1
Type1=b1
Type2=b1
Type3=b1


Как я понимаю, в INI не обязательно включать все параметры, которые экспортировались из базы, а только изменяемые?
Title: Re: Импорт настроек при конвертации базы
Post by: dartraiden on 04 07 2022, 11:01:41
Да, в инишке должны быть те параметры, которые вы хотите менять.
Title: Re: Импорт настроек при конвертации базы
Post by: Constantin2022 on 04 07 2022, 12:37:31
А как вы думаете, что случилось с TipperItems?

Когда ждать релиз? Или пользоваться тем, что есть?
Title: Re: Импорт настроек при конвертации базы
Post by: dartraiden on 04 07 2022, 13:02:07
Каких конкретно строчек из той портянки?
Релиз будет тогда, когда появится @ghazan
Title: Re: Импорт настроек при конвертации базы
Post by: Constantin2022 on 04 07 2022, 14:28:22
Конкретно эти строчки и не попали (попали от DILabel0 до Module0). Подробного описания параметров нет, поэтому они просто экспортировались с настроенной машины.

А когда @ghazan появится?
Title: Re: Импорт настроек при конвертации базы
Post by: Constantin2022 on 04 07 2022, 14:44:20
Исправлено в версии в разработке. Попробуйте. Если починилось, портируем в стаблю.

Да, еще один момент. У нас используется другой значок для Jabber (не фонарик, а зеленая точка).
Настройки в виде INI применились, но при первом запуске всё также желтый фонарик рядом с активным пользователем, а вот при перезапуске - уже правильная зеленая точка.

Можно ли это как-то применить без перезагрузки Миранды?
Title: Re: Импорт настроек при конвертации базы
Post by: dartraiden on 04 07 2022, 17:46:51
Конкретно эти строчки и не попали (попали от DILabel0 до Module0).
Приаттачьте тогда инишку целиком готовую к посту.

Quote
А когда @ghazan появится?
Миранда разрабытвается энтузиастами в свободное время, поэтому появится, когда будет время.

Quote
Да, еще один момент. У нас используется другой значок для Jabber (не фонарик, а зеленая точка).
И эту инишку тоже сюда давайте.
Title: Re: Импорт настроек при конвертации базы
Post by: Constantin2022 on 05 07 2022, 06:32:57
Приаттачьте тогда инишку целиком готовую к посту.
Миранда разрабытвается энтузиастами в свободное время, поэтому появится, когда будет время.
И эту инишку тоже сюда давайте.

Уверен, что там много лишнего (пункты, которые содержат то же значение, что уже базе по умолчанию), но отлавливать изменения, произошедшие после каждой модификации INI займет много времени. Поэтому просто экспортированы настройки готовой Миранды.
Title: Re: Импорт настроек при конвертации базы
Post by: dartraiden on 18 07 2022, 23:36:05
Дошли, наконец, руки. Да, [Tipper_Items] импортируется не полностью. Впрочем, это не связано с конвертацией базы, такое же поведение и на свежем профиле.

https://github.com/miranda-ng/miranda-ng/issues/3120
Title: Re: Импорт настроек при конвертации базы
Post by: dartraiden on 20 07 2022, 20:10:17
Исправлено в версии в разработке, пробуем.