mirror of
https://github.com/tinode/chat.git
synced 2026-06-06 20:18:25 +00:00
79 lines
2.4 KiB
Plaintext
79 lines
2.4 KiB
Plaintext
# This script shows what can be done with tn-cli. Run it as
|
||
#
|
||
# python tn-cli.py --no-login < sample-script.txt
|
||
#
|
||
# The script performs the following:
|
||
#
|
||
# - Creates a new user Test User
|
||
# - Uses 'fnd' topic to locate user Alice
|
||
# - Subscribes Test User to Alice
|
||
# - Sends typing notification to Alice
|
||
# - Sends a message to Alice
|
||
# - Creates a group topic Test Group
|
||
# - Adds Alice to the Test Group
|
||
# - Sends a message with a drafty-formatted form to the Test Group
|
||
# - Deletes Test Group
|
||
# - Deletes Test User
|
||
|
||
# Create user 'Test User'
|
||
|
||
.must $user acc --scheme=basic --secret=test:test123 \
|
||
--fn='Test User' --photo=./test-128.jpg --tags=test,test-user --do-login \
|
||
--auth=JRWPA --anon=JW \
|
||
--cred=email:test@example.com
|
||
|
||
# Print out user's auth token.
|
||
# Params is a map, thus must be addressed as params[x] instead of params.x
|
||
.log $user.params[token]
|
||
|
||
# Login and confirm credentials with a dummy response
|
||
.must login --scheme=token --secret=$user.params[token] --cred=email::123456
|
||
|
||
# Alternatively just login with an existing user.
|
||
# .must $user login bob:bob123
|
||
|
||
# Find Alice
|
||
.must sub fnd
|
||
.must set fnd --public=email:alice@example.com
|
||
.must $meta get fnd --sub
|
||
|
||
# Print out Alice's UID.
|
||
.log $meta.sub[0].topic
|
||
|
||
# Subscribe to Alice
|
||
.must sub $meta.sub[0].topic
|
||
|
||
# Send typing notification to Alice (async)
|
||
note $meta.sub[0].topic
|
||
|
||
# Send a plain text message to Alice (async)
|
||
pub $meta.sub[0].topic 'Hello, Alice'
|
||
|
||
# Create a new group topic Test Group
|
||
.must $group sub new --fn='Test Group' --tags=test,test-group \
|
||
--auth=JRWPA --anon=JR
|
||
|
||
# Add Alice to the new topic.
|
||
.must set $group.topic --user=$meta.sub[0].topic
|
||
|
||
# Publish a drafty-formatted form to the new topic.
|
||
pub $group.topic --drafty='{"txt": "What’s your favorite color?red green none",\
|
||
"fmt": [ {"at": 0, "len": 42, "tp": "FM"}, {"at": 0, "len": 27, "tp": "ST"},\
|
||
{"at": 27, "len": 14, "tp": "RW"}, {"at": 27, "len": 3, "key": 0}, {"at": 31, "len": 5, "key": 1},\
|
||
{"at": 37, "len": 4, "key": 2} ], "ent": [ {"tp": "BN", "data": {"name": "red", "act": "pub", "val": 3840}},\
|
||
{"tp": "BN", "data": {"name": "green", "act": "pub", "val": 240}},\
|
||
{"tp": "BN", "data": {"name": "none", "act": "pub"}}]}'
|
||
|
||
|
||
# Wait 2 seconds before cleaning up.
|
||
.sleep 2000
|
||
|
||
# Delete Test Group.
|
||
.await del topic --topic=$group.topic --hard
|
||
|
||
# Delete Test User
|
||
.await del user --hard
|
||
|
||
# Wait for more messages before exiting.
|
||
.sleep 1000
|