Go to file
2019-09-11 00:51:43 +00:00
bwb Switch from pycryptodome to cryptography library 2019-09-11 00:51:43 +00:00
.gitignore Initial commit 2019-09-06 01:56:11 -06:00
build-upload.sh Add README and build script 2019-09-10 02:32:11 +00:00
license.txt Initial commit 2019-09-06 01:56:11 -06:00
README.md Update handshake algorithm 2019-09-10 04:56:57 +00:00
setup.py Switch from pycryptodome to cryptography library 2019-09-11 00:51:43 +00:00

bwb

bot with bot.

Usage

Install with pip install --upgrade bwb.

# Import one of:
from bwb.tanner import bwb
from bwb.jason import bwb
from bwb.tdev import bwb
from bwb.molly import bwb

Handshaking

On boot up, send 000000handshake [secret] to BWB chat:

secret = bwb.init()
await client.send_message(BWB, '000000handshake ' + secret)

When you see a 000000handshake [secret data]:

bwb.init(secret_data)
await client.send_message(BWB, bwb.wrap('🤝'))

When you see and authed '🤝', reply with unauthed '🤝'.

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):
    authed = True
    text = text[6:]
else:
    return

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

Params:

wrap(text, 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