diff --git a/calibre-plugin/plugin-defaults.ini b/calibre-plugin/plugin-defaults.ini index 466dd825..639d565f 100644 --- a/calibre-plugin/plugin-defaults.ini +++ b/calibre-plugin/plugin-defaults.ini @@ -1334,9 +1334,10 @@ crossoverfandom_label:Crossover Fandom extra_titlepage_entries:universe,crossoverfandom [literotica.com] -extra_valid_entries:eroticatags +extra_valid_entries:eroticatags,averrating eroticatags_label:Erotica Tags -extra_titlepage_entries: eroticatags +averrating_label:Average Rating +extra_titlepage_entries:eroticatags,averrating [lotrfanfiction.com] extra_valid_entries: readings diff --git a/fanficfare/adapters/adapter_literotica.py b/fanficfare/adapters/adapter_literotica.py index 7d7bfdb2..74243643 100644 --- a/fanficfare/adapters/adapter_literotica.py +++ b/fanficfare/adapters/adapter_literotica.py @@ -21,7 +21,6 @@ logger = logging.getLogger(__name__) import re import urllib2 import urlparse -import time from bs4.element import Comment from ..htmlcleanup import stripHTML @@ -173,6 +172,10 @@ class LiteroticaSiteAdapter(BaseSiteAdapter): self.story.setMetadata('datePublished', makeDate(date, self.dateformat)) self.story.setMetadata('dateUpdated',makeDate(date, self.dateformat)) self.chapterUrls = [(storyLink.text, self.url)] + averrating = stripHTML(storyLink.parent) + ## title (0.00) + averrating = averrating[averrating.rfind('(')+1:averrating.rfind(')')] + self.story.setMetadata('averrating',averrating) else: seriesTr = urlTr.previousSibling while 'ser-ttl' not in seriesTr['class']: @@ -185,8 +188,9 @@ class LiteroticaSiteAdapter(BaseSiteAdapter): self.chapterUrls = [] dates = [] descriptions = [] + ratings = [] while chapterTr is not None and 'sl' in chapterTr['class']: - descriptions.append(chapterTr.findAll("td")[1].text) + descriptions.append("
\n%d. %s" % (len(descriptions)+1, stripHTML(chapterTr.findAll("td")[1])) ) chapterLink = chapterTr.find("td", "fc").find("a") if not chapterLink["href"].startswith('http'): chapterLink["href"] = "http:" + chapterLink["href"] @@ -194,9 +198,13 @@ class LiteroticaSiteAdapter(BaseSiteAdapter): self.story.addToList('eroticatags', chapterTr.findAll("td")[2].text) dates.append(makeDate(chapterTr.findAll('td')[-1].text, self.dateformat)) chapterTr = chapterTr.nextSibling + numrating = stripHTML(chapterLink.parent) + ## title (0.00) + numrating = numrating[numrating.rfind('(')+1:numrating.rfind(')')] + ratings.append(float(numrating)) ## Set description to joint chapter descriptions - self.story.setMetadata('description', " / ".join(descriptions)) + self.setDescription(authorurl,"".join(descriptions)) ## Set the oldest date as publication date, the newest as update date dates.sort() @@ -206,6 +214,8 @@ class LiteroticaSiteAdapter(BaseSiteAdapter): # normalize on first chapter URL. self._setURL(self.chapterUrls[0][1]) + self.story.setMetadata('averrating','%4.2f' % (sum(ratings) / float(len(ratings)))) + self.story.setMetadata('numChapters', len(self.chapterUrls)) # set storyId to 'title-author' to avoid duplicates diff --git a/fanficfare/defaults.ini b/fanficfare/defaults.ini index 48da55a6..16e4ea00 100644 --- a/fanficfare/defaults.ini +++ b/fanficfare/defaults.ini @@ -1322,9 +1322,10 @@ crossoverfandom_label:Crossover Fandom extra_titlepage_entries:universe,crossoverfandom [literotica.com] -extra_valid_entries:eroticatags +extra_valid_entries:eroticatags,averrating eroticatags_label:Erotica Tags -extra_titlepage_entries: eroticatags +averrating_label:Average Rating +extra_titlepage_entries:eroticatags,averrating [lotrfanfiction.com] extra_valid_entries: readings