From 8010d50ab83ad5dfdc0bc74856f007c2fa4e834b Mon Sep 17 00:00:00 2001 From: Dminti Snegirev Date: Wed, 11 Apr 2018 22:04:55 +0300 Subject: [PATCH] Added status metadata to wuxiaworld and royalroadl (#289) Also category (FanFiction vs Original) for adapter_royalroadl --- calibre-plugin/plugin-defaults.ini | 3 +++ fanficfare/adapters/adapter_royalroadl.py | 10 ++++++++++ fanficfare/adapters/adapter_wuxiaworldcom.py | 11 ++++++++++- fanficfare/defaults.ini | 3 +++ 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/calibre-plugin/plugin-defaults.ini b/calibre-plugin/plugin-defaults.ini index b9ed012a..016b5cd5 100644 --- a/calibre-plugin/plugin-defaults.ini +++ b/calibre-plugin/plugin-defaults.ini @@ -1867,6 +1867,9 @@ extra_valid_entries:stars ## cover image. This lets you exclude them. cover_exclusion_regexp:(imgur.com/dzOACJf.png|/forum/images/smilies/) +## Clear FanFiction from defaults, site has fanfictions and original fiction. +extratags: + [samandjack.net] ## Some sites require login (or login for some rated stories) The ## program can prompt you, or you can save it in config. In diff --git a/fanficfare/adapters/adapter_royalroadl.py b/fanficfare/adapters/adapter_royalroadl.py index df573b3a..0e0f3fef 100644 --- a/fanficfare/adapters/adapter_royalroadl.py +++ b/fanficfare/adapters/adapter_royalroadl.py @@ -159,6 +159,16 @@ class RoyalRoadAdapter(BaseSiteAdapter): for tag in genre: self.story.addToList('genre',tag) + for label in [stripHTML(a) for a in soup.find_all('span', {'class':'label'})]: + if 'COMPLETED' == label: + self.story.setMetadata('status', 'Completed') + elif ('ONGOING' == label) or ('HIATUS' == label): + self.story.setMetadata('status', 'In-Progress') + elif 'Fan Fiction' == label: + self.story.addToList('category', 'FanFiction') + elif 'Original' == label: + self.story.addToList('category', 'Original') + # 'rating' in FFF speak means G, PG, Teen, Restricted, etc. # 'stars' is used instead for RR's 1-5 stars rating. stars=soup.find(attrs=dict(property="books:rating:value"))['content'] diff --git a/fanficfare/adapters/adapter_wuxiaworldcom.py b/fanficfare/adapters/adapter_wuxiaworldcom.py index 5812298d..e403f061 100644 --- a/fanficfare/adapters/adapter_wuxiaworldcom.py +++ b/fanficfare/adapters/adapter_wuxiaworldcom.py @@ -90,7 +90,16 @@ class WuxiaWorldComSiteAdapter(BaseSiteAdapter): self.story.setMetadata('authorId', author_name.lower()) self.story.setMetadata('title', ld['headline']) self.story.setMetadata('datePublished', self._parse_date(ld['datePublished'])) - self.story.setMetadata('tags', [stripHTML(a) for a in soup.select('.media-body .tags a')]) + + tags = [stripHTML(a) for a in soup.select('.media-body .tags a')] + for tag in tags: + if 'Completed' == tag: + self.story.setMetadata('status', 'Completed') + tags.remove('Completed') + elif 'Ongoing' == tag: + self.story.setMetadata('status', 'In-Progress') + tags.remove('Ongoing') + self.story.setMetadata('tags', tags) cover_url = ld['image'] if not cover_url: diff --git a/fanficfare/defaults.ini b/fanficfare/defaults.ini index decea770..3bf602bb 100644 --- a/fanficfare/defaults.ini +++ b/fanficfare/defaults.ini @@ -1901,6 +1901,9 @@ extra_valid_entries:stars ## cover image. This lets you exclude them. cover_exclusion_regexp:(imgur.com/dzOACJf.png|/forum/images/smilies/) +## Clear FanFiction from defaults, site has fanfictions and original fiction. +extratags: + [samandjack.net] ## Some sites require login (or login for some rated stories) The ## program can prompt you, or you can save it in config. In