def __init__(self, **kwargs): Data.__init__(self, **kwargs) self.name = self.findText('.//meta/title', 'Untitled') # <title> self.tag = self.findText('.//meta/tag') # <tag> is the shorted usage of name/title self.url = self.findText('.//meta/url') # <url> is the optional url, otherwise /article-name is used. self.items = self.findAll('.//chapters/*') # List of <chapters> children self.featured = self.findAll('.//featured/*') # List of <featured> articles. self.children = self.findAll('.//children/*') # List of <children> articles. self.menu = self.findAll('.//menu/*') # List of <menu> children self.summary = self.find('.//meta/summary') # <summary> self.author = self.findText('.//meta/author') self.category = self.findText('.//meta/category') # Category of the article self.level = self.findText('.//meta/level') self.topic = self.find('.//meta/topic') # Short description of the article poster = self.find('.//meta/poster') # First <poster> or <image> if poster is None: poster = self.find('.//image') if poster is None: self.poster = None else: self.poster = poster.attrib['src'] # Collect the footnotes per chapter self.footnotes = [] for item in self.items: self.footnotes.append(item.findall('.//footnote')) # All footnotes per chapter
def getArticle(self, component, id=None): data = Data() data.headline = self.blurb.getBlurb('news_headline') data.items = [ self.blurb.getBlurb('article'), self.blurb.getBlurb('article'), self.blurb.getBlurb('article') ] return data
def getMenu(self, component, id): u"""Answer the list of menu articles in this component.""" data = Data() data.menuItems = [] article = self.getArticle(component, id) if article: for menu in article.menu: menuArticle = self.getArticle(component, menu.attrib['id']) if menuArticle is not None: data.menuItems.append(menuArticle) return data
def getFeaturedArticles(self, component, id, start, count): u"""Answer a list of featured articles in the article that has <i>id</i>.""" data = Data() data.items = [] article = self.getArticle(component, id) if article: for index, featured in enumerate(article.featured[start:start+count]): if index == count: break featuredArticle = self.getArticle(component, featured.attrib['id']) if featuredArticle is not None: data.items.append(featuredArticle) return data
def getFeaturedArticles(self, component, count=1): # Answer count list of (imagePath, head, ankeiler, link) images = [ 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/bahrain.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/bush.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/chinatown.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/earthquake.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/egypt.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/electrical-storm.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/felix-graph-3.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/googleglass.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/googleglass2.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/googleglass3.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/googleglass4.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/guaguacrater.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/katrina.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/kiss.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/libya.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/little_italy.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/news.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/newspaper.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/nkorealaunch.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/obama.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/obama2.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/obama03.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/olympicpast.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/olympicpast2.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/perfect_storm1_large.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/polarbears.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/rahm.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/rolyaluk2.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/royaluk.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/shuttle.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/storm-nbpier.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/swarmybigshot.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/tibet.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/transport.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/travel.jpg', 'http://lib.xierpaweb.com.s3.amazonaws.com/_images/newspaper/images/news/verticalfashionshow.jpg', ] articles = [] for _ in range(1, (count or 1) + 1): data = Data() data.image = choice(images) data.headline = self.blurb.getBlurb('design_headline', 8) + '.' data.items = [self.blurb.getBlurb('article_ankeiler', 30)] articles.append(data) return articles
def getTagCloud(self, component, count): # Answer count tagCloud list entries as tuple (word, emphasisNumber) data = Data() data.items = cloud = ['Tags'] for _ in range(10): cloud.append( dict(text=self.blurb.getBlurb('design_magazines'), emphasis=randint(10, 24))) return data
def getArticle(self, component, id=None): data = Data() data.headline = self.blurb.getBlurb('news_headline') data.items = [self.blurb.getBlurb('article'), self.blurb.getBlurb('article'), self.blurb.getBlurb('article')] return data
def getLogo(self, component, count): data = Data() data.items = ['http://petr.com/_images/contact.png'] return data
def getFooter(self, component, count): data = Data() data.items = ['Footer: ' + self.blurb.getBlurb('events_headline')] return data
def getArticle(self, component, id=None): data = Data() data.items = [self.blurb.getBlurb('article'), 'Heading', self.blurb.getBlurb('article')] return data
def getLogo(self, component): data = Data() data.url = '/home' data.src = 'http://data.doingbydesign.com.s3.amazonaws.com/_images/logo.png' return data
def getPages(self, component, count=None): pages = Data() pages.items = [] for name, article in self.getCachedArticles().items(): # @@@ Add priority sorting and counting here pages.items.append(article) return pages
def getPageTitle(self, component, id=None): article = self.getArticle(component, id) if article is not None: return Data(text=article.name) return None