background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

Скачать "БАЗА ДАННЫХ, ДОКЕР, БАЛАНСЫ И РЕФЕРАЛЫ в ботах на aiogram 2"

input logo icon
Оглавление
|

Оглавление

0:00
Вступление
2:30
Установка Virtualbox
3:00
Установка Docker
8:45
Как создавать проект Pycharm из проекта на Github
9:30
Начало работы над ботом, описание структуры
11:47
Описание config.py и example.env
13:42
Описание SQL запроса для создания таблицы пользователей
14:25
Что в модуле sql? Как создать таблицу в базе и создать соединение для бота
20:25
Создание и запуск базы данных с помощью docker-compose
23:55
Создание handlers.py для бота.
Теги видео
|

Теги видео

телеграм
телега
telegram
bot
telegram-bot
python-telegram-bot
telegram bot
бот
телеграм бот
aiogram
уроки
lesson
telebot
pytelegrambotapi
python
aiotg
docker
докер
питон
аиограм
база данных
бд
postgresql
балансы
баланс
деньги
крипта
реферал
реферальные
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:02
узнаете как создать своего продвинутого
00:00:04
бота с балансами и рефералами
00:00:06
для этого нам понадобится база данных и
00:00:08
если вы не смотрели предыдущие мои уроки
00:00:12
то советую вам хотя бы на первых двух
00:00:14
остановиться если вы до этого никогда не
00:00:16
писали ботов потому что я не буду
00:00:19
повторять то что я уже прошел опять
00:00:22
извиняюсь за плохое качество видео
00:00:24
которое было в предыдущих потому что я
00:00:26
сначала записал это все а потом через
00:00:29
много много часов я уже когда уже все
00:00:32
рендерилось я увидел что но вот такого
00:00:35
качества в этом видео будет все по
00:00:37
другому поэтому давайте смотреть как
00:00:42
многие уже успели заметить на гитхабе
00:00:43
стал появляться от куда я добавил такую
00:00:46
штуку как докер это такая программа
00:00:49
которая позволяет использовать другие
00:00:52
программы запускать их на своем
00:00:53
компьютере в контейнерах и потом этот
00:00:58
контейнер можно взять целый контейнер
00:01:00
переместить на другой компьютер и она
00:01:02
будет точно также работать то есть
00:01:04
принцип то что оно вот как металлические
00:01:08
контейнеры которые везде идентичны да
00:01:09
точно также мы и тут программа в
00:01:12
контейнере в котором можно перемещать
00:01:14
куда угодно и она будет тоже самое ну
00:01:17
типа того
00:01:19
это если в очень простыми словами вы
00:01:23
можете найти другие уроки на youtube и
00:01:25
прадо fergie вам более подробно
00:01:26
расскажут и более понятно но для чего мы
00:01:31
будем использовать докер в этом видео
00:01:33
это для установки базы данных и помимо
00:01:37
этого такой небольшой бонус это
00:01:40
использование
00:01:42
управление базой данных с помощью
00:01:43
браузера то есть там стоит 2 программу
00:01:46
которая позволяет проходить через
00:01:48
браузер и использовать базу данных
00:01:51
единственная такая ремарочка это то что
00:01:54
докер очень легко устанавливается на
00:01:56
linux вроде бы на mac но на windows он
00:02:00
довольно трудно устанавливается если у
00:02:02
вас не про пашина версия то есть я буду
00:02:05
исходить из того что вы обычный юзер у
00:02:07
которого обычная
00:02:08
индус 8-10 и мы попытаемся dagger
00:02:11
установить на нее
00:02:13
я подготовил небольшую такую инструкцию
00:02:15
которую мы будем использовать для того
00:02:17
чтобы установить докер базу
00:02:19
бота то есть все все все что нам
00:02:21
понадобится значит первую очередь нам
00:02:23
нужно будет установить virtualbox
00:02:25
мы заходим на мы ищем virtualbox мы
00:02:32
берем windows phone и мы сейчас
00:02:37
установим virtualbox давайте восстановим
00:02:41
на они будут
00:02:51
мы его не будем запускать после
00:02:53
установки нам достаточно его просто
00:02:56
установить теперь нужно установить докер
00:03:00
для этого есть определенная инструкция
00:03:02
как восстанавливает докер лишь во первых
00:03:06
нам нужно создать диске c на диске c
00:03:10
папку докер теперь мы должны скопировать
00:03:20
вот эту команду давайте мы сначала
00:03:23
все-таки откроем командную строку да и
00:03:29
мне нужно зайти в этот и ди си докер при
00:03:38
мы находимся в этой папке мне нужно
00:03:41
скачать этот докер машине его с помощью
00:03:47
вот этой команды так она скачалась
00:03:51
теперь нам нужно выполнить вот эту
00:03:53
команду то есть мы присоединяем мы это
00:03:59
понимать делаем драйвер для virtualbox
00:04:02
у меня он уже создан
00:04:06
теперь я хочу зайти в докер машине вот
00:04:11
пожалуйста это наша машина докер
00:04:13
виртуальная машина сюда выходим теперь
00:04:17
мы хотим узнать ее айпи адрес вот этот
00:04:21
от пи пи адрес теперь мы должны
00:04:23
установить точнее скачать докер клиент
00:04:32
итак у нас скачался теперь мы должны вот
00:04:37
эту папочку распаковать здесь но нам
00:04:44
нужны все вот эти файлы и вот эти файлы
00:04:48
вот тут это мы удаляем decker д нужно
00:04:53
тоже удалить теперь мы создаем батник
00:04:57
про мы будем использовать для запуска
00:05:00
нашего докера текстовый документ джокер
00:05:07
bad
00:05:11
теперь мы его
00:05:13
изменяем и добавляем вот эти все команды
00:05:20
есть мы должны кстати говоря эти команды
00:05:29
добавить вот сюда а теперь наверное
00:05:35
нужно будет сначала запустить батник
00:05:42
сейчас оно запустится так наш докер
00:05:47
запущен теперь нам нужно нам нужно
00:05:52
добавить вот эту папку докер в path ну
00:05:58
то есть путь для этого нам нужно опять
00:06:01
же открыть командную строку ввести
00:06:04
сусуму теперь тут мы заходим 2 ст
00:06:15
переменное окружение и
00:06:18
вас да мы должны добавить наш путь c
00:06:24
докер
00:06:28
готова этого готова и нам нужно
00:06:34
настроить
00:06:35
общую папку насколько я понимаю для
00:06:39
докером этого мы должны сделать docker
00:06:43
вайпер синий стоп сделать вот этот вот
00:06:51
эту команду для этого нам нужно
00:06:56
убедиться что вот эта кама что вот этот
00:06:59
путь существует так как мы устанавливали
00:07:05
докер это точнее virtualbox другую папку
00:07:09
сейчас я его найду это у нас будет тест
00:07:15
потому местом до virtualbox
00:07:18
тут у нас этой папке нет нам нужна папка
00:07:22
в бокс менедж
00:07:29
есть
00:07:31
теперь мы берём вот этот бокс менедж его
00:07:38
можно просто перетащить сюда и
00:07:42
скопировать остальную часть команды
00:07:46
готово ну у меня она показывает так у
00:07:50
вас она будет нормально потому что я это
00:07:52
уже опять же устанавливал и она увидите
00:07:54
мне выдает другую ошибку есть теперь вам
00:08:02
нужно будет создать папку докер дата
00:08:07
docker и тут мы создаем папку data все
00:08:14
таки что то есть теперь мы должны
00:08:18
установить точнее скачать докер кампус
00:08:25
опять же эта команда мы качаем докер
00:08:27
кампус и в принципе все все готово
00:08:32
теперь чтобы команда star docker и докер
00:08:37
кампус работали в любой папке
00:08:39
нам нужно перезагрузить компьютер что я
00:08:42
щас и сделаем итак приступим же к
00:08:47
написанию нашего бота первую очередь я
00:08:50
вам покажу как удобно начать работать с
00:08:53
готовым кодом с гитхаба то есть есть
00:08:56
ссылка в описании и вы просто можете
00:08:57
сразу начать работу не копируя каждый
00:09:01
файл отдельно это все делается очень
00:09:03
просто то есть мы запускаем по charm и
00:09:05
мы делаем чекаут из вершин control
00:09:09
с помощью git а тут у вас может
00:09:12
возникнуть ошибка что у вас не
00:09:13
установлен гид также пожалуйста
00:09:16
установите его
00:09:17
экстренно вас еще не установлен а мы
00:09:21
сейчас скопируем ссылку на git хоп на
00:09:26
уроке и не планируем этот проект теперь
00:09:31
давайте разберемся со структурой этого
00:09:33
бота то есть во первых мы видим тут все
00:09:35
четыре и точнее 5 уроков мы сейчас
00:09:37
находимся в будет четвертым мы сделаем
00:09:40
этот урок главной директорией потому что
00:09:46
мы бы наш как бы проект находится здесь
00:09:48
и теперь давайте разберемся со
00:09:51
структурой тут у нас есть файл оу да вы
00:09:56
который загружается все нужные
00:09:58
переменные которые будет могут потом
00:10:00
использоваться в других модулях
00:10:02
модуль оп оп подгружает из модулей love
00:10:07
doll
00:10:08
instance бота также он подражает одни
00:10:11
найди который из конфига администра чат
00:10:16
айди администратором и помимо этого год
00:10:20
будет запускаться в режиме полинга то
00:10:22
есть он будет опрашивать telegram
00:10:25
спрашивать есть ли новые апдейты если
00:10:28
новые сообщения и помимо этого есть две
00:10:31
функции теперь это
00:10:32
на запуске вот пишет администратора что
00:10:36
он запущен то есть вот видно что на при
00:10:39
запуске запускается вот эта функция на
00:10:43
завершение бота на завершение программы
00:10:46
отзыв закрывается и у вас не будет
00:10:48
власть это ошибка которая многих влазила
00:10:51
которых вы который вы мне писали в
00:10:54
комментариях позже да и пальпируется dispatcher из
00:10:58
модулях handler's но handler's мы пока
00:11:02
почистим потому что мы будем идти
00:11:03
постепенно и дальше в модуле лoндoн у
00:11:08
нас создаются бот dispatcher вот то есть
00:11:12
вот вот создается и dispatcher
00:11:16
также создается сторож и я сюда добавил
00:11:21
логирования
00:11:22
которое тоже можно использовать для
00:11:24
удобного введения и дебага бота эти
00:11:28
настройки вы можете просто скопировать
00:11:30
это уже подготовленная
00:11:33
подготовленный конфиг для настроек также
00:11:36
импортируется токен из конфига точно так
00:11:39
же как в предыдущих бота предыдущих
00:11:41
уроках и создается база данных о которой
00:11:45
мы поговорим немного позже конфиг файл у
00:11:47
нас в этот раз будет немного другой мы
00:11:50
будем использовать тут переменное
00:11:53
окружение о которых вы можете
00:11:54
дополнительно почитать других видео я
00:11:56
могу сказать что это считается таким
00:11:58
безопасным методом хранения важных
00:12:00
данных
00:12:01
но мы сделаем это немножко по-другому
00:12:03
потому что мы собираемся использовать
00:12:06
докер а докер удобно подгружает
00:12:09
переменное окружение из файла который
00:12:12
называется тот эльф поэтому я создал вот
00:12:18
этот экзампла . and сейчас мы его переименуем
00:12:24
мы сделаем просто date and
00:12:28
тут как вы видите у нас у нас хранится
00:12:30
токен
00:12:31
одни найди айпи адрес каско на котором
00:12:37
будет докер запущен ну и данные для
00:12:40
входа в нашу базу данных
00:12:42
пароль который нас сейчас по умолчанию
00:12:45
стоит example вы можете поставить любой
00:12:47
другой в конфиге мы будем использовать
00:12:49
модуль точнее
00:12:51
9 куда темп которая позволяет нам из вот
00:12:56
этого файла подгрузить все переменные в
00:12:58
в окружении и потом из окружения достать
00:13:02
с помощью модуля ios
00:13:05
вот теперь в файле dota нв вы должны
00:13:09
заменить свой токен поставить свой одни
00:13:12
найди свой айпи адрес
00:13:14
астана в принципе можете оставить
00:13:17
как как хотите хотя postgres по
00:13:20
умолчанию этот юзер создан поэтому
00:13:23
можете использовать его итак мы подошли
00:13:26
к тому что мы начинаем создавать базу
00:13:28
данных мы будем использовать базу данных
00:13:31
под названием пост грессов и поэтому мы
00:13:34
должны создать таблицу в которой будет
00:13:37
храниться все наши юзеры рефералы баланс
00:13:40
и и прочее по созданию таблиц и вообще
00:13:43
по языку и сквер вы можете почитать
00:13:46
дополнительные уроки на сейчас можете
00:13:48
просто скопировать вот этот вот тут
00:13:50
видно что создается таблица юзеров
00:13:53
которая будет что-то иди
00:13:55
username full name
00:13:58
то есть полное имя имя и фамилия
00:14:01
рефералов который привел айди рефералов
00:14:03
если бы точнее айди
00:14:05
самого человека который был
00:14:08
зарегистрирован отойди в в базе и баланс
00:14:12
его
00:14:13
которые по умолчанию будет ноль поэтому
00:14:15
для того чтобы давайте удалим с клеем и
00:14:18
для того чтобы мы создать таблицу с
00:14:22
помощью вот этой команды
00:14:24
нам нужно создать модули скилл которая
00:14:26
такое что удалил и тут тут будет 2
00:14:31
функции это первая стоит создание
00:14:33
таблицы и 2 будет
00:14:35
для использования
00:14:38
базы потом мы импортируем осинкой а
00:14:42
потому что наша база данных будет
00:14:46
асинхронная также мы должны
00:14:48
импортировать
00:14:51
библиотеку который мы будем использовать
00:14:53
для работы с базы данных а эта
00:14:55
библиотека находится вот тут то есть это
00:14:58
sing p&g также нам понадобится python
00:15:01
тут and кстати вот этот файл рик
00:15:04
varmints это файл в котором вы
00:15:06
прописываете все библиотеки которые
00:15:09
используются в этом в боте поэтому чтобы
00:15:14
установить эти библиотеки нам
00:15:17
понадобится сделать
00:15:18
команда pip install черточка р
00:15:23
recommends txt
00:15:26
все наши библиотеки все установлены у
00:15:31
вас они остановятся
00:15:33
поэтому тут мы будем использовать эту
00:15:36
библиотеку осинка бюджет то есть
00:15:39
синхронный postgres тоже мы импортируем
00:15:41
logging для отслеживания для для дебага
00:15:45
и мы будем импортировать из конфига те
00:15:51
данные которые нам нужны то есть это
00:15:52
хост как он записан cost cost to pass и
00:16:02
пока юзер также logging мы конфликт для
00:16:09
влогинга берем и отсюда нет отсюда мы
00:16:15
диан то точно такой же конфиг мы создаем
00:16:20
первую функцию которая будет создавать
00:16:22
нашу таблицу 1 раз
00:16:24
пусть она будет crate д.б.
00:16:28
наша команда которая будет выполняться
00:16:30
для создания этой таблице будет
00:16:34
подгружаться из файла при этом фрейд b
00:16:38
которые мы только что просмотрели то
00:16:41
есть нам нужно вот этот файл взять
00:16:42
открыть прочитать и погрузить его в
00:16:45
переменную мы это делаем мы сохраняем в
00:16:48
переменную crate детей
00:16:51
команд и мы открываем файл верить тебе .
00:16:59
если с помощью чтения и что мы пишем
00:17:06
логин конфа
00:17:08
что мы подключаемся к базе данных и для
00:17:14
подключения нам понадобится переменная
00:17:17
допустим пусть она будет connection con
00:17:20
и мы ее мы назначим гей тип подсказку
00:17:26
для нашей для потерла
00:17:30
что этот он будет а sing p&g connection
00:17:36
чтобы он нам позже подсказывал какие у
00:17:38
него есть методы мы создаем и white а
00:17:42
синджар connect и мы передаем сюда
00:17:47
что юзер у нас пока юзер пароль у него
00:17:53
это по г паз и хост это хост теперь мы
00:17:59
должны выполнить вот эту команду которую
00:18:02
мы подгрузили поэтому делом connection
00:18:05
it'sa кит и creed 2 команды все после
00:18:12
этого у нас будет создана наша таблица
00:18:15
поэтому давайте запишем инфа есть теперь
00:18:20
мы должны обязательно закрыть соединение
00:18:25
следующая функция у нас будет для
00:18:29
создания
00:18:32
воссоединение которых будет
00:18:33
использоваться в боте это тоже
00:18:36
асинхронная функция которой мы будем
00:18:44
возвращать этот пул то есть это рейд по
00:18:52
точно как же называется и сюда мы
00:18:54
перейдем передаем те же данные которые
00:18:58
мы вводили в конечно то есть она
00:19:00
постучаться и возвращает вот этой
00:19:03
функцией нам может сказать соединение
00:19:05
уже который был который будет
00:19:06
соединяться этот учатся дальше мы
00:19:10
прописываем что если мы запускаем вот
00:19:12
этот файл нам нужно создать look better
00:19:16
and look получить точнее
00:19:20
и в нем запустить функцию рано intel
00:19:25
комплит creed 2
00:19:28
то есть если мы запустим этот файл у нас
00:19:32
запустится только вот эта функция есть
00:19:35
только создание базы
00:19:37
если мы импортируем что-то из этого
00:19:40
файла то вот этот код не будет запущен
00:19:43
дальше в модуле
00:19:46
об точнее нет в модуле
00:19:49
love doll мы можем видеть что тут
00:19:52
создается инстанции ну как перед в
00:19:57
переменную мы записываем тебе то есть
00:19:59
дтп с и мы передаем сюда результат
00:20:04
выполнения вот этой функции клей тпу то
00:20:06
есть вот этой вот этого соединения то
00:20:09
есть каждый раз когда мы будем
00:20:10
использовать использовать деби нас будет
00:20:14
использоваться соединение с базой данных
00:20:17
теперь давайте посмотрим как собственно
00:20:19
эту базу данных мы будем создавать мы
00:20:22
будем использовать докер для того чтобы
00:20:25
установить и запустить нашу базу данных
00:20:29
то есть давайте посмотрим что находится
00:20:30
у нас в докер кампус у нас есть сервис с
00:20:35
то есть две программы этот биби и админы
00:20:39
первое это базы данных которая будет
00:20:42
создаваться
00:20:43
и 2 админ это самая программа для
00:20:47
управления этой базы через браузер у нас
00:20:53
подгружаются программа обмена которая хранится где-то
00:20:57
в интернете и точно так же подбирается
00:20:59
файл базы данных прогресс что мы
00:21:03
передаем что что пароль будет xmp то
00:21:06
есть он должен совпадать с тем что мы
00:21:09
указали в
00:21:10
and теперь в принципе можно запустить
00:21:14
этот докер кампус для того чтобы
00:21:17
запустить докер компас нам нужно
00:21:19
находиться в этой же директории в
00:21:22
которой находится докер кампус у м л и
00:21:27
нам нужно отсюда запустить сам докер то
00:21:30
есть давайте на всякий случай
00:21:31
остановим дочери сиона запущен docker
00:21:35
морщин стоп так она за уже закрыта
00:21:41
теперь запускаем старт докер у нас
00:21:46
создается докер у нас dockers создался
00:21:53
запустился и так для того чтобы
00:21:55
запустить установку postgres
00:21:58
и от минеров мы вводим команду который
00:22:00
называется докер кампус об и у нас пошла
00:22:08
установка и мы можем найти наш админ
00:22:13
если мы откроем наши 5 5 раз то есть
00:22:19
давайте узнаем через докер осень
00:22:23
айпи вот на шейпе адрес мы вводим его
00:22:29
вот сюда
00:22:31
сне мы должны перейти на 8080 вот наш
00:22:35
админ р уже был создан и можем спокойно
00:22:39
заходить в нашу базу данных вот видно
00:22:42
логе которые происходили на этом сайте
00:22:46
для того чтобы зайти в базу данных мы
00:22:49
должны выбрать пост с sql должны выбрать
00:22:53
сервер
00:22:54
тут мы вводим тот айпи адрес который у
00:22:57
нас на котором она стоит docker и а
00:23:00
пользователю нас пол игры и пароль
00:23:05
example
00:23:08
войти вот пожалуйста наша база данных
00:23:11
вот наши таблицы все готово теперь у нас
00:23:14
пока у нас доки работает мы можем
00:23:17
создать нашу таблицу чтобы создать нашу
00:23:20
таблицу мы заходим в файл excel и
00:23:23
должны запустить вот этот файл то и
00:23:24
запустится вот эта функция создания
00:23:28
таблицы мы запускаем и проверяем видно
00:23:32
connecting 3d быт бухать been quite то
00:23:34
есть все успешно выполнено вот эта
00:23:37
функция теперь мы можем найти в базе
00:23:40
данных
00:23:41
ps таблицы users и мы видим что здесь
00:23:45
чьи-то идеи зерна им все как мы задавали
00:23:48
теперь дальше мы должны прописывать
00:23:51
эндер и для своего самого бот значит мы
00:23:54
сначала импортируем
00:23:55
из а я грамма модуль types
00:24:00
также мы из модуля
00:24:04
базы данных библиотеки базы данных
00:24:07
импортируем connection это классы
00:24:10
которые нам нужны будет для подсказок
00:24:13
для того чтобы нам пай charmo подсказать
00:24:15
и есть методы опять же и мы для начала
00:24:18
работы из модуля лауда
00:24:22
импортируем бота dispatcher а
00:24:25
и базу данных земель для того чтобы
00:24:29
работа с базы данных мы создадим класс
00:24:31
zibi кроме ндс в котором у нас будет
00:24:35
такие переменные этапу который будет
00:24:39
connection то есть мы говорим что это
00:24:42
connection и это равно то есть
00:24:45
тоже почему-то что мы импортировали и
00:24:49
дальше нам нужно будет вводить команды
00:24:53
sql языка для вас gresso
00:24:57
которые мы будем использовать то есть мы
00:25:00
будем использовать команду первую
00:25:02
очередь добавление нового юзера то есть
00:25:05
and new user
00:25:07
эта команда выглядит так insert in the
00:25:12
user's в колонку чьи-то идеи weather
00:25:16
rain умным какие-то значения фарис
00:25:20
и сюда мы передаем их таким способом дар
00:25:25
102 доллара 3
00:25:27
и обязательно мы возвращаем по
00:25:30
результату айди пользователя то есть
00:25:33
учёный на день следующий вариант
00:25:36
создания юзера это если юзер пришел
00:25:40
через реферала
00:25:41
то есть мы берем и дни юзер только
00:25:44
теперь мы говорим что он пришел с
00:25:46
рефералом ну с этим переменам
00:25:48
это такая же команда как и вот эта но мы
00:25:54
добавляем после full name реферал и сюда
00:25:57
мы добавляем доллар 4
00:26:00
мы говорим что у него есть реферал
00:26:03
следующая команда которая нам может
00:26:05
понадобиться это посчитать сколько
00:26:07
юзеров у нас в базе данных то есть мы
00:26:10
пишем каунт
00:26:11
users и мы говорим select
00:26:14
sound from users
00:26:19
следующая команда который она может
00:26:21
понадобиться это получить айди человека
00:26:25
попой и watch отойдите берем за вами get
00:26:29
ready and select
00:26:31
анти from users в чат и d равно
00:26:39
доллар 17 вот эти доллар 123 это у нас
00:26:44
будет передаваться аргументами в функцию
00:26:47
то есть мы их не вставляем сюда с
00:26:49
значениями мы потом будем передавать их
00:26:51
в саму функцию отдельно следующие
00:26:55
команды который нам может понадобиться
00:26:56
это проверить то у нас есть в рефералах
00:27:00
берем select чат и die from users
00:27:05
в итак мы хотим получить чат один из
00:27:11
таблицы users где реферал рефера у нас
00:27:17
записано айди человека и мы говорим что
00:27:21
реферал его это другая другой запрос и
00:27:26
to select ай ди фм узнаем о еде и from
00:27:30
users в чат айди равно до 1 этой функция
00:27:38
мы хотим узнать какие каких людей
00:27:41
человек привел в год а то есть у этих
00:27:44
людей будет в рефера ли
00:27:46
записан айди человека который их привел
00:27:49
и следующая команда которая нам может
00:27:51
понадобиться это проверить сколько же у
00:27:53
человека на счету день и то есть чек
00:27:56
баланс мы берем sleep баланс from others
00:28:00
в чат 1 доллар 1 и последняя команда это
00:28:07
добавить денег так просто для того чтобы
00:28:10
увидеть как она будет использоваться мы
00:28:13
берем апдейт уже users мы обновляем
00:28:17
таблицу и говорим что
00:28:20
сделать и баланс баланс плюс один нет
00:28:26
плюс плюс доллар один где чат они у нас
00:28:31
доллар 2
00:28:32
то есть мы будем передавать сколько ему
00:28:35
добавить денег и кому добавить и
00:28:38
готово теперь давайте начнем создавать
00:28:41
прописывать эти
00:28:44
собственно эти команды первая функция
00:28:46
это добавить нового юзера new user
00:28:52
где у нас может быть реферал а может не
00:28:55
быть поэтому вот это вот эта перемена у
00:28:58
нас не обязательно для то чтобы получить
00:29:00
юзера мы можем получить его разными
00:29:03
способами мы можем получить его как мы
00:29:07
получали реферал
00:29:08
но мы можем получить его как из
00:29:13
контекста то есть это очень интересная
00:29:15
вещь которая реализована в программе то
00:29:19
есть мы говорим таймс юзер getcare and
00:29:22
то есть когда выполняется вот эта
00:29:24
функция это не юзер в нее передается
00:29:27
контекст из предыдущей функции который
00:29:30
был перед передан в нее
00:29:31
то есть как бы это объяснить когда у нас
00:29:35
выполняется
00:29:36
когда у нас кто-то написал боту вот
00:29:39
понимает кто ему написал понимаешь что
00:29:41
за сообщение и передает это все
00:29:43
dispatcher и в какой-то в конкретный
00:29:45
момент времени он записывает контекст и
00:29:47
в контекст он записывает этого юзера и
00:29:51
поэтому мы в любом месте если мы
00:29:54
работаем с каким-то обновлением мы можем
00:29:58
получить из контекста такие вещи как
00:30:00
сюзи мы можем получить по моему об дамы
00:30:05
апдейт можем получить getcount в общем
00:30:08
мы можем получить получить такие вещи тоже как год дед
00:30:11
коммент и так далее то есть не создавая
00:30:17
бота получать его из контекста очень
00:30:19
удобно то есть это вот такая мая которая
00:30:22
с помощью это мы получим юзера что такое
00:30:24
юзер это вот что он может мыслить и
00:30:27
отсюда можно получить из контекста опять
00:30:29
же бота и отправить сообщение
00:30:35
то есть очень удобнее но мы возьмем что
00:30:39
мы можем получить мы можем то есть name
00:30:41
получить можем получить полное получить
00:30:46
username то есть все что связано с со
00:30:47
юзерам в телеграме
00:30:49
который получает год поэтому мы чтобы
00:30:51
определить читай день мы говорим chateau
00:30:53
иди
00:30:54
это юзер айди и сырный это юзер озерный
00:31:01
фунт name это юзер полной и аргументы
00:31:06
которые мы будем передавать это вот эту
00:31:09
функцию это у нас один два три три
00:31:13
аргумента мы передаем это будет нас
00:31:16
chateau de юзер нэйм и фауны
00:31:21
поэтому если реферал есть мы должны
00:31:25
добавить в аргументы еще нашего реферала
00:31:30
мы добавляем его с помощью если вдруг он
00:31:33
у нас получается не им там мы его
00:31:37
преобразуем в int и вот таким образом
00:31:39
его добавляем в наш типу
00:31:42
который мы создали поэтому команда будет
00:31:45
выглядеть таким образом это цех одне
00:31:49
юзер а если
00:31:51
рефералы у нас нет там и аргумент не
00:31:54
добавляем а команда у нас будет
00:31:58
выглядеть вот так одни юзер точнее вот
00:32:01
тут с рефералов а вот тут просто дней
00:32:05
теперь нам нужно попробовать эту функцию
00:32:10
запустить мы на всякий случай
00:32:12
заворачиваем это все в 3 accept чтобы
00:32:16
если вдруг мы добавляем опять юзера
00:32:20
который уже был добавлен река дойди
00:32:23
это у нас weight
00:32:27
то есть это у нас фактически db будем
00:32:31
сайтов по фиг его команда и мы сюда
00:32:36
передаем аркс
00:32:37
такие аргументы то есть вот эти
00:32:40
доллар 1 долл доллар 22 доллара 3 будет
00:32:43
передаваться как аргументы сюда и когда
00:32:46
эта функция запустится мы получаем как
00:32:51
результат айди который мы тут возвращаем
00:32:54
и возвращаем тут рекорд и картине если у
00:32:58
нас это не произошло и это произошло по
00:33:00
ошибке
00:33:01
никого лишь который мы не добавили
00:33:04
кстати говоря
00:33:05
давайте дома from simple exceptions мы
00:33:11
импортируем дневник
00:33:14
если у нас уникальный если нас айди так
00:33:19
понимаю и читайте уже был добавлен то но
00:33:22
выдаст ошибку если ошибка произошла то
00:33:26
мы просто ее пропускаем следующая
00:33:28
функция которую мы будем выполнять это
00:33:30
посчитать сколько у нас юзеров кант
00:33:33
users
00:33:34
мы говорим store декарт это у нас река
00:33:39
avoid су-5 чего и команда которая у нас
00:33:47
подготовлена это компьютер и мы
00:33:51
возвращаем этот рекорд рекорд следующая
00:33:54
функция это у нас мы хотим получить
00:33:57
иди человеку и tagged айди
00:34:01
мы возвращаем мы делаем команда это у
00:34:04
нас
00:34:05
get айди юзер айди которого мы хотим
00:34:12
получить то есть отойди на types
00:34:17
user guide corrente то есть мы получаем
00:34:20
юзера из контекста мы получаем его один
00:34:23
юзер
00:34:26
эдди мы возвращаем результат пополнения
00:34:31
вот этой команды
00:34:34
пол ведь его команда
00:34:40
и аргументы у нас это юзер иди то есть
00:34:45
доллар он превратился вот этот юзер айди
00:34:49
он будет подставляться в доллар сам
00:34:54
следующая функция это мы хотим проверить
00:34:56
рефералов что мы хотим сделать во первых
00:34:59
мы получаем адию зиру и отойди из
00:35:05
контекста также мы говорим что команда
00:35:10
это чек referrals то есть вот эта
00:35:16
команда который мы передаем наш юзера
00:35:21
гель так как у нас тут может быть
00:35:23
несколько результатов мы будем говорить
00:35:25
что наши строки и the white sea of spa
00:35:33
ведь уже не в печь vale of reach то есть
00:35:37
мы берем все результаты которые у нас
00:35:40
есть результат выполнения от команды и
00:35:43
аргумент это нас user1 и тут мы хотим
00:35:49
перенумеровать наших полученных юзеров
00:35:53
то есть мы получаем чат айди
00:35:54
мы тут выбираем чьи-то идеи и мы хотим
00:35:58
сделать на них ссылки
00:35:59
как это мы можем сделать мы можем
00:36:01
сделать так сделан текст это нас строка
00:36:08
теперь будем делать ит рация for rock n
00:36:12
rose даже сделаем неровно us a vous и тут уже
00:36:19
не ролл
00:36:20
нам ну то есть вот эта функция позволяет
00:36:24
нам перенумеровать
00:36:26
наши строки и получить из них число
00:36:28
номер и наш
00:36:31
нашу строку так как нумеровать сильно
00:36:34
будет с нуля мы сделаем что для красоты
00:36:38
будем добавлять единичку значит что мы
00:36:41
по результату хотим сделать мы добавляем
00:36:44
текст добавляем в текст вот такую штуку
00:36:49
давайте сделаем так по простому
00:36:54
нам плюс один то есть если нолик то она
00:36:59
превращается в единичку мы раскладываем
00:37:01
с нашим ссылка на юзеру допустим это
00:37:06
будет юзер link давим еще пробел
00:37:10
точку и пробел чтобы получить юзер link
00:37:14
везде on that made both get счет мы
00:37:21
берем из этого то есть из этой строки мы
00:37:25
берем чат айди мы получили отсюда даже
00:37:30
так сделаем это чат юзер link это наш
00:37:36
чат get меньше с этим трем что тут
00:37:43
происходит мы получаем чат айди из нашей
00:37:48
базы данных проходим по этим chateau de
00:37:50
забираем чьи-то иди и берем получаем чат
00:37:55
с пользователем после этого у нас
00:37:59
генри генерируется ссылка
00:38:02
на пользователя с помощью get меньше и
00:38:05
мы ставим номер пользователя точку
00:38:09
пробел и
00:38:11
ссылку на этого пользователя и мы
00:38:13
возвращаем этот текст
00:38:15
следующая функция которая нам может
00:38:17
понадобиться этот чек баланс команда
00:38:21
которые мы будем использовать это
00:38:23
ссср чек баланс айди
00:38:29
юзер иди пользователя это мы получаем из
00:38:32
контекста и мы возвращаем результат
00:38:36
выполнения
00:38:37
вот этой команды ссср по мы берем одно
00:38:46
значение то есть почву
00:38:48
заполнения команды и мы перейдем сюда
00:38:51
use ранди последняя команда которую мы
00:38:54
будем использовать это добавить деньги
00:38:58
команда обмане use ради мы получаем
00:39:05
таким же способом из контекста и сюда мы
00:39:09
выдаем результат боя команды то по сюда
00:39:14
мы передавали баланс сколько мы хотим
00:39:19
добавить
00:39:20
each отойди пользователя котором мы
00:39:22
хотим добавить поэтому скуку мы хотим
00:39:25
добавить мы сделаем тут money
00:39:29
поэтому сюда передаем many use rogue
00:39:34
и так команда все успешно создан и
00:39:38
теперь можно написать бота для этого мы
00:39:41
делаем все как мы делали раньше массаж
00:39:44
хендлер команд старт мы создаем функцию
00:39:51
синхронную мы регистрируем юзерам missed
00:39:55
taps
00:39:57
опять же мы указываем тут той смесь
00:39:59
чтобы нам было удобно
00:40:01
подсказками работать то есть месяц у нас
00:40:03
тут есть все что мы хотим
00:40:05
поэтому тут мы узнаем такие вещи как чад
00:40:08
айди это message from юзер айди
00:40:12
то его привел реферал это мы делаем с
00:40:15
get аркс и айди пользователя которые мы
00:40:20
создаём по результату это будет
00:40:22
результат полнения
00:40:24
функции так вниз у нас есть вас db
00:40:30
команд которые мы тут должны создать то
00:40:35
есть мы тут и не цеолит инициализируем
00:40:38
этот класс и записываемой переменной
00:40:41
либо рискнуть делаем для красоты чтобы
00:40:44
это было давайте do the bass пусть будет
00:40:50
так и мы тут выполняем до the bass одни
00:40:53
юзер или pdm реферал
00:40:57
если он есть там передастся если его нет
00:41:00
он передаст а как но мы считаем сколько
00:41:03
у нас всего юзеров в базе и дальше если
00:41:08
у нас юзер был уже добавлен у нас
00:41:11
произойдет ошибка поэтому если у нас
00:41:16
войди ничего нет то есть если тут
00:41:18
произошла ошибка то мы говорим все равно
00:41:22
получайте который будет равняться
00:41:26
дата bass beat a и d то есть мы отсюда
00:41:29
хотим узнать его айди
00:41:31
элс если у нас все произошло нормально
00:41:35
то мы говорим что мы его записали в базу
00:41:38
то есть если он уже есть базе там ему об
00:41:41
этом не сообщается
00:41:42
не сообщаем он уже знает дальше мы хотим
00:41:47
этому пользователю показать его ссылку
00:41:50
для того чтобы ссылку для добавления
00:41:54
рефералов для этого нам нужно сделать
00:41:56
такую ссылку это будет эти теперь стб
00:42:07
наш бот username
00:42:10
томас вот и мы делаем так старт равно
00:42:16
айди
00:42:17
то есть тут какой-нибудь внутри 56 что
00:42:21
тут будет
00:42:22
когда вот кому то скидывает вот такую
00:42:27
ссылку если кто-то на нее нажимает то
00:42:30
есть человек попадает на этого бота и
00:42:33
когда он нажимает команду старт он
00:42:36
передает вот такие аргументы эти
00:42:39
аргументы это и есть
00:42:40
айди пользователя то есть один того кто
00:42:44
тебя привёл полученный наши
00:42:47
из базы данных то есть фактически когда
00:42:50
человек который приведен по ссылке или
00:42:53
по реферальной ссылке он будет нажимать
00:42:55
на команду которая выглядит так старт
00:42:57
старт и тут будет 1.56 тут мы считываем
00:43:01
вот этот 123456 помощью нашего реферал
00:43:05
вот это get аркс мы получаем вот эти
00:43:08
аргументы которые были жыдов переданы и
00:43:10
мы получаем что это наш реферал то есть
00:43:12
если реферал есть то оно передается есть
00:43:15
реферала нет ну и тогда сюда пустыми
00:43:17
то есть нам нужно сделать вот такую вот
00:43:20
такую вот такую ссылку для этого нам
00:43:24
нужно получить both use рн и мы можем
00:43:26
это сделать с помощью и with both get me
00:43:32
мы получаем нашего бота узнаем его и
00:43:36
жирным дальше чтобы нам получить вот
00:43:42
этот иди-иди
00:43:44
рау это будет ради нашего пользователя
00:43:49
которой вот этот который зарегистрирован
00:43:52
поэтому тут мы можем сделать вот так
00:43:54
текст даже так вот линк на это у нас
00:44:02
будет вот такая штука которую мы
00:44:04
форматируем вот и зерна и мы передаем
00:44:07
это мы передаем вот и жирным на бот
00:44:11
username
00:44:12
а идти эфира равно айди
00:44:16
эфира дальше мы хотим узнать какой
00:44:20
баланс у этого человека но показать что
00:44:22
у него 0 и не нулевой баланс мы говорим
00:44:25
о white дтп с чек баланс и мы добавляем в наш
00:44:31
текст если у нас нет текста то мы его делаем
00:44:36
сначала пустым и мы добавляем в текст
00:44:39
вот такие фразы давайте сделаем это
00:44:43
экстракт
00:44:46
говорим сейчас сейчас в базе
00:44:50
county verse столько то человек
00:44:54
ваша реферальная ссылка это вот link про
00:45:01
верить рефералов можно по команде верфи
00:45:09
раз также мы говорим что ваш баланс
00:45:16
который мы получили столько то монет ну
00:45:21
и добавить денег добавить монет можно по
00:45:26
команде it many все и мы отвечаем этому
00:45:30
пользователю вот сын месяц
00:45:36
чтд и вот этот текст который мы
00:45:38
подготовили пока что у нас остальные
00:45:41
команды не работают мы можем проверить
00:45:43
работоспособность вот этого бота для
00:45:46
этого мы должны сначала передать вот
00:45:50
сюда правильный talkin' и так я стала
00:45:54
сюда мои данные я буду запускать нашего
00:45:58
бота видим сообщение акбота пришло что
00:46:05
он запущен теперь у нас есть
00:46:07
единственная команда которую мы добавили
00:46:09
это старт и так мы видим что у нас вот
00:46:13
вышла ошибка что колонки чет не
00:46:16
существует значит мы где-то допустили
00:46:18
ошибку в
00:46:20
да ничё achat de chat hd
00:46:25
теперь запустим старт так full name нас
00:46:31
тоже не создана потому что у нас
00:46:33
наверное fun и вот таким образом давайте
00:46:38
еще раз так следующая ошибка то сюда
00:46:44
было передано один аргумент
00:46:47
они три потому что наверное надо
00:46:50
передавать
00:46:51
вот таким образом без скобочек
00:46:55
нет точная же беда у несколько отдельно
00:47:01
так теперь следующая ошибка вот тут я
00:47:04
случайно сделал несколько скобочек
00:47:07
надеюсь сейчас есть заработала вы видите
00:47:11
что сейчас body базе один человек лезть
00:47:14
рифленая реферальная ссылка можно
00:47:17
править рефералов и добавить денег вот
00:47:20
реферальная ссылка то есть когда мы
00:47:21
нажимаем старт будто передаётся какое-то
00:47:24
сообщение и у нас опять ошибка в команде
00:47:28
чат айди и fun и есть то есть если мы
00:47:35
нажмём еще раз по реферальные ссылки
00:47:38
даёт вот такое сообщение теперь вы
00:47:41
можете в вашей базе данных
00:47:43
увидеть все мы обновим эту табличку
00:47:49
что тут у нас есть
00:47:52
создан пользователь мы даже можем
00:47:55
редактировать и добавить ему тут 10000
00:48:00
денег и тут будет это видно прекрасно
00:48:05
все работает дальше мы создадим функцию
00:48:11
которая позволит смотреть его рефералов
00:48:15
команда у нас будет 1 д чек у нас это
00:48:26
попадает месяц и мы говорим
00:48:29
отсюда мы узнаем рефералов через функцию
00:48:34
white дата bass чек referrals все теперь
00:48:41
мы говорим текст ваши ваши рефералы
00:48:51
рефералы мы отвечаем message on цирк
00:48:59
текстом то есть есть два варианта того
00:49:04
чтобы отвечать на сообщения это либо
00:49:05
send message и передаем читайте им
00:49:08
просто передаем ответ на вот это
00:49:11
сообщение которое мы получили следующие
00:49:15
следующий хендлер это будет команда
00:49:18
добавить денег в которой мы передаем
00:49:25
человеку рандомное число монет
00:49:27
ram mount ран дом 1 сто то есть это того
00:49:41
до 100 монет мы ему даем у нас рандомы
00:49:45
забыли импортировать поэтому давайте
00:49:46
импортируем
00:49:50
пожалуйста она уже импортирована и мы
00:49:53
говорим что мы добавляем денег на the
00:49:56
bass обмане и столько-то денег рэндом
00:50:01
mount
00:50:03
теперь мы узнаем баланс white by the
00:50:08
bass чек баланс и мы говорим текст вам
00:50:16
было добавлено маней столько-то
00:50:22
монет теперь ваш баланс баланс и мы
00:50:29
форматируем мы отдаем money money
00:50:37
это у нас ondemand и
00:50:42
баланс баланс
00:50:46
мы говорим месяц unsure текст запускаем
00:50:52
нашего бота и манго нажимаем старт
00:50:58
значит у нас сейчас есть тысяч монет
00:51:01
монет нажимаем
00:51:02
отмани вам было добавлено девяносто две
00:51:05
монеты
00:51:06
пир ваш баланс и вот так можно добавлять
00:51:09
сколько угодно и последняя команда это
00:51:16
проверьте few of так у нас рефералов нет
00:51:18
тут у нас пусто
00:51:20
поэтому сейчас я вот эту ссылку вот эту
00:51:30
ссылку скопирую и
00:51:33
же перешлю ее себе я со своего телефона
00:51:37
сейчас
00:51:39
зарегистрируюсь и проверяю сейчас базе
00:51:43
два человека я могу проверить своих
00:51:46
рефералов вот мои рефералы все на этом в
00:51:51
принципе все
00:51:52
следующий урок будет совсем скоро и если
00:51:55
вы ждёте его
00:51:56
напишите в комментариях об этом потому
00:51:59
что это действительно мотивирует
00:52:00
выпускать уроки быстрее спасибо за
00:52:04
просмотр

