<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>@pytekh</title><subtitle>Профессиональный IT-блог об автоматизации, разработке и внедрении IT-решений.
© 2026–2027. Все права защищены.</subtitle><author><name>@pytekh</name></author><id>https://teletype.in/atom/pytekh</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/pytekh?offset=0"></link><link rel="alternate" type="text/html" href="https://pytekh.com/?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=pytekh"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/pytekh?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-04-10T11:44:28.116Z</updated><entry><id>pytekh:VJ05QzA_TFI</id><link rel="alternate" type="text/html" href="https://pytekh.com/VJ05QzA_TFI?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=pytekh"></link><title>🎬 Ваш корпоративный видеоцентр</title><published>2026-03-22T07:54:40.403Z</published><updated>2026-03-22T07:55:40.626Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/1b/1b/1b1b9e10-3dc8-4e73-b9a6-2e2c6419741f.png"></media:thumbnail><category term="veb-razrabotka-i-veb-tehnologii" label="Веб-разработка и веб-технологии"></category><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/58/80/5880a273-018d-491e-988c-55b8b72477a4.jpeg&quot;&gt;Веб-приложение на Flask, позволяющее хранить, публиковать и просматривать видео внутри компании.</summary><content type="html">
  &lt;p id=&quot;59NT&quot;&gt;Веб-приложение на &lt;strong&gt;Flask&lt;/strong&gt;, позволяющее хранить, публиковать и просматривать видео внутри компании.&lt;br /&gt;Поддерживает роли пользователей, категории, лайки и удобную админку.&lt;/p&gt;
  &lt;h2 id=&quot;O3Nm&quot;&gt;🚀 Возможности&lt;/h2&gt;
  &lt;ul id=&quot;Ge7O&quot;&gt;
    &lt;li id=&quot;xiSs&quot;&gt;🔑 Авторизация через логин/пароль (роли: &lt;strong&gt;admin&lt;/strong&gt;, &lt;strong&gt;moderator&lt;/strong&gt;, &lt;strong&gt;user&lt;/strong&gt;).&lt;/li&gt;
    &lt;li id=&quot;hiAf&quot;&gt;📂 Загрузка видео (поддержка форматов &lt;code&gt;mp4&lt;/code&gt;, &lt;code&gt;mov&lt;/code&gt;, &lt;code&gt;webm&lt;/code&gt;, &lt;code&gt;mkv&lt;/code&gt;).&lt;/li&gt;
    &lt;li id=&quot;IayO&quot;&gt;🖼 Превью (обложки видео).&lt;/li&gt;
    &lt;li id=&quot;PXNd&quot;&gt;🗂 Категории видео.&lt;/li&gt;
    &lt;li id=&quot;P0sZ&quot;&gt;👀 Счётчик просмотров.&lt;/li&gt;
    &lt;li id=&quot;QBOY&quot;&gt;👍 Лайки (для авторизованных и гостей).&lt;/li&gt;
    &lt;li id=&quot;0wlz&quot;&gt;⚙️ Админка для управления категориями и видео.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;TZi6&quot;&gt;🛠 Установка и запуск&lt;/h2&gt;
  &lt;h3 id=&quot;Dbz1&quot;&gt;1. Клонировать проект&lt;/h3&gt;
  &lt;pre id=&quot;dSsV&quot;&gt;git clone &amp;lt;repo-url&amp;gt;
cd flask_video_portal_with_thumbnails_final&lt;/pre&gt;
  &lt;h3 id=&quot;pRSc&quot;&gt;2. Создать виртуальное окружение&lt;/h3&gt;
  &lt;pre id=&quot;xFk1&quot;&gt;python -m venv .venv
