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