diff --git a/README.md b/README.md index c920dce39..47956a30e 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,48 @@ 2018-2019 ============= + +# Домашка 2 + +Telegram bot + +Бывает довольно сложно искать нужную информацию на гитхабе, особенно в коммитах на прошлый год. Давайте это дело автоматизируем - напишем бота, да не просто бота, а телеграмм-бота, который будет искать все за нас. + +### Основная идея + +Необходимо написать простого бота который будет с нами общаться посредством популярного месенджера Telegram. Интерфейс бота будет довольно постым, нам необходимо реализовать несколько команд которые может обрабатывать наш бот: + +* `/set_repo` - просит ввести ссылку на репозиторий + +* `/show_repo` - текущий подключенный репозиторий + +* `/search` - просит ввести ключевое слово(фразу) для поиска в данном репозитории и показывать результат этого запроса. + +* `/history` - история запросов(опционально, но желательно) + +* `/help` - показывает список возможных команд для нашего бота с пояснением. Вдруг ботом будет пользоваться еще кто-то кроме вас. + +* !Не забываем проверять ссылку на то, что это вообще гитхаб, и обязательно на то, что такой репозиторий существует и что к нему есть доступ. + +### Общие требования + +* Мы не используем тут никакие фреймворки, только чистый руби и библиотеки ( конкретно нельзя использовать sinatra, padrino, rails и производные ). +* У вас должен быть Gemfile в корне со всеми вашими зависимостями +* Весь код должен быть разбит на классы +* Каждая команда бот - отдельный класс, который наследуется от общего класса +* Бот должен работать для любого пользователя, с кем он заговорит +* Для хранения данных использовать или отдельный файл для каждого пользователя или любую базу данных которая вам нравится. + +### Полезные ссылки + +* https://core.telegram.org/bots/api - API для телеграм ботов +* https://github.com/atipugin/telegram-bot-ruby - библиотека для работы с Telegram Bot API +* https://developer.github.com/v3/ - API GitHub +* https://google.com - полезный ресурс для поиска информации в сети интернет + + # Домашка 1 -Начиная изучать какую-нибудь новую для себя область чаще всего ты начинаешь делать это с истории. В попытка придумать первое домашнее задание его автор очень долго напрягал извилины и понял что Франция средних веков это как раз то что нам нужно. +Начиная изучать какую-нибудь новую для себя область чаще всего ты начинаешь делать это с истории. В попытка придумать первое домашнее задание его автор очень долго напрягал извилины и понял что Франция средних веков это как раз то что нам нужно. ### Основная идея @@ -45,7 +85,7 @@ ruby pascal_tree.rb ### Задание ( Level 1 ) -На первом этапе задания вам предлагается создать несколько страниц. На главной странице приложения будут располагаться все заголовки объявлений, которые разместили пользователи системы. При клике на заголовок будет открываться само объявление. В самом верху будет кнопка для добавление нового объявления. Само объявление представляет собой заголовок, текст объявления и контактный данные. +На первом этапе задания вам предлагается создать несколько страниц. На главной странице приложения будут располагаться все заголовки объявлений, которые разместили пользователи системы. При клике на заголовок будет открываться само объявление. В самом верху будет кнопка для добавление нового объявления. Само объявление представляет собой заголовок, текст объявления и контактный данные. Пример объявления: ``` @@ -70,7 +110,7 @@ ruby pascal_tree.rb ### Общие требования -- Ваш код обязательно должен быть разбит на классы и модули. +- Ваш код обязательно должен быть разбит на классы и модули. - Можно и необходимо пользоваться различными гемами. - База данных для поиска информации может быть простым файлом. Также допускается использовать базу данных redis. - Для поиска необходимой информации вам необходимо написать парсеры открытых источников. Таким источником является к примеру [IMDB](http://www.imdb.com/list/ls072706884/). @@ -109,9 +149,9 @@ ruby pascal_tree.rb # Домашка 2 -В последнее время, неожиданно для многих из нас, в нашем регионе большую популярность приобрели рэп-батлы. И как бы к этому мы не относились, но трудно спорить с тем что "все лучше, чем мелочь по карманам тырить". Самой популярной площадкой в нашей регионе точно можно назвать [Versus](https://www.youtube.com/user/versusbattleru). Если вы никогда не видели ничего из вышесказанного - зайдите и обязательно ознакомьтесь, для дальнейшего понимания задачи. К слову на последнем практическом занятии мы выяснили кто является самым матным участником этой площадки, написав программу которая анализирует тексты всех состязаний. +В последнее время, неожиданно для многих из нас, в нашем регионе большую популярность приобрели рэп-батлы. И как бы к этому мы не относились, но трудно спорить с тем что "все лучше, чем мелочь по карманам тырить". Самой популярной площадкой в нашей регионе точно можно назвать [Versus](https://www.youtube.com/user/versusbattleru). Если вы никогда не видели ничего из вышесказанного - зайдите и обязательно ознакомьтесь, для дальнейшего понимания задачи. К слову на последнем практическом занятии мы выяснили кто является самым матным участником этой площадки, написав программу которая анализирует тексты всех состязаний. -На мировой арене самой старой и известной площадкой в данной сфере является [King of the Dot](https://www.youtube.com/user/KingOfTheDot). В отличии от Versus, упомянутого ранее, на данной площадке по большей части нету судей. Они объясняют это тем, что достаточно трудно оценить кто из участников был сильнее в каждой схватке и всегда очень субъективно. +На мировой арене самой старой и известной площадкой в данной сфере является [King of the Dot](https://www.youtube.com/user/KingOfTheDot). В отличии от Versus, упомянутого ранее, на данной площадке по большей части нету судей. Они объясняют это тем, что достаточно трудно оценить кто из участников был сильнее в каждой схватке и всегда очень субъективно. В рамках сегодняшнего домашнего задания мы предлагаем попытаться исправить данное правило и написать алгоритм, который бы мог определить кто выиграл по критериям, которые сами и придумаем. Для анализа каждого поединка нам понадобятся их тексты. Меня всегда это удивляет, но кажется для каждой из таких площадок находятся люди, которые вручную анализируют и вбивают тексты. Для KOTD тексты можно найти по [ссылке](https://genius.com/artists/King-of-the-dot).