Генератор файлов по шаблону с макросами (почти доргенератор)
Есть файл формата CSV с разделителями нескольких видов ниже. На выходе должен получиться UTF-8 файл с названием: {номер прошлого месяца}{год}{имя шаблона} указанным расширением и блоки с повторяющимися макросами должны заполниться данными из CSV файла с указанием разделителя. Скрипт может быть на php или на python
Date;Summ;address;currency;description;number;transaction
10.02.2018 10:15:01 AM;moskow 23/2;USD;for servers 3423;545;9322368972
10.07.2018 10:15:01 AM;moskow 23/2;USD;for servers 3423;545;9322368972
09.02.2018 10:15:01 AM;moskow 23/2;USD;for servers 3423;545;9322368972
10.02.2018 10:15:01 AM;moskow 23/2;USD;for servers 3423;545;9322368972
(данные конечно будут не одинаковые в строках)
Есть шаблон с настройками и макросами такого вида:
separator= ;
Date_format: 11/13/2018 10:15:01 AM
{{from_date}}-{{to_date}}
{{today_date}}
{{random-34}}
{{random-34}}
<<>>{{Date}}
{{Summ}}
{{address}}
>{{currency}}
{{description}}
{{number}}
{{transaction}}
><<>>
- Нужен минимальный веб интерфейс с выбором шаблона с выпадающего списка
- Каждый шаблон должен быть задан отдельным файлом в папке config
- В веб интерфейсе должны быть
* текстовое поле для указания разделителя для входного файла
* выбор файла с загрузкой через веб
* кнопка "Generate"
* ссылка на сгенерированный файл
* Поля "from" и "to" c выбором даты и времени, макросы {{from_date}} и {{to_date}} формат: "2018-11-05T00:00:00+01:00", время и зона по умолчанию 00:00:00+01:00
- Нужны следующие универсальные макросы
* рэндомное айди с латинских букв (только маленькие) и цифр длинной N символов, макрос {{random-N}}, где N - количество символов
* сегодняшняя дата с макросом {{today_date}}, формат: "2018-11-05T00:00:00+01:00" время и зона по умолчанию 00:00:00+01:00
- Нужно придумать специальный макрос, который будет конвертировать дату разных форматов в формат "2018-11-05T00:00:00+01:00". На данный момент есть такие форматы:
11/13/2018 10:15:01 AM
"9/4/2018","15:34:25" - то есть тут дата и время отдельные поля в CSV
2018-10-11 16:34:24 +0300
Так же, должна быть возможность добавлять шаблоны для времени в настройках.
- сделать защиту от сбоя, если каким то чудом, в поле CSV файла окажется разделитель, который указан в шаблоне CSV - скрипт должен выдать ошибку "разделитель .. найден в поле таком то запись такая то"
- сделать вывод других ошибок, если нету указанной переменной, которая указана в шаблоне
- сделать авторизацию по паролю