αž€αžΆαžšαžŸαžšαžŸαŸαžšαžαŸαž›αŸαž€αŸ’αžšαžΆαž˜ bot αž“αŸ…αž€αŸ’αž“αž»αž„ R (αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 2)αŸ– αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ αž“αž·αž„αžαž˜αŸ’αžšαž„αžŸαžΆαžšαž‘αŸ… bot

Π’ αž€αžΆαžšαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž˜αž»αž“αŸ” αž™αžΎαž„β€‹αž”αžΆαž“β€‹αžšαž€β€‹αžƒαžΎαž‰β€‹αž–αžΈβ€‹αžšαž”αŸ€αž”β€‹αž”αž„αŸ’αž€αžΎαž bot αžŠαŸ„αž™β€‹αž…αžΆαž”αŸ‹β€‹αž•αŸ’αžαžΎαž˜β€‹αž‡αžΆβ€‹αž§αž‘αžΆαž αžšαžŽαŸβ€‹αž“αŸƒβ€‹αžαŸ’αž“αžΆαž€αŸ‹ Bot αž“αž·αž„αžŸαŸ’αž‚αžΆαž›αŸ‹αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸƒαž€αžΆαžšαž•αŸ’αž‰αžΎαžŸαžΆαžšαžŠαŸ„αž™αž”αŸ’αžšαžΎαžœαžΆαŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αž”αž“αŸ’αžαž”αŸ’αžšαž’αžΆαž“αž”αž‘αž“αŸαŸ‡ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αžŸαžΌαž˜αžŽαŸ‚αž“αžΆαŸ†αž±αŸ’αž™αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž’αžΆαž“αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αžαŸ‚αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž’αžΆαž“αžšαž½αž… αž•αŸ’αž“αŸ‚αž€αžŠαŸ†αž”αžΌαž„αŸ”.

αž›αžΎαž€αž“αŸαŸ‡αž™αžΎαž„αž“αžΉαž„αžŸαŸ’αžœαŸ‚αž„αž™αž›αŸ‹αž–αžΈαžšαž”αŸ€αž”αž’αŸ’αžœαžΎαž±αŸ’αž™ bot αžšαž”αžŸαŸ‹αž™αžΎαž„αžšαžŸαŸ‹αž‘αžΎαž„αžœαž·αž‰ αž“αž·αž„αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž‘αŸ…αžœαžΆ αž αžΎαž™αž€αŸαžŸαŸ’αž‚αžΆαž›αŸ‹αžαŸ’αž“αžΆαž€αŸ‹αž•αž„αžŠαŸ‚αžšαŸ” Updater.

αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž“αŸƒαž’αžαŸ’αžαž”αž‘ αž™αžΎαž„αž“αžΉαž„αžŸαžšαžŸαŸαžš bots αžŸαžΆαž˜αž‰αŸ’αž‰αž˜αž½αž™αž…αŸ†αž“αž½αž“ αžŠαŸ‚αž›αž€αŸ’αžšαŸ„αž™αž˜αž€αž‘αŸ€αžαž“αžΉαž„αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αžΆαž›αž”αžšαž·αž…αŸ’αž†αŸαž‘αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™ αž“αž·αž„αž›αŸαžαž€αžΌαžŠαž”αŸ’αžšαž‘αŸαžŸ αž€αŸ†αžŽαžαŸ‹αžαžΆαžαžΎαž˜αž½αž™αžαŸ’αž„αŸƒαž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž‘αŸαžŸαžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž‚αžΊαž‡αžΆαž…αž»αž„αžŸαž”αŸ’αžαžΆαž αŸ αž¬αžαŸ’αž„αŸƒαž’αŸ’αžœαžΎαž€αžΆαžšαžŠαŸ„αž™αž™αŸ„αž„αž‘αŸ…αžαžΆαž˜αž”αŸ’αžšαžαž·αž‘αž·αž“αž•αž›αž·αžαž€αž˜αŸ’αž˜αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαžΌαž…αž–αžΈαž˜αž»αž“ αž‚αŸ„αž›αž”αŸ†αžŽαž„αž“αŸƒαž’αžαŸ’αžαž”αž‘αž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαžŸαŸ’αž‚αžΆαž›αŸ‹αž’αŸ’αž“αž€αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž€αž‰αŸ’αž…αž”αŸ‹ telegram.bot αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”

αž€αžΆαžšαžŸαžšαžŸαŸαžšαžαŸαž›αŸαž€αŸ’αžšαžΆαž˜ bot αž“αŸ…αž€αŸ’αž“αž»αž„ R (αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 2)αŸ– αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ αž“αž·αž„αžαž˜αŸ’αžšαž„αžŸαžΆαžšαž‘αŸ… bot

αž’αžαŸ’αžαž”αž‘αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž–αžΈαžŸαŸŠαŸαžšαžΈ "αž€αžΆαžšαžŸαžšαžŸαŸαžšαžŸαžΆαžšαž‘αžΌαžšαž›αŸαžαž‡αžΆαž’αž€αŸ’αžŸαžš R"

  1. αž™αžΎαž„αž”αž„αŸ’αž€αžΎαž bot αž αžΎαž™αž”αŸ’αžšαžΎαžœαžΆαžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‰αžΎαžŸαžΆαžšαž€αŸ’αž“αž»αž„αž‘αžΌαžšαž›αŸαž
  2. αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ αž“αž·αž„αžαž˜αŸ’αžšαž„αžŸαžΆαžšαž‘αŸ… bot

αž˜αžΆαžαž·αž€αžΆ

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž›αžΎαž€αžΆαžšαžœαž·αž—αžΆαž‚αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž’αŸ’αž“αž€αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž›αžΎαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ† αž‘αžΌαžšαž›αŸαž ΠΈ YouTube αž†αžΆαž“αŸ‚αž›αŸ” αž˜αžΆαžαž·αž€αžΆαž—αžΆαž‚αž…αŸ’αžšαžΎαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž§αž‘αŸ’αž‘αž·αžŸαžŠαž›αŸ‹αž—αžΆαžŸαžΆ R αŸ”

  1. αžαŸ’αž“αžΆαž€αŸ‹αž’αŸ’αž“αž€αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–
  2. αž’αŸ’αž“αž€αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™ - αž’αŸ’αž“αž€αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™
  3. αž”αž“αŸ’αžαŸ‚αž˜αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαŸ†αž”αžΌαž„αž‘αŸ… bot αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ
  4. αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαžΆαžšαž’αžαŸ’αžαž”αž‘ αž“αž·αž„αžαž˜αŸ’αžšαž„
  5. αž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž‡αžΆαž˜αž½αž™αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš
  6. αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš bot αž“αŸ…αž•αŸ’αž‘αŸƒαžαžΆαž„αž€αŸ’αžšαŸ„αž™
  7. αžŸαŸαž…αž€αŸ’αžαžΈαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“

αžαŸ’αž“αžΆαž€αŸ‹αž’αŸ’αž“αž€αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–

