Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@Melevir
Last active June 22, 2017 08:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Melevir/565c05eee119684aa30eb8f3fde7dfff to your computer and use it in GitHub Desktop.
Save Melevir/565c05eee119684aa30eb8f3fde7dfff to your computer and use it in GitHub Desktop.

В этот раз у нас напряжённый график: надо поработать с АПИ Вконтакте, стащить оттуда нужные данные и сделать боте в Телеграме, который эти данные будет выдавать.

Бот новостной: ты ему говоришь /python_news, а он тебе выдаёт случайную сегодняшнюю публикацию про Питон в одной из тематических групп.

В задаче две части: сбор данных и телеграм-бот.

Задание ещё меньше формализовано, чем предыдущее, всё как в жизни.

  1. Освоиться с АПИ Вконтакте ============================

Надо разобраться с тем, как ползоваться АПИ Вконтакте. Если нужна авторизация – разобраться с ней. Для запросов к АПИ Вконтакте из Питона лучше использовать знакомый уже requests.

Если можешь из Питона вытащить информацию о своём профиле – дело сделано.

Вот доки: https://vk.com/dev/

  1. Найти группы, которые будем мониторить =========================================

Теперь надо найти тематические группы Вконтакте. Это группы, в которых есть хотя бы по одному посту в день и которые про Питон. Надо собрать как минимум десяток подходящих групп.

Было бы классно отфильтровать всякие группы с платным решением заданий или группы, которые "просто" про программирование – едва ли в них проскакивают интересные нам новости.

На выходе – json-файлик с айдишниками нужных групп.

  1. Написать парсер постов из нужных групп =========================================

Следующий скрипт идёт по группам из файлика предыдущего задания и вытаскивает все посты, которые были опубликованы в день запуска скрипта.

На выходе – файлик с нужной информацией о постах.

При этом если запустить скрипт дважды, новые посты должны добавиться в файл, а старые – не дублироваться.

Сами посты должны быть про Питон. Идеально было бы фильтровать только новостные посты.

  1. Освоиться с АПИ Телеграма ============================

Пришло время АПИ Телеграма. Надо сделать две вещи: зарегистрировать бота и запустить эхобота.

Зарегистрировать бота – значит, создать своего бота в Телеграме и получить его ключ доступа.

Запустить эхобота – значит, запустить тестового бота, который отвечает тем же, что ты ему написал. Прям реально запустить, чтобы можно было ему написать в Телеграме и увидеть ответ.

Понятное дело, что бот будет на Питоне. Для удобного доступа к АПИ Телеграма будем использовать библиотеку python-telegram-bot. Эхобот – один из примеров в репозитории, достаточно скопировать файл с исходниками нужного бота.

Не продолжай делать задания, пока твой собственный бот не ответил тебе в Телеграме.

Что будет, если спросить бота, когда скрипт не запущен? Запущен? Что там в коде? А что, если расставить кучу принтов и узнать, в каких переменных что живёт? Ты ж собрал голема из грязи и палок. Классно было бы поглядеть, что у него внутри и как это работает.

  1. Научить бота выдавать новости ================================

Осталось соеденить бота в Телеграме и скрипт выдачи новостей про Питон.

Возмём бота из предыдущего задания, удалим из него бесполезную функцию эхо-ответа и добавим нужную функцию получения случайной сегодняшней новости из файла, созданного в задании 2.

Бот должен уметь понимать комманду /python_news и выдавать на неё случайную сегодняшнюю новость.

В новости должен быть анонс (первые пара предложений, например) и ссылка на полную новость Вконтакте.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment