Skip to main content
Donate to the Python Software Foundation or Purchase a PyCharm License to Benefit the PSF! Donate Now

Python framework for Bale messenger Bot API

Project description

# Bale bot python
[![Build Status](https://avatars1.githubusercontent.com/u/35299314?s=200&v=4)](https://github.com/balemessenger)

Python SDK and samples for [Bale bot messenger](https://developers.bale.ai).


### Register for an Access Token

You'll need to create your bot by [@Bot_Father](https://web.bale.ai/). Bot_Father gives you a Token to start.

### Installation

```bash
pip install -r requirements.txt
```

### Usage

```python
import asyncio

from balebot.filters import *
from balebot.handlers import MessageHandler, CommandHandler
from balebot.models.messages import *
from balebot.updater import Updater

updater = Updater(token="Bot_token",
loop=asyncio.get_event_loop())
bot = updater.bot
dispatcher = updater.dispatcher

```

__Note__: You need to set Config.py if you want to use the logger class


##### Simple communication with client

> Allows you to hear from client and answer.


```python
@dispatcher.message_handler(filters=TextFilter(keywords=["hello"])) # filter text the client enter to bot
def hear(bot, update):
message = TextMessage('Hello')
user_peer = update.get_effective_user()
bot.send_message(message, user_peer, success_callback=success, failure_callback=failure)
```


##### Sending a simple voice message:
__Note__:You should upload the voice file first.

> Allows you to send a voice message. (You can also send a document in the same way).


```python
def send_voice(bot, update):
user_peer = update.get_effective_user()
v_message = VoiceMessage(file_id=file_id, access_hash=access_hash, name="Hello", file_size='259969',
mime_type="audio/mpeg",
duration=20, file_storage_version=1)
bot.send_message(v_message, user_peer, success_callback=success, failure_callback=failure)
```

##### Sending a generic template message:

__Note__:Generic Template Messages
> Allows you to add cool text buttons to a general message.

```python
def ask_question(bot, update):
general_message = TextMessage("a message")
btn_list = [TemplateMessageButton(text="yes", value="yes", action=0),
TemplateMessageButton(text="no", value="no", action=0)]
template_message = TemplateMessage(general_message=general_message, btn_list=btn_list)
bot.send_message(template_message, user_peer, success_callback=success, failure_callback=failure)
```


##### Sending a generic purchase message:

> Allows you send a purchase message. Clients can pay the money requested by the message by pressing "pay" button.

```python

@dispatcher.message_handler(PhotoFilter())
def purchase_message(bot, update):
message = update.get_effective_message()
user_peer = update.get_effective_user()
first_purchase_message = PurchaseMessage(msg=message, account_number=6037991067471130, amount=10,
money_request_type=MoneyRequestType.normal)
bot.send_message(first_purchase_message, user_peer, success_callback=success, failure_callback=failure)
dispatcher.finish_conversation(update)
```

visit [bale-developers](https://developers.bale.ai) for more information



# Changelog
[![Build Status](https://avatars1.githubusercontent.com/u/35299314?s=200&v=4)](https://github.com/balemessenger)

## [1.7.14] - 2019-03-02
### Added
- exact_keywords argument to text_filter and template_response_filter
- termination signal handling
- sending to channel by nickName
### fixed
- code examples
- base_url added to updater arguments
- set default group shield to off

## [1.6.12] - 2019-01-08
### Added
- get_quoted_message and get_quoted_sender_peer_id to
FatSeqUpdate for getting replied and forwarded messages
- default photo and message type limitation for purchase message
- get_receipt function to BankMessage for getting receipt info as a named tuple
- get_receipt and get_quoted_message examples
### fixed
- filters problem
- handle monitoring hash function problem
- some code examples

## [1.5.11] - 2019-01-03
### Added
- added validator parameter to filters as a callable function to validate the inputs
- added text field among with text_message filed to template response message for unifying
with other classes text field
### fixed
- state holder problem at stop

## [1.4.10] - 2018-12-23
### Added
- Quoted Message Handler
- default action and value for template_message_button
- group_shield to config for preventing bot to handle updates from group_peer
- saving bot state_machine to redis db through state_holder and redis configs in config
- template_message, location_message and contact_message load_from_json

### fixed
- bot.send_document


## [1.3.9] - 2018-12-05
### Added
- get_response method in response class
- IPG payment message
- healthy socket connection

## [1.2.8] - 2018-09-30
### Added
- Send photo message easier than the past.
- Send Document message easier than the past.


### fixed
- network connection




Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
balebot-1.7.14-py3-none-any.whl (92.5 kB) Copy SHA256 hash SHA256 Wheel py3
balebot-1.7.14.tar.gz (34.4 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page