|
|
|
Рефакторинг генератора конфигов
|
|||
|---|---|---|---|
|
#18+
Помогите пожалуйста провести рефакторинг генератора конфигов (по всем докам\примерам - на веб сервис умеет ходить за своим конфигом используемая программа). Со временем думал выложить готовое решение в паблик, но на сейчас его стыдно показывать. Хоть уже и пытаемся внедрять в реальную работу и есть положительные сдвиги. Сама задача вкратце: На работе (что-то типа магазина) очень плотно используется Mozilla Thunderbird. По специфике работы "простые операторы" часто переводятся с места на место. "точек много". Получается очень много рутины. Для избавления от рутины и необходима автонастройка почтовой программы. А автонастройка выполняется через необходимые конфиги. То, что нашел в публичном доступе или не подходит, или не удалось развернуть у себя. Потому и строю свой велосипед. Ну и обучение :) Для куска конфига: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. На сейчас потребовалось сделать уже 2-варианта (похожие по действию и результату, но на разные под задачи), сходу получилось не совсем хорошо... Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Второй получившийся вариант: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Как подобное правильно\правильнее делать? 1-й вариант генерит на лету в ответ на запрос по HTTP "как браузеру", а второй в ответ на запрос сохраняет в файлик на серваке, который потом используется в дальнейшем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 14:13 |
|
||
|
Рефакторинг генератора конфигов
|
|||
|---|---|---|---|
|
#18+
Velocity, FreeMarker, SpringTemplate ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 14:18 |
|
||
|
Рефакторинг генератора конфигов
|
|||
|---|---|---|---|
|
#18+
Про первые 2-ва вообще не слышал. Spring как раз начинаю изучать. А можно пример использования SpringTemplate в моём случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 14:42 |
|
||
|
Рефакторинг генератора конфигов
|
|||
|---|---|---|---|
|
#18+
olexande, Опечатался. StringTemplate. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 14:54 |
|
||
|
Рефакторинг генератора конфигов
|
|||
|---|---|---|---|
|
#18+
olexande, Можно и без фреймверков. MessageFormat либо String.format в цикл завернуть. Не понтяно что там в конфиге есть ещё кроме приведенного куска. Не понятно откуда берутся значения, что ваш "генератор" фактически делает. Потому что приведенный выше код ниделает ничего полезного вообще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 14:56 |
|
||
|
Рефакторинг генератора конфигов
|
|||
|---|---|---|---|
|
#18+
olexande, тут ведь не программирование надо, а поддержка по продукту? http://habrahabr.ru/post/101905/ http://forum.mozilla-russia.org/viewtopic.php?pid=581296 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 15:13 |
|
||
|
Рефакторинг генератора конфигов
|
|||
|---|---|---|---|
|
#18+
С генерацией скрипта я разобрался. Информацию по логину я дергаю из LDAP. Часть инфо заполняю "шаблонно и одинаково у всех". А это уже по нашей специфике "не идеально". "Заточенный" под "нас" полный конфиг: // Небольшой тюнинг Thunderbird с помощью Mozilla AutoConfig try { // Получаем имя пользователя, Thunderbird запустившего (и домашнюю папку, хоть она нам и не нужна) if(getenv("USER") != "") { // *NIX параметры var env_user = getenv("USER"); var env_home = getenv("HOME"); } else { // Windows параметры var env_user = getenv("USERNAME"); var env_home = getenv("HOMEPATH"); } var server_addr = "192.168.1.246"; var point_name = "Point KV_Point"; var full_email = "kv_point@Firma.com.ua"; var organization = "Firma Ukraine"; var prefix_email = "kv_point"; // Ставим аккаунтом по умолчанию account1 lockPref("mail.accountmanager.defaultaccount", "account1"); // Добавляем по умолчанию в список аккаунтов только account1 lockPref("mail.accountmanager.accounts", "account1"); // Жёстко закрепляем за account1 сервер server1 (IMAP) lockPref("mail.account.account1.server", "server1"); // Ставим в качестве сервера локальных папок основной IMAP сервер пользователя, // тем самым полностью отключая локальные папки в клиенте //lockPref("mail.accountmanager.localfoldersserver", "server1"); //Отключает "локальные папки" lockPref("mail.accountmanager.defaultaccount", "account1"); lockPref("mail.account.lastKey", 2); //{P lockPref("mail.attachment.store.version", 1); lockPref("mail.folder.views.version", 1); // Отключаем полосочку "Узнайте о своих правах" при первом запуске lockPref("mail.rights.version", 1); // Отключаем автообновление клиента. Если не отключить, то при обновлении может измениться файл // all.js и тогда весь механизм Mozilla AutoConfig сломается. lockPref("app.update.enabled", false); lockPref("extensions.update.enabled", false); // Настройки POP3 сервера lockPref("mail.server.server1.type", "pop3"); defaultPref("mail.server.server1.hostname", server_addr); // Неизвестно, зачем два параметра, но нужны оба, defaultPref("mail.server.server1.realhostname", server_addr); // иначе можно будет менять пользователю defaultPref("mail.server.server1.port", 110); // Порт сервера 110 defaultPref("mail.server.server1.socketType", 0); // Использовать STARTLS defaultPref("mail.server.server1.name", point_name); defaultPref("mail.server.server1.userName", full_email); // Логин пользователя, defaultPref("mail.server.server1.realuserName", full_email); // комментарий аналогично hostname lockPref("mail.server.server1.login_at_startup", true); // Очень важный параметр! Без него вообще не заработает ничерта;) lockPref("mail.server.server1.isSecure", true); // Защищённый сервер // Частота проверки ящика lockPref("mail.server.server1.check_time", 5); // Частота проверки ящика lockPref("mail.server.server1.leave_on_server", true); // Время хранения в ящике lockPref("mail.server.server1.delete_by_age_from_server", true); lockPref("mail.server.server1.num_days_to_leave_on_server", 30); //Составление и адресация - подпись при ответах (расположение) lockPref("mail.identity.id1.reply_on_top", 1); lockPref("mail.identity.id1.sig_bottom", false); lockPref("mail.identity.id1.sig_on_fwd", true); //Где хранить письма?.. 1 раз столкнулся, что начинало хранить в локальных папках, а не в папках ящика defaultPref("mail.identity.id1.archive_folder", "mailbox://"+ prefix_email + "%40firma.com.ua@192.168.1.246/Archives"); defaultPref("mail.identity.id1.draft_folder", "mailbox://"+ prefix_email + "%40firma.com.ua@192.168.1.246/Drafts"); defaultPref("mail.identity.id1.fcc_folder", "mailbox://"+ prefix_email + "%40firma.com.ua@192.168.1.246/Sent"); defaultPref("mail.identity.id1.stationery_folder", "mailbox://"+ prefix_email + "%40firma.com.ua@192.168.1.246/Templates"); //отключить антиспам defaultPref("mail.server.server1.spamLevel", 0); // Настройки SMTP сервера defaultPref("mail.smtp.defaultserver", "smtp1"); defaultPref("mail.smtpserver.smtp1.hostname", server_addr); defaultPref("mail.smtpserver.realhostname", server_addr); defaultPref("mail.smtpserver.smtp1.port", 25); defaultPref("mail.smtpserver.smtp1.description", organization); defaultPref("mail.smtpserver.smtp1.try_ssl", 0); defaultPref("mail.smtpserver.smtp1.auth_method", 0); defaultPref("mail.smtpserver.smtp1.username", full_email); // Настройки аккаунта - адреса почты и т.д. defaultPref("mail.identity.id1.fullName", point_name); //Это поле пользователь сможет поменять сам, но по умолчанию там будет его логин defaultPref("mail.identity.id1.useremail", full_email); //lockPref("mail.identity.id1.useremail", full_email); defaultPref("mail.identity.id1.reply_to", full_email); defaultPref("mail.identity.id1.valid", true); defaultPref("mail.identity.id1.smtpServer", "smtp1"); defaultPref("mail.identity.id1.organization", organization); defaultPref("mail.identity.id1.tmpl_folder_picker_mode", "0"); //user_pref("mailnews.reply_in_default_charset", true); lockPref("intl.charsetmenu.mailview.cache", "KOI8-R, KOI8-U, UTF-8, windows-1251, ISO-8859-1, ISO-8859-5"); lockPref("mailnews.send_default_charset", "KOI8-R"); lockPref("mailnews.view_default_charset", "KOI8-R"); lockPref("mailnews.reply_in_default_charset", true); defaultPref("mailnews.start_page.enabled", false); //"Не запускать стартовую страницу. Без И-нета ругается ... " // Привязываем ID к аккаунту lockPref("mail.account.account1.identities", "id1"); // Адресные книги LDAP defaultPref("ldap_2.servers.domain.uri", "ldap://firma.ua/DC=firma,DC=ua??sub?(mail=*)"); defaultPref("ldap_2.servers.domain.auth.dn", "firma\\ldapaccess"); defaultPref("ldap_2.servers.domain.auth.saslmech", ""); defaultPref("ldap_2.servers.domain.description", "firma"); lockPref("ldap_2.servers.domain.filename", "empl.mab"); lockPref("ldap_2.servers.domain.maxHits", 300); // Автодополнение адресов из книги сотрудников lockPref("ldap_2.autoComplete.directoryServer", "ldap_2.servers.domain"); lockPref("ldap_2.autoComplete.useDirectory", true); lockPref("mail.identity.id1.sig_file", "D:\\Podpisi\\"+ env_user + ".html"); //Глобальные настройки уведомлений о прочтении defaultPref("mail.mdn.report.not_in_to_cc", 1); defaultPref("mail.mdn.report.other", 1); defaultPref("mail.mdn.report.outside_domain", 0); defaultPref("mail.receipt.request_return_receipt_on", true); lockPref("mail.identity.id1.attach_signature", true); lockPref("mail.server.server1.download_on_biff", true); } catch(e) { displayError("lockedPref", e); } Как "на развитие" - думаю еще и подписи к письмам автоматом генерировать. Была "сложность" - Thunderbird "мусорные" подписи формируем. С колегой разобрались. Цель дергая инфу из нескольких источников - подсовывать разную информацию в почти конфиги ("рыбу"). Например, если в должности "operatop", то 1-н протокол использовать, а если "senior ..." - то другой ... Уж очень много "мусора" получается в коде от оформления. С подписями, например - нужно будет откуда-то дергать инфо (пока сам не уверен еще) и заполнять ФИО, должность ... С указанными ссылками знаком давно. Если поможет могу и "как есть" выложить ... Из "наступленных граблей" - пропустил при "правке кавычек-экранирующих слешей оные" и потом по долгу сидел перед не рабочим конфигом, отличающимся 1-й лишней\недостающей кавычкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 18:32 |
|
||
|
Рефакторинг генератора конфигов
|
|||
|---|---|---|---|
|
#18+
Появилась минутка, выложил: https://github.com/olexande/Thunderbird ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2014, 20:12 |
|
||
|
|

start [/forum/topic.php?fid=59&gotonew=1&tid=2125893]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
270ms |
get topic data: |
15ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 215ms |
| total: | 603ms |

| 0 / 0 |
