Exemplo n.º 1
0
 def test_editions(self):
     pandata = Pandata(EDITIONTEST_FILENAME)
     (ed1,ed2) = pandata.get_edition_list()
     self.assertEqual(ed1.publisher, "Project Gutenberg")
     self.assertEqual(ed2.publisher, "Recovering the Classics")
     self.assertEqual(ed2.isbn, "9781111122223")
     self.assertEqual(ed1.isbn, "")
     self.assertEqual(ed1.edition_identifiers['edition_id'], "repo:Space-Viking_20728#default")
     self.assertEqual(ed2.edition_identifiers['edition_id'], u'repo:Space-Viking_20728#9781111122223')
     pandata = Pandata('https://github.com/gitenberg-dev/metadata/raw/master/samples/pandata.yaml')
     [ed] = pandata.get_edition_list()
Exemplo n.º 2
0
 def test_editions(self):
     pandata = Pandata(EDITIONTEST_FILENAME)
     (ed1,ed2) = pandata.get_edition_list()
     self.assertEqual(ed1.publisher, "Project Gutenberg")
     self.assertEqual(ed2.publisher, "Recovering the Classics")
     self.assertEqual(ed2.isbn, "9781111122223")
     self.assertEqual(ed1.isbn, "")
     self.assertEqual(ed1.edition_identifiers['edition_id'], "repo:Space-Viking_20728#default")
     self.assertEqual(ed2.edition_identifiers['edition_id'], u'repo:Space-Viking_20728#9781111122223')
     pandata = Pandata('https://github.com/gitenberg-dev/metadata/raw/master/samples/pandata.yaml')
     [ed] = pandata.get_edition_list()
Exemplo n.º 3
0
def add_by_webpage(url, work=None, user=None):
    edition = None
    scraper = get_scraper(url)
    loader = BasePandataLoader(url)
    pandata = Pandata()
    pandata.metadata = scraper.metadata
    for metadata in pandata.get_edition_list():
        edition = loader.load_from_pandata(metadata, work)
        work = edition.work
    loader.load_ebooks(pandata, edition, user=user)
    return edition if edition else None
Exemplo n.º 4
0
def load_from_yaml(yaml_url, test_mode=False):
    """
    This really should be called 'load_from_github_yaml'

    if mock_ebook is True, don't construct list of ebooks from a release -- rather use an epub
    """
    all_metadata = Pandata(yaml_url)
    loader = GithubLoader(yaml_url)
    for metadata in all_metadata.get_edition_list():
        edition = loader.load_from_pandata(metadata)
        loader.load_ebooks(metadata, edition, test_mode)
    return edition.work_id if edition else None
Exemplo n.º 5
0
def add_by_sitemap(url, maxnum=None):
    editions = []
    for bookdata in scrape_sitemap(url, maxnum=maxnum):
        edition = work = None
        loader = BasePandataLoader(bookdata.base)
        pandata = Pandata()
        pandata.metadata = bookdata.metadata
        for metadata in pandata.get_edition_list():
            edition = loader.load_from_pandata(metadata, work)
            work = edition.work
        loader.load_ebooks(pandata, edition)
        if edition:
            editions.append(edition)
    return editions
Exemplo n.º 6
0
def add_from_bookdatas(bookdatas):
    ''' bookdatas  are iterators of scrapers '''
    editions = []
    for bookdata in bookdatas:
        edition = work = None
        loader = BasePandataLoader(bookdata.base)
        pandata = Pandata()
        pandata.metadata = bookdata.metadata
        for metadata in pandata.get_edition_list():
            edition = loader.load_from_pandata(metadata, work)
            work = edition.work
        loader.load_ebooks(pandata, edition)
        if edition:
            editions.append(edition)
    return editions