{"id":199,"date":"2026-05-13T14:49:04","date_gmt":"2026-05-13T14:49:04","guid":{"rendered":"https:\/\/thesidequestlab.com\/project\/telegram-image-bot\/"},"modified":"2026-05-13T14:58:46","modified_gmt":"2026-05-13T14:58:46","slug":"telegram-image-bot","status":"publish","type":"post","link":"https:\/\/thesidequestlab.com\/old\/project\/telegram-image-bot\/","title":{"rendered":"Telegram Image Bot"},"content":{"rendered":"<figure class=\"project-body-hero\"><img decoding=\"async\" src=\"https:\/\/images.unsplash.com\/photo-1541701494587-cb58502866ab?auto=format&#038;fit=crop&#038;w=1400&#038;q=80\" alt=\"Colorful abstract generative artwork\" loading=\"lazy\"><\/figure>\n<div class=\"privacy-callout\"><strong data-lang-block=\"en\">Privacy note.<\/strong><strong data-lang-block=\"nl\">Privacy-notitie.<\/strong> <span data-lang-block=\"en\">This write-up explains the architecture and purpose without publishing credentials, private routes that should stay private, personal data, or operational secrets.<\/span><span data-lang-block=\"nl\">Deze beschrijving legt de architectuur en het doel uit zonder credentials, private routes, persoonlijke gegevens of operationele geheimen te publiceren.<\/span><\/div>\n<div class=\"project-facts\">\n<div class=\"project-fact\"><strong>Type<\/strong><span>Media bot<\/span><\/div>\n<div class=\"project-fact\"><strong>Stack<\/strong><span>Docker, webhooks, image tooling<\/span><\/div>\n<div class=\"project-fact\"><strong>Purpose<\/strong><span>Generate and deliver images<\/span><\/div>\n<\/div>\n<div class=\"project-deep\" data-lang-block=\"en\">\n<h2>What it is<\/h2>\n<p>The image bot is a chat-native media tool. Instead of opening a separate interface for every image task, the request can start in chat and the result can be delivered back to the same place.<\/p>\n<h2>How it works<\/h2>\n<div class=\"workflow-steps\">\n<div class=\"workflow-step\">A chat or webhook request describes the media task.<\/div>\n<div class=\"workflow-step\">The bot normalizes the request and sends it to the configured image workflow.<\/div>\n<div class=\"workflow-step\">Generated files are stored only as needed for delivery and debugging.<\/div>\n<div class=\"workflow-step\">The output is returned as a chat attachment or a link, depending on the route.<\/div>\n<\/div>\n<h2>Safety boundary<\/h2>\n<p>The public website can mention the concept, but it should not expose bot tokens, exact webhook secrets, private storage paths or provider credentials.<\/p>\n<ul class=\"tech-tags\">\n<li>Telegram<\/li>\n<li>Image generation<\/li>\n<li>Webhooks<\/li>\n<li>Media delivery<\/li>\n<\/ul>\n<\/div>\n<div class=\"project-deep\" data-lang-block=\"nl\">\n<h2>Wat het is<\/h2>\n<p>De image bot is een chat-native mediatool. In plaats van voor elke image-taak een aparte interface te openen, begint het verzoek in chat en komt het resultaat daar ook terug.<\/p>\n<h2>Hoe het werkt<\/h2>\n<div class=\"workflow-steps\">\n<div class=\"workflow-step\">Een chat- of webhookverzoek beschrijft de mediataak.<\/div>\n<div class=\"workflow-step\">De bot normaliseert het verzoek en stuurt het naar de ingestelde image-workflow.<\/div>\n<div class=\"workflow-step\">Gegenereerde bestanden worden alleen bewaard waar dat nodig is voor levering en debugging.<\/div>\n<div class=\"workflow-step\">De output komt terug als chat-attachment of link, afhankelijk van de route.<\/div>\n<\/div>\n<h2>Veiligheidsgrens<\/h2>\n<p>De publieke site kan het concept uitleggen, maar mag geen bot-tokens, exacte webhook secrets, private opslagpaden of provider-credentials tonen.<\/p>\n<ul class=\"tech-tags\">\n<li>Telegram<\/li>\n<li>Image generation<\/li>\n<li>Webhooks<\/li>\n<li>Media delivery<\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>A chat-first image workflow for generation, processing, delivery and experiments around media bots.<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-199","post","type-post","status-publish","format-standard","hentry","category-projects"],"_links":{"self":[{"href":"https:\/\/thesidequestlab.com\/old\/wp-json\/wp\/v2\/posts\/199","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thesidequestlab.com\/old\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thesidequestlab.com\/old\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/thesidequestlab.com\/old\/wp-json\/wp\/v2\/comments?post=199"}],"version-history":[{"count":1,"href":"https:\/\/thesidequestlab.com\/old\/wp-json\/wp\/v2\/posts\/199\/revisions"}],"predecessor-version":[{"id":207,"href":"https:\/\/thesidequestlab.com\/old\/wp-json\/wp\/v2\/posts\/199\/revisions\/207"}],"wp:attachment":[{"href":"https:\/\/thesidequestlab.com\/old\/wp-json\/wp\/v2\/media?parent=199"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thesidequestlab.com\/old\/wp-json\/wp\/v2\/categories?post=199"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thesidequestlab.com\/old\/wp-json\/wp\/v2\/tags?post=199"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}