Lightweight framework to build Telegram bots.


Keywords
telegram, api, bot, framework, durov
License
MIT
Install
pip install pywood==0.1.3

Documentation

PROJECT STATUS: DEVELOPMENT

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ pytelegrambots?

pytelegrambots - лСгковСсный Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для создания Π±ΠΎΡ‚ΠΎΠ² для Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌΠ°.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Установка

pip install pytelegrambots

ΠžΠ±Ρ‰Π΅Π΅ описаниС

ИспользованиС

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±ΠΎΡ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ pytelegrambots Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹:

API

Класс FSM

Бобытия

БостояниС ОписаниС
IncomingCommandEvent Update Π΅ΡΡ‚ΡŒ число
IncomingStartCommandEvent Update Π΅ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π° /start
IncomingHelpCommandEvent Update Π΅ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π° /help
IncomingNumberEvent Update Π΅ΡΡ‚ΡŒ число
IncomingStrictNumberEvent Update Π΅ΡΡ‚ΡŒ число
IncomingTextEvent Update Π΅ΡΡ‚ΡŒ тСкст
IncomingStrictTextEvent Update Π΅ΡΡ‚ΡŒ строгий тСкст
IncomingSinglePhotoEvent Update Π΅ΡΡ‚ΡŒ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠ΅ Ρ„ΠΎΡ‚ΠΎ

РСализация собствСнных классов событий

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой класс события, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ:

  1. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ класс, унаслСдованный ΠΎΡ‚ класса eventlib.UpdateEvent
  2. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ happened(). ΠœΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Update, ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ True ΠΈΠ»ΠΈ False, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ опрСдСляСт Π»ΠΈ update Π΄Π°Π½Π½ΠΎΠ΅ событиС ΠΈΠ»ΠΈ Π½Π΅Ρ‚. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: cdferfre

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ создания Π±ΠΎΡ‚Π°

Π€ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Π±ΠΎΡ‚Π° для доставки ΠΏΠΈΡ†Ρ†Ρ‹. Π‘Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΡƒΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ Π±ΠΎΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅Π»Π°Ρ‚ΡŒ.

Π‘Π½Π°Ρ‡Π°Π»Π° Π±ΠΎΡ‚ привСтствуСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ПослС привСтствия, Π±ΠΎΡ‚ просит Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ ΠΏΠΈΡ†Ρ†Ρƒ ΠΆΠ΅``Π»Π°Π΅Ρ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚. (pizza_type: str)
ΠŸΠΎΡ‚ΠΎΠΌ Π±ΠΎΡ‚ просит ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ количСство ΠΏΠΈΡ†Ρ†. (quantity: int)
ΠŸΠΎΡ‚ΠΎΠΌ посрСдством ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ просит ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ способ получСния ΠΏΠΈΡ†Ρ†Ρ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ: самовывоз ΠΈΠ»ΠΈ доставка ΠΊΡƒΡ€ΡŒΠ΅Ρ€ΠΎΠΌ. (delivery_type: str)
Если самовывоз, Π±ΠΎΡ‚ присылаСт собСсСднику сообщСниС "ΠŸΠΈΡ†Ρ†Π° {pizza_type} Π² количСствС {quantity} Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Π° Ρ‡Π΅Ρ€Π΅Π· 15 ΠΌΠΈΠ½ΡƒΡ‚. НомСр Π·Π°ΠΊΠ°Π·Π° {chat_id}}"
Если ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π²Ρ‹Π±Ρ€Π°Π» доставку ΠΊΡƒΡ€ΡŒΠ΅Ρ€ΠΎΠΌ, "ΠŸΠΈΡ†Ρ†Ρƒ {pizza_type} Π² количСствС {quantity} ΠΊΡƒΡ€ΡŒΠ΅Ρ€ ΠΏΡ€ΠΈΠ²Π΅Π·Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· 45 ΠΌΠΈΠ½ΡƒΡ‚."

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°<a name="example-preliminaries>

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π±ΠΎΡ‚Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ @botfather ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ‚ΠΎΠΊΠ΅Π½.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° состояний

Π”Π°Π΄ΠΈΠΌ названия состояниям, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Ρ‡Π°Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с Π±ΠΎΡ‚ΠΎΠΌ:

БостояниС ОписаниС
AfterStart Π§Π°Ρ‚ сразу послС старта ΠΏΠ΅Ρ€Π΅Π΄ привСтствСнным сообщСниСм
AfterWelcomeMessage Π§Π°Ρ‚ послС привСтствСнного сообщСния
PromptedForPizzaType Π§Π°Ρ‚ послС отобраТСния прСдлоТСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚ΠΈΠΏ ΠΏΠΈΡ†Ρ†Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ Ρ…ΠΎΡ‡Π΅Ρ‚ Π·Π°ΠΊΠ°Π·Π°Ρ‚ΡŒ
PromptedForQuantity Π§Π°Ρ‚ послС отобраТСния прСдлоТСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ количСства Π·Π°ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ ΠΏΠΈΡ†Ρ†Ρ‹
PromptedForDeliveryType Π§Π°Ρ‚ послС отобраТСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ с Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π΄Π²ΡƒΡ… способов доставки
DeliveryByCouurierMessagePosted Π§Π°Ρ‚ послС отобраТСния ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ сообщСния ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΏΠΈΡ†Ρ†
HimselfDeliveryPosted Π§Π°Ρ‚ послС отобраТСния ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ сообщСния ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΏΠΈΡ†Ρ†

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ события

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΌΠΎΡ‰ΠΈ

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ способ получСния ΠΏΠΎΠΌΠΎΡ‰ΠΈ- созданиС вопроса Π² Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΈ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ эл. адрСсу maliuzhenetsdzmitry @ гугляком ()

ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅

ЛицСнзия

MIT License Copyright (c) 2020 Dzmitry Maliuzhenets