Esempio n. 1
0
def GetRevisionsSample():
    """Get the revision history for resources."""
    client = CreateClient()
    for entry in client.GetResources(limit=55).entry:
        revisions = client.GetRevisions(entry)
        for revision in revisions.entry:
            print revision.publish, revision.GetPublishLink()
Esempio n. 2
0
def GetResourceAclSample():
    """Get and display the ACL for a resource."""
    client = CreateClient()
    for resource in client.GetResources(limit=5).entry:
        acl_feed = client.GetResourceAcl(resource)
        for acl in acl_feed.entry:
            print acl.role.value, acl.scope.type, acl.scope.value
    def get_all_documents(self):
        """Get and display all resources, using pagination."""
        client=self.__create_client()

        feed = client.GetResources()


        return feed
    def get_sub_folders(self, entry):
        """Returns all the sub Folders
    
        Arguments:
        - `entry`:gdata.docs.data.Resource (folder)
        """
        
        client=self.__create_client()
       
        subFolders=client.GetResources('https://docs.google.com/feeds/default/private/full'+'/'+entry.resource_id.text+'/contents/-/folder')

        return subFolders
    def get_folder_hierarchy(self):
        """Returns the folder hierarchy in Google Docs
        """
        client=self.__create_client()
        
        #Get the folders in root
        rootFolders=client.GetResources('https://docs.google.com/feeds/default/private/full/folder%3Aroot/contents/-/folder')

        #an array to store the root folders with the hierarchy
        folderHierarchy=[]

        #iterate through the root folders
        for rFolder in rootFolders.entry:
            rf=FolderGraphNode(rFolder,self)
            folderHierarchy.append(rf)
            rf.add_children()

        
        return folderHierarchy
Esempio n. 6
0
def GetResourceSample():
    """Fetch 5 resources from a feed, then again individually."""
    client = CreateClient()
    for e1 in client.GetResources(limit=5).entry:
        e2 = client.GetResource(e1)
        print 'Refetched: ', e2.title.text, e2.resource_id.text
Esempio n. 7
0
def GetResourcesSample():
    """Get and display first page of resources."""
    client = CreateClient()
    # Get a feed and print it
    feed = client.GetResources()
    PrintFeed(feed)
q['title-exact'] = 'true'
feed = gd_client.GetSpreadsheetsFeed(query=q)
spreadsheet_id = feed.entry[0].id.text.rsplit('/',1)[1]
feed = gd_client.GetWorksheetsFeed(spreadsheet_id)
worksheet_id = feed.entry[0].id.text.rsplit('/',1)[1]
rows = gd_client.GetListFeed(spreadsheet_id, worksheet_id).entry
for row in rows:
 firstname=row.custom['firstname'].text
 lastname=row.custom['lastname'].text
 email=row.custom['email'].text
 title_doc=assignment+' - '+lastname

 print title_doc

 feeduri='/feeds/default/private/full?title='+title_doc+'&title-exact=true&max-results=5'
 feed2 = client.GetResources(uri=feeduri)
 if not feed2.entry:
  print 'No document of that title.\n'
 doc_id=feed2.entry[0]

 aclfeed=client.GetAcl(doc_id)
 found=False
 for aclentry in aclfeed.entry:
 	if aclentry.scope.value==email:
		found=True
 		print aclentry.scope.value + ' already has permission.'
 	 	break
 if found==False:

# CHANGE THE PERMISSIONS OF THE DOCUMENTS (THE STUDENT IS 'A READER' and a 'COMMENTER')
  scope = gdata.acl.data.AclScope(value=email, type='user')
client.ssl = True
client.http_client.debug = False
client = gdata.docs.client.DocsClient(source='OpenSource-CreateDocs-v1')
client.ClientLogin(username, password, client.source);

#
q = gdata.spreadsheet.service.DocumentQuery()
q['title'] = students_data
q['title-exact'] = 'true'
feed = gd_client.GetSpreadsheetsFeed(query=q)
spreadsheet_id = feed.entry[0].id.text.rsplit('/',1)[1]
feed = gd_client.GetWorksheetsFeed(spreadsheet_id)
worksheet_id = feed.entry[0].id.text.rsplit('/',1)[1]
rows = gd_client.GetListFeed(spreadsheet_id, worksheet_id).entry

doclist=client.GetResources()

for row in rows:
 firstname=row.custom['firstname'].text
 lastname=row.custom['lastname'].text
 email=row.custom['email'].text
 title_doc=assignment+' - '+lastname

 found=False
 for doc in doclist.entry:
  	if doc.title.text==title_doc:
		found=True
 		print(doc.title.text + ' already exists.')
 	 	break
 if found==False:
Esempio n. 10
0

def PrintResource(resource):
  print resource.resource_id.text, resource.GetResourceType()
  

client = CreateClient()


f = open('/home/tor-browser.zip')
doc = gdata.docs.data.Resource(type='zip', title=f.name)
ms = gdata.data.MediaSource(file_handle=f, content_type='application/zip', content_length=os.path.getsize(f.name))

# Pass the convert=false parameter
create_uri = gdata.docs.client.RESOURCE_UPLOAD_URI + '?convert=false'
doc = client.CreateResource(doc, create_uri=create_uri, media=ms)

print 'Created, and uploaded:', doc.title.text, doc.resource_id.text

feed = client.GetResources()
PrintFeed(feed)

# assign 'reader' permission (share document with the given email address)
acl_entry = gdata.docs.data.AclEntry(
    scope=gdata.acl.data.AclScope(value=sys.argv[1], type='user'),
    role=gdata.acl.data.AclRole(value='reader'),
)

# calling function for permission
client.AddAclEntry(doc, acl_entry)