Описание:

Обновленные видео с Aiogram 3 уже на платформе, поэтому выкладываю уроки по Aiogram 2 в открытый доступ. Чтобы зарегистрироваться на платформе и изучать новый курс по Aiogram 3 переходите по ссылке: https://botfather.dev/ Присоединиться к нашему сообществу программистов в телеграм: https://t.me/bot_devs_novice Написать вопрос относительно курсов, тарифов: https://t.me/botfatherdev_support --- В видео вы узнаете как подключить Docker на Windows 10, поставить на него базу данных PostgreSQL, и создать бота, который будет регистрировать ваших пользователей, выдавать реферальные ссылки и работать с балансом. --- Ссылки из ролика: Уроки на Гитхабе (это 4 урок) - https://github.com/Latand/telegram-bot-lessons Инструкция по боту - https://docs.google.com/document/d/1_EkHKNIr9bNwFtBUJG53oEYeOhllMJDhJD_PGEbrApo/edit Virtualbox - https://www.virtualbox.org/wiki/Downloads Установка Docker на английском (оригинал)- https://golb.hplar.ch/2019/01/docker-on-windows10-home-scratch.html Установка докер на русском - https://docs.google.com/document/d/1iBpsegg6UaWJ8yXV0oYYbqlnJNXC3-2h33iNYamWbAs/edit Git - https://git-scm.com/download/win ---------------- Таймкоды: 00:00 - Вступление 02:30 - Установка Virtualbox 03:00 - Установка Docker 08:45 - Как создавать проект Pycharm из проекта на Github 09:30 - Начало работы над ботом, описание структуры 11:47 - Описание config.py и example.env 13:42 - Описание SQL запроса для создания таблицы пользователей 14:25 - Что в модуле sql? Как создать таблицу в базе и создать соединение для бота 20:25 - Создание и запуск базы данных с помощью docker-compose 23:55 - Создание handlers.py для бота. ----------------

