为Synology DiskStation API提供的Python库
项目描述
synopy
为Synology DiskStation API提供的Python库
描述
本项目旨在尽可能支持更多Synology NAS DiskStation的Web API。
目前,Synology已发布(据我所知)的官方API规范有
这是alpha软件,在达到稳定状态之前,版本之间可能会有重大变化。
用法
让我们看看一些示例。
DownloadStationInfo API
# SYNO.DownloadStation.Info namespace
from synopy.base import Connection
from synopy.api import DownloadStationInfo
# Set up a connection
conn = Connection('http', 'dsm.localdomain', port=5000)
# Authenticate and get an 'sid' cookie
conn.authenticate('admin', 'mypasswd')
# Create an instance of the DownloadStationInfo API
dsinfo_api = DownloadStationInfo(conn, version=1)
# Make a 'getinfo' query
resp = dsinfo_api.get_info()
print(resp.payload)
{
u'data':
{
u'is_manager': True,
u'version': 2480,
u'version_string': u'3.4-2480'
},
u'success': True
}
DownloadStationTask API
# SYNO.DownloadStation.Task namespace
from synopy.api import DownloadStationTask
dstask_api = DownloadStationTask(conn, version=1)
# Use the 'list' query method to see the running tasks
resp = dstask_api.list()
print(resp.payload)
{
u'data':
{
u'offeset': 0, # That's not my typo ;)
u'tasks': [{u'id': u'dbid_6',
u'size': u'3260371830',
u'status': u'paused', # <--- it's paused :(
u'status_extra': None,
u'title': u'TOTALLY.LEGAL.TORRENT.ISO',
u'type': u'bt',
u'username': u'admin'}],
u'total': 1
},
u'success': True
}
# Let's put it to work!
resp = dstask_api.resume(id='dbid_6')
print(resp.payload)
{
u'data': [{u'error': 0, u'id': u'dbid_6'}],
u'success': True
}
# Let's check if indeed the task resumed, but ask for additional info
resp = dstask_api.list(additional='detail,file')
print(resp.payload)
{
u'data':
{
u'offeset': 0,
u'tasks':
[{u'additional':
{u'detail':
{u'connected_leechers': 4,
u'connected_seeders': 41,
u'create_time': u'1395142482',
u'destination': u'DSMFiles/Downloads',
u'priority': u'auto',
u'total_peers': 0,
u'uri': u'magnet:?xt=really_long_magnet_link_here'},
u'file': [
{u'filename': u'Torrent Downloaded From Legal Torrents.txt',
u'priority': u'normal',u'size': u'353',u'size_downloaded': u'353'},
{u'filename': u'legaltorrent.iso',u'priority': u'normal',
u'size': u'3260370944',u'size_downloaded': u'1872580608'},
{u'filename': u'nfo.nfo',u'priority': u'normal',u'size': u'533',
u'size_downloaded': u'533'}]
},
u'id': u'dbid_6',
u'size': u'3260371830',
u'status': u'downloading', # <--- yay! :)
u'status_extra': None,
u'title': u'TOTALLY.LEGAL.TORRENT.ISO',
u'type': u'bt',
u'username': u'admin'
}
],
u'total': 1
},
u'success': True
}
注意
更多内容即将到来!