def update_from_manifest(self, manifest, manifest_fetched, manifest_url, origin=None, session=None): if origin is not None and not self.origin == origin: raise ValueError( "You cannot update the origin") self.manifest_json = json.dumps(manifest) self.manifest_fetched = manifest_fetched self.manifest_url = manifest_url self.name = manifest['name'] self.description = manifest.get('description') self.icon_url = get_icon(manifest.get('icons'), self.origin) keywords = manifest.get('experimental', {}).get('keywords') if keywords: self.keywords = keywords self.set_slug() if session: session.add(self) Keyword.add_words(self.keywords, session=session) return self
def from_manifest(cls, manifest, manifest_fetched, manifest_url, origin, session=None): obj = cls( origin=origin, manifest_json=json.dumps(manifest), manifest_fetched=manifest_fetched, manifest_url=manifest_url, name=manifest['name'], description=manifest.get('description'), icon_url=get_icon(manifest.get('icons'), origin), ) keywords = manifest.get('experimental', {}).get('keywords') if keywords: obj.keywords = keywords else: obj.keywords = ['uncategorized'] if session is not None: session.add(obj) Keyword.add_words(obj.keywords, session=session) return obj