A Python API client for BitTorrent Sync
Project description
btsync.py
____ ______ _____ __ __ ____ __ ____ __ __ | \ | |/ ___/| | || \ / ] | \| | | | o )| ( \_ | | || _ | / / | o ) | | | ||_| |_|\__ || ~ || | |/ / | _/| ~ | | O | | | / \ ||___, || | / \_ __ | | |___, | | | | | \ || || | \ || || | | | |_____| |__| \___||____/ |__|__|\____||__||__| |____/
A Python API client for BitTorrent Sync
Installation
Install from PyPI:
$ pip install btsync.py
Or Install from source:
$ git clone git@github.com:kevinjqiu/btsync.py.git
$ cd btsync.py
$ pip install -r requirements.txt
$ python setup.py install
Examples
You need to first download btsync for your platform. Once it’s downloaded, extract it somewhere and generate a sample config file:
$ cd /path/to/btsync
$ ./btsync --dump-sample-config > config
Change the default config if you wish. The pieces of config you need for the client to connect are:
host
port (listening port)
username
password
Run btsync with the config:
$ ./btsync --config config
With btsync running, now you can connect to it using this library:
Creating a client:
>>> import btsync
>>> client = btsync.Client(
... host='127.0.0.1',
... port='1106',
... username='admin',
... password='password')
Listing sync folders:
>>> import pprint
>>> pprint.pprint(client.sync_folders)
[{u'iswritable': 1,
u'name': u'/home/foo/bar',
u'peers': [{u'direct': 1,
u'name': u'rpi',
u'status': u'Synced on 10/08/13 11:21:30'}],
u'readonlysecret': u'--------------------------------',
u'secret': u'--------------------------------',
u'size': u'353.9 MB in 256 files'},
{u'iswritable': 1,
u'name': u'/tmp',
u'peers': [],
u'readonlysecret': u'--------------------------------',
u'secret': u'--------------------------------',
u'size': u'56.9 kB in 14 files'}]
Generate a secret for adding a sync folder:
>>> secret = client.generate_secret()
>>> pprint.pprint(secret)
{u'rosecret': u'--------------------------------',
u'secret': u'--------------------------------'}
Add a sync folder:
>>> client.add_sync_folder('/tmp', secret['rosecret'])
>>> pprint.pprint(client.sync_folders[1])
{u'iswritable': 0,
u'name': u'/tmp',
u'peers': [],
u'secret': u'--------------------------------',
u'size': u'0 B in 0 files'}
Development
First, you need to setup a virtualenv, as it segregates local dependencies from the system libraries nicely:
$ virtualenv btsync.py-env
Activate the virtual environment:
$ cd btsync.py-env
$ . btsync.py-env/bin/activate
Clone this repo somewhere, e.g., $HOME/src/btsync.py:
$ git clone git@github.com:kevinjqiu/btsync.py.git
$ cd btsync.py
Install dev dependencies:
$ pip install -r requirements-dev.txt
Run tests:
$ fab test
You can also generate the coverage report:
$ fab coverage
To run integration tests, you need to have btsync executable on your $PATH:
$ fab test_integration
Optionally, you can set an environment variable BTSYNC before running the test:
$ BTSYNC=$HOME/btsync/btsync fab test_integration
To run coverage for integration tests:
$ fab coverage:integration
You can also change the port the btsync instance for integration test runs on (the default port is 59999):
$ BTSYNC_PORT=55555 fab test_integration
License
See LICENSE.
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
File details
Details for the file btsync.py-0.9.9.tar.gz
.
File metadata
- Download URL: btsync.py-0.9.9.tar.gz
- Upload date:
- Size: 6.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 618fca004b556b0d862ff37d586c5369fcc3e2333d9304abcc858b65dc759417 |
|
MD5 | 39dea8e0e0c89829af7f8c3a5c50189c |
|
BLAKE2b-256 | f8704949f7b06ff9534166a340baa2d8d9f94dd2f7dc1f6e0a21089ac386c981 |
File details
Details for the file btsync.py-0.9.9-py2.7.egg
.
File metadata
- Download URL: btsync.py-0.9.9-py2.7.egg
- Upload date:
- Size: 11.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 278a3a79b127c8ee757c14f245e35dd3bc1942b78d5f38d8c1b5200d050647e2 |
|
MD5 | 0e0fb2158281eeb9073ae6d6434b1e11 |
|
BLAKE2b-256 | 10d13fc8b14cb48901c73f74f753f00ded89a44eb202462e0a63fcdf4e772b58 |