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.

114 lines
1.8 KiB

# bwb
bot with bot.
## Usage
Install with `pip install --upgrade bwb`.
5 years ago
```text
from bwb import bwb
bwb = bwb.bwb(TELEGRAM_ID)
```
### Handshaking
Boot up:
5 years ago
```text
client.send_message(CHAT_ID, '000000init ' + bwb.init())
```
On `000000init [data]`:
5 years ago
```text
event.respond('000000handshake ' + bwb.handshake(data))
```
On `000000handshake [data]`:
```text
event.respond(bwb.wrap('secret ' + bwb.secret(data), handshake=True))
```
On _Handshake OTP authed_ `123456secret [data]`:
```text
bwb.set_secret(data)
event.respond(bwb.wrap('🤝'))
```
On _OTP authed_ `123456🤝`:
```text
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:
5 years ago
```text
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:
5 years ago
```text
wrap(text, handshake=False, target=None, b58=False, enc=False)
```
Examples:
5 years ago
```text
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:
5 years ago
```text
pip install --upgrade ~/path/to/bwb
```
### Deployment
Install setuptools:
5 years ago
```text
python3 -m pip install --user --upgrade setuptools wheel
```
* Increment version number in `setup.py`
Build and upload:
5 years ago
```text
bash build-upload.sh
```