Язык для ТГ котики мяукнул

Боты для телеграмма сейчас весьма популярны, давайте и мы научимся делать своих.

ЯП который мы будем использовать, как всегда Python. Напишем простого бота, который по заданной команде будет присылать нам котиков, а еще добавим кнопку, чтобы не вводить команды каждый раз. Вот рабочий пример (надеюсь к моменту твоего прочтения, я его еще буду хостить).
И итог того, что должно получиться:

Скриншот чата с ботом

Подготовка

Для начала мы будем исходить из того, что Python3 уже установлен и из командной строки прекрасно работает >_ python и >_ pip. Сидим мы из под Linux или Windows неважно.
Для работы с телеграмом будем использовать эту библиотеку, для установки необходима командная строка с правами администратора.
И ввод одной команды.

pip install python-telegram-bot —upgrade

pip install requests

Чат с BotFather

Перевожу мяу котов и скрип дверей | Кошачий Переводчик

Не забудем и про добавление команды

Чат с BotFather

Пишем код

В принципе, многое уже и так есть в примерах в репозитории и заново ничего придумывать не надо, мы лишь изменим и дополним то, что уже есть.
И так поехали, берем из примеров простого бота echobot2, который уже умеет отвечать на все сообщения и знает команды /help /start. Отвечалку на все сообщения мы изменим, команды тоже немного поменяем и добавим свою /cat, которая собственно и будет постить котиков :3.
Для начала подставляем ранее полученный токен, необходимый для работы.

Код инициализации бота

Смотрим дальше и видим, что все обработчики в боте (команды, текст и тд) находятся в функции main и добавляются как dp.add_handler
Как вы можете заметить, событие использования команды в чате состоит из двух частей: текст команд и функции, которая вызывается при ее использовании.

По тому же принципу добавим свою команду строкой
dp.add_handler(CommandHandler(«cat», sendcat)), где cat — это команда , sendcat — вызываемая функция при получение данной команды.

Код инициализации бота

Остальные хендлеры трогать не будем, а поменяем лишь вызываемые ими функции.
Так например по умолчанию функция echo отправляет пользователю тот же самый текст что он и прислал.

Код отправки сообщения в Telegram

Изменим отправляемый текст на сообщение об ошибке

Код отправки сообщения в Telegram

Также изменим отправляемый текст на /start и /help

Украшательства закончены. Приступим к котикам :).
Котики у нас будут состоять из двух функций. Первую вы уже видели в хендлере — sendcat, она будет отвечать за отправку, но встает вопрос, а что же нам собственно отправлять? Тут мы будем использовать вторую функцию getcat которая будет отвечает за предоставление ссылок на картинки с котиками, брать которые мы будет с сайта thecatapi. Его апи позволяет получать ссылки на случайные картинки с котами, чем мы и воспользуемся.
Подключаем библиотеку requests и пишим простенькую функцию выдающию ссылки на картинки с котиками. Потом просто вызываем ее в sendcat.

Еще по теме:  Имя пользователя для ТГ вирт

Получения ссылки python requests

Проверим что получилос. Запускаем наш скрипт, ищем в телеграмме бота по нику, который вы задали ему при создании и. Котики .

Скриншот чата с ботом

Уже неплохо, но что-то все равно не то. Мы отправляем котов не как картинки, а как ссылки, телеграм конечно их подгружает и показывает, но решение так себе. Исправим же это, открываем документацию по работе с апи телеграма для ботов и ищем метод отправки картинок.

Функция отправки изображения в Telegram

Возвращаемся обратно и в функции sendcat заменяем всю строку отправки сообщения на bot.sendPhoto(chat_id=update.message.chat_id, photo=getcat())

Функция отправки сообщения с картинкой

Скриншот чата с ботом

Почти все готово, осталось сделать кнопку в чате, чтобы не вписывать постоянно команду вручную.
Использовать мы будем Inline клавиатуру (прямо в чате которая), она состоит из двух функций: первая отвечает за отрисовку (markup), вторая за обработку нажатий (callback).
Снова идем в примеры, которые даются авторами библиотеки, вытаскиваем вот это и переделываем под себя.
Кое-что доподключаем:

