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()
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
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
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:
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)