Updater αž‚αžΊαž‡αžΆαžαŸ’αž“αžΆαž€αŸ‹αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ Telegram bot αž αžΎαž™αž”αŸ’αžšαžΎαžαŸ’αž“αžΆαž€αŸ‹αž€αŸ’αžšαŸ„αž˜αž€αŸ’αžšαžŽαžΆαžαŸ‹ Dispetcher. αž€αž·αž…αŸ’αž…αž€αžΆαžšαžαŸ’αž“αžΆαž€αŸ‹ Updater αž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“αž€αžΆαžšαž’αžΆαž”αŸ‹αžŠαŸαžαž–αžΈ bot (αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž˜αž»αž“ αž™αžΎαž„αž”αžΆαž“αž”αŸ’αžšαžΎαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸ„αž›αž”αŸ†αžŽαž„αž“αŸαŸ‡αŸ” getUpdates()) αž αžΎαž™αž•αŸ’αž‘αŸαžšαž–αž½αž€αžœαžΆαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαž‘αŸ… Dispetcher.

αž“αŸ…αž€αŸ’αž“αž»αž„αžœαŸαž“αžšαž”αžŸαŸ‹αžœαžΆαŸ” Dispetcher αž˜αžΆαž“αž§αž”αž€αžšαžŽαŸαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αžΆαž“αž”αž„αŸ’αž€αžΎαž αž§αŸ” αžœαžαŸ’αžαž»αžαŸ’αž“αžΆαž€αŸ‹ Handler.

αž’αŸ’αž“αž€αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™ - αž’αŸ’αž“αž€αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™

αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž§αž”αž€αžšαžŽαŸαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ… Dispetcher αž”αŸ’αžšαžαž·αž€αž˜αŸ’αž˜ bot αž…αŸ†αž–αŸ„αŸ‡αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž•αŸ’αžŸαŸαž„αŸ—αŸ” αž“αŸ…αž–αŸαž›αžŸαžšαžŸαŸαžšαž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„ telegram.bot αž”αŸ’αžšαž—αŸαž‘αž§αž”αž€αžšαžŽαŸαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αŸ–

  • MessageHandler - αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŸαžΆαžš
  • CommandHandler - αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ
  • CallbackQueryHandler - αž§αž”αž€αžšαžŽαŸαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αŸ’αžαžΆαžšαž…αž»αž…αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αž‰αžΎαž–αžΈαž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžαžΆαž‰
  • ErrorHandler - αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αŸ†αž αž»αžŸαž“αŸ…αž–αŸαž›αžŸαŸ’αž“αžΎαžŸαž»αŸ†αž€αžΆαžšαž’αžΆαž”αŸ‹αžŠαŸαžαž–αžΈ bot

αž”αž“αŸ’αžαŸ‚αž˜αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαŸ†αž”αžΌαž„αž‘αŸ… bot αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αž·αž“αž’αŸ’αž›αžΆαž”αŸ‹αž”αŸ’αžšαžΎ bots αž–αžΈαž˜αž»αž“αž˜αž€ αž αžΎαž™αž˜αž·αž“αžŠαžΉαž„αžαžΆαž’αŸ’αžœαžΈαž‡αžΆ command αž“αŸ„αŸ‡ commands αž‘αŸ…αž€αžΆαž“αŸ‹ bot αžαŸ’αžšαžΌαžœαžαŸ‚αž•αŸ’αž‰αžΎαžŠαŸ„αž™αž”αŸ’αžšαžΎαžŸαž‰αŸ’αž‰αžΆ forward / αž‡αžΆαž”αž»αž–αŸ’αžœαž”αž‘αŸ”

αž™αžΎαž„αž“αžΉαž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‡αžΆαž˜αž½αž™αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŸαžΆαž˜αž‰αŸ’αž‰ i.e. αžαŸ„αŸ‡αž”αž„αŸ’αžšαŸ€αž“ bot αžšαž”αžŸαŸ‹αž™αžΎαž„αž±αŸ’αž™αž“αž·αž™αžΆαž™αžŸαž½αžŸαŸ’αžαžΈαžαžΆαž˜αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ /hi.

αž›αŸαžαž€αžΌαžŠ 1: αž”αž„αŸ’αžšαŸ€αž“ bot αž±αŸ’αž™αž“αž·αž™αžΆαž™αžŸαž½αžŸαŸ’αžαžΈ

library(telegram.bot)

# создаём экзСмпляр класса Updater
updater <- Updater('Π’ΠžΠšΠ•Π Π’ΠΠ¨Π•Π“Πž Π‘ΠžΠ’Π')

# ПишСм ΠΌΠ΅Ρ‚ΠΎΠ΄ для привСтсвия
say_hello <- function(bot, update) {

  # Имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π°Π΄ΠΎ ΠΏΠΎΠ·Π΄Π°Ρ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ
  user_name <- update$message$from$first_name

  # ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° привСтствСнного сообщСния
  bot$sendMessage(update$message$chat_id, 
                  text = paste0("ΠœΠΎΡ‘ ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅, ", user_name, "!"), 
                  parse_mode = "Markdown")

}

# создаём ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ 
hi_hendler <- CommandHandler('hi', say_hello)

# добаляСм ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π² диспСтчСр
updater <- updater + hi_hendler

# запускаСм Π±ΠΎΡ‚Π°
updater$start_polling()

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž§αž‘αžΆαž αžšαžŽαŸαž€αžΌαžŠαžαžΆαž„αž›αžΎ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž‡αŸ†αž“αž½αžŸ 'YOUR BOT TOKEN' αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž“αž·αž˜αž·αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαž–αž·αžαžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αžΆαž“αž‘αž‘αž½αž›αž“αŸ…αž–αŸαž›αž”αž„αŸ’αž€αžΎαž bot αžαžΆαž˜αžšαž™αŸˆ αž”αžΌαž αŸ’αžœαž αŸ’αžœαž (αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž€αžΆαžšαž”αž„αŸ’αž€αžΎαž bot αž“αŸ…αž€αŸ’αž“αž»αž„ αž’αžαŸ’αžαž”αž‘αžŠαŸ†αž”αžΌαž„).

αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž start_polling() класса UpdaterαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž“αŸ…αž…αž»αž„αž”αž‰αŸ’αž…αž”αŸ‹αž“αŸƒαž€αžΌαžŠ αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžšαž„αŸ’αžœαž·αž›αž‡αž»αŸ†αž‚αŸ’αž˜αžΆαž“αž‘αžΈαž”αž‰αŸ’αž…αž”αŸ‹αž“αŸƒαž€αžΆαžšαžŸαŸ’αž“αžΎαžŸαž»αŸ† αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž–αžΈ bot αŸ”

αž₯αž‘αžΌαžœαž“αŸαŸ‡αžŸαžΌαž˜αž”αžΎαž€ Telegram αž αžΎαž™αžŸαžšαžŸαŸαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαŸ†αž”αžΌαž„αž‘αŸ…αž€αžΆαž“αŸ‹ bot αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ” /hi.

αž€αžΆαžšαžŸαžšαžŸαŸαžšαžαŸαž›αŸαž€αŸ’αžšαžΆαž˜ bot αž“αŸ…αž€αŸ’αž“αž»αž„ R (αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 2)αŸ– αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ αž“αž·αž„αžαž˜αŸ’αžšαž„αžŸαžΆαžšαž‘αŸ… bot

αž₯αž‘αžΌαžœαž“αŸαŸ‡ bot αžšαž”αžŸαŸ‹αž™αžΎαž„αž™αž›αŸ‹αž–αžΈαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ /hiαž αžΎαž™αžŠαžΉαž„αž–αžΈαžšαž”αŸ€αž”αžŸαŸ’αžœαžΆαž‚αž˜αž“αŸαž™αžΎαž„αŸ”