Подключение библиотек inline keyboard

В итоге получается

Код клавиатуры inline в Telegram

Скриншот чата с ботом

Исходный код

import requests from telegram import InlineKeyboardButton, InlineKeyboardMarkup, ReplyKeyboardRemove, ReplyKeyboardMarkup, KeyboardButton from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackQueryHandler import logging # Enable logging logging.basicConfig(format=’%(asctime)s — %(name)s — %(levelname)s — %(message)s’, level=logging.INFO) logger = logging.getLogger(__name__) # Define a few command handlers. These usually take the two arguments bot and # update. Error handlers also receive the raised TelegramError object in error. def start(bot, update): «»»Приветствие»»» update.message.reply_text(‘Привет, я бот, который очень любит котиков :3nНапиши мне /cat и я поделюсь ими с тобой’) def help(bot, update): «»»Сообщение для помощи с командами»»» update.message.reply_text(‘Чтобы получить котика напиши /cat’) def echo(bot, update): «»»На любой текст отвечаем ошибкой»»» update.message.reply_text(«Неизвестная команда :(«) def error(bot, update, error): «»»Log Errors caused by Updates.»»» logger.warning(‘Update «%s» caused error «%s»‘, update, error) def getcat(): »’Получение ссылки на картинку с котиком»’ try: r = requests.get(‘http://thecatapi.com/api/images/get?format=src’) url = r.url except: url = get_cat() print(‘Error with cat parsing’) pass return url def sendcat(bot, update): «»»Отправка котиков»»» bot.sendPhoto(chat_id=update.message.chat_id, photo=getcat(), reply_markup=draw_button()) def draw_button(): keys =[[InlineKeyboardButton(‘?Еще котика. ‘, callback_data=’1’)]] return InlineKeyboardMarkup(inline_keyboard=keys) def get_callback_from_button(bot, update): query = update.callback_query username = update.effective_user.username chat_id = query.message.chat.id message_id = query.message.message_id if int(query.data) == 1: bot.sendPhoto(photo=getcat(), chat_id=chat_id, message_id=message_id, reply_markup=draw_button()) def main(): «»»Start the bot.»»» # Create the EventHandler and pass it your bot’s token. updater = Updater(«СЮДА ВАШ ТОКЕН») # Get the dispatcher to register handlers dp = updater.dispatcher dp.add_handler(CallbackQueryHandler(get_callback_from_button)) dp.add_handler(CommandHandler(«start», start)) dp.add_handler(CommandHandler(«help», help)) dp.add_handler(CommandHandler(«cat», sendcat)) # on noncommand i.e message — echo the message on Telegram dp.add_handler(MessageHandler(Filters.text, echo)) # log all errors dp.add_error_handler(error) # Start the Bot updater.start_polling() # Run the bot until you press Ctrl-C or the process receives SIGINT, # SIGTERM or SIGABRT. This should be used most of the time, since # start_polling() is non-blocking and will stop the bot gracefully. updater.idle() if __name__ == ‘__main__’: main()

Еще по теме:  Что делать если Телеграмм не грузит

F.A.Q

  • Q: Т.к бот каждый раз запрашивает картинку, а потом еще и загружает ее в мессенджер, уходит масса времени. Как ускорить выдачу ответов?
  • A: Решение — использовать сервера Telegram, как кеш. Сохраняйте при отправке фото их media_id (куда нибудь в бд), чтобы потом можно было быстренько его оттуда вытянуть и отправить.
  • Q: А как сделать ребут, админку, оформить тексты т.д ?
  • A: Здесь есть отличные сниппеты
  • Q: Как осуществить . ?
  • A: Документация Telegram bot api, Вики библиотеки

Источник: liberbear.com

Когда лень даже говорить: расслабленно мяукающий кот покорил соцсети

Кажется, кот из этого ролика, появившегося в Telegram на канале «Mimi video», был окончательно побежден жаркой летней погодой. Он настолько утомился, что ему лень даже болтать с хозяйкой на своем кошачьем. Когда ему что-то нужно, он еле-еле приоткрывает «рот» и очень расслабленно и тихо мяукает. Теперь владелица кота может немного отдохнуть от громких требовательных криков питомца.

