Esempio n. 1
0
 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
Esempio n. 2
0
 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
Esempio n. 3
0
 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
Esempio n. 4
0
 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
Esempio n. 5
0
 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
Esempio n. 6
0
 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
Esempio n. 7
0
 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
Esempio n. 8
0
 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
Esempio n. 9
0
 def getLogo(self, component, count):
     data = Data()
     data.items = ['http://petr.com/_images/contact.png']
     return data
Esempio n. 10
0
 def getFooter(self, component, count):
     data = Data()
     data.items = ['Footer: ' + self.blurb.getBlurb('events_headline')]
     return data
Esempio n. 11
0
 def getArticle(self, component, id=None):
     data = Data()
     data.items = [self.blurb.getBlurb('article'), 'Heading', self.blurb.getBlurb('article')]
     return data
Esempio n. 12
0
 def getLogo(self, component):
     data = Data()
     data.url = '/home'
     data.src = 'http://data.doingbydesign.com.s3.amazonaws.com/_images/logo.png'
     return data
Esempio n. 13
0
 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
Esempio n. 14
0
 def getPageTitle(self, component, id=None):
     article = self.getArticle(component, id)
     if article is not None:
         return Data(text=article.name)
     return None
Esempio n. 15
0
 def getLogo(self, component, count):
     data = Data()
     data.items = ['http://petr.com/_images/contact.png']
     return data
Esempio n. 16
0
 def getFooter(self, component, count):
     data = Data()
     data.items = ['Footer: ' + self.blurb.getBlurb('events_headline')]
     return data