αžαžΆαž˜αž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸ αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž€αžΎαž bot αžŸαžΆαž˜αž‰αŸ’αž‰αž”αŸ‚αž”αž“αŸαŸ‡αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ”

αž€αžΆαžšαžŸαžšαžŸαŸαžšαžαŸαž›αŸαž€αŸ’αžšαžΆαž˜ bot αž“αŸ…αž€αŸ’αž“αž»αž„ R (αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 2)αŸ– αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ αž“αž·αž„αžαž˜αŸ’αžšαž„αžŸαžΆαžšαž‘αŸ… bot

  1. αž”αž„αŸ’αž€αžΎαžαž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαžαŸ’αž“αžΆαž€αŸ‹ Updater;
  2. αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž i.e. αž˜αž»αžαž„αžΆαžšαžŠαŸ‚αž› bot αžšαž”αžŸαŸ‹αž™αžΎαž„αž“αžΉαž„αž’αž“αž»αžœαžαŸ’αžαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž§αž‘αžΆαž αžšαžŽαŸαž€αžΌαžŠαž“αŸαŸ‡αž‚αžΊαž‡αžΆαž˜αž»αžαž„αžΆαžš say_hello(). αž˜αž»αžαž„αžΆαžšαžŠαŸ‚αž›αž’αŸ’αž“αž€αž“αžΉαž„αž”αŸ’αžšαžΎαž‡αžΆαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžš bot αžαŸ’αžšαžΌαžœαžαŸ‚αž˜αžΆαž“αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αž–αžΈαžšαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžš - bot ΠΈ αž’αŸ’αžœαžΎαž±αŸ’αž™αž‘αžΆαž“αŸ‹αžŸαž˜αŸαž™αž“αž·αž„αž‡αž˜αŸ’αžšαžΎαžŸαž˜αž½αž™ - args. αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹ botαž“αŸαŸ‡αž‚αžΊαž‡αžΆ bot αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αžŠαŸ„αž™αž˜αžΆαž“αž‡αŸ†αž“αž½αž™αžšαž”αžŸαŸ‹αžœαžΆ αž’αŸ’αž“αž€αž’αžΆαž…αž†αŸ’αž›αžΎαž™αžαž”αžŸαžΆαžš αž•αŸ’αž‰αžΎαžŸαžΆαžš αž¬αž”αŸ’αžšαžΎαžœαž·αž’αžΈαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ‚αž›αž˜αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ bot αŸ” αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹ αž’αŸ’αžœαžΎαž±αŸ’αž™αž‘αžΆαž“αŸ‹αžŸαž˜αŸαž™ αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž’αŸ’αžœαžΈαžŠαŸ‚αž› bot αž”αžΆαž“αž‘αž‘αž½αž›αž–αžΈαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αžαžΆαž˜αž–αž·αžαž‘αŸ…αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž™αžΎαž„αž”αžΆαž“αž‘αž‘αž½αž›αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αžŠαŸ†αž”αžΌαž„αžŠαŸ„αž™αž”αŸ’αžšαžΎαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžš getUpdates(). αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹ args αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αž”αž“αŸ’αžαŸ‚αž˜αžŠαŸ‚αž›αž•αŸ’αž‰αžΎαžŠαŸ„αž™αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžšαž½αž˜αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ αž™αžΎαž„αž“αžΉαž„αžαŸ’αžšαž›αž”αŸ‹αž‘αŸ…αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž“αŸαŸ‡αž”αž“αŸ’αžαž·αž…αž€αŸ’αžšαŸ„αž™αž˜αž€αŸ”
  3. αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž’αŸ’αž“αž€αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™, i.e. αž™αžΎαž„αž—αŸ’αž‡αžΆαž”αŸ‹αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž˜αž½αž™αž…αŸ†αž“αž½αž“αž‡αžΆαž˜αž½αž™αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž“αŸ…αž‡αŸ†αž αžΆαž“αž˜αž»αž“αŸ” αžŸαŸ†αžαžΆαž“αŸ‹ αž’αŸ’αž“αž€αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‚αžΊαž‡αžΆαž€αŸαŸ‡ αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžŠαŸ‚αž›αž αŸ…αž˜αž»αžαž„αžΆαžš bot αž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ” αž€αŸ’αž“αž»αž„αž§αž‘αžΆαž αžšαžŽαŸαžšαž”αžŸαŸ‹αž™αžΎαž„ αž‚αž“αŸ’αž›αžΉαŸ‡αž”αŸ‚αž”αž“αŸαŸ‡αž€αŸ†αž–αž»αž„αž•αŸ’αž‰αžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ /hiαž“αž·αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŠαŸ„αž™αž€αŸ’αžšαž»αž˜ hi_hendler <- CommandHandler('hi', say_hello). αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αž˜αž»αžαž„αžΆαžšαžŠαŸ†αž”αžΌαž„ CommandHandler() αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžšαž”αžŸαŸ‹αž™αžΎαž„αŸ” hiαžŠαŸ‚αž› bot αž“αžΉαž„αž†αŸ’αž›αžΎαž™αžαž”αŸ” αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αž‘αžΈαž–αžΈαžšαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžš bot αž™αžΎαž„αž“αžΉαž„αž αŸ…αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžš say_helloαžŠαŸ‚αž›αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αžΆαž“αž αŸ…αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αžŠαŸ†αž”αžΌαž„αŸ”
  4. αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αž™αžΎαž„αž”αž“αŸ’αžαŸ‚αž˜αž§αž”αž€αžšαžŽαŸαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αŸ…αž’αŸ’αž“αž€αž”αž‰αŸ’αž‡αžΌαž“αž“αŸƒαž§αž‘αžΆαž αžšαžŽαŸαžαŸ’αž“αžΆαž€αŸ‹αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ” Updater. αž’αŸ’αž“αž€β€‹αž’αžΆαž…β€‹αž”αž“αŸ’αžαŸ‚αž˜β€‹αž’αŸ’αž“αž€β€‹αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™β€‹αžαžΆαž˜β€‹αžœαž·αž’αžΈβ€‹αž‡αžΆβ€‹αž…αŸ’αžšαžΎαž“β€‹αž€αŸ’αž“αž»αž„β€‹αž§αž‘αžΆαž αžšαžŽαŸβ€‹αžαžΆαž„β€‹αž›αžΎ αžαŸ’αž‰αž»αŸ†β€‹αž”αžΆαž“β€‹αž”αŸ’αžšαžΎβ€‹αžŸαž‰αŸ’αž‰αžΆβ€‹αžŸαžΆαž˜αž‰αŸ’αž‰β€‹αž”αŸ†αž•αž»αžβ€‹αžŠαŸ„αž™β€‹αž”αŸ’αžšαžΎβ€‹αžŸαž‰αŸ’αž‰αžΆ +, i.e. updater <- updater + hi_hendler. αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αŸαŸ‡αžŠαŸ‚αžšαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžŠαŸ„αž™αž”αŸ’αžšαžΎαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž add_handler()αžŠαŸ‚αž›αž‡αžΆαž€αž˜αŸ’αž˜αžŸαž·αž‘αŸ’αž’αž·αžšαž”αžŸαŸ‹αžαŸ’αž“αžΆαž€αŸ‹ Dispatcherαž’αŸ’αž“αž€αž’αžΆαž…αžšαž€αžƒαžΎαž‰αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžŠαžΌαž…αž“αŸαŸ‡αŸ– updater$dispatcher$add_handler();
  5. αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš bot αžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ start_polling().

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαžΆαžšαž’αžαŸ’αžαž”αž‘ αž“αž·αž„αžαž˜αŸ’αžšαž„