Готовим варианты загрузки

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

mobile menu iconКак можно скачать видео "БАЗА ДАННЫХ, ДОКЕР, БАЛАНСЫ И РЕФЕРАЛЫ в ботах на aiogram 2"?mobile menu icon

  • Сайт http://unidownloader.com/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений. Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

  • Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

  • UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

mobile menu iconКакой формат видео "БАЗА ДАННЫХ, ДОКЕР, БАЛАНСЫ И РЕФЕРАЛЫ в ботах на aiogram 2" выбрать?mobile menu icon

  • Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

mobile menu iconПочему компьютер зависает при загрузке видео "БАЗА ДАННЫХ, ДОКЕР, БАЛАНСЫ И РЕФЕРАЛЫ в ботах на aiogram 2"?mobile menu icon

  • Полностью зависать браузер/компьютер не должен! Если это произошло, просьба сообщить об этом, указав ссылку на видео. Иногда видео нельзя скачать напрямую в подходящем формате, поэтому мы добавили возможность конвертации файла в нужный формат. В отдельных случаях этот процесс может активно использовать ресурсы компьютера.

mobile menu iconКак скачать видео "БАЗА ДАННЫХ, ДОКЕР, БАЛАНСЫ И РЕФЕРАЛЫ в ботах на aiogram 2" на телефон?mobile menu icon

  • Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "БАЗА ДАННЫХ, ДОКЕР, БАЛАНСЫ И РЕФЕРАЛЫ в ботах на aiogram 2"?mobile menu icon

  • Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

mobile menu iconКак сохранить кадр из видео "БАЗА ДАННЫХ, ДОКЕР, БАЛАНСЫ И РЕФЕРАЛЫ в ботах на aiogram 2"?mobile menu icon

  • Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

mobile menu iconСколько это всё стоит?mobile menu icon

  • Нисколько. Наши сервисы абсолютно бесплатны для всех пользователей. Здесь нет PRO подписок, нет ограничений на количество или максимальную длину скачиваемого видео.