用于BitTorrent同步的PythonAPI客户端
btsync.p的Python项目详细描述
btsync.py
____ ______ _____ __ __ ____ __ ____ __ __ | \ | |/ ___/| | || \ / ] | \| | | | o )| ( \_ | | || _ | / / | o ) | | | ||_| |_|\__ || ~ || | |/ / | _/| ~ | | O | | | / \ ||___, || | / \_ __ | | |___, | | | | | \ || || | \ || || | | | |_____| |__| \___||____/ |__|__|\____||__||__| |____/
用于BitTorrent同步的Python API客户端
安装
从PyPI安装:
$ pip install btsync.py
或从源安装:
$ git clone git@github.com:kevinjqiu/btsync.py.git
$ cd btsync.py
$ pip install -r requirements.txt
$ python setup.py install
示例
您需要首先为您的平台下载btsync。 下载后,将其解压缩到某个位置并生成一个示例配置文件:
$ cd /path/to/btsync
$ ./btsync --dump-sample-config > config
如果需要,请更改默认配置。客户端连接所需的配置如下:
- 主持人
- 端口(监听端口)
- 用户名
- 密码
运行btsync,配置为:
$ ./btsync --config config
运行btsync后,现在您可以使用此库连接到它:
创建客户端:
>>>importbtsync>>>client=btsync.Client(...host='127.0.0.1',...port='1106',...username='admin',...password='password')
正在列出同步文件夹:
>>>importpprint>>>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'}]
生成添加同步文件夹的机密:
>>>secret=client.generate_secret()>>>pprint.pprint(secret){u'rosecret':u'--------------------------------',u'secret':u'--------------------------------'}
添加同步文件夹:
>>>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'}
发展
首先,您需要设置一个virtualenv,因为它很好地将本地依赖项与系统库隔离开来:
$ virtualenv btsync.py-env
激活虚拟环境:
$ cd btsync.py-env
$ . btsync.py-env/bin/activate
在某处克隆此回购协议,例如$HOME/src/btsync.py:
$ git clone git@github.com:kevinjqiu/btsync.py.git
$ cd btsync.py
安装开发依赖项:
$ pip install -r requirements-dev.txt
运行测试:
$ fab test
您还可以生成覆盖率报告:
$ fab coverage
要运行集成测试,需要在$PATH:
$ fab test_integration
也可以在运行测试之前设置环境变量BTSYNC:
$ BTSYNC=$HOME/btsync/btsync fab test_integration
要运行集成测试的覆盖率:
$ fab coverage:integration
您还可以更改btsync实例运行集成测试的端口(默认端口为59999):
$ BTSYNC_PORT=55555 fab test_integration
许可证
见LICENSE。