# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 | Здесь Ботов раздают? |
|
|||
Вводный урок, на котором мы познакомимся с системой и создадим собственного Бота, что бы в последствии использовать эти данные для автоматизации Бота. *Задание: написать несколько примеров использования Бота для Телеграмма Отчёт отправил: 9752. chokayes Выполнено за 43 мин. [Показать отчёт] Научился: бот есть, идем дальше Сложности: все просто |
|||||
2 | Осознание... |
|
|||
Первое создание проекта, заполнение формы, установка констант. *Задание: установить аватар для Бота Отчёт отправил: 9752. chokayes Выполнено за 1 день 9 час. 56 мин. [Показать отчёт] Научился: первоначальной настройке бота и подготовка к подключению Сложности: все просто |
|||||
3 | Начинаем кодить |
|
|||
На уроке мы уже начинаем программировать, уже через нашу новую программу получаем данные, обновления и пр. *Задание: получить номер последнего обновления – offset Отчёт отправил: 9752. chokayes Выполнено за 2 час. 48 мин. [Показать отчёт] Научился: получать номер последнего обновления, импортировал класс из предыдущего курса и использовал его для того, чтобы получить нужную информацию Сложности: все просто |
|||||
4 | Что такое Json?! |
|
|||
Урок расскажет всё о Json, и использовании этой технологии в C# *Задание: написать описания для класса сообщения. Отчёт отправил: 9752. chokayes Выполнено за 1 час. 20 мин. [Показать отчёт] Научился: формирование классов из json кода - хорошая штука. описания (summary) полезны при разработке программ Сложности: все просто |
|||||
5 | Вам телеграмма! |
|
|||
Учим нашего Бота писать сообщения, а так же реагировать на наши сообщения. *Вопрос: кто может в данный момент написать и получить ответ от Бота? Отчёт отправил: 9752. chokayes Выполнено за 38 мин. [Показать отчёт] Научился: оживили бота. да хоть кто может общаться с ботом, даже я. ) Сложности: все просто |
|||||
6 | Не хочу писать! |
|
|||
Правильно! В Век Новых Технологий пользователь приучен тыкать по кнопках, а не писать самостоятельно, вот и мы на уроке начнем создавать кнопки. *Задание: создать кнопочное меню, состоящее из месяцев Отчёт отправил: 9752. chokayes Выполнено за 2 час. 51 мин. [Показать отчёт] Научился: классный урок! Сделали сериализацию Json на основе которого создается клавиатура. Посмотрел полученную строку, прикольно, для чего-то мелкого и простого можно и вручную делать, без сериалов. ) Сложности: все просто |
|||||
7 | Волшебство начинается! |
|
|||
Фантастика, в Телеграмме есть кнопки, которые умеют отправлять запрос, а не сообщение. Как их создавать и как ими пользоваться, всё это и многое другое на уроке! *Вопрос: как получить данные из ответа Бота, если ему отправить inline запрос? Отчёт отправил: 9752. chokayes Выполнено за 6 час. 13 мин. [Показать отчёт] Научился: Все просто, эти данные вытаскиваем из update ( в нем callback_query). Структура json, который мы получаем может быть разной, когда мы нажимаем на кнопочку Inline keyboard, тогда нам в ответ и высылают update с callback_query и поэтому же у нас выскочила ошибка так как result не пустой, но в нем нет message. На картинке c json видно в поле data стоит "ya.ru". Сложности: все просто |
|||||
8 | По взмаху волшебной палочки! |
|
|||
Управлять запросами это непросто, ну а как этим заниматься, рассмотрим на уроке. Подсказочки тоже может быть пригодятся в последствии! *Задание: сформировать inline меню названия месяцев, чтобы оно возвращало номер месяца. Отчёт отправил: 9752. chokayes Выполнено за 1 час. 33 мин. [Показать отчёт] Научился: урок со спец-эффектами ) Сложности: все просто |
|||||
9 | Изменить неизменяемое |
|
|||
Научимся менять уже отправленное сообщение, чтобы у пользователя возникло ощущение интерактива. *Задание: на следующем уроке освоить технологию SQLite Отчёт отправил: 9752. chokayes Выполнено за 16 час. 6 мин. [Показать отчёт] Научился: научились использовать /editMessageText, чтобы изменять сообщения. Арсенал инструментов растет. ) базовые основы работы с SQLite уже есть. Сложности: все просто |
|||||
10 | SQLite: База MySQL в кармане |
|
|||
Подключаемся к базе SQLIte через Visual Studio используя язык программирования C# Если установить SQLite через NuGet, то установится необходимая версия библиотеки. *Самостоятельное задание: сделать так, чтобы при нажатии кнопки Enter в DataGridView данные сохранялись в базу данных Отчёт отправил: 9752. chokayes Выполнено за 8 час. 54 мин. [Показать отчёт] Научился: Подключать базу SQLite в C#. Выводить в DataGridView таблицу. Сохранять данные при нажатии кнопки Enter. Сложности: Хотел сначала наскоком сделать через AcceptButton. Не получилось. Пришлось через обработчик события у DataGridView , там только один нормально подходит. ) Все работает, только теперь при вводе новой строки пользоваться кнопкой Enter для переключения меду ячейками не рекомендуется. |
|||||
11 | БД - Большое Дело! |
|
|||
Планы - основа всех Баз Данных, будем планировать и создавать Базы Данных! *Задание: заполнить остальные пункты Магазина. Отчёт отправил: 9752. chokayes Выполнено за 9 час. 24 мин. [Показать отчёт] Научился: Создали базу данных для магазина, я думаю, все таки стоило табличку с категориями отдельно сделать, а то у нас избыточность получается, прям как в excel таблице. нужно еще добавить id товара и фото товара Сложности: все просто |
|||||
12 | Прикрутить БД |
|
|||
Внедряем в проект SQLite, оптимизируем программу. *Задание: добавить на форму DataGridView и отобразить данные из таблицы Отчёт отправил: 9752. chokayes Выполнено за 4 час. 45 мин. [Показать отчёт] Научился: рефакторинг - это круто! Сложности: все просто |
|||||
13 | Без изменения кода... |
|
|||
На уроке мы научимся только меняя в БД данные изменять работу нашего Бота *Задание: добавить переход на новую строку при автоформировании меню Отчёт отправил: 9752. chokayes Выполнено за 7 час. 53 мин. [Показать отчёт] Научился: поэксперементировал с выводом кнопок, пришел к выводу, что больше 3-х выводить резона нет, у меня максимально получилось в строку вывести 8 кнопок, с текстом в одну букву на кнопке, остальные не вмещаются и не переносятся! Был выбор сначала сформировать все массивы строк по 3 кнопки и только потом фомировать keyboard, но в этот раз я решил формировать только один массив из 3-х кнопок, сразу добавлять в keyboard, и заново переопределять массив, для этого задействовал счетчик. Хватило нашего цикла foreach по коллекции, только я вместо DataRowCollection подставил массив, чтобы наглядней было. Сложности: все просто |
|||||
14 | Главные кнопки |
|
|||
Создаем отдельный метод, который отвечает за добавление в наше Главное меню Главные кнопки :) *Вопрос: почему возникает исключение при нажатии клавиш? Отчёт отправил: 9752. chokayes Выполнено за 12 час. 42 мин. [Показать отчёт] Научился: В начале урока решили ДЗ, понравилось универасальное решение, которое позволяет добавлять кнопки в любое место. Обратил внимание, что в уроках избегается в конструкторах слово this. Вторая часть урока сложновата, много изменений в код, в разных местах, пришлось поднапрячься. ) Исключение возникает, потому что метод editMessageText требует, чтобы были высланы хоть какие-то изменения, а мы отправляем одно и то же. Ну это мы уже обсуждали. ) Сложности: сложно не потерять нить рассуждений. уже чувствую нехватку комментариев в коде. |
|||||
15 | Без тормозов |
|
|||
Всегда лишнее тянет назад, и рука не поднимается сделать главное! Очистим свой мозг и программу от лишнего мусора для новых горизонтов! *Вопрос: для чего можно использовать систему контроля версий? Отчёт отправил: 9752. chokayes Выполнено за 1 час. 34 мин. [Показать отчёт] Научился: Если по-простому. Система контроля версий нужна, чтобы можно было вернуться к определенному состоянию проекта, также используется для командной разработки. Без нее пришлось бы делать бэкапы приложений по датам или еще как, в которых быстро запутаешься. Сложности: все просто. |
|||||
16 | Продуктовый магазин |
|
|||
Начинаем создавать показ Магазина пользователю. *Вопрос: как можно решить проблему с открытием одного и того же элемента в Магазине Отчёт отправил: 9752. chokayes Выполнено за 2 час. 17 мин. [Показать отчёт] Научился: Написали отображение продуктов нашего магазинчика. Как вариант можно запоминать на нашей стороне, что мы отсылали ранее и если изменений нет, то и не отсылать. Сложности: все просто |
|||||
17 | Покупательская Корзина |
|
|||
В Магазине должна быть Корзина, куда покупатель будет складывать свой(наш) товар, давайте дадим эту возможность пользователя и создадим у Бота Корзину. *Задание: добавить метод добавления продукта Отчёт отправил: 9752. chokayes Выполнено за 7 час. 59 мин. [Показать отчёт] Научился: Самое сложное ДЗ. Кстати корзина правильно: Cart или Shopping Cart. Создал метод CartAdd(), который вызывается при нажатии кнопки "Добавить в корзину", в него передаю одним из параметров item, откуда можно взять naim и userid (ncat нету). далее, чтобы записать в БД пришлось менять два класса в SQLiteClass добавил процедуру public void Insert(string ins), которая вставляет данные в таблицу, а в классе Корзина (TeleCart) сделал еще один конструктор public TeleCart(string ncat, string naim, string username) в котором и вызываю insert. хотя сейчас думаю, что надо было просто метод сделать. В итоге все добавляется, в базу пишется, на сайте сообщ выводится, что добавлено в корзину. Нужно было вытащить ncat, но я дальше не стал делать, просто naim записываю в БД. Сложности: все просто |
|||||
18 | Корзиномания |
|
|||
Будем создавать методы, позволяющие заполнять и удалять из Корзины продукты. *Задание: вывести содержимое Корзины в Сообщение Отчёт отправил: 9752. chokayes Выполнено за 9 час. 59 мин. [Показать отчёт] Научился: выбираем для пользовтателя из корзины, поля ncat, naim и форичем формируем answer. Сложности: Возникла проблема с полем naim, у меня был товар с наименованием из двух слов java beans, а по логике нашей программы мы используем Split() , поэтому в запрос передавалось только java и результат возвращал 0 строк, пришлось менять в БД, в таблице корзина кучу строк, если была бы таблица с категориями, сделали бы 1 раз и все. И еще добавлю, не нравится мне вот так вот полагаться на строки и вытаскивать из них нужную информацию сплитом, получая массив, по индексу которого не понятно что внутри, думаю этот момент стоит продумать. Еще в уроке, нам в одном месте понадобилось username и пришлось добавлять этот параметр в кучу методов по цепочке, раньше в уроках мы значением по умолчанию решали. А в два вызова вместо username вставили chat.id, думаю - это совсем неправильно. |
|||||
19 | Корзина. Что из этого мне нужно? |
|
|||
Создадим возможность пользователю посмотреть содержимое Корзины, а так же дадим возможность пользователю удалять продукты из Корзины. *Задание: написать процедуру очистки Корзины для определенного пользователя Отчёт отправил: 9752. chokayes Выполнено за 4 час. 0 мин. [Показать отчёт] Научился: Красиво получилось! ) многое узнал для себя из последних уроков, материал очень насыщенный и полезный, особенно работа с БД. Код навороченный. ) Сложности: все просто |
|||||
20 | Корзина. Результат |
|
|||
Результат покупки надо куда-то возвращать, чтобы можно было организовать доставку или помочь пользователю, если возник вопрос. Организацией результата Корзины мы и займемся на уроке. *Задание: если Корзина пуста – не отображать кнопку. *Задание: организовать отправку Сообщения Администратору Отчёт отправил: 9752. chokayes Выполнено за 7 час. 0 мин. [Показать отчёт] Научился: Не отображаем кнопку, если корзина пустая, делается просто. Видимо я не понял задание, у нас же и так есть метод private void SendMessageToAdmin(string message) Сложности: понять ТЗ ) |
|||||
21 | Класс как кнопка |
|
|||
На уроке мы рассмотрим простой пример, когда можно сделать так, чтобы отдельный класс отвечал за одну отдельную кнопку. Отчёт отправил: 9752. chokayes Выполнено за 10 час. 11 мин. [Показать отчёт] Научился: Внедрили класс-кнопку. Урок понравился. Можно добавить кнопку, "какие блюда можно приготовить из того, что Вы купили", а там уже предложить другие недостающие ингридиенты. ) Сложности: все просто |
|||||
22 | Красота должна быть идеальной |
|
|||
Наведем порядок в программе в плане красоты для пользователя, чтоб каждый элемент был красиво оформлен и приятен глазу. Отчёт отправил: 9752. chokayes Выполнено за 1 день 8 час. 55 мин. [Показать отчёт] Научился: Научился вставлять смайлы, картинки; и форматировать текст, широкий выбор тегов впечатляет. ) вмеcто невидимого пробела, ссылку повесил на "." Все супер. |
|||||
23 | ФИНАЛЬНЫЙ УРОК |
без видео |
|||
(В этом уроке нет видео) Приветствую! Ты дошел до конца этого курса, до этой черты доходят немногие! Ты уже победитель!!! Отчёт отправил: 9752. chokayes Выполнено за 13 час. 51 мин. [Показать отчёт] Научился: Отличный курс! Узнал много нового для себя. Если бы сам вникал в это все самостоятельно, не представляю сколько времени бы ушло. Сложности: Не понятно зачем писать бота (который должен висеть постоянно) на c#. Видеообзор: 3M_mN_wvlQc |
|||||
24 | LINQ |
|
|||
На уроке мы познакомимся с технологией LINQ, начнем писать запросы, варианты. Отчёт отправил: 9752. chokayes Выполнено за 3 час. 56 мин. [Показать отчёт] Научился: Наконец-то узнал что такое LINQ, ) хороший мотиватор для прохождения данного курса Мощная штука! Урок супер. |
|||||
Итого: 24 видеоурока |
10 час. 04 мин. |
9 чел. | |||
Финалисты: Электрон, Олег Михайлович, Алексей В., Сергей Соколов, Yefim, chokayes, Сергей, Tekashnik, Александр . |