Описание

Данный сервис позволяет генерировать изображения для абонентов, на основе данных об абонентах на 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) от начала координат