Олімпіадники strikes back

Щодня @Donate1024Bot надсилає своїм підписникам звіти по завершених зборах. Це посилання на соцмедіа, відео з фото та супровідний текст.

Деколи ті звіти не відправляються через костурбатість Telegram Bot API:

  • Текст до картинок не може бути довшим ніж 1024 символи. Щоб запобігти цьому обмеженню я додав у себе в адмінці валідацію на розмір тексту
  • Файлів з медіа не може бути більше ніж 10. Щоб уникнути цієї помилки я просто брав перших 10 файлів, якщо випадково в адмінці додавав більше при створенні звіту

І найнапряжніше це document can't be mixed with other media types. Олімпіадники Дурова не змогли зробити одночасну відправку різних типів файлів. Найчастіше у мене ця помилка падає коли випадково разом з JPEG файлами додав PNG. Також неможливо відправити PDF або щось інше разом з картинками.

В чому проблема це зробити для мене загадка. Хоче користувач додати одним повідомленням кілька картинок різних форматів, відео, та бінарний файл — ну покажи замість прев'юшки іконку файлу і все.

😡А найцікавіше що джипег та відео можна відправити одним повідомленням! Чому не можна одночасно відправити PNG та JPEG?

Signal до речі, теж цим страждає. Тупе обмеження яке програмісти придумали напевне щоб спростити собі життя.

Рік я ігнорував цю проблему і коли телеграм не хотів відправляти мій звіт користувачам, то це попадало в Sentry, а далі я вже вручну дивився що не так і переробляв звіт.

Але врешті мені воно надоїло і я додав «тестування» звіту: при його створенні відразу відправляти у приватний чат. Таким чином я точно знатиму що звіт валідний та буде належним чином доставлений користувачам.

Інтеграційне тестування на продакшені👊


Сподобалось? Долучайтеся до мого телеграм каналу: https://t.me/full_of_hatred