source .venv/bin/activate   # Linux/macOS
.venv\Scripts\activate      # Windows&lt;/pre&gt;
  &lt;h3 id=&quot;41Tr&quot;&gt;3. Установить зависимости&lt;/h3&gt;
  &lt;pre id=&quot;Syag&quot;&gt;pip install -r requirements.txt&lt;/pre&gt;
  &lt;h3 id=&quot;g8CC&quot;&gt;4. Инициализировать базу&lt;/h3&gt;
  &lt;pre id=&quot;4EZB&quot;&gt;flask --app manage.py init-db&lt;/pre&gt;
  &lt;h3 id=&quot;o0bD&quot;&gt;5. Создать администратора&lt;/h3&gt;
  &lt;pre id=&quot;CAx6&quot;&gt;flask --app manage.py create-admin&lt;/pre&gt;
  &lt;h3 id=&quot;34c4&quot;&gt;6. Запуск&lt;/h3&gt;
  &lt;pre id=&quot;E1Rq&quot;&gt;flask --app manage.py run&lt;/pre&gt;
  &lt;p id=&quot;wbDZ&quot;&gt;Приложение будет доступно на:&lt;br /&gt;👉 &lt;a href=&quot;http://127.0.0.1:5000&quot; target=&quot;_blank&quot;&gt;http://127.0.0.1:5000&lt;/a&gt;&lt;/p&gt;
  &lt;h2 id=&quot;GAd4&quot;&gt;👥 Роли пользователей&lt;/h2&gt;
  &lt;ul id=&quot;6yJD&quot;&gt;
    &lt;li id=&quot;0owm&quot;&gt;&lt;strong&gt;Admin&lt;/strong&gt; → управление категориями и видео.&lt;/li&gt;
    &lt;li id=&quot;138O&quot;&gt;&lt;strong&gt;Moderator&lt;/strong&gt; → загрузка/редактирование видео.&lt;/li&gt;
    &lt;li id=&quot;5JAl&quot;&gt;&lt;strong&gt;User&lt;/strong&gt; → просмотр и лайки.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;lwEU&quot;&gt;📂 Структура проекта&lt;/h2&gt;
  &lt;pre id=&quot;TsnY&quot;&gt;flask_video_portal_with_thumbnails_final/
