<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>@pytekh</title><generator>teletype.in</generator><description><![CDATA[Профессиональный IT-блог об автоматизации, разработке и внедрении IT-решений.
© 2026–2027. Все права защищены.]]></description><image><url>https://img2.teletype.in/files/dd/00/dd001bcf-d70d-4671-ae70-42ae1f9ced6a.png</url><title>@pytekh</title><link>https://pytekh.com/</link></image><link>https://pytekh.com/?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=pytekh</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/pytekh?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/pytekh?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Fri, 10 Apr 2026 11:41:59 GMT</pubDate><lastBuildDate>Fri, 10 Apr 2026 11:41:59 GMT</lastBuildDate><item><guid isPermaLink="true">https://pytekh.com/VJ05QzA_TFI</guid><link>https://pytekh.com/VJ05QzA_TFI?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=pytekh</link><comments>https://pytekh.com/VJ05QzA_TFI?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=pytekh#comments</comments><dc:creator>pytekh</dc:creator><title>🎬 Ваш корпоративный видеоцентр</title><pubDate>Sun, 22 Mar 2026 07:54:40 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/1b/1b/1b1b9e10-3dc8-4e73-b9a6-2e2c6419741f.png"></media:content><category>Веб-разработка и веб-технологии</category><description><![CDATA[<img src="https://img2.teletype.in/files/58/80/5880a273-018d-491e-988c-55b8b72477a4.jpeg"></img>Веб-приложение на Flask, позволяющее хранить, публиковать и просматривать видео внутри компании.]]></description><content:encoded><![CDATA[
  <p id="59NT">Веб-приложение на <strong>Flask</strong>, позволяющее хранить, публиковать и просматривать видео внутри компании.<br />Поддерживает роли пользователей, категории, лайки и удобную админку.</p>
  <h2 id="O3Nm">🚀 Возможности</h2>
  <ul id="Ge7O">
    <li id="xiSs">🔑 Авторизация через логин/пароль (роли: <strong>admin</strong>, <strong>moderator</strong>, <strong>user</strong>).</li>
    <li id="hiAf">📂 Загрузка видео (поддержка форматов <code>mp4</code>, <code>mov</code>, <code>webm</code>, <code>mkv</code>).</li>
    <li id="IayO">🖼 Превью (обложки видео).</li>
    <li id="PXNd">🗂 Категории видео.</li>
    <li id="P0sZ">👀 Счётчик просмотров.</li>
    <li id="QBOY">👍 Лайки (для авторизованных и гостей).</li>
    <li id="0wlz">⚙️ Админка для управления категориями и видео.</li>
  </ul>
  <h2 id="TZi6">🛠 Установка и запуск</h2>
  <h3 id="Dbz1">1. Клонировать проект</h3>
  <pre id="dSsV">git clone &lt;repo-url&gt;
cd flask_video_portal_with_thumbnails_final</pre>
  <h3 id="pRSc">2. Создать виртуальное окружение</h3>
  <pre id="xFk1">python -m venv .venv
source .venv/bin/activate   # Linux/macOS
.venv\Scripts\activate      # Windows</pre>
  <h3 id="41Tr">3. Установить зависимости</h3>
  <pre id="Syag">pip install -r requirements.txt</pre>
  <h3 id="g8CC">4. Инициализировать базу</h3>
  <pre id="4EZB">flask --app manage.py init-db</pre>
  <h3 id="o0bD">5. Создать администратора</h3>
  <pre id="CAx6">flask --app manage.py create-admin</pre>
  <h3 id="34c4">6. Запуск</h3>
  <pre id="E1Rq">flask --app manage.py run</pre>
  <p id="wbDZ">Приложение будет доступно на:<br />👉 <a href="http://127.0.0.1:5000" target="_blank">http://127.0.0.1:5000</a></p>
  <h2 id="GAd4">👥 Роли пользователей</h2>
  <ul id="6yJD">
    <li id="0owm"><strong>Admin</strong> → управление категориями и видео.</li>
    <li id="138O"><strong>Moderator</strong> → загрузка/редактирование видео.</li>
    <li id="5JAl"><strong>User</strong> → просмотр и лайки.</li>
  </ul>
  <h2 id="lwEU">📂 Структура проекта</h2>
  <pre id="TsnY">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     # зависимости</pre>
  <figure id="HCRC" class="m_column">
    <img src="https://img2.teletype.in/files/58/80/5880a273-018d-491e-988c-55b8b72477a4.jpeg" width="1280" />
  </figure>
  <figure id="NEor" class="m_column">
    <img src="https://img1.teletype.in/files/43/d7/43d705c8-daf4-4bc0-b161-3119c61ff60f.jpeg" width="1280" />
  </figure>
  <figure id="8ykL" class="m_column">
    <img src="https://img1.teletype.in/files/0f/81/0f81df78-f3ce-40a1-aa68-f84347ab83c3.jpeg" width="1280" />
  </figure>
  <figure id="p4Bq" class="m_column">
    <img src="https://img1.teletype.in/files/ce/e6/cee65c1e-a0d1-4263-88f2-aed98abbcddd.jpeg" width="1280" />
  </figure>
  <figure id="cRKm" class="m_column">
    <img src="https://img3.teletype.in/files/ea/2c/ea2ce690-6192-4a21-81cd-10fa45d68df6.jpeg" width="1280" />
  </figure>
  <figure id="6WNt" class="m_column">
    <img src="https://img4.teletype.in/files/30/e1/30e109e7-5824-47f3-9cac-192cdc0204ce.jpeg" width="1280" />
  </figure>
  <h2 id="U3yy">🔮 Будущие улучшения</h2>
  <ul id="nFZh">
    <li id="s3FV">🌐 Поддержка <strong>PostgreSQL/MySQL</strong> вместо SQLite для продакшена.</li>
    <li id="HGss">📡 REST API для интеграции с другими сервисами.</li>
    <li id="RJJE">🔍 Поиск и фильтрация видео по тегам и категориям.</li>
    <li id="BnZ5">💬 Комментарии под видео.</li>
    <li id="aUel">📊 Статистика просмотров (графики, аналитика).</li>
    <li id="CKWZ">🏷 Поддержка <strong>тегов</strong> для видео.</li>
    <li id="IrMT">👤 Регистрация пользователей через e-mail.</li>
    <li id="VKXp">🛡 Двухфакторная авторизация (2FA).</li>
    <li id="Jixa">☁️ Хранение видео в <strong>облаке (S3/MinIO)</strong> вместо локальных файлов.</li>
    <li id="gWha">🎨 Более современный UI (Bootstrap/Tailwind).</li>
  </ul>
  <p id="s3DL">🔗 <a href="https://github.com/PyTekh/Your-corporate-video-center?tab=readme-ov-file" target="_blank">Исходный код</a></p>
  <p id="hn48"><a href="https://github.com/topics/javascript" target="_blank">javascript</a> <a href="https://github.com/topics/css" target="_blank">css</a> <a href="https://github.com/topics/python" target="_blank">python</a> <a href="https://github.com/topics/html" target="_blank">html</a> <a href="https://github.com/topics/flask" target="_blank">flask</a> <a href="https://github.com/topics/html5" target="_blank">html5</a> <a href="https://github.com/topics/js" target="_blank">js</a> <a href="https://github.com/topics/sqlite" target="_blank">sqlite</a> <a href="https://github.com/topics/python3" target="_blank">python3</a> <a href="https://github.com/topics/sqlite3" target="_blank">sqlite3</a> <a href="https://github.com/topics/flask-server" target="_blank">flask-server</a></p>

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

]]></content:encoded></item></channel></rss>