Library for talking to a running Urbit ship
Project description
Urlock-py
Urlock-py is a python library for connecting to a running urbit ship.
It consists of a single class Urlock. Methods are below.
__init__(url, code)
Constructor
`url` - url to the http interface of the running ship
`code` - the `+code` of the ship, should never be published
connect()
Connect to the running ship
poke(ship, app, mark, j)
`ship` - ship to send the poke
`app` - gall application to send the poke to
`mark` - mark of data sent to the gall application
`j` - json poke data
ack(eventId)
Send an acknowledgment of receipt of a message so it's cleared from the ship's queue
`eventId` - id of the event to acknowledge
sse_pipe()
returns the sseclient object
subscribe(ship, app, path)
`ship` - ship on which the gall application lives
`app` - gall application to subscribe to
`path` - path to subscribe on
Follows is a simple script to send a message and subscribe to a chat channel. The specifics require an understanding of the chat-store and chat-hook interfaces.
#!/usr/bin/python3
import urlock
import baseconvert
import time
import random
import dumper
zod = urlock.Urlock("http://localhost:8080", "lidlut-tabwed-pillex-ridrup")
r = zod.connect()
s = zod.subscribe("zod", "chat-store", "/mailbox/~/~zod/mc")
pipe = zod.sse_pipe()
s = baseconvert.base(random.getrandbits(128), 10, 32, string=True).lower()
uid = '0v' + '.'.join(s[i:i+5] for i in range(0, len(s), 5))[::-1]
p = zod.poke("zod", "chat-hook", "json", {"message": {"path": "/~/~zod/mc",
"envelope": {"uid": uid,
"number": 1,
"author": "~zod",
"when": int(time.time() * 1000),
"letter": {"text": "hello world!"}}}})
for m in pipe.events():
dumper.dump(m)
dumper.dump(zod.ack(int(m.id)))
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file urlock-0.1.22.tar.gz.
File metadata
- Download URL: urlock-0.1.22.tar.gz
- Upload date:
- Size: 2.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8cc24385bb88455db2c49ebd3aaacdfcc5c18e67b1e118c16ab65a1b9c0e9f2e
|
|
| MD5 |
d3e10b8f8536af531aae21b85f329675
|
|
| BLAKE2b-256 |
4027a5889c64a3f95d42597b9e0b15f463c4cc679660a8499ace432947af43e3
|
File details
Details for the file urlock-0.1.22-py3-none-any.whl.
File metadata
- Download URL: urlock-0.1.22-py3-none-any.whl
- Upload date:
- Size: 3.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9316a89c64e7d9488be46ffafb12e6fbdbbda7f6f8a1fe5c969a523a0a7b6d27
|
|
| MD5 |
0ecc265da810d2ffdac1c05d7cb12d5b
|
|
| BLAKE2b-256 |
bbc652a9959637e1a24eae5e428f10f2f6a5f790bc80445055581d645b0127cb
|