│── app/
│   ├── init.py      # создание Flask-приложения
│   ├── routes.py        # основные страницы и админка
│   ├── auth.py          # авторизация (login/logout)
│   ├── models.py        # модели SQLAlchemy
│   ├── forms.py         # формы (логин, загрузка видео)
│   ├── utils.py         # утилиты и декораторы
│   ├── templates/       # HTML-шаблоны (Jinja2)
│   └── static/          # стили, JS, изображения
│── manage.py            # команды управления (init-db, create-admin)
│── videos.db            # база данных SQLite
│── requirements.txt     # зависимости&lt;/pre&gt;
  &lt;figure id=&quot;HCRC&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/58/80/5880a273-018d-491e-988c-55b8b72477a4.jpeg&quot; width=&quot;1280&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;NEor&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/43/d7/43d705c8-daf4-4bc0-b161-3119c61ff60f.jpeg&quot; width=&quot;1280&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;8ykL&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0f/81/0f81df78-f3ce-40a1-aa68-f84347ab83c3.jpeg&quot; width=&quot;1280&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;p4Bq&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/ce/e6/cee65c1e-a0d1-4263-88f2-aed98abbcddd.jpeg&quot; width=&quot;1280&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;cRKm&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ea/2c/ea2ce690-6192-4a21-81cd-10fa45d68df6.jpeg&quot; width=&quot;1280&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;6WNt&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/30/e1/30e109e7-5824-47f3-9cac-192cdc0204ce.jpeg&quot; width=&quot;1280&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;U3yy&quot;&gt;🔮 Будущие улучшения&lt;/h2&gt;
  &lt;ul id=&quot;nFZh&quot;&gt;
    &lt;li id=&quot;s3FV&quot;&gt;🌐 Поддержка &lt;strong&gt;PostgreSQL/MySQL&lt;/strong&gt; вместо SQLite для продакшена.&lt;/li&gt;
    &lt;li id=&quot;HGss&quot;&gt;📡 REST API для интеграции с другими сервисами.&lt;/li&gt;
    &lt;li id=&quot;RJJE&quot;&gt;🔍 Поиск и фильтрация видео по тегам и категориям.&lt;/li&gt;
    &lt;li id=&quot;BnZ5&quot;&gt;💬 Комментарии под видео.&lt;/li&gt;
    &lt;li id=&quot;aUel&quot;&gt;📊 Статистика просмотров (графики, аналитика).&lt;/li&gt;
    &lt;li id=&quot;CKWZ&quot;&gt;🏷 Поддержка &lt;strong&gt;тегов&lt;/strong&gt; для видео.&lt;/li&gt;
    &lt;li id=&quot;IrMT&quot;&gt;👤 Регистрация пользователей через e-mail.&lt;/li&gt;
    &lt;li id=&quot;VKXp&quot;&gt;🛡 Двухфакторная авторизация (2FA).&lt;/li&gt;
    &lt;li id=&quot;Jixa&quot;&gt;☁️ Хранение видео в &lt;strong&gt;облаке (S3/MinIO)&lt;/strong&gt; вместо локальных файлов.&lt;/li&gt;
    &lt;li id=&quot;gWha&quot;&gt;🎨 Более современный UI (Bootstrap/Tailwind).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;s3DL&quot;&gt;🔗 &lt;a href=&quot;https://github.com/PyTekh/Your-corporate-video-center?tab=readme-ov-file&quot; target=&quot;_blank&quot;&gt;Исходный код&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;hn48&quot;&gt;&lt;a href=&quot;https://github.com/topics/javascript&quot; target=&quot;_blank&quot;&gt;javascript&lt;/a&gt; &lt;a href=&quot;https://github.com/topics/css&quot; target=&quot;_blank&quot;&gt;css&lt;/a&gt; &lt;a href=&quot;https://github.com/topics/python&quot; target=&quot;_blank&quot;&gt;python&lt;/a&gt; &lt;a href=&quot;https://github.com/topics/html&quot; target=&quot;_blank&quot;&gt;html&lt;/a&gt; &lt;a href=&quot;https://github.com/topics/flask&quot; target=&quot;_blank&quot;&gt;flask&lt;/a&gt; &lt;a href=&quot;https://github.com/topics/html5&quot; target=&quot;_blank&quot;&gt;html5&lt;/a&gt; &lt;a href=&quot;https://github.com/topics/js&quot; target=&quot;_blank&quot;&gt;js&lt;/a&gt; &lt;a href=&quot;https://github.com/topics/sqlite&quot; target=&quot;_blank&quot;&gt;sqlite&lt;/a&gt; &lt;a href=&quot;https://github.com/topics/python3&quot; target=&quot;_blank&quot;&gt;python3&lt;/a&gt; &lt;a href=&quot;https://github.com/topics/sqlite3&quot; target=&quot;_blank&quot;&gt;sqlite3&lt;/a&gt; &lt;a href=&quot;https://github.com/topics/flask-server&quot; target=&quot;_blank&quot;&gt;flask-server&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>pytekh:wbhDIv8rDaB</id><link rel="alternate" type="text/html" href="https://pytekh.com/wbhDIv8rDaB?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=pytekh"></link><title>🤖 Telegram Автоответ Bot</title><published>2026-03-22T07:34:04.768Z</published><updated>2026-03-22T20:58:39.372Z</updated><category term="telegram-boty" label="Телеграм-боты"></category><tt:hashtag>telegram</tt:hashtag><tt:hashtag>python</tt:hashtag><tt:hashtag>telethon</tt:hashtag><tt:hashtag>automation</tt:hashtag><tt:hashtag>bot</tt:hashtag><tt:hashtag>opensource</tt:hashtag><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/e3/e0/e3e0d0bb-78c0-49d7-9853-041e27f2e5b4.png&quot;&gt;В повседневной работе мы не всегда можем оперативно отвечать на сообщения в Telegram: рабочее время заканчивается, наступают выходные, отпуск или праздничные дни. Чтобы не оставлять людей без ответа и при этом не отвечать вручную, я разработал Telegram Автоответ Bot на Python с использованием библиотеки Telethon.</summary><content type="html">
  &lt;h3 id=&quot;Oifc&quot;&gt;Умный автоответчик для личных сообщений в Telegram&lt;/h3&gt;
  &lt;p id=&quot;feIi&quot;&gt;В повседневной работе мы не всегда можем оперативно отвечать на сообщения в Telegram: рабочее время заканчивается, наступают выходные, отпуск или праздничные дни. Чтобы не оставлять людей без ответа и при этом не отвечать вручную, я разработал &lt;strong&gt;Telegram Автоответ Bot&lt;/strong&gt; на Python с использованием библиотеки &lt;strong&gt;Telethon&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;WIWN&quot;&gt;Этот проект появился из практической необходимости — хотелось автоматизировать рутинные ответы, но при этом сохранить «живое» общение и не превращать Telegram в бездушный автоинформатор.&lt;/p&gt;
  &lt;figure id=&quot;vMVj&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e3/e0/e3e0d0bb-78c0-49d7-9853-041e27f2e5b4.png&quot; width=&quot;456&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;Ie5h&quot;&gt;⚙️ Основные возможности&lt;/h2&gt;
  &lt;p id=&quot;BlJu&quot;&gt;Telegram &lt;strong&gt;Автоответ Bot&lt;/strong&gt; обладает следующим функционалом:&lt;/p&gt;
  &lt;ul id=&quot;i5tM&quot;&gt;
    &lt;li id=&quot;iq2U&quot;&gt;📩 автоответ &lt;strong&gt;только на личные сообщения&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;SZVl&quot;&gt;🟢 проверка онлайн-статуса владельца аккаунта&lt;/li&gt;
    &lt;li id=&quot;9FoF&quot;&gt;🕘 учёт рабочего времени (09:00–18:00)&lt;/li&gt;
    &lt;li id=&quot;vIv9&quot;&gt;📆 поддержка выходных и праздничных дней&lt;/li&gt;
    &lt;li id=&quot;CfBb&quot;&gt;🌴 режим отпуска&lt;/li&gt;
    &lt;li id=&quot;tkM8&quot;&gt;⛔ ограничение количества автоответов одному пользователю (антиспам)&lt;/li&gt;
    &lt;li id=&quot;7OK5&quot;&gt;🌍 поддержка тайм зоны &lt;em&gt;Asia/Tashkent&lt;/em&gt;&lt;/li&gt;
    &lt;li id=&quot;x8Ek&quot;&gt;🌐 двуязычные сообщения (UZ / RU)&lt;/li&gt;
    &lt;li id=&quot;GDvm&quot;&gt;🔐 безопасное хранение API-ключей&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;GWmN&quot;&gt;🔐 Безопасность и конфиденциальность&lt;/h2&gt;
  &lt;p id=&quot;Yuqs&quot;&gt;Так как бот работает от имени реального Telegram-аккаунта, вопросам безопасности было уделено особое внимание:&lt;/p&gt;
  &lt;ul id=&quot;OTrI&quot;&gt;
    &lt;li id=&quot;I8gf&quot;&gt;&lt;code&gt;api_id&lt;/code&gt; и &lt;code&gt;api_hash&lt;/code&gt; хранятся в &lt;code&gt;.env&lt;/code&gt; файле&lt;/li&gt;
    &lt;li id=&quot;iEbR&quot;&gt;файл сессии Telegram (&lt;code&gt;*.session&lt;/code&gt;) не попадает в репозиторий&lt;/li&gt;
    &lt;li id=&quot;isIs&quot;&gt;проект можно безопасно выкладывать на GitHub&lt;/li&gt;
    &lt;li id=&quot;L5sq&quot;&gt;отсутствуют жёстко прописанные секреты в коде&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;VbiV&quot;&gt;🛠 Используемые технологии&lt;/h2&gt;
  &lt;p id=&quot;QoIH&quot;&gt;В проекте применяются следующие инструменты и библиотеки:&lt;/p&gt;
  &lt;ul id=&quot;EOCe&quot;&gt;
    &lt;li id=&quot;OeFy&quot;&gt;&lt;strong&gt;Python 3&lt;/strong&gt; — основной язык разработки&lt;/li&gt;
    &lt;li id=&quot;kqKO&quot;&gt;&lt;strong&gt;Telethon&lt;/strong&gt; — работа с Telegram MTProto API&lt;/li&gt;
    &lt;li id=&quot;suln&quot;&gt;&lt;strong&gt;pytz&lt;/strong&gt; — корректная работа с таймзонами&lt;/li&gt;
    &lt;li id=&quot;bgcG&quot;&gt;&lt;strong&gt;python-dotenv&lt;/strong&gt; — загрузка переменных окружения&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;PP1q&quot;&gt;Все зависимости минимальны и хорошо документированы.&lt;/p&gt;
  &lt;h2 id=&quot;QJKn&quot;&gt;👥 Кому будет полезен этот бот&lt;/h2&gt;
  &lt;p id=&quot;W36I&quot;&gt;Telegram &lt;strong&gt;Автоответ Bot &lt;/strong&gt;может быть полезен:&lt;/p&gt;
  &lt;ul id=&quot;wA3G&quot;&gt;
    &lt;li id=&quot;Qb2r&quot;&gt;системным администраторам и IT-специалистам&lt;/li&gt;
    &lt;li id=&quot;K5ZQ&quot;&gt;фрилансерам и консультантам&lt;/li&gt;
    &lt;li id=&quot;c35V&quot;&gt;владельцам бизнес-аккаунтов&lt;/li&gt;
    &lt;li id=&quot;yugg&quot;&gt;всем, кто ценит своё время и личные границы&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;W2nV&quot;&gt;Бот помогает оставаться профессиональным и вежливым, даже находясь офлайн.&lt;/p&gt;
  &lt;p id=&quot;6FfV&quot;&gt;🔗 &lt;a href=&quot;https://github.com/PyTekh/Telegram-Auto-Reply-Bot&quot; target=&quot;_blank&quot;&gt;Исходный код&lt;/a&gt;&lt;/p&gt;
  &lt;tt-tags id=&quot;LPVW&quot;&gt;
    &lt;tt-tag name=&quot;telegram&quot;&gt;#telegram&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;python&quot;&gt;#python&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;telethon&quot;&gt;#telethon&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;automation&quot;&gt;#automation&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;bot&quot;&gt;#bot&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;opensource&quot;&gt;#opensource&lt;/tt-tag&gt;
  &lt;/tt-tags&gt;

</content></entry></feed>