Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

python-tent-client
==================

A command-line client for talking to [Tent](http://tent.io/) servers such as [tent.is](https://tent.is/).

Current Status
--------------

We're in the "move fast and break things" phase right now.

What works:
* Discovery of the tent server's API root using link headers
* Registering an app with the server and requesting permissions using OAuth
* Auth keys are saved to a local config file for use next time
* API methods (both public ones and auth-requiring ones)

It should be possible to register a notification URL using this code, but since it's not necessarily running a webserver it won't be able to be notified of incoming posts. In that case it can poll for new updates.

What needs attention:
* Some API methods have not been written yet. Most of them should be quick to write by starting with copies of the methods that are already done.
* Write tests
* Error handling. Should add a few exception types and also pay closer attention to errors from the `requests` module.
* Documentation
* Find elegant ways to deal with the JSON we get back from the Tent server. Maybe add some classes representing posts, profiles, etc.
* Package this up as a real Python module that can be installed in the usual way

Dependencies
------------

* [requests](http://docs.python-requests.org/en/latest/#)

Installation of dependencies:

```
# get requests using pip
pip install requests

# you might already have an old version of requests that's missing the link headers feature. If so:
pip install --update requests
```

Quick Start
-----------

Run `example.py` and it will launch your browser, have the Tent server ask you to approve the app, and then post a hello world message. The OAuth process is awkward when run from a command line, so read the prompt when it asks you to copy and paste things from your browser. You only have to do this once; after that your auth details are saved in 'auth.cfg' and reused in future runs.

`example_dashboard.py` will get your latest posts and followings' posts and print them to the shell.

Here's a quick overview:

```
import tentapp
tentapp.debug = False # Turn this on if you want to see verbose debugging info while
# the app is running. Defaults to False.


# "entity" is the Tent version of a username. It's a full URL.
entityUrl = 'https://pythonclienttest.tent.is'
app = tentapp.TentApp(entityUrl)

# Get your profile info as a JSON-style Python dictionary
print app.getProfile()

# Send the user to their tent server to approve this app
# and save the resulting keys in a local file
app.authorizeFromCommandLine('keystore.js')

# Post a new post. For now you need to supply the JSON dictionary yourself.
app.putPost(yourPostJsonHere)
```

You'll need to work directly with the JSON types described here: http://tent.io/docs/app-server

Release files for tentapp 0.1.0dev6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tentapp 0.1.0dev6
File Size Uploaded
tentapp-0.1.0dev6.tar.gz 18.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tentapp 0.1.0dev6
File Interpreter ABI Platform
tentapp-0.1.0dev6-py2.6.egg Legacy Egg format - - Details

Total release size: 41.1 kB

Release files / tentapp-0.1.0dev6.tar.gz

Download URL tentapp-0.1.0dev6.tar.gz
Size 18.4 kB
Tags Source
SHA-256 checksum
How to use checksums
afacb554a490498ad6be5db86b65c331c6f0ce728754dba7eef413026e49b6c6
BLAKE2b-256 checksum
How to use checksums
8e179be8dccf1635139671dd6719502858648374cc6e06169ce29a0ed46ec3b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / tentapp-0.1.0dev6-py2.6.egg

Download URL tentapp-0.1.0dev6-py2.6.egg
Size 22.7 kB
Tags Egg
SHA-256 checksum
How to use checksums
1ee937a88f3c43e0648f38d80035846715af48a929fd5c1417e22485c504ee1b
BLAKE2b-256 checksum
How to use checksums
7be6916403a97608ff43ef9381bc37a57ca3f26f8d45bc86c704b740b5d0bf85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page