решение из ленты заказов

Цифры на бланк — за секунду

Человек присылает значения, бот кладёт их в нужные места готового бланка и возвращает картинку. Сводка за день, ценник, сертификат, справка — любой шаблон, который иначе заполняют руками в редакторе. Ниже то же самое работает прямо на странице: введите свои значения.

Попробуйте сами

Что вернёт бот

Картинка перерисовывается на каждое нажатие клавиши. Это тот же расчёт координат, что и в боте, — разница лишь в том, что здесь рисует браузер, а там Python.

Ваши значения

так это выглядит в Telegram
185 400 92 100 93 300 47
Готово.

Что под капотом

📄

Координаты — в отдельном файле

Где печатать каждое значение, задано в positions.json. Сдвинуть цифру, поменять размер или цвет можно в блокноте. Программист для этого не нужен ни разу.

⌨️

Три способа ввода

В столбик, через запятую или по именам полей — прибыль=93 300. Люди пишут по-разному, и бот не должен их переучивать.

🧪

17 тестов на ядро

Проверяется, что значения действительно легли на бланк, что исходный шаблон не портится и что все способы ввода разбираются верно.

🔁

Служба, а не окно терминала

Бот ставится системной службой и сам поднимается после перезагрузки сервера. Иначе он работает ровно до первого закрытия сессии.

Деталь, которая решает всё

«185 400» — это одно число, а не два

Суммы по-русски пишут с пробелом. Бот, написанный в лоб, режет строку по пробелам, получает 185 и 400 и раскладывает их по двум разным полям бланка. Владелец увидит это на первом же сообщении, а исполнитель — уже после сдачи.

Поэтому разбор устроен иначе: несколько строк — одна строка есть одно значение; запятые — делим по запятым; и только одна строка без запятых делится по пробелам. На это написан отдельный тест, чтобы правило нельзя было случайно сломать в будущем.

Попробуйте выше: впишите 185 400 — пробел останется на месте.

Нужен такой же под ваш бланк?

Присылаете файл шаблона — получаете работающего бота. Настройка под чужой бланк занимает около двадцати минут: положить картинку и указать координаты полей. Исходники и инструкция по запуску отдаются вместе с ботом, без привязки к нам.

Обсудить задачу