def download_all_documents(doctype=None, dirpath=None): """Downloads all the documents associated with an account and saves them as a PDF. If no name is given, document is saved as a combination of the data of creation, type, and id. If no directory is given, document is saved in the root directory of code. :param doctype: The type of document to download, such as account_statement. :type doctype: Optional[str] :param dirpath: The directory of where to save the documents. :type dirpath: Optional[str] :returns: Returns the list of documents from get_documents(info=None) """ documents = get_documents() downloaded_files = False if dirpath: directory = dirpath else: directory = 'robin_documents/' counter = 0 for item in documents: if doctype == None: data = helper.request_document(item['download_url']) if data: name = item['created_at'][0:10] + '-' + \ item['type'] + '-' + item['id'] filename = directory + name + '.pdf' os.makedirs(os.path.dirname(filename), exist_ok=True) open(filename, 'wb').write(data.content) downloaded_files = True counter += 1 print('Writing PDF {}...'.format(counter)) else: if item['type'] == doctype: data = helper.request_document(item['download_url']) if data: name = item['created_at'][0:10] + '-' + \ item['type'] + '-' + item['id'] filename = directory + name + '.pdf' os.makedirs(os.path.dirname(filename), exist_ok=True) open(filename, 'wb').write(data.content) downloaded_files = True counter += 1 print('Writing PDF {}...'.format(counter)) if downloaded_files == False: print('WARNING: Could not find files of that doctype to download') else: if counter == 1: print('Done - wrote {} file to {}'.format(counter, os.path.abspath(directory))) else: print('Done - wrote {} files to {}'.format(counter, os.path.abspath(directory))) return(documents)
def download_document(url, name=None, dirpath=None): """Downloads a document and saves as it as a PDF. If no name is given, document is saved as the name that Robinhood has for the document. If no directory is given, document is saved in the root directory of code. :param url: The url of the document. Can be found by using get_documents(info='download_url'). :type url: str :param name: The name to save the document as. :type name: Optional[str] :param dirpath: The directory of where to save the document. :type dirpath: Optional[str] :returns: Returns the data from the get request. """ data = helper.request_document(url) print('Writing PDF...') if not name: name = url[36:].split('/', 1)[0] if dirpath: directory = dirpath else: directory = 'robin_documents/' filename = directory + name + ' .pdf' os.makedirs(os.path.dirname(filename), exist_ok=True) open(filename, 'wb').write(data.content) print('Done - Wrote file {}.pdf to {}'.format(name, os.path.abspath(filename))) return(data)