Описание

Данный сервис позволяет генерировать изображения для абонентов, на основе данных об абонентах на SSW и выбранных шаблонах.

Конфигурация сервиса

Настройка сервиса

Данные используемые при создании картинки берутся из базы MySQL. Для того, чтобы сервис работал, необходимо настроить для пакета ecss-restfs сервис "Удаленная адресная книга (Address-book)", с доступом через mysql.

Проверка сервиса

Для проверки работоспособности сервиса необходимо обратиться к его api:

  • <IP> - ip адреса сервера, где установлен пакет ecss-restfs;
  • <domain> - домен для пользователей которого запрашиваются номера;
  • <digits> - номер существующего на SSW абонента.
$ curl 'http://<IP>:9990?host=picture&digits=<digits>&domain=<domain>' --output test.png -v
< HTTP/1.1 200 OK
< Server: nginx/1.14.0 (ECSS10)
< Date: Thu, 20 Feb 2020 09:51:07 GMT
< Content-Type: image/png
< Content-Length: 33540
< Connection: keep-alive
< X-Info-FileSize: 32 kB
< X-Info-FilePermissions: rw-r--r--
< X-Info-FileType: PNG
< X-Info-FileTypeExtension: png
< X-Info-BitDepth: 8
< X-Info-ColorType: RGB with Alpha
< X-Info-Compression: Deflate/Inflate
< X-Info-Filter: Adaptive
< X-Info-Interlace: Noninterlaced
< X-Info-PixelsPerUnitY: 3937
< X-Info-Megapixels: 0.947
< X-Cache-Status: HIT
< Backend: picture
CODE

Если сервис работает корректно, то в файл test.png должно записаться изображение согласно дефолтному шаблону.

Дополнительная настройка сервиса

Шаблоны

Сервис Picture поддерживает пользовательские шаблоны изображений. В них можно самостоятельно составить необходимое изображение на основе доступный переменных. Пользовательские шаблоны находятся по пути /etc/ecss/ecss-restfs/template/picture.

Каждый шаблон должен соответствовать следующему виду: -<tempate_name>.html

  • <tempate_name> - имя шаблона. 

Кроме того для шаблонов может быть использован набор стилей CSS и добавлена логика JS. Для управления переменными и модульными составляющими шаблона используется шаблонизатор jinja2.

Доступные переменные:

  • {{template_path}}/user - путь до директории с пользовательскими шаблонами;
  • phones - список контактов. Содержит список словарей:
    • contact-name;
    • first-name;
    • middle-name;
    • last-name;
    • company;
    • position;
    • desc;
    • photo;
    • phones - список телефонов контакта. Кортеж:
      • digits;
      • label;
      • description;
    • emails - список почтовых адресов. Кортеж:
      • email;
      • description;
  • details - словарь:
    • location - словарь местоположения:
      • town - Город;
      • country - страна;
      • location - адрес вызова, если возможно определить( например, ул. Ленина, д. 7);
    • summary - словарь доп инфы:
      • lang - язык (ru, en, kz,...);
      • tzone - временная зона;
      • birthday - день рождения (DD, MM, YYYY);
      • experience - дата трудоустройства (DD, MM, YYYY);
      • gender - пол (male, female);
  • template_path - путь до корня picture;
  • url - url по которому было обращение;
  • query - словарь аргументов. str -> list(str);
  • headers - словарь заголовков. str -> str;

Пример шаблона по умолчанию можно посмотреть по пути /usr/lib/ecss/ecss-restfs/template/picture/base.html.

Использование сервиса

API сервиса

Запрос изображения для абонента

http://<IP>:9990?host=picture&digits=<digits>&domain=<domain>&<Параметр_1>&<Параметр_2>' -v
CODE
  • <IP> - ip адреса сервера, где установлен пакет ecss-restfs;
  • <Параметр> - дополнительные параметры запроса, порядок не имеет значения;
  • <domain> - домен для пользователей которого запрашиваются номера;
  • <digits> - номер существующего на SSW абонента.

Параметры

  • domain - имя домена для абонентов которого создается изображение;
  • device-width - ширина экрана устройства в пикселях (320)
  • device-height - высота устройства в пикселях (240)

Дополнительные параметры

  • resize <geom> - пропорция картинки: <ширина>x<высота>;
  • resample <geom> - растянуть;
  • chop <geom> - обрезать картинку. Применима с gravity;
  • swirl <deg> - искажение в центре по спирали;
  • rotate <deg> - повернуть картику на некоторое кол-во градусов;
  • blur <radius>x<sigma> - блюр;
  • extent <geom> - вырезать подкартинку. Применима с gravity;
  • gamma <val> - гамма;
  • ext <ext> - требуемое расширение:
    • jpeg, png, bmp
  • brightness-contrast <brightness{xcontrast}{%}> - якрость и контрастность;
  • depth <val>- глубина.

Boolean

Опция должна передаваться с аргументом true

  • monochrome - черно-белое изображение;
  • negate - негатив;
  • flip - перевенуть картинку по вертикали;
  • flop - перевернуть картинку по горизонтали;
  • transpose - flip, rotate=90;
  • transverse - flop, rotate=90.

Другое
  • gravity <location> - Устанавливает начало координат;
    • NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast;
  • region <geom> - область к которой применяется действие(Без указание преобразование применяется ко всей картинке).

            <geom> используется для указания размер/пропорций/смещения:

  • <Weigth>x<Heigth> - ширина и высота
  • <N>% - процентное соотношение
  • <W>x<H>(+|-)<X>(+|-)<Y> - ширина и высота со смещением (x,y) от начала координат