def update_readme(self): response = util.github_get('repos', self.owner, self.repo, 'readme', params={"ref": self.sha}) if response.status_code == 200: readme = base64.b64decode(json.loads(response.content)['content']) try: Content(parent=self.version_key, id='readme', content=readme, status=Status.ready, etag=response.headers.get('ETag', None)).put() except db.BadValueError: return self.error( "Could not store README.md as a utf-8 string", ErrorCodes.Version_utf) elif response.status_code == 404: readme = None else: return self.retry('error fetching readme (%d)' % response.status_code) if readme is not None: response = util.github_markdown(readme) if response.status_code == 200: Content(parent=self.version_key, id='readme.html', content=response.content, status=Status.ready, etag=response.headers.get('ETag', None)).put() else: return self.retry('error converting readme to markdown (%d)' % response.status_code)
def update_pages(self): bower = Content.get_by_id('bower', parent=self.version_key) if bower is None: return bower_json = bower.get_json() for _, path in bower_json.get('pages', {}).iteritems(): response = util.github_get('repos', self.owner, self.repo, 'contents/' + path, params={'ref': self.sha}) if response.status_code == 200: response_json = json.loads(response.content) markdown = None # Ensure a file was returned if isinstance(response_json, dict) and response_json.get('type') == 'file': markdown = base64.b64decode(response_json.get('content')) elif response.status_code == 404: markdown = None else: return self.retry('error fetching page %s (%d)' % (path, response.status_code)) if markdown is not None: response = util.github_markdown(markdown) if response.status_code == 200: Content(parent=self.version_key, id='page-' + path, content=response.content, status=Status.ready, etag=response.headers.get('ETag', None)).put() else: return self.retry('error converting page to markdown %s (%d)' % (path, response.status_code))
def update_readme(self, is_npm_package): if is_npm_package: # Load registry metadata to fetch readme path. library = Library.get_by_id(Library.id(self.owner, self.repo)) registry_metadata = json.loads(library.registry_metadata) if library.registry_metadata else None readme_path = registry_metadata.get('readmeFilename', 'README.md') response = util.unpkg_get(self.owner, self.repo, self.version, readme_path) readme = response.content else: # Load readme from GitHub endpoint. response = util.github_get('repos', self.owner, self.repo, 'readme', params={"ref": self.sha}) if response.status_code == 200: readme = base64.b64decode(json.loads(response.content)['content']) elif response.status_code == 404: readme = None else: return self.retry('error fetching readme (%d)' % response.status_code) if readme is not None: # Store the raw readme markdown. try: Content(parent=self.version_key, id='readme', content=readme, status=Status.ready, etag=response.headers.get('ETag', None)).put() except db.BadValueError: return self.error("Could not store README.md as a utf-8 string", ErrorCodes.Version_utf) # Convert markdown to HTML and store the result. response = util.github_markdown(readme) if response.status_code == 200: Content(parent=self.version_key, id='readme.html', content=response.content, status=Status.ready, etag=response.headers.get('ETag', None)).put() else: return self.retry('error converting readme to markdown (%d)' % response.status_code)
def update_pages(self): bower = Content.get_by_id('bower', parent=self.version_key) if bower is None: return bower_json = bower.get_json() for _, path in bower_json.get('pages', {}).iteritems(): response = util.github_get('repos', self.owner, self.repo, 'contents/' + path, params={'ref': self.sha}) if response.status_code == 200: response_json = json.loads(response.content) markdown = None # Ensure a file was returned if isinstance(response_json, dict) and response_json.get('type') == 'file': markdown = base64.b64decode(response_json.get('content')) elif response.status_code == 404: markdown = None else: return self.retry('error fetching page %s (%d)' % (path, response.status_code)) if markdown is not None: response = util.github_markdown(markdown) if response.status_code == 200: Content(parent=self.version_key, id='page-' + path, content=response.content, status=Status.ready, etag=response.headers.get('ETag', None)).put() else: return self.retry('error converting page to markdown %s (%d)' % (path, response.status_code))
def update_readme(self, is_npm_package): if is_npm_package: # Load registry metadata to fetch readme path. library = Library.get_by_id(Library.id(self.owner, self.repo)) registry_metadata = json.loads(library.registry_metadata) if library.registry_metadata else None readme_path = registry_metadata.get('readmeFilename', 'README.md') response = util.unpkg_get(self.owner, self.repo, self.version, readme_path) readme = response.content else: # Load readme from GitHub endpoint. response = util.github_get('repos', self.owner, self.repo, 'readme', params={"ref": self.sha}) if response.status_code == 200: readme = base64.b64decode(json.loads(response.content)['content']) elif response.status_code == 404: readme = None else: return self.retry('error fetching readme (%d)' % response.status_code) if readme is not None: # Store the raw readme markdown. try: Content(parent=self.version_key, id='readme', content=readme, status=Status.ready, etag=response.headers.get('ETag', None)).put() except db.BadValueError: return self.error("Could not store README.md as a utf-8 string", ErrorCodes.Version_utf) # Convert markdown to HTML and store the result. response = util.github_markdown(readme) if response.status_code == 200: Content(parent=self.version_key, id='readme.html', content=response.content, status=Status.ready, etag=response.headers.get('ETag', None)).put() else: return self.retry('error converting readme to markdown (%d)' % response.status_code)
def update_readme(self): response = util.github_get('repos', self.owner, self.repo, 'readme', params={"ref": self.sha}) if response.status_code == 200: readme = base64.b64decode(json.loads(response.content)['content']) try: Content(parent=self.version_key, id='readme', content=readme, status=Status.ready, etag=response.headers.get('ETag', None)).put() except db.BadValueError: return self.error("Could not store README.md as a utf-8 string") elif response.status_code == 404: readme = None else: return self.retry('error fetching readme (%d)' % response.status_code) if readme is not None: response = util.github_markdown(readme) if response.status_code == 200: Content(parent=self.version_key, id='readme.html', content=response.content, status=Status.ready, etag=response.headers.get('ETag', None)).put() else: return self.retry('error converting readme to markdown (%d)' % response.status_code)