История о том, как я писал Discord бота Пикабу
Пикабушата, всем привет!
Пишу первый раз, плюс это мой первый личный проектик, хочу поделиться с вами своими эмоциями, не рекламы ради, а в качестве простого рассказа)
Просьба не кидать в меня тапки за говнокод и грамматику, печенек вам ^_^
В начале была идея... нууу или как там у Marvel, ахаах) Да, всё началось с идеи.
Я всем сердцем люблю Discord, а ещё Пикабу.
И вот одним осенним вечером, я задумался: "Хммм, интересно, а как можно соединить между собой эти две прекрасные площадки? Как волшебной палочкой, по одной команде, получать смешнявочки с Пикабушки в Discord?"
Курение гугла привело меня к таким существам, как боты ;)
На тот момент, мои познания в программировании были на уровне: знаю, что такое типы данных, но не знаю, что с ними делать.
Выбор пал на Python и связанные с ним библиотеки, которые используются в моём боте, об этом далее.
Вот пример его работы для затравки:
![История о том, как я писал Discord бота Пикабу Пикабу, Discord, Бот, Python, Программирование, Гифка, Длиннопост](https://cs10.pikabu.ru/post_img/2019/11/24/11/157462319718056490.jpg)
Продолжим:
Первое, что я понял, так это то, что мне нужен API Пикабу, но не тут то было. К сожалению, сей прекрасный сайт этого не имеет и встал вопрос, как же я могу получать данные с сайта?
И тут я вспомнил, что такое парсинг. Выбрал для этого дела библиотеку Beautiful Soup, а так же библиотеку user_agents, чтобы генерировать заголовки для запросов на сайт.
Почитав документацию был выстрадан парсер, который формирует список из: id_поста, заголовок, ссылки на пост, рейтинг, ссылки на картинки в посте, ссылка на автора и ссылка на комменты. Выглядит это чудо неопытного падавана примерно так:
Далее моя логика подсказала, что хорошо бы это всё где-то хранить, для чего была создана функция записи всех собранных данных в файлик:
Итак, теперь у меня было два пакетика... эм, нет, это не то :)
На данном этапе я мог забирать данные с Пикабу и хранить их в файлике, отлично!
Теперь нужно соединить всё это дело с дискордом, в этом мне помогла библиотека discord.py.
Потратив некоторое время, родился бот, со след. содержимым:
Работает он по простейшей логике:
1. Открывается файл с данными от парсера.
2. Забирается первая строка, формируется сообщение для Discordа.
3. Сообщение отправляется по команде, строка из файлика убирается и так до конца файла, после чего вызывается парсер и данные обновляются.
На данный момент бот чувствует себя прекрасно, переехал на VPS и живёт 24\7.
Код доступен на GitHub: https://github.com/MrArtemSolovev/pika_meme_bot
Бот доступен по инвайту: https://discordapp.com/api/oauth2/authorize?client_id=637644...
Команда !pika в любой текстовый чат, на сервере Discord.
В скором времени он появится на top.gg :)
И нет, это вот всё не реклама, честно честно) я просто очень рад тому, что своими руками смог что-то сделать)
Я прекрасно понимаю, что я не топ разработчик, большая часть реализована коряво, но я вложил частичку себя, своих идей и попробовал создать что-то своё. В дальнейшем бот будет дорабатываться, забрасывать я его не буду.
Плюс мне бы хотелось понять, на сколько это законно по отношению к Пикабу?))) Можно ли как то узнать это у админов?)
Будет приятно почитать ваше мнение в комментах, а ещё приятнее будет, если вы начнёте его использовать, для меня это главный показатель того, что я на верном пути :3
Всем спасибо, за ваши минутки внимания!