You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Tanner Collin 6e96b6cee4 Let users initialize bwb object with ID themselves 2 years ago
bwb Let users initialize bwb object with ID themselves 2 years ago
.gitignore Initial commit 2 years ago
README.md Let users initialize bwb object with ID themselves 2 years ago
build-upload.sh Add README and build script 2 years ago
license.txt Initial commit 2 years ago
setup.py Let users initialize bwb object with ID themselves 2 years ago

README.md

bwb

bot with bot.

Usage

Install with pip install --upgrade bwb.

from bwb import bwb
bwb = bwb.bwb(TELEGRAM_ID)

Handshaking

Boot up:

client.send_message(CHAT_ID, '000000init ' + bwb.init())

On 000000init [data]:

event.respond('000000handshake ' + bwb.handshake(data))

On 000000handshake [data]:

event.respond(bwb.wrap('secret ' + bwb.secret(data), handshake=True))

On Handshake OTP authed 123456secret [data]:

bwb.set_secret(data)
event.respond(bwb.wrap('🤝'))

On OTP authed 123456🤝:

event.respond('🤝')

Interaction

Run every incoming message through bwb.parse() since it's inexpensive. This will decrypt and remove base58 encoding.

Once decoded, send it through bwb.check_auth() which will return True or False if the code is valid.

Example:

text = bwb.parse(text)
if text.startswith('!'):
    ...
elif text.startswith('000000'):
    text = text[6:]
elif bwb.check_auth(text, handshake=True):
    handshake_authed = True
    text = text[6:]
elif bwb.check_auth(text):
    authed = True
    text = text[6:]
else:
    return

Use bwb.wrap() to auth and encode outgoing commands.

Params:

wrap(text, handshake=False, target=None, b58=False, enc=False)

Examples:

out = bwb.wrap('ping')  # broadcast all bots
out = bwb.wrap('ping', target=TANNER)  # auth for Tannerbot
out = bwb.wrap('ping', target=JASON, enc=True)  # base58 encrypt
out = bwb.wrap('ping', target=MOLLY, b58=True)  # base58

Development

Setup

Clone the repo.

To test your changes:

pip install --upgrade ~/path/to/bwb

Deployment

Install setuptools:

python3 -m pip install --user --upgrade setuptools wheel
  • Increment version number in setup.py

Build and upload:

bash build-upload.sh