コード例 #1
0
ファイル: Retriever.py プロジェクト: ktisha/ebook-service
 def get_book_info(soup):
     div = soup.find('div', {'class' : 'book_body'})
     book_info = BookInfo()
     field = Retriever.get_field(div, u'Название:')
     if field:
         match = re.match(u"Название:(.+)", field.text)
         if match and match.groups():
             book_info.title = match.groups(0)[0]
     #author
     field = Retriever.get_field(div, u'Автор:')
     book_info.authors = [ anchor.text for anchor in field.findAll('a')] if field else []
     #summary
     field = Retriever.get_field(div, u'Описание книги:')
     if field and field.p:
         book_info.summary = field.p.text
     #images
     img = soup.find('img', {'class' : 'thumb'})
     book_info.image = img['src'] if img else None
     #tags
     field = Retriever.get_field(div, u'Жанр:')
     if field:
         book_info.tags = [ tag.text for tag in field.findAll('a')]
     #links
     field = Retriever.get_field(div, u'Скачать книгу бесплатно:')
     if field:
         for link_anchor in field.findAll('a'):
             book_info.links [link_anchor.text] = link_anchor['href']
     return book_info
コード例 #2
0
ファイル: tasks.py プロジェクト: ktisha/ebook-service
 def execute(self,html):
     soup = get_soup(html)
     book_info = BookInfo()
     book_info.title  = self.description['title']
     book_info.authors = [ "%s %s %s" % (self.description['firstname'],self.description['middlename'], self.description['lastname']) ]
     book_info.pagelink = self.link
     book_info.language = self.description['language']
     book_info.summary = Retriever.get_summary(soup)
     book_info.links = Retriever.get_links(soup, self.link)
     book_info.tags = Retriever.get_tags(soup)
     book_info.image = Retriever.get_picture(soup, self.link, self.description['ID'])
     self.tasks = [ BookSavingTask(book_info) ]
     return True
コード例 #3
0
ファイル: booksaver.py プロジェクト: ktisha/ebook-service
def get_bookinfo_from_db(id):
    bookinfo = BookInfo()
    book = Book.objects.get(id=id)
    bookinfo.title = book.title
    bookinfo.authors = [ author.name for author in book.author.all() ]
    bookinfo.pagelink = book.pagelink
    bookinfo.language = book.language.short
    annotations = book.annotation_set.all()
    if annotations:
        bookinfo.summary = annotations[0]
    for bookfile in book.book_file.all():
        bookinfo.links[bookfile.type] = bookfile.link
    bookinfo.tags = [ tag.name for tag in book.tag.all()]
    bookinfo.image = book.image.name if book.image else None
    return bookinfo