def new_from_wikipedia(klass, url): # if we have a page for a given url already we can return it wikipedia_pages = WikipediaPage.objects.filter(url=url) if wikipedia_pages.count() > 0: return wikipedia_pages[0], False title_escaped = wikipedia.url_to_title(url) info = wikipedia.info(title_escaped) wikipedia_page = WikipediaPage.objects.create(title=info['title'], url=url, last_modified=rfc3339_parse(info['touched'])) for cat in wikipedia.categories(wikipedia_page.title): title = cat['title'][9:] if not title: continue category, created = WikipediaCategory.objects.get_or_create(title=title) wikipedia_page.categories.add(category) wikipedia_page.save() return wikipedia_page, True
def new_from_wikipedia(klass, url): # if we have a page for a given url already we can return it wikipedia_pages = WikipediaPage.objects.filter(url=url) if wikipedia_pages.count() > 0: return wikipedia_pages[0], False title_escaped = wikipedia.url_to_title(url) info = wikipedia.info(title_escaped) wikipedia_page = WikipediaPage.objects.create( title=info['title'], url=url, last_modified=rfc3339_parse(info['touched'])) for cat in wikipedia.categories(wikipedia_page.title): title = cat['title'][9:] if not title: continue category, created = WikipediaCategory.objects.get_or_create( title=title) wikipedia_page.categories.add(category) wikipedia_page.save() return wikipedia_page, True
def test_info(self): info = wikipedia.info('Pierre-Charles_Le_Sueur') self.assertEqual(info['pageid'], 842462) self.assertEqual(info['title'], 'Pierre-Charles Le Sueur')