用于BitTorrent同步的PythonAPI客户端

btsync.p的Python项目详细描述


btsync.py

Build StatusCoverage Status

 ____   ______  _____ __ __  ____     __      ____  __ __
|    \ |      |/ ___/|  |  ||    \   /  ]    |    \|  |  |
|  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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java我应该关闭tcp连接吗?   java指定初始化一个有引用和没有引用的类之间的区别   Java JSON反序列化错误   java将InputStream插入PostgreSQL   java Android屏幕在活动启动时取消伪装   java两个字符串实例看起来相同,但它们的哈希代码不同   java如何创建**数字**而不是字符串的数组列表?   java我可以确定由正则表达式模式匹配的第一个字符集吗?   java以编程方式更改日期范围的日期格式   java Hibernate在加载时填充自动连接字段   java如何使两个不相关的实体(两个存储库)同时在一个项目中运行?可能吗?   使用singlechildevent检索java Firebase数据   在安卓中尝试动态添加片段时未找到java ID   在HTML中编码Java GB2312字符串无法正确显示   java在缓慢的消费卡夫卡上处理背压并避免重新平衡   由hibernate生成的java查询过于冗长