Пользователи были в восторге от лениво мяукающего кота.

«Боже, какая прелесть».

«Вот почему не все кошки так мяукают? Моя всегда орет как потерпевшая».

«Очаровашка такой, не могу».

«Ахах, первый раз слышу такое забавное мяуканье».

Ранее ridus.ru писал про болтливого кота, который пожаловался хозяйке на сложную жизнь.

  • «Неужели ты меня поняла?»: диалог кошки и хозяйки взбудоражил соцсети
  • Собака призналась в любви хозяйке и вызвала восторг в соцсетях

Источник: www.ridus.ru

Звук для кота, чтобы прибежал

Порой каждый владелец кошачьих желает развлечься, а иногда и понять лексикон домашнего питомца. И всем бы хотелось понимать, что именно желает донести пушистик. Существуют ли звук для кота, чтоб он прибежал? Давайте разберемся в этом вопросе.

На какие звуки кот может прибежать?

Для котов используют специальный набор звуков, которые больше характерны для самок. Такие специфические для человека звуки, коты могут услышать даже на большом расстоянии. В другом случае кошки могут реагировать на некоторые человеческие слова, особенно на более высокие частотные сигнатуры, на звуки открываемого консервного ножа и так далее.

Звук шуршания пакета

Звук вскрытия консервной банки

Звук, который привлечет кота

Звуки, чтобы позвать кошку

Нейтральные типы звуков способны успокоить кошачьих. В таком случае питомец не станет судорожно прятаться от своего хозяина. Он не станет искать источник звуков. Если использует более незнакомые сигналы, реакция может быть неожиданной — и для хозяина, и для питомца. Ниже будут описаны звуки, на которые ваш кот точно прибежит.

Еще по теме:  Как на аватарку в Телеграмме поставить фон

Прибежит ли кошка на мяуканья котят

Ученые провели исследования — включили звуки мяукающих котят при 17 взрослых животных. Особи реагировали на тревожные нотки в голосе котят на 10 процентов быстрее. На низкое возбуждение ни самцы не проявляют реакции. Кошка станет оценивать эмоциональное состояние котенка в зависимости от степени писка. На основании полученных данных кошачьи выстраивают поведение соответствующим образом. Самцы более холодно реагируют на мяуканье котят. Более того, статус материнства никак не повлияет поведение. Даже никогда не рожавшие самки реагируют так же, как и более опытные кошки.

Звуки для кота

Звуки для кота на телефон

Чтобы привлечь внимание кота, можно использовать сторонние сервисы. Одним из них является soundslibmp3.ru. На портале используются различные вариации голосов кошек. Каждое животное имеет свои предпочтения в развлечениях и отношениях к делу, соответственно, звуки могут действовать совсем по-разному.

Вот несколько советов при использовании сервиса:

  1. Протестируйте сервис, используйте несколько вариантов источника звука и определить более подходящий.
  2. Более строгие звуки могут испугать нежданных гостей в виде посторонних животных.
  3. Проявляйте осторожность — некоторые звуки могут отталкивать кошек и в случае неосторожности питомец может испугаться.

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

Как понять, что мяукает кот

Каждый владелец кошачьих мечтает понимать, что именно говорит кот. Существует несколько приемов, которые помогут понять их язык.

  1. При возвращении домой кошки могут встречать человека коротким мяуканьем. В этот момент питомец сообщает о том, что рад видеть своего хозяина.
  2. Если животное прикрикивает, возможно питомец хочет привлечь к себе внимание. В этот момент кот может просить еды или сообщает о желании выйти на улицу.
  3. Если человек слышит низкий недовольный и медленный рёв, возможно кошка ругает своего хозяина за какие-то проступки.
  4. Свою злость кот может выражать в виде урчания и шипения. В этот момент подходить к питомцу не рекомендуется.
  5. Низким и тонким мяуканьем кот пытается привлечь внимание к себе. Возможно, он хочет посидеть у вас на коленях.

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

Источник: geek-hub.ru

Рейтинг
( Пока оценок нет )
Загрузка ...