Browse files

Initial project structure

  • Loading branch information...
1 parent e6dc046 commit 84d541953f665995ed5807460f4d04e8d315ebe7 @mk-fg committed with Sep 16, 2012
Showing with 119 additions and 0 deletions.
  1. +5 −0 .gitignore
  2. +13 −0 COPYING
  3. +61 −0 README.md
  4. +40 −0 setup.py
  5. 0 skydrive/__init__.py
View
5 .gitignore
@@ -0,0 +1,5 @@
+/*.egg-info
+/build
+/dist
+*.pyc
+*.pyo
View
13 COPYING
@@ -0,0 +1,13 @@
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ Version 2, December 2004
+
+ Copyright (C) 2012 Mike Kazantsev <mk.fraggod@gmail.com>
+
+ Everyone is permitted to copy and distribute verbatim or modified
+ copies of this license document, and changing it is allowed as long
+ as the name is changed.
+
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. You just DO WHAT THE FUCK YOU WANT TO.
View
61 README.md
@@ -0,0 +1,61 @@
+python-skydrive
+--------------------
+
+Python interface to [SkyDrive
+API](http://msdn.microsoft.com/en-us/library/live/hh826521).
+
+This module allows to access data on Microsoft SkyDrive cloud storage from
+python code, abstracting authentication, http requests and response processing
+to a simple python methods.
+
+Under heavy development, not ready for general usage yet.
+
+
+API notes
+--------------------
+
+Important: these details can (naturally) go obsolete, especially if timestamp of
+this doc is older than the one of the API docs, in which case please open an
+Issue pointing to the inconsistency.
+
+It's quite a conventional REST API with JSON encoding of structured data, like
+pretty much every other trendy modern API, say, github.
+
+Permissions are set per-path, are inherited for the created objects and
+**cannot** be changed through the API, only through the Web UI (or maybe
+proprietary windows interfaces as well).
+
+Accessible to everyone URL links (of different types - embedded, read-only,
+read-write, preauthenticated) to any restricted-access object (that is reachable
+through the API) can be provided though (recursive?), a bit like in tahoe-lafs,
+but probably without the actual crypto keys embedded in them (not much point as
+they're kept server-side along with the files anyway).
+
+Authentication is "[OAuth
+2.0](http://msdn.microsoft.com/en-us/library/live/hh243647.aspx)", which is
+quite ambigous all by itself, and especially when being implemented by
+well-known for it's proprietary "cripple-everything-else" extension creep
+Microsoft.
+
+All but a few default paths (like "my_documents") are accessed by file/folder
+IDs, which are not derived from their names or paths in any obvious way and look
+like "folder.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!110".
+UI-visible names come on top of these as metadata.
+
+There are some handy special API URLs for stuff like quota and a list of recent
+changes.
+
+Errors can be returned for most ops, encoded as JSON in responses and have a
+human-readable "code" (like "resource_quota_exceeded") and descriptive
+"message".
+
+API allows to request image-previews of an items.
+
+According to [SkyDrive interaction
+guidelines](http://msdn.microsoft.com/en-us/library/live/hh826545#guidelines),
+it is discouraged (though not explicitly prohibited) to upload files in
+non-conventional formats that aren't useable to other apps (under "Use SkyDrive
+for the things that it’s good at"):
+
+ To support this principle, the Live Connect APIs limit the set of file formats
+ that apps can upload to SkyDrive.
View
40 setup.py
@@ -0,0 +1,40 @@
+#!/usr/bin/env python
+
+from setuptools import setup, find_packages
+import os
+
+pkg_root = os.path.dirname(__file__)
+
+# Error-handling here is to allow package to be built w/o README included
+try: readme = open(os.path.join(pkg_root, 'README.md')).read()
+except IOError: readme = ''
+
+setup(
+
+ name = 'python-skydrive',
+ version = '12.09.1',
+ author = 'Mike Kazantsev',
+ author_email = 'mk.fraggod@gmail.com',
+ license = 'WTFPL',
+ keywords = 'skydrive api oauth2 rest microsoft cloud live liveconnect',
+ url = 'http://github.com/mk-fg/python-skydrive',
+
+ description = 'Python interface to Microsoft LiveConnect SkyDrive REST API',
+ long_description = readme,
+
+ classifiers = [
+ 'Development Status :: 4 - Beta',
+ 'Intended Audience :: Developers',
+ 'Intended Audience :: Information Technology',
+ 'License :: OSI Approved',
+ 'Operating System :: OS Independent',
+ 'Programming Language :: Python',
+ 'Programming Language :: Python :: 2.7',
+ 'Programming Language :: Python :: 2 :: Only',
+ 'Topic :: Internet',
+ 'Topic :: Software Development',
+ 'Topic :: System :: Archiving',
+ 'Topic :: System :: Filesystems' ],
+
+ packages = find_packages(),
+ include_package_data = True )
View
0 skydrive/__init__.py
No changes.

0 comments on commit 84d5419

Please sign in to comment.