mirror of
https://github.com/JimmXinu/FanFicFare.git
synced 2026-05-08 04:23:01 +02:00
Parse additional metadata with the quotev adapter
This commit is contained in:
parent
3488c54f3d
commit
4cb69a0a3c
3 changed files with 27 additions and 8 deletions
|
|
@ -1939,6 +1939,11 @@ extracategories:Psych
|
||||||
extracategories:Queer as Folk
|
extracategories:Queer as Folk
|
||||||
|
|
||||||
[quotev.com]
|
[quotev.com]
|
||||||
|
extra_valid_entries:pages,readers,reads,favorites
|
||||||
|
pages_label:Pages
|
||||||
|
readers_label:Readers
|
||||||
|
reads_label:Reads
|
||||||
|
favorites_label:Favorites
|
||||||
|
|
||||||
[www.restrictedsection.org]
|
[www.restrictedsection.org]
|
||||||
## Some sites require login (or login for some rated stories) The
|
## Some sites require login (or login for some rated stories) The
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,6 @@ def get_url_path_segments(url):
|
||||||
return tuple(filter(None, url.split('/')[3:]))
|
return tuple(filter(None, url.split('/')[3:]))
|
||||||
|
|
||||||
|
|
||||||
# TODO: Possibly add pages/readers/reads/favorites
|
|
||||||
class QuotevComAdapter(BaseSiteAdapter):
|
class QuotevComAdapter(BaseSiteAdapter):
|
||||||
|
|
||||||
def __init__(self, config, url):
|
def __init__(self, config, url):
|
||||||
|
|
@ -64,7 +63,7 @@ class QuotevComAdapter(BaseSiteAdapter):
|
||||||
self.story.setMetadata('author', element.get_text())
|
self.story.setMetadata('author', element.get_text())
|
||||||
self.story.setMetadata('authorId', get_url_path_segments(element['href'])[0])
|
self.story.setMetadata('authorId', get_url_path_segments(element['href'])[0])
|
||||||
self.story.setMetadata('authorUrl', urlparse.urljoin(self.url, element['href']))
|
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']))
|
self.setCoverImage(self.url, urlparse.urljoin(self.url, soup.find('img', {'class': 'logo'})['src']))
|
||||||
|
|
||||||
for a in soup.find('div', {'class': 'tag'})('a'):
|
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.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'})
|
elements = soup('span', {'class': 'q_time'})
|
||||||
self.story.setMetadata('datePublished', datetime.datetime.fromtimestamp(float(elements[0]['ts'])))
|
self.story.setMetadata('datePublished', datetime.datetime.fromtimestamp(float(elements[0]['ts'])))
|
||||||
self.story.setMetadata('dateUpdated', datetime.datetime.fromtimestamp(float(elements[1]['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))
|
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):
|
def getChapterText(self, url):
|
||||||
data = self._fetchUrl(url)
|
data = self._fetchUrl(url)
|
||||||
soup = self.make_soup(data)
|
soup = self.make_soup(data)
|
||||||
|
|
|
||||||
|
|
@ -1919,6 +1919,11 @@ extracategories:Psych
|
||||||
extracategories:Queer as Folk
|
extracategories:Queer as Folk
|
||||||
|
|
||||||
[quotev.com]
|
[quotev.com]
|
||||||
|
extra_valid_entries:pages,readers,reads,favorites
|
||||||
|
pages_label:Pages
|
||||||
|
readers_label:Readers
|
||||||
|
reads_label:Reads
|
||||||
|
favorites_label:Favorites
|
||||||
|
|
||||||
[www.restrictedsection.org]
|
[www.restrictedsection.org]
|
||||||
## Some sites require login (or login for some rated stories) The
|
## Some sites require login (or login for some rated stories) The
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue