CodeShadow – Telegram
CodeShadow
76 subscribers
181 photos
11 videos
7 files
127 links
👋 Я Артемий — преподаватель Python и фрилансер.

💻 Показываю, как код и нейросети помогают зарабатывать и упрощать работу.

🚀 Делюсь проектами, опытом и лайфхаками из реальной практики.

✍🏻 Вопросы и идеи: @MifmanRu
Download Telegram
Один из моих учеников сказал: “я слишком стар для программирования”.
А потом сделал Telegram-бота за неделю.
Знаешь, что я ему ответил?
“Ты не старый. Ты просто наконец-то понял, что хочешь делать.”
🤩3🆒32
main1.py
3.4 KB
💎💎💎
Please open Telegram to view this post
VIEW IN TELEGRAM
3
😉 #КлиентБот: Почему бот лучше лендинга и как он превращает «зашёл → оставил контакт»

Привет! 👋
Серия стартовала! Telegram-бот как менеджер по продажам — без теории, только код из реального проекта. Разберём, как этот бот собирает лиды быстрее лендинга, и напишем базу: приветствие + меню услуг.


💡 Почему бот круче лендинга?

Лендинг: юзер читает текст, заполняет форму... и сливает (конверсия 2-5%).
Бот: диалог в чате — меню на кнопках, шаг за шагом до контакта. За 1-2 минуты!
Бонус: лимит 2 заявки/сутки, база в SQLite — всё локально, без облаков.
Итог: экономия на менеджерах, лиды в кармане. 🚀


👨‍💻 Код: База бота — init_db, /start и меню (main.py)

Старт проекта в файле main1.py. Токен из token.txt, БД на SQLite. Функция check_reset_user — для лимита. show_user_menu — приветствие с клавиатурой.


💻 Как это работает:

☀️init_db: Создаёт таблицы users (счётчик заявок) и requests (лиды).
☀️check_reset_user: Сбрасывает лимит каждые 24ч — новый юзер стартует с 0.
☀️/start: Очищает данные, показывает меню с ReplyKeyboard.

💎 Тести: python main.py, /start в боте — меню готово. Юзер "зашёл" — теперь ждём контакт!

➡️ Пост 2: Анкета — бот задаёт вопросы шаг за шагом. Подписывайся!
#CodeShadow #TelegramBot #Python #ВоронкаПродаж #КлиентБот
Please open Telegram to view this post
VIEW IN TELEGRAM
443
💼 #КлиентБот: Пост 2 — Делаем анкету: бот задаёт вопросы и запоминает ответы

➡️ПРЕДЫДУЩИЙ ПОСТ

👋Из Поста 1: юзер зашёл, увидел меню. Теперь воронка в действии — анкета как разговор. Бот спрашивает: услуга? Имя? Контакт? Сохраняет в user_data, ведёт до конца. Нет хаоса — только лиды.


👀 Почему анкета в боте — магия?

Форма на сайте: 10 полей, юзер заполнит 1.
Бот: шаг за шагом, кнопки для выбора — конверсия до 20-30%.
Лимит из Поста 1 + user_data = "память" без ошибок.


👨‍💻 Код: Анкета в действии — service_selection и handle_form (main.py)

Добавляем обработку сообщений. service_selection: Выбор услуги + чек лимита. handle_form: Шаги ввода (имя → контакт → info). Inline-кнопки для удобства.

Смотри main2.py ⬇️⬇️⬇️

🫥 Как это работает:

☀️service_selection: Чек лимита, сохраняет услугу в user_data.
☀️handle_form: Парсит текст по шагам — если услуга, то выбор; имя → кнопки контакта; info → согласие.
☀️contact_selection: Inline для VK/Telegram — юзер кликает, бот запоминает тип.

В main():
app.add_handler(CallbackQueryHandler(contact_selection, pattern="^contact_"))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_form))


⚡️Тести: Выбери услугу → введи имя → кликни Telegram → @username. Бот "помнит" всё!


➡️ Пост 3: Сохранение в БД + админ-панель.
#CodeShadow #TelegramBot #Python #ВоронкаПродаж #КлиентБот
Please open Telegram to view this post
VIEW IN TELEGRAM
42
main2.py
3.3 KB
💎💎💎
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Фриланс учит дисциплине.
Если ты не работаешь — ты не ешь.
Поэтому лучше завести привычку работать по чуть-чуть каждый день.
Даже 1 час в день даст результат через месяц.
321
💼 Кейс: мини-лендинг для клиента

Привет! 👋 Расскажу о небольшом, но показательном проекте.
Недавно ко мне обратился клиент с просьбой:

“Хочу простую страницу-визитку, чтобы человек понял, чем я занимаюсь, и мог быстро написать мне в Telegram.”


Без CMS, без форм регистрации — просто лёгкий мини-лендинг, который работает и на телефоне, и на ПК.

Главная задача — сделать быстро, красиво и понятно.
Вот с чего я начал👇

1️⃣Структура.

Создал базу на HTML: шапка, короткий текст, кнопка и футер.
Всего один файл — index.html 💻

<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<noscript>Услуги по разработке</noscript>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<h1>Привет! Я — веб-разработчик</h1>
<p>Создаю современные сайты и автоматизирую бизнес-процессы</p>
<a href="https://news.1rj.ru/str/username" class="btn">Связаться</a>
</header>
</body>
</html>


🚬 Просто и без лишних деталей.
После этого перешёл к стилям — именно они делают проект “живым”.
Please open Telegram to view this post
VIEW IN TELEGRAM
432
💻 #КлиентБот: Пост 3 — Сохраняем в SQLite: база клиентов + админ-панель

Привет! 👋

➡️ПРЕДЫДУЩИЙ ПОСТ

Меню (1) + анкета (2) — заявка собрана. Финал: consent сохраняет в SQLite, админ видит лиды через /check. База растёт локально — строчки в requests.db, готово к экспорту.


💻 Почему SQLite — идеал для старта?

1️⃣Нет API, облаков — просто файл БД.
2️⃣Лиды: ID, имя, контакт, статус. Админ завершает кнопкой.
3️⃣Масштаб: потом на Sheets/N8N, но здесь — чистый Python.


👨‍💻 Код: Финал анкеты + админ (consent, check_requests — main.py)

consent: UUID для ID, INSERT в requests, +1 к счётчику. Уведомление админу. check_requests: Показывает активные (status=1) с кнопкой "Завершить".

💎Смотри main3.py 💎

Как это работает:


☀️consent: Если "Согласен" — INSERT в requests (status=1), уведомление админу, очистка user_data.
☀️check_requests: SELECT активных, вывод с Inline-кнопкой.
☀️complete_request: DELETE по ID — заявка ушла.

В main():
app.add_handler(CallbackQueryHandler(consent, pattern="^consent_"))
app.add_handler(CommandHandler("check", check_requests))
app.add_handler(CallbackQueryHandler(complete_request, pattern="^complete_"))


☕️ Тести: Заполни анкету → согласие → /check (как админ) — увидишь лид, кликни "Завершить". База живая!


⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Серия готова — бот-менеджер на Python. Доработки? В комменты! 🚀
#CodeShadow #TelegramBot #Python #ВоронкаПродаж #КлиентБот
Please open Telegram to view this post
VIEW IN TELEGRAM
43
main3.py
3.6 KB
💎💎💎
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Продолжаем рассказывать о наших преподавателях 📚

Сегодня делимся небольшим интервью в формате вопрос/ответ с Артемием!

Ставьте 🔥, если нравится такой формат
322
🔵Стили и результат

Теперь самое интересное — дизайн.
Клиент хотел, чтобы страница выглядела чисто, современно и без перегруза.
Я использовал минималистичный подход: светлый фон, контрастный акцент и ровные отступы. 🎧

body {
font-family: 'Inter', sans-serif;
background: #f9f9f9;
margin: 0;
padding: 0;
text-align: center;
}

header {
padding: 100px 20px;
background: white;
box-shadow: 0 0 20px rgba(0,0,0,0.1);
}

h1 {
color: #222;
margin-bottom: 10px;
}

p {
color: #555;
}

.btn {
display: inline-block;
padding: 12px 30px;
background: #d62828;
color: white;
border-radius: 6px;
text-decoration: none;
margin-top: 25px;
transition: 0.3s;
}

.btn:hover {
background: #b71c1c;
}


После верстки адаптировал под мобильные устройства, добавил favicon и метатеги — мелочи, но они создают впечатление готового проекта.

🍫🍫
🍫🍫 Итог: за 4 часа получился аккуратный мини-лендинг, который клиент сразу выложил на GitHub Pages и отправил потенциальным партнёрам.

🥃 Вывод: даже простая HTML-страница может стать рабочим инструментом.
Если добавить чуть вкуса, структуры и практики — это уже коммерческий продукт, а не учебная работа.
Please open Telegram to view this post
VIEW IN TELEGRAM
21
Please open Telegram to view this post
VIEW IN TELEGRAM
21
Media is too big
VIEW IN TELEGRAM
🧳 Кейс: Пишем трекер задач за 3 минуты

Поддержки канал подпиской 🍫
https://youtube.com/@codeshadowit

#Python #CodeShadow #БыстрыйКейс
Please open Telegram to view this post
VIEW IN TELEGRAM
8322
Совет: записывай свои ошибки.
Серьёзно. Веди файл “грабли.py”, куда складывай, что сломалось и как ты это починил.
Через месяц это будет твоя личная база знаний.
5
CodeShadow pinned «🥂 Создал группу, где можно обсудить проекты, код, позадавать вопросы. Присоединяйся! https://news.1rj.ru/str/codeshadowfaq»