αž™αžΎαž„αž”αžΆαž“αžŸαŸ’αžœαŸ‚αž„αž™αž›αŸ‹αž–αžΈαžšαž”αŸ€αž”αž•αŸ’αž‰αžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž‘αŸ… bot αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž–αŸαž›αžαŸ’αž›αŸ‡αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžš bot αžŠαžΎαž˜αŸ’αž”αžΈαž†αŸ’αž›αžΎαž™αžαž”αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αŸαž˜αžΆαž“αžŸαžΆαžšαž’αž˜αŸ’αž˜αžαžΆαž˜αž½αž™αž…αŸ†αž“αž½αž“αž•αž„αžŠαŸ‚αžšαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αž“αŸαŸ‡αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαžΆαžš βˆ’ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŸαžΆαžš.

αž’αž˜αŸ’αž˜αžαžΆ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŸαžΆαžš αž“αžΉαž„αž†αŸ’αž›αžΎαž™αžαž”αž‘αŸ…αž“αžΉαž„αžŸαžΆαžšαž…αžΌαž›αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž‡αžΆαž‰αžΉαž€αž‰αžΆαž”αŸ‹αž§αž”αž€αžšαžŽαŸαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžšαž½αž˜αž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™αžαž˜αŸ’αžšαž„αŸ” αž…αžΌαžšαž™αžΎαž„αž”αž„αŸ’αžšαŸ€αž“ bot αž±αŸ’αž™αž“αž·αž™αžΆαž™αžαžΆαž‡αŸ†αžšαžΆαž”αžŸαž½αžš αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž“αŸ…αž›αžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸ /hiαž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αŸαž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž–αžΆαž€αŸ’αž™αž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž–αžΆαž€αŸ’αž™αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž›αŸαž…αž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αž‰αžΎαž‘αŸ…αž€αžΆαž“αŸ‹ bot: αž‡αŸ†αžšαžΆαž”αžŸαž½αžš, αž‡αŸ†αžšαžΆαž”αžŸαž½αžš, αž‡αŸ†αžšαžΆαž”αžŸαž½αžš, hai, bonjour αŸ”

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αŸαž›αž“αŸαŸ‡ αž™αžΎαž„αž“αžΉαž„αž˜αž·αž“αžŸαžšαžŸαŸαžšαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžαŸ’αž˜αžΈαž‘αŸ αž–αŸ’αžšαŸ„αŸ‡... αž™αžΎαž„αž˜αžΆαž“αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž˜αž½αž™αžŠαŸ‚αž› bot αžŸαŸ’αžœαžΆαž‚αž˜αž“αŸαž™αžΎαž„αžšαž½αž…αž αžΎαž™αŸ” αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž™αžΎαž„αžαŸ’αžšαžΌαžœαž’αŸ’αžœαžΎαž‚αžΊαž”αž„αŸ’αž€αžΎαžαžαž˜αŸ’αžšαž„ αž“αž·αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαžΆαžšαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαŸ”

αž›αŸαžαž€αžΌαžŠαž‘αžΈ 2αŸ– αž”αž“αŸ’αžαŸ‚αž˜αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŸαžΆαžšαž’αžαŸ’αžαž”αž‘ αž“αž·αž„αžαž˜αŸ’αžšαž„

library(telegram.bot)

# создаём экзСмпляр класса Updater
updater <- Updater('Π’ΠžΠšΠ•Π Π’ΠΠ¨Π•Π“Πž Π‘ΠžΠ’Π')

# ПишСм ΠΌΠ΅Ρ‚ΠΎΠ΄ для привСтсвия
## ΠΊΠΎΠΌΠ°Π½Π΄Π° привСтвия
say_hello <- function(bot, update) {

  # Имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π°Π΄ΠΎ ΠΏΠΎΠ·Π΄Π°Ρ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ
  user_name <- update$message$from$first_name

  # ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌ привСтсвСнноС сообщСниС
  bot$sendMessage(update$message$chat_id, 
                  text = paste0("ΠœΠΎΡ‘ ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅, ", user_name, "!"),
                  parse_mode = "Markdown",
                  reply_to_message_id = update$message$message_id)

}

# создаём Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹
MessageFilters$hi <- BaseFilter(function(message) {

  # провСряСм, встрСчаСтся Π»ΠΈ Π² тСкстС сообщСния слова: ΠΏΡ€ΠΈΠ²Π΅Ρ‚, здравствуй, ΡΠ°Π»ΡŽΡ‚, Ρ…Π°ΠΉ, Π±ΠΎΠ½ΠΆΡƒΡ€
  grepl(x           = message$text, 
        pattern     = 'ΠΏΡ€ΠΈΠ²Π΅Ρ‚|здравствуй|ΡΠ°Π»ΡŽΡ‚|Ρ…Π°ΠΉ|Π±ΠΎΠ½ΠΆΡƒΡ€',
        ignore.case = TRUE)
  }
)

# создаём ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ 
hi_hendler <- CommandHandler('hi', say_hello) # ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ hi
hi_txt_hnd <- MessageHandler(say_hello, filters = MessageFilters$hi)

# добаляСм ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π² диспСтчСр
updater <- updater + 
             hi_hendler +
             hi_txt_hnd

# запускаСм Π±ΠΎΡ‚Π°
updater$start_polling()

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž§αž‘αžΆαž αžšαžŽαŸαž€αžΌαžŠαžαžΆαž„αž›αžΎ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž‡αŸ†αž“αž½αžŸ 'YOUR BOT TOKEN' αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž“αž·αž˜αž·αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαž–αž·αžαžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αžΆαž“αž‘αž‘αž½αž›αž“αŸ…αž–αŸαž›αž”αž„αŸ’αž€αžΎαž bot αžαžΆαž˜αžšαž™αŸˆ αž”αžΌαž αŸ’αžœαž αŸ’αžœαž (αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž€αžΆαžšαž”αž„αŸ’αž€αžΎαž bot αž“αŸ…αž€αŸ’αž“αž»αž„ αž’αžαŸ’αžαž”αž‘αžŠαŸ†αž”αžΌαž„).

αž₯αž‘αžΌαžœβ€‹αž“αŸαŸ‡β€‹αž™αžΎαž„β€‹αž–αŸ’αž™αžΆαž™αžΆαž˜β€‹αž•αŸ’αž‰αžΎβ€‹αžŸαžΆαžšβ€‹αž‡αžΆβ€‹αž…αŸ’αžšαžΎαž“β€‹αž‘αŸ…β€‹αž”αžΌαžβ€‹αžŠαŸ‚αž›β€‹αž˜αžΆαž“β€‹αž–αžΆαž€αŸ’αž™β€‹αžŸαŸ’αžœαžΆαž‚αž˜αž“αŸβ€‹αžŠαŸ‚αž›β€‹αž”αžΆαž“β€‹αžšαžΆαž™β€‹αžαžΆαž„β€‹αžŠαžΎαž˜αŸ–
αž€αžΆαžšαžŸαžšαžŸαŸαžšαžαŸαž›αŸαž€αŸ’αžšαžΆαž˜ bot αž“αŸ…αž€αŸ’αž“αž»αž„ R (αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 2)αŸ– αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ αž“αž·αž„αžαž˜αŸ’αžšαž„αžŸαžΆαžšαž‘αŸ… bot

αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž‡αžΆαžŠαŸ†αž”αžΌαž„ αž–αž½αž€αž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αžšαŸ€αž“ bot αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž“αž·αž™αžΆαž™αž‡αŸ†αžšαžΆαž”αžŸαž½αžšαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαžΎαž˜αŸ’αž”αžΈαž†αŸ’αž›αžΎαž™αžαž”αž‘αŸ…αž“αžΉαž„αž€αžΆαžšαžŸαŸ’αžœαžΆαž‚αž˜αž“αŸαŸ” αž™αžΎαž„αž”αžΆαž“αž’αŸ’αžœαžΎαžœαžΆαžŠαŸ„αž™αž”αŸ’αžšαžΎαž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹ αž†αŸ’αž›αžΎαž™αžαž”_to_message_idαžŠαŸ‚αž›αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž sendMessage()αžŠαŸ‚αž›αž’αŸ’αž“αž€αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžαŸ’αžšαžΌαžœαž•αŸ’αž‘αŸαžšαž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžŸαžΆαžšαžŠαŸ‚αž›αž’αŸ’αž“αž€αž…αž„αŸ‹αž†αŸ’αž›αžΎαž™αžαž”αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž‘αž‘αž½αž›αž”αžΆαž“αž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžŸαžΆαžšαžŠαžΌαž…αž“αŸαŸ‡αŸ– update$message$message_id.

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžšαžΏαž„αžŸαŸ†αžαžΆαž“αŸ‹αžŠαŸ‚αž›αž™αžΎαž„αž”αžΆαž“αž’αŸ’αžœαžΎαž‚αžΊαž”αž“αŸ’αžαŸ‚αž˜αžαž˜αŸ’αžšαž„αž‘αŸ… bot αžŠαŸ„αž™αž”αŸ’αžšαžΎαž˜αž»αžαž„αžΆαžš BaseFilter():

# создаём Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹
MessageFilters$hi <- BaseFilter( 

  # анонимная Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΡŽΡ‰Π°Ρ функция
  function(message) {

    # провСряСм, встрСчаСтся Π»ΠΈ Π² тСкстС сообщСния слова привСтствия
    grepl(x           = message$text, 
          pattern     = 'ΠΏΡ€ΠΈΠ²Π΅Ρ‚|здравствуй|ΡΠ°Π»ΡŽΡ‚|Ρ…Π°ΠΉ|Π±ΠΎΠ½ΠΆΡƒΡ€',
          ignore.case = TRUE)
  }

)

αžŠαžΌαž…αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž”αžΆαž“αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹ αžαž˜αŸ’αžšαž„αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžαŸ’αžšαžΌαžœαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αžœαžαŸ’αžαž» αžαž˜αŸ’αžšαž„αžŸαžΆαžšαžŠαŸ‚αž›αžŠαŸ†αž”αžΌαž„αž‘αžΎαž™αž˜αžΆαž“αžŸαŸ†αžŽαž»αŸ†αžαžΌαž…αž˜αž½αž™αž“αŸƒαžαž˜αŸ’αžšαž„αžŠαŸ‚αž›αžαŸ’αžšαŸ€αž˜αžšαž½αž…αž‡αžΆαžŸαŸ’αžšαŸαž…αŸ” αž€αŸ’αž“αž»αž„αž§αž‘αžΆαž αžšαžŽαŸαžšαž”αžŸαŸ‹αž™αžΎαž„αž…αŸ†αž–αŸ„αŸ‡αžœαžαŸ’αžαž» αžαž˜αŸ’αžšαž„αžŸαžΆαžš αž™αžΎαž„αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž’αžΆαžαž»αž˜αž½αž™αŸ” hiαž“αŸαŸ‡β€‹αž‡αžΆβ€‹αžαž˜αŸ’αžšαž„β€‹αžαŸ’αž˜αžΈαŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš BaseFilter() αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž˜αž»αžαž„αžΆαžšαžαž˜αŸ’αžšαž„αŸ” αžŸαŸ†αžαžΆαž“αŸ‹ αžαž˜αŸ’αžšαž„αž‚αžΊαž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‡αžΆαž˜αž»αžαž„αžΆαžšαžŠαŸ‚αž›αž‘αž‘αž½αž›αžŸαžΆαžš αž“αž·αž„αžαŸ’αžšαž‘αž”αŸ‹ αž–αž·αž ឬ αž˜αž·αž“αž–αž·αž. αž€αŸ’αž“αž»αž„αž§αž‘αžΆαž αžšαžŽαŸαžšαž”αžŸαŸ‹αž™αžΎαž„ αž™αžΎαž„αž”αžΆαž“αžŸαžšαžŸαŸαžšαž˜αž»αžαž„αžΆαžšαžŸαžΆαž˜αž‰αŸ’αž‰αž˜αž½αž™ αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž˜αž»αžαž„αžΆαžšαž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“ grepl() αž–αž·αž“αž·αžαŸ’αž™αž’αžαŸ’αžαž”αž‘αžŸαžΆαžš αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžΆαžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž“αžΉαž„αž€αž“αŸ’αžŸαŸ„αž˜αž’αž˜αŸ’αž˜αžαžΆαŸ” ΠΏΡ€ΠΈΠ²Π΅Ρ‚|здравствуй|ΡΠ°Π»ΡŽΡ‚|Ρ…Π°ΠΉ|Π±ΠΎΠ½ΠΆΡƒΡ€ αžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰ αž–αž·αž.

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŸαžΆαžš hi_txt_hnd <- MessageHandler(say_hello, filters = MessageFilters$hi). αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αž˜αž»αžαž„αžΆαžšαžŠαŸ†αž”αžΌαž„ MessageHandler() αž‚αžΊαž‡αžΆαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžŠαŸ‚αž›αž“αžΉαž„αž αŸ…αž’αŸ’αž“αž€αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™ αž αžΎαž™αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αž‘αžΈαž–αžΈαžšαž‚αžΊαž‡αžΆαžαž˜αŸ’αžšαž„αžŠαŸ‚αž›αžœαžΆαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž αŸ…αŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžšαž”αžŸαŸ‹αž™αžΎαž„αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžαž˜αŸ’αžšαž„αžŠαŸ‚αž›αž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αž€αžΎαž MessageFilters$hi.

αž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαžŽαžΆαžŸαŸ‹, αž“αŸ…αž‘αžΈαž”αž‰αŸ’αž…αž”αŸ‹, αž™αžΎαž„αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αž’αŸ’αž“αž€αž”αž‰αŸ’αž‡αžΌαž“αž’αŸ’αž“αž€αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαž hi_txt_hnd.

updater <- updater + 
             hi_hendler +
             hi_txt_hnd

αžŠαžΌαž…αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŸαžšαžŸαŸαžšαžαžΆαž„αž›αžΎαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž‰αŸ’αž…αž”αŸ‹ telegram.bot αž“αž·αž„αžœαžαŸ’αžαž» αžαž˜αŸ’αžšαž„αžŸαžΆαžš αž˜αžΆαž“αžŸαŸ†αžŽαž»αŸ†αž“αŸƒαžαž˜αŸ’αžšαž„αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™αžšαž½αž…αž αžΎαž™ αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαŸ–

  • αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ - αžŸαžΆαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”
  • αž’αžαŸ’αžαž”αž‘ - αžŸαžΆαžšαž’αžαŸ’αžαž”αž‘
  • αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ - αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ, αž§αŸ” αžŸαžΆαžšαžŠαŸ‚αž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‡αžΆαž˜αž½αž™ /
  • αž†αŸ’αž›αžΎαž™αžαž” - αžŸαžΆαžšαžŠαŸ‚αž›αž‡αžΆαž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”αž‘αŸ…αž“αžΉαž„αžŸαžΆαžšαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ”
  • αž’αžΌαžŒαžΈαž™αŸ‰αžΌ - αžŸαžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αž―αž€αžŸαžΆαžšαž’αžΌαžŒαžΈαž™αŸ‰αžΌ
  • αž―αž€αžŸαžΆαžš - αžŸαžΆαžšαž‡αžΆαž˜αž½αž™αž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αž‰αžΎ
  • αžšαžΌαž”αžαž - αžŸαžΆαžšαž‡αžΆαž˜αž½αž™αžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αž‰αžΎ
  • αžŸαŸ’αž‘αžΈαž‚αŸαžš - αžŸαžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αž‘αžΈαž‚αŸαžšαž•αŸ’αž‰αžΎ
  • វីដេធូ - αžŸαžΆαžšαž‡αžΆαž˜αž½αž™αžœαžΈαžŠαŸαž’αžΌ
  • αžŸαŸ†αž‘αŸαž„ - αžŸαžΆαžšαž‡αžΆαžŸαŸ†αž‘αŸαž„
  • αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„ - αžŸαžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αž˜αžΆαžαž·αž€αžΆαžαŸαž‘αŸαž€αŸ’αžšαžΆαž˜αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎ
  • αž‘αžΈαžαžΆαŸ†αž„ - αžŸαžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž—αžΌαž˜αž·αžŸαžΆαžŸαŸ’αžαŸ’αžš
  • αž‘αžΈαž€αž“αŸ’αž›αŸ‚αž„ - αžŸαžΆαžšαž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αž
  • αž αŸ’αž‚αŸαž˜ - αž αŸ’αž‚αŸαž˜

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž…αž„αŸ‹αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž“αžΌαžœαžαž˜αŸ’αžšαž„αž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸ…αž€αŸ’αž“αž»αž„αž§αž”αž€αžšαžŽαŸαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž˜αž½αž™αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž”αŸ’αžšαžΎαžŸαž‰αŸ’αž‰αžΆ | - αž‡αžΆαž‘αžΌαž‡αžΈαžαž› αž¬αž“αž·αž„αž…αž»αŸ‡αž αžαŸ’αžαž›αŸαžαžΆ & αž‡αžΆαž‘αžΌαž‡αžΈαžαž› И. αž§αž‘αžΆαž αžšαžŽαŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž…αž„αŸ‹αž±αŸ’αž™ bot αž αŸ…αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αŸ…αž–αŸαž›αžœαžΆαž‘αž‘αž½αž›αž”αžΆαž“αžœαžΈαžŠαŸαž’αžΌ αžšαžΌαž”αž—αžΆαž– αž¬αž―αž€αžŸαžΆαžš αžŸαžΌαž˜αž”αŸ’αžšαžΎαž§αž‘αžΆαž αžšαžŽαŸαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαžΆαžšαŸ–

handler <- MessageHandler(callback, 
  MessageFilters$video | MessageFilters$photo | MessageFilters$document
)

αž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž‡αžΆαž˜αž½αž™αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš

αž™αžΎαž„αžŠαžΉαž„αžšαž½αž…αž αžΎαž™αžαžΆαž’αŸ’αžœαžΈαž‡αžΆαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ αžšαž”αŸ€αž”αž”αž„αŸ’αž€αžΎαžαž–αž½αž€αžœαžΆ αž“αž·αž„αžšαž”αŸ€αž”αž”αž„αŸ’αžαŸ†αž±αŸ’αž™ bot αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžαŸ’αž›αŸ‡ αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαžˆαŸ’αž˜αŸ„αŸ‡αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ αž™αžΎαž„αžαŸ’αžšαžΌαžœαž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžœαžΆαŸ”

αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž“αŸαŸ‡αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒ bot αžŠαŸ‚αž›αž•αŸ’αžαž›αŸ‹αž€αžΆαž›αž”αžšαž·αž…αŸ’αž†αŸαž‘ αž“αž·αž„αž”αŸ’αžšαž‘αŸαžŸαžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž’αŸ’αž“αž€ αžαŸ’αžšαž‘αž”αŸ‹αž”αŸ’αžšαž—αŸαž‘αžαŸ’αž„αŸƒαž–αžΈαž”αŸ’αžšαžαž·αž‘αž·αž“αž•αž›αž·αžαž€αž˜αŸ’αž˜αŸ”

bot αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž”αŸ’αžšαžΎ API αž”αŸ’αžšαžαž·αž‘αž·αž“αž•αž›αž·αžαž€αž˜αŸ’αž˜ isdayoff.ru.

αž›αŸαžαž€αžΌαžŠαž‘αžΈ 3αŸ– αž”αžΌαžαžŠαŸ‚αž›αžšαžΆαž™αž€αžΆαžšαžŽαŸαžαžΆαž˜αž€αžΆαž›αž”αžšαž·αž…αŸ’αž†αŸαž‘ αž“αž·αž„αž”αŸ’αžšαž‘αŸαžŸ

library(telegram.bot)

# создаём экзСмпляр класса Updater
updater <- Updater('1165649194:AAFkDqIzQ6Wq5GV0YU7PmEZcv1gmWIFIB_8')

# ПишСм ΠΌΠ΅Ρ‚ΠΎΠ΄ для привСтсвия
## ΠΊΠΎΠΌΠ°Π½Π΄Π° привСтвия
check_date <- function(bot, update, args) {

  # входящиС Π΄Π°Π½Π½Ρ‹Π΅
  day     <- args[1]  # Π΄Π°Ρ‚Π°
  country <- args[2]  # страна

  # ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π²Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²
  if ( !grepl('\d{4}-\d{2}-\d{2}', day) ) {

    # Send Custom Keyboard
    bot$sendMessage(update$message$chat_id, 
                    text = paste0(day, " - нСкоррСткная Π΄Π°Ρ‚Π°, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π΄Π°Ρ‚Ρƒ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Π“Π“Π“Π“-ММ-Π”Π”"),
                    parse_mode = "Markdown")

  } else {
    day <- as.Date(day)
    # ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ POSIXtl
    y <- format(day, "%Y")
    m <- format(day, "%m")
    d <- format(day, "%d")

  }

  # страна для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ
  ## провСряСм Π·Π°Π΄Π°Π½Π° Π»ΠΈ страна
  ## Ссли Π½Π΅ Π·Π°Π΄Π°Π½Π° устанавливаСм ru
  if ( ! country %in% c('ru', 'ua', 'by', 'kz', 'us') ) {

    # Send Custom Keyboard
    bot$sendMessage(update$message$chat_id, 
                    text = paste0(country, " - Π½Π΅ΠΊΠΎΡ€Ρ€Π΅Ρ‚ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ страны, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π½Ρ‹Π΅ значСния: ru, by, kz, ua, us. Π—Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ России."),
                    parse_mode = "Markdown")

    country <- 'ru'

  }

  # запрос Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· API
  # ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ° HTTP запроса
  url <- paste0("https://isdayoff.ru/api/getdata?",
                "year=",  y, "&",
                "month=", m, "&",
                "day=",   d, "&",
                "cc=",    country, "&",
                "pre=1&",
                "covid=1")

  # ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΎΡ‚Π²Π΅Ρ‚
  res <- readLines(url)

  # интрСпрСтация ΠΎΡ‚Π²Π΅Ρ‚Π°
  out <- switch(res, 
                "0"   = "Π Π°Π±ΠΎΡ‡ΠΈΠΉ дСнь",
                "1"   = "НСрабочий дСнь",
                "2"   = "Π‘ΠΎΠΊΡ€Π°Ρ‰Ρ‘Π½Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ дСнь",
                "4"   = "covid-19",
                "100" = "Ошибка Π² Π΄Π°Ρ‚Π΅",
                "101" = "Π”Π°Π½Π½Ρ‹Π΅ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹",
                "199" = "Ошибка сСрвиса")

  # отправляСм сообщСниС
  bot$sendMessage(update$message$chat_id, 
                  text = paste0(day, " - ", out),
                  parse_mode = "Markdown")

}

# создаём ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ 
date_hendler <- CommandHandler('check_date', check_date, pass_args = TRUE)

# добаляСм ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π² диспСтчСр
updater <- updater + date_hendler

# запускаСм Π±ΠΎΡ‚Π°
updater$start_polling()

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž§αž‘αžΆαž αžšαžŽαŸαž€αžΌαžŠαžαžΆαž„αž›αžΎ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž‡αŸ†αž“αž½αžŸ 'YOUR BOT TOKEN' αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž“αž·αž˜αž·αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαž–αž·αžαžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αžΆαž“αž‘αž‘αž½αž›αž“αŸ…αž–αŸαž›αž”αž„αŸ’αž€αžΎαž bot αžαžΆαž˜αžšαž™αŸˆ αž”αžΌαž αŸ’αžœαž αŸ’αžœαž (αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž€αžΆαžšαž”αž„αŸ’αž€αžΎαž bot αž“αŸ…αž€αŸ’αž“αž»αž„ αž’αžαŸ’αžαž”αž‘αžŠαŸ†αž”αžΌαž„).

αž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αž€αžΎαž bot αžŠαŸ‚αž›αž˜αžΆαž“αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„αžšαž”αžŸαŸ‹αžœαžΆαŸ” check_dateαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž αŸ…αžŠαŸ„αž™αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž“αŸƒαžˆαŸ’αž˜αŸ„αŸ‡αžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαžˆαŸ’αž˜αŸ„αŸ‡αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαž“αŸαŸ‡αžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™αž’αŸ’αž“αž€αž”αž‰αŸ’αž…αžΌαž›αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž–αžΈαžš αž‚αžΊαž›αŸαžαž€αžΌαžŠαž”αŸ’αžšαž‘αŸαžŸ αž“αž·αž„αž€αžΆαž›αž”αžšαž·αž…αŸ’αž†αŸαž‘αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ bot αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αžαžΆαžαžΎαžαŸ’αž„αŸƒαžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž‘αŸαžŸαžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž‚αžΊαž‡αžΆαž…αž»αž„αžŸαž”αŸ’αžαžΆαž αŸ αžαŸ’αž„αŸƒαžαŸ’αž›αžΈ αž¬αžαŸ’αž„αŸƒαž’αŸ’αžœαžΎαž€αžΆαžšαžŠαŸ„αž™αž™αŸ„αž„αžαžΆαž˜αž”αŸ’αžšαžαž·αž‘αž·αž“αž•αž›αž·αžαž€αž˜αŸ’αž˜αž•αŸ’αž›αžΌαžœαž€αžΆαžšαŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαžŠαŸ‚αž›αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž™αž€αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž”αž“αŸ’αžαŸ‚αž˜αžšαž½αž˜αž‡αžΆαž˜αž½αž™αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ αžŸαžΌαž˜αž”αŸ’αžšαžΎαž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹ pass_args = TRUE αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αž»αžαž„αžΆαžš CommandHandler()αž αžΎαž™αž“αŸ…αž–αŸαž›αž”αž„αŸ’αž€αžΎαžαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžš bot, αž’αŸ’αžœαžΎαž±αŸ’αž™αž‘αžΆαž“αŸ‹αžŸαž˜αŸαž™ αž”αž„αŸ’αž€αžΎαžαž‡αž˜αŸ’αžšαžΎαžŸαž˜αž½αž™ - args. αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžαžΆαž˜αžšαž”αŸ€αž”αž“αŸαŸ‡αž“αžΉαž„αž‘αž‘αž½αž›αž™αž€αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αž‰αŸ’αž‡αžΌαž“αž‘αŸ…αž€αžΆαž“αŸ‹ bot αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžˆαŸ’αž˜αŸ„αŸ‡αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαŸ” αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšβ€‹αžαŸ’αžšαžΌαžœβ€‹αžαŸ‚β€‹αž”αŸ†αž”αŸ‚αž€β€‹αžŠαŸ„αž™β€‹αžŠαž€αžƒαŸ’αž›αžΆ αž–αž½αž€αžœαžΆβ€‹αž“αžΉαž„β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž•αŸ’αž‰αžΎβ€‹αž‘αŸ…β€‹αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšβ€‹αž‡αžΆβ€‹αžœαŸ‰αž·αž…αž‘αŸαžšβ€‹αž’αžαŸ’αžαž”αž‘αŸ”

αžαŸ„αŸ‡αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αž“αž·αž„αžŸαžΆαž€αž›αŸ’αž”αž„ bot αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ”

αž€αžΆαžšαžŸαžšαžŸαŸαžšαžαŸαž›αŸαž€αŸ’αžšαžΆαž˜ bot αž“αŸ…αž€αŸ’αž“αž»αž„ R (αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 2)αŸ– αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ αž“αž·αž„αžαž˜αŸ’αžšαž„αžŸαžΆαžšαž‘αŸ… bot

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš bot αž“αŸ…αž•αŸ’αž‘αŸƒαžαžΆαž„αž€αŸ’αžšαŸ„αž™

αž‡αŸ†αž αžΆαž“αž…αž»αž„αž€αŸ’αžšαŸ„αž™αžŠαŸ‚αž›αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αž‰αŸ’αž…αž”αŸ‹αž‚αžΊαžαŸ’αžšαžΌαžœαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš bot αž“αŸ…αž•αŸ’αž‘αŸƒαžαžΆαž„αž€αŸ’αžšαŸ„αž™αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αŸ’αž“αŸαŸ‡ αžŸαžΌαž˜αž’αž“αž»αžœαžαŸ’αžαžαžΆαž˜αž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ‚αž›αž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

  1. αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž€αžΌαžŠαž”αžΌαžαž‘αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜ R. αž“αŸ…αž–αŸαž›αž’αŸ’αžœαžΎαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„ RStudio αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžαžΆαž˜αžšαž™αŸˆαž˜αŸ‰αžΊαž“αž»αž™ αž―αž€αžŸαžΆαžš, αž€αŸ’αžšαž»αž˜ αžšαž€αŸ’αžŸαžΆαž‘αž»αž€β€‹αž‡αžΆ ....
  2. αž”αž“αŸ’αžαŸ‚αž˜αž•αŸ’αž›αžΌαžœαž‘αŸ…αž€αžΆαž“αŸ‹αžαžαž―αž€αžŸαžΆαžš bin αžŠαŸ‚αž›αž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž“αŸ…αž€αŸ’αž“αž»αž„αžαžαžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αž—αžΆαžŸαžΆ R αž‘αŸ…αž’αžαŸαžšαž•αŸ’αž›αžΌαžœ αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ† αž“αŸ…αž‘αžΈαž“αŸαŸ‡.
  3. αž”αž„αŸ’αž€αžΎαžαž―αž€αžŸαžΆαžšαž’αžαŸ’αžαž”αž‘αž’αž˜αŸ’αž˜αžαžΆαžŠαŸ‚αž›αžŸαžšαžŸαŸαžš 1 αž”αž“αŸ’αž‘αžΆαžαŸ‹αŸ– R CMD BATCH C:UsersAlseyDocumentsmy_bot.R. αž‡αŸ†αž“αž½αžŸβ€‹αž’αŸ„αž™ C:UsersAlseyDocumentsmy_bot.R αžŸαžšαžŸαŸαžšαž•αŸ’αž›αžΌαžœαž‘αŸ…αž€αžΆαž“αŸ‹αžŸαŸ’αž‚αŸ’αžšαžΈαž” bot αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αž€αŸ’αž“αž»αž„αž–αŸαž›αž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆαž“αŸαŸ‡ αžœαžΆαž‡αžΆαž€αžΆαžšαžŸαŸ†αžαžΆαž“αŸ‹αžŽαžΆαžŸαŸ‹αžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αžαž½αž’αž€αŸ’αžŸαžš Cyrillic αž¬αž…αž“αŸ’αž›αŸ„αŸ‡αž“αŸ…αžαžΆαž˜αž•αŸ’αž›αžΌαžœαž“αŸ„αŸ‡αž‘αŸ αž–αžΈαž–αŸ’αžšαŸ„αŸ‡ αžœαžΆαž’αžΆαž…αž”αžŽαŸ’αžαžΆαž›αž±αŸ’αž™αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž“αŸ…αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš bot αŸ” αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžœαžΆ αž αžΎαž™αž‡αŸ†αž“αž½αžŸαž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αžšαž”αžŸαŸ‹αžœαžΆαž‡αžΆαž˜αž½αž™ txt αž“αŸ…αž›αžΎ bat.
  4. αž”αžΎαž€ Windows Task Scheduler αž˜αžΆαž“αžœαž·αž’αžΈαž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžœαžΆ αž§αž‘αžΆαž αžšαžŽαŸ αž”αžΎαž€ Folder αžŽαžΆαž˜αž½αž™ αž αžΎαž™αž”αž‰αŸ’αž…αžΌαž›αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ %windir%system32taskschd.msc /s. αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸƒαž€αžΆαžšαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž’αžΆαž…αžšαž€αž”αžΆαž“ αž“αŸ…αž‘αžΈαž“αŸαŸ‡.
  5. αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αŸ‰αžΊαž“αž»αž™αžαžΆαž„αžŸαŸ’αžαžΆαŸ†αžαžΆαž„αž›αžΎαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž–αŸαž›αžŸαžΌαž˜αž…αž»αž… "αž”αž„αŸ’αž€αžΎαžαž—αžΆαžšαž€αž·αž…αŸ’αž… ... " αŸ”
  6. αž“αŸ…αž›αžΎαž•αŸ’αž‘αžΆαŸ†αž„ "αž‘αžΌαž‘αŸ…" αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž—αžΆαžšαž€αž·αž…αŸ’αž…αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αžΌαžœαžˆαŸ’αž˜αŸ„αŸ‡αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“ αž αžΎαž™αž”αŸ’αžαžΌαžšαž€αž»αž„αžαžΆαž€αŸ‹αž‘αŸ…αžŸαŸ’αžαžΆαž“αž—αžΆαž– "αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹"αŸ”
  7. αž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αž•αŸ’αž‘αžΆαŸ†αž„ "αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–" αž…αž»αž… "αž”αž„αŸ’αž€αžΎαž" αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αžœαžΆαž› "αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž¬αžŸαŸ’αž‚αŸ’αžšαžΈαž”" αž…αž»αž… "αžšαž€αž˜αžΎαž›" αžŸαŸ’αžœαŸ‚αž„αžšαž€αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž€αŸ’αž“αž»αž„αž‡αŸ†αž αžΆαž“αž‘αžΈαž–αžΈαžš bat αž―αž€αžŸαžΆαžšαž αžΎαž™αž…αž»αž…αž™αž›αŸ‹αž–αŸ’αžšαž˜αŸ”
  8. αž…αž»αž…αž™αž›αŸ‹αž–αŸ’αžšαž˜ αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž…αžΆαŸ†αž”αžΆαž…αŸ‹ αž”αž‰αŸ’αž…αžΌαž›αž–αžΆαž€αŸ’αž™αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αžŽαž“αžΈαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”
  9. αžŸαŸ’αžœαŸ‚αž„αžšαž€αž€αž·αž…αŸ’αž…αž€αžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž–αŸαž› αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžœαžΆ αž αžΎαž™αž…αž»αž…αž”αŸŠαžΌαžαž»αž„ "αžšαžαŸ‹" αž“αŸ…αž‡αŸ’αžšαž»αž„αžαžΆαž„αžŸαŸ’αžαžΆαŸ†αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ”

bot αžšαž”αžŸαŸ‹αž™αžΎαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αž•αŸ’αž‘αŸƒαžαžΆαž„αž€αŸ’αžšαŸ„αž™ αž αžΎαž™αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž αžΌαžαžŠαž›αŸ‹αž’αŸ’αž“αž€αž”αž‰αŸ’αžˆαž”αŸ‹αž€αž·αž…αŸ’αž…αž€αžΆαžš αž¬αž”αž·αž‘αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžš αž¬αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŠαŸ‚αž›αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž±αŸ’αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ”

αžŸαŸαž…αž€αŸ’αžαžΈαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“

αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡ αž™αžΎαž„αž”αžΆαž“αžŸαŸ’αžœαŸ‚αž„αž™αž›αŸ‹αž–αžΈαžšαž”αŸ€αž”αžŸαžšαžŸαŸαžš bot αž–αŸαž‰αž›αŸαž‰ αžŠαŸ‚αž›αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž’αžΆαž…αž•αŸ’αž‰αžΎαžŸαžΆαžšαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ‚αž˜αž‘αžΆαŸ†αž„αž†αŸ’αž›αžΎαž™αžαž”αž‘αŸ…αž“αžΉαž„αžŸαžΆαžšαž…αžΌαž› αž“αž·αž„αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž•αž„αžŠαŸ‚αžšαŸ” αž…αŸ†αžŽαŸαŸ‡αžŠαžΉαž„αžŠαŸ‚αž›αž‘αž‘αž½αž›αž”αžΆαž“αž‚αžΊαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž αžΎαž™αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž—αžΆαž‚αž…αŸ’αžšαžΎαž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”

αž’αžαŸ’αžαž”αž‘αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž“αžΉαž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαžšαž”αŸ€αž”αž”αž“αŸ’αžαŸ‚αž˜αž€αŸ’αžαžΆαžšαž…αž»αž…αž‘αŸ… bot αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž„αžΆαžšαž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αŸ”

αž‡αžΆαžœαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ† αž‘αžΌαžšαž›αŸαž ΠΈ YouTube αž†αžΆαž“αŸ‚αž›αŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