Parse additional metadata with the quotev adapter

This commit is contained in:
cryzed 2015-08-31 14:18:06 +02:00
parent 3488c54f3d
commit 4cb69a0a3c
3 changed files with 27 additions and 8 deletions

View file

@ -1939,6 +1939,11 @@ extracategories:Psych
extracategories:Queer as Folk
[quotev.com]
extra_valid_entries:pages,readers,reads,favorites
pages_label:Pages
readers_label:Readers
reads_label:Reads
favorites_label:Favorites
[www.restrictedsection.org]
## Some sites require login (or login for some rated stories) The

View file

@ -18,7 +18,6 @@ def get_url_path_segments(url):
return tuple(filter(None, url.split('/')[3:]))
# TODO: Possibly add pages/readers/reads/favorites
class QuotevComAdapter(BaseSiteAdapter):
def __init__(self, config, url):
@ -64,7 +63,7 @@ class QuotevComAdapter(BaseSiteAdapter):
self.story.setMetadata('author', element.get_text())
self.story.setMetadata('authorId', get_url_path_segments(element['href'])[0])
self.story.setMetadata('authorUrl', urlparse.urljoin(self.url, element['href']))
self.setDescription(self.url, self.utf8FromSoup(self.url, soup.find('div', id='qdesct')))
self.setDescription(self.url, soup.find('div', id='qdesct'))
self.setCoverImage(self.url, urlparse.urljoin(self.url, soup.find('img', {'class': 'logo'})['src']))
for a in soup.find('div', {'class': 'tag'})('a'):
@ -73,12 +72,6 @@ class QuotevComAdapter(BaseSiteAdapter):
self.story.addToList('category', a.get_text())
self.story.setMetadata(
'status', 'Completed' if 'completed' in
soup.find('div', {'class': 't'})('div', recursive=False)[1].div.get_text()
else 'In-Progress'
)
elements = soup('span', {'class': 'q_time'})
self.story.setMetadata('datePublished', datetime.datetime.fromtimestamp(float(elements[0]['ts'])))
self.story.setMetadata('dateUpdated', datetime.datetime.fromtimestamp(float(elements[1]['ts'])))
@ -88,6 +81,22 @@ class QuotevComAdapter(BaseSiteAdapter):
self.story.setMetadata('numChapters', len(self.chapterUrls))
element = soup.find('div', {'class': 't'})('div', recursive=False)[1].div
data = filter(None, (x.strip() for x in element('span')[1].next_sibling.split(u'\xb7')))
if 'completed' in data:
self.story.setMetadata('status', 'Completed')
data.remove('completed')
else:
self.story.setMetadata('status', 'In-Progress')
for datum in data:
value, key = datum.split()
self.story.setMetadata(key, value.replace(',', '').replace('.', ''))
self.story.setMetadata('favorites', soup.find('div', id='favqn').get_text())
self.story.setMetadata('comments', soup.find('a', id='comment_btn').span.get_text())
def getChapterText(self, url):
data = self._fetchUrl(url)
soup = self.make_soup(data)

View file

@ -1919,6 +1919,11 @@ extracategories:Psych
extracategories:Queer as Folk
[quotev.com]
extra_valid_entries:pages,readers,reads,favorites
pages_label:Pages
readers_label:Readers
reads_label:Reads
favorites_label:Favorites
[www.restrictedsection.org]
## Some sites require login (or login for some rated stories) The