Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

urlock-0.1.22.tar.gz (2.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

urlock-0.1.22-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

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

Hashes for urlock-0.1.22.tar.gz
Algorithm Hash digest
SHA256 8cc24385bb88455db2c49ebd3aaacdfcc5c18e67b1e118c16ab65a1b9c0e9f2e
MD5 d3e10b8f8536af531aae21b85f329675
BLAKE2b-256 4027a5889c64a3f95d42597b9e0b15f463c4cc679660a8499ace432947af43e3

See more details on using hashes here.

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

Hashes for urlock-0.1.22-py3-none-any.whl
Algorithm Hash digest
SHA256 9316a89c64e7d9488be46ffafb12e6fbdbbda7f6f8a1fe5c969a523a0a7b6d27
MD5 0ecc265da810d2ffdac1c05d7cb12d5b
BLAKE2b-256 bbc652a9959637e1a24eae5e428f10f2f6a5f790bc80445055581d645b0127cb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page