def page(self, url_title): results = docstore.get( settings.DOCSTORE_HOSTS, settings.DOCSTORE_INDEX, 'articles', url_title ) if not results: return None page = Page() for key,val in results['_source'].iteritems(): setattr(page, key, val) # remove page elements for internal editorial use only categories = [ category for category in page.categories if category not in settings.MEDIAWIKI_HIDDEN_CATEGORIES ] page.categories = categories # sources #sources = [] #results = docstore.mget( # settings.DOCSTORE_HOSTS, settings.DOCSTORE_INDEX, 'sources', # page.sources #) #for doc in results['docs']: # source = Source() # for key,val in doc['_source'].iteritems(): # setattr(source, key, val) # sources.append(source) #page.sources = sources return page
def source(self, encyclopedia_id): results = docstore.get( settings.DOCSTORE_HOSTS, settings.DOCSTORE_INDEX, 'sources', encyclopedia_id ) source = Source() for key,val in results['_source'].iteritems(): setattr(source, key, val) return source
def author(self, url_title): results = docstore.get( settings.DOCSTORE_HOSTS, settings.DOCSTORE_INDEX, 'authors', url_title ) author = Author() for key,val in results['_source'].iteritems(): setattr(author, key, val) return author
def topics(self): terms = [] results = docstore.get( settings.DOCSTORE_HOSTS, settings.DOCSTORE_INDEX, 'vocab', 'topics' ) if results['_source']['terms']: terms = [ { 'id': term['id'], 'title': term['title'], '_title': term['_title'], 'encyc_urls': term['encyc_urls'], } for term in results['_source']['terms'] ] return terms