{ "info": { "author": "George Spanos", "author_email": "spanosgeorge@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "synopy\n======\n\nPython library for the Synology DiskStation APIs\n\nDescription\n===========\n\nThis project aims to support as many web APIs for the Synology NAS DiskStations,\nas possible.\n\nRight now the only official API specifications published by Synology(that I\nknow of) are:\n\n1. the Download Station API [here][1]\n2. the File Station API [here][2]\n\nThis is alpha software and there might be dramatic changes between releases, until\nit reaches a stable state.\n\n\nUsage\n=====\n\nLet's see some examples.\n\n### DownloadStationInfo API\n\n```python\n# SYNO.DownloadStation.Info namespace\nfrom synopy.base import Connection\nfrom synopy.api import DownloadStationInfo\n\n# Set up a connection\nconn = Connection('http', 'dsm.localdomain', port=5000)\n# Authenticate and get an 'sid' cookie\nconn.authenticate('admin', 'mypasswd')\n\n# Create an instance of the DownloadStationInfo API\ndsinfo_api = DownloadStationInfo(conn, version=1)\n# Make a 'getinfo' query\nresp = dsinfo_api.get_info()\n\nprint(resp.payload)\n\n{\n u'data':\n {\n u'is_manager': True,\n u'version': 2480,\n u'version_string': u'3.4-2480'\n },\n u'success': True\n }\n\n```\n\n### DownloadStationTask API\n\n```python\n\n# SYNO.DownloadStation.Task namespace\nfrom synopy.api import DownloadStationTask\n\ndstask_api = DownloadStationTask(conn, version=1)\n# Use the 'list' query method to see the running tasks\nresp = dstask_api.list()\n\nprint(resp.payload)\n{\n u'data':\n {\n u'offeset': 0, # That's not my typo ;)\n u'tasks': [{u'id': u'dbid_6',\n u'size': u'3260371830',\n u'status': u'paused', # <--- it's paused :(\n u'status_extra': None,\n u'title': u'TOTALLY.LEGAL.TORRENT.ISO',\n u'type': u'bt',\n u'username': u'admin'}],\n u'total': 1\n },\n u'success': True\n}\n\n# Let's put it to work!\nresp = dstask_api.resume(id='dbid_6')\n\nprint(resp.payload)\n{\n u'data': [{u'error': 0, u'id': u'dbid_6'}],\n u'success': True\n}\n\n# Let's check if indeed the task resumed, but ask for additional info\nresp = dstask_api.list(additional='detail,file')\nprint(resp.payload)\n{\n u'data':\n {\n u'offeset': 0,\n u'tasks':\n [{u'additional':\n {u'detail':\n {u'connected_leechers': 4,\n u'connected_seeders': 41,\n u'create_time': u'1395142482',\n u'destination': u'DSMFiles/Downloads',\n u'priority': u'auto',\n u'total_peers': 0,\n u'uri': u'magnet:?xt=really_long_magnet_link_here'},\n u'file': [\n {u'filename': u'Torrent Downloaded From Legal Torrents.txt',\n u'priority': u'normal',u'size': u'353',u'size_downloaded': u'353'},\n {u'filename': u'legaltorrent.iso',u'priority': u'normal',\n u'size': u'3260370944',u'size_downloaded': u'1872580608'},\n {u'filename': u'nfo.nfo',u'priority': u'normal',u'size': u'533',\n u'size_downloaded': u'533'}]\n },\n u'id': u'dbid_6',\n u'size': u'3260371830',\n u'status': u'downloading', # <--- yay! :)\n u'status_extra': None,\n u'title': u'TOTALLY.LEGAL.TORRENT.ISO',\n u'type': u'bt',\n u'username': u'admin'\n }\n ],\n u'total': 1\n },\n u'success': True\n}\n```\n\n### Notes\nMore to come!\n\n[1]: http://ukdl.synology.com/download/other/Synology_Download_Station_Official_API_V3.pdf\n[2]: http://ukdl.synology.com/ftp/ds/userguide/Synology_File_Station_API.pdf\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/graingert/synopy", "keywords": "", "license": "MIT", "maintainer": "Thomas Grainger", "maintainer_email": "synopy@graingert.co.uk", "name": "synopy", "package_url": "https://pypi.org/project/synopy/", "platform": "", "project_url": "https://pypi.org/project/synopy/", "project_urls": { "Homepage": "https://github.com/graingert/synopy" }, "release_url": "https://pypi.org/project/synopy/0.0.0.post1/", "requires_dist": [ "requests (<3.0.0,>=2)", "six (<2.0.0,>=1)" ], "requires_python": "", "summary": "Python library for the Synology DiskStation APIs", "version": "0.0.0.post1" }, "last_serial": 4730145, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "8b055634953d03138b780bdeb1dd7372", "sha256": "05adbbc3b24b5c26dc22f8101fed9d5892b426c8ab674180c7f7804cdbf9f8e9" }, "downloads": -1, "filename": "synopy-0.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8b055634953d03138b780bdeb1dd7372", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6963, "upload_time": "2019-01-23T09:51:29", "url": "https://files.pythonhosted.org/packages/ed/61/1579d3adcc1762e5c5713b7e79fbe4811a7ef40d21d20fba84c356d527c4/synopy-0.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3d3227a167d6bff7399250e67f5f4209", "sha256": "84db7efeb43a05894d604014452a9fb74f449bfc163015b67d2f7acadfe73583" }, "downloads": -1, "filename": "synopy-0.0.0.tar.gz", "has_sig": false, "md5_digest": "3d3227a167d6bff7399250e67f5f4209", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5608, "upload_time": "2019-01-23T09:51:31", "url": "https://files.pythonhosted.org/packages/63/66/6414d6ecb0b54e20773f080abf5ff9a27eb4b7d5868f385440fc6c4de6dd/synopy-0.0.0.tar.gz" } ], "0.0.0.post0": [ { "comment_text": "", "digests": { "md5": "339e7785d5145510cbb9d0c0196acca5", "sha256": "c3130c6b567d97e51ae692b79cdd0190aeb6dcf591bea8b125e99d8dd3040efd" }, "downloads": -1, "filename": "synopy-0.0.0.post0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "339e7785d5145510cbb9d0c0196acca5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7063, "upload_time": "2019-01-23T10:05:16", "url": "https://files.pythonhosted.org/packages/01/20/2e05ee51ec0f9cebde7cd9c8c09cacd6cf79ff607a257981a49b1e5e7e01/synopy-0.0.0.post0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a5f8d55efa5ac34d02b5f8bdcef087c5", "sha256": "53a75bc386367334eed980c2ef605da64321df621e58fb2aaf95f76ab98f6389" }, "downloads": -1, "filename": "synopy-0.0.0.post0.tar.gz", "has_sig": false, "md5_digest": "a5f8d55efa5ac34d02b5f8bdcef087c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5707, "upload_time": "2019-01-23T10:05:17", "url": "https://files.pythonhosted.org/packages/ab/0a/102e296c9609d19188791cef9a8c89e69f12d74873b8e8b79269868b2e7f/synopy-0.0.0.post0.tar.gz" } ], "0.0.0.post1": [ { "comment_text": "", "digests": { "md5": "6550f2cab8996d5664e3896baede62cf", "sha256": "ee71f6e38cd8e5621d18f0811caeb343033fce8043e482a9e170f04255a647c1" }, "downloads": -1, "filename": "synopy-0.0.0.post1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6550f2cab8996d5664e3896baede62cf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7068, "upload_time": "2019-01-23T10:09:25", "url": "https://files.pythonhosted.org/packages/66/78/7d8062a73982b65800d9a9a52f553233344a18409e37bfda91ffa1597884/synopy-0.0.0.post1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "61193a19b21c6e41fae14efa390adec8", "sha256": "9454f2f8b4bb77d45265240e2a132ef28384163abde7f22b2cfcd2da68796316" }, "downloads": -1, "filename": "synopy-0.0.0.post1.tar.gz", "has_sig": false, "md5_digest": "61193a19b21c6e41fae14efa390adec8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5714, "upload_time": "2019-01-23T10:09:27", "url": "https://files.pythonhosted.org/packages/5b/a3/e443996b81f3f66ef2afd94418abf875585ca64240a69f12515217ba5d53/synopy-0.0.0.post1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6550f2cab8996d5664e3896baede62cf", "sha256": "ee71f6e38cd8e5621d18f0811caeb343033fce8043e482a9e170f04255a647c1" }, "downloads": -1, "filename": "synopy-0.0.0.post1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6550f2cab8996d5664e3896baede62cf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7068, "upload_time": "2019-01-23T10:09:25", "url": "https://files.pythonhosted.org/packages/66/78/7d8062a73982b65800d9a9a52f553233344a18409e37bfda91ffa1597884/synopy-0.0.0.post1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "61193a19b21c6e41fae14efa390adec8", "sha256": "9454f2f8b4bb77d45265240e2a132ef28384163abde7f22b2cfcd2da68796316" }, "downloads": -1, "filename": "synopy-0.0.0.post1.tar.gz", "has_sig": false, "md5_digest": "61193a19b21c6e41fae14efa390adec8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5714, "upload_time": "2019-01-23T10:09:27", "url": "https://files.pythonhosted.org/packages/5b/a3/e443996b81f3f66ef2afd94418abf875585ca64240a69f12515217ba5d53/synopy-0.0.0.post1.tar.gz" } ] }