Описание скрипта
Данный скрипт позволяет выгрузить данные определенного портала из базы данных. Осуществляется выгрузка настроек
вкладок Общие настройки
, Языковые настройки
, Работа по расписанию
и Внешний вид
.
Алгоритм работы скрипта
- Нахождение запрашиваемого портала в базе
- Получение данных для портала со всех необходимых таблиц
- Сохранение выгрузок таблиц в csv файлы в директорию tables
- Сохранение портальных ресурсов в файлы в директорию portal_resources
Подготовка к запуску
- Для запуска скрипта должен быть установлен python3.9
- Для запуска скрипта необходимо установить зависимости. Это можно сделать при помощи команды:
sudo pip3 install -r requirements.txt
Конфигурационный файл application.conf
- logging
- level уровень логирования (возможные варианты: "DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL")
- filename название файла, в который будут записываться логи
- mysql
- host хост, на котором установлен mysql
- port порт mysql
- username имя пользователя
- password пароль пользователя
- charset кодировка базы данных ELTEX_PORTAL
Запуск скрипта
Вариант 1:
Выведет список всех порталов. Позволит выбрать из этого списка нужный портал.
Способ не подходит для запуска на базе с большим количеством порталов. В этом случае
рекомендуется воспользоваться 2 вариантом запуска скрипта.
python3.9 upload_settings.py
Вариант 2:
Вариант с указанием конкретного имени портала первым аргументом.
python3.9 upload_settings.py 'portal_name'
Соответствие данных со вкладок с данными из выгрузки
Вкладка "Общие настройки"
Название вкладки | Настройка | Таблица БД | Колонка в БД | Название в БД | Примечание |
---|---|---|---|---|---|
Общие->Основные | |||||
Рабочее расписание | properties | name | schedule.main | ||
Основной язык | properties | name | locale.default | ||
Длина генерируемого пароля | properties | name | wifi.password.length | ||
Время свободного повторного входа | properties | name | open.timeout | ||
Время хранения MAC-адреса пользователя | properties | name | mac.store.period | ||
Добавлять идентификатор сессии в URL перенаправления | properties | name | redirect.param.session.id | ||
Разрешить смену тарифа | properties | name | tariff.rewrite.allowed | ||
MAC-авторизация через АТС Смольного | properties | name | auth.method.sats | ||
Отображать пользовательское соглашение | properties | name | user.agreement.position | ||
Включить автопереход на странице "Поздравление" | properties | name | success.autoclick.enabled | ||
Таймаут автоперехода на странице "Поздравление", с. | properties | name | success.autoclick.timeout | ||
Включить автопереход на странице после закрытия баннера на странице "Поздравление" | properties | name | autoclick.after.promo.close.enabled | ||
Общие->Рекламная рассылка | |||||
Спрашивать согласие пользователей на рассылку | properties | name | advertising.allowed | ||
Обязательное поле | properties | name | advertising.required | ||
Общие->Дополнительные параметры при регистрации | |||||
Запрашивать дополнительные параметры при регистрации | properties | name | auth.params.additional | ||
Имя | properties | name | auth.params.name | ||
Имя->Обязательное поле | properties | name | auth.params.name.required | ||
Фамилия | properties | name | auth.params.family | ||
Фамилия->Обязательное поле | properties | name | auth.params.family.required | ||
Адрес электронной почты | properties | name | auth.params.email | ||
Адрес электронной почты->Обязательное поле | properties | name | auth.params.email.required | ||
Общие->Подтверждение возраста | |||||
Включить подтверждение возраста | properties | name | age.confirm.enabled | ||
Обязательное поле | properties | name | age.confirm.required | ||
Возраст | properties | name | age.confirm.value | ||
Режим работы->Основные | |||||
ЕСИА | properties | name | |||
Регистрация | properties | name | registration.enabled | ||
Авторизация | properties | name | login.enabled | ||
Авторизация через УШ | properties | name | pms.login.enabled | ||
Режим работы->Подтверждение личности | |||||
Режим демонстрации | properties | name | auth.method.demo | ||
SMS пользователю | properties | name | notification.sms.outbound | ||
SMS от пользователя | properties | name | notification.sms.inbound | ||
Звонок пользователю | properties | name | notification.call.outbound | ||
Звонок от пользовател | properties | name | notification.call.inbound | ||
Вход через Fan ID | properties | name | auth.method.fanid | ||
Вход по Mobile ID | properties | name | auth.method.mobileId |
Вкладка "Языковые настройки"
Название вкладки | Настройка | Таблица БД | Колонка в БД | Название в БД | Примечание |
Языковые настройки | properties | name | enabled.set | ||
URL для перенаправления | portal_resources | link_name | redirect-url-main | ||
URL перехода по баннеру на финальной странице | portal_resources | link_name | redirect-url-banner-bottom | ||
URL перехода по промо баннеру на финальной странице | portal_resources | link_name | redirect-url-banner-promo | ||
Заголовок страницы | messages | name | site.title | ||
Подпись снизу | messages | name | site.descr | ||
Шаблон SMS-сообщения | messages | name | sms.msg.template | ||
URL перенаправления перед предоставлением услуги | messages | name | redirect-url-internal |
Вкладка "Работа по расписанию"
Название вкладки | Таблица БД | Колонка в БД | Название в БД | Примечание |
---|---|---|---|---|
Работа по расписанию | schedules | name | Название расписания |
Вкладка "Внешний вид"
Название вкладки | Настройка | Таблица БД | Колонка в БД | Название в БД | Примечание |
---|---|---|---|---|---|
Внешний вид | |||||
Язык | properties | name | enabled.set | ||
Тема | |||||
Дополнительные CSS | portal_resources | link_name | style | custom-css | |
Дополнительный JavaScript | portal_resources | link_name | style | custom-js | |
Общее | |||||
Цвет фона страницы | portal_resources | link_name | style | backgroundColor | |
Цвет фона шапки | portal_resources | link_name | style | headerBackground | |
Таймаут начального промо банера | properties | name | promo.start.timeout | ||
Таймаут финального промо банера | properties | name | promo.final.timeout | ||
Общее->Для расписания | (название расписания) | schedules | name | Название расписания | |
Значок (favicon) | resource_links | name | favicon | Сам ресурс в таблице resources | |
Фоновое изображение страницы | resource_links | name | background | Сам ресурс в таблице resources | |
Фоновое изображение шапки | resource_links | name | logo | Сам ресурс в таблице resources | |
Общее->Для расписания->Баннеры | |||||
Верхний | resource_links | name | top-image | Сам ресурс в таблице resources | |
Левый | resource_links | name | left-image | Сам ресурс в таблице resources | |
Правый | resource_links | name | right-image | Сам ресурс в таблице resources | |
Нижний | resource_links | name | bottom-image | Сам ресурс в таблице resources | |
Общее->Для расписания->Промо Баннеры | |||||
Начальный | resource_links | name | promo-start-image | Сам ресурс в таблице resources | |
Финальный | resource_links | name | promo-final-image | Сам ресурс в таблице resources | |
Текст | |||||
Заголовок формы регистрации | portal_resources | link_name | style | ||
Заголовок формы авторизации | portal_resources | link_name | style | ||
Заголовок формы авторизации через УШ | portal_resources | link_name | style | ||
Фон | portal_resources | link_name | style | contentBackground | |
Обычный | portal_resources | link_name | style | textColor/textFontFamily | |
Заголовки | portal_resources | link_name | style | titleColor/titleFontFamily | |
Ссылки | portal_resources | link_name | style | linkColor | |
Шапка | portal_resources | link_name | style | headerTextColor | |
Согласие на получение рекламы | messages | name | site.index.advertising.approval | ||
Поля ввода | |||||
Текст | portal_resources | link_name | style | placeholder.phone.enabled | |
Фон | portal_resources | link_name | style | inputBackground | |
Рамка | portal_resources | link_name | style | inputBorderWidth/inputBorderColor | |
Закругление | portal_resources | link_name | style | inputBorderRadius | |
Надпись у поля “Имя пользователя” | messages | name | portal.index.name_field.label | ||
Надпись у поля “Пароль” | messages | name | portal.index.password_field.label | ||
Надпись у поля “Фамилия” | messages | name | portal.index.pms_name_field.label | ||
Надпись у поля “Номер комнаты” | messages | name | portal.index.pms_password_field.label | ||
Отображать пример заполнения номера телефона | messages | name | placeholder.phone.enabled | ||
Кнопки | |||||
Рамка | portal_resources | link_name | style | buttonBorderColor/buttonBorderWidth | |
Закругление | portal_resources | link_name | style | buttonBorderRadius | |
Текст кнопки “По учетной записи” | messages | name | portal.index.auth_button.label | ||
Текст кнопки “По учетной записи гостя” | messages | name | portal.index.pms_auth_button.label | ||
Текст кнопки “По номеру телефона” | messages | name | portal.index.pms_name_field.label | ||
Кнопки->Основная | |||||
Текст | portal_resources | link_name | style | buttonPrimaryTextColor | |
Фон | portal_resources | link_name | style | buttonPrimaryBackground | |
Градиент | portal_resources | link_name | style | buttonPrimaryGradient/buttonPrimaryGradientColor | |
Кнопки->Дополнительные | |||||
Текст | portal_resources | link_name | style | buttonSecondaryTextColor | |
Фон | portal_resources | link_name | style | buttonSecondaryBackground | |
Градиент | portal_resources | link_name | style | buttonSecondaryGradient/buttonSecondaryGradientColor |
Примечание
Соответствие портальных ресурсов (изображений) и мест их использований, можно найти через таблицы resource_links
иresources
. В таблице resource_links
указано место использования и resource_id
. По resource_id
можно найти
название ресурса в таблице resources
. Сами ресурсы будут сохранены в директорию portal_resources
.
Если настройка не была найдена в БД, она будет добавлена в результирующие таблицы со значением по-умолчанию
(так, как это работает на стороне Конструктора Порталов).
В случае, если таблица не предполагает наличие значений по-умолчанию и не имеет данных, csv файл для данной таблицы
создан не будет. Данная ситуация возможна, например, для таблицы schedules
.
Пример работы скрипта:
$ python3.9 upload_settings.py
Список всех порталов:
1 : default
2 : Test Portal
5 : test3
6 : test4
7 : test5
Введите id портала, настройки которого необходимо выгрузить, и нажмите клавишу 'Enter'
Для выхода выберите 0
2
Выгрузка настроек портала 'Test Portal' ...
Данные таблицы 'properties' для выбранного портала выгружены в файл: properties_2022-10-17_19-32-56.csv
Данные таблицы 'messages' для выбранного портала выгружены в файл: messages_2022-10-17_19-32-56.csv
Данные таблицы 'schedules' для выбранного портала выгружены в файл: schedules_2022-10-17_19-32-56.csv
Данные таблицы 'resource_links' для выбранного портала выгружены в файл: resource_links_2022-10-17_19-32-56.csv
Время выполнения скрипта: 3.82 с.
Скрипт скачать по ссылке upload_settings_Captive_Portal.zip