Add new tag types to fimfiction adapter and fix groups metadata

master
FaceDeer 2017-12-20 00:04:21 -07:00
parent c62b4e85b0
commit 7cd03b26ca
2 changed files with 20 additions and 13 deletions

View File

@ -252,11 +252,13 @@ class FimFictionNetSiteAdapter(BaseSiteAdapter):
self.story.addToList("characters", stripHTML(character))
for genre in tags.find_all("a", {"class":"tag-genre"}):
self.story.addToList("genre", stripHTML(genre))
# only two warnings I've seen, each with their own class(and color)
for gore in tags.find_all("a", {"class":"tag-gore"}):
self.story.addToList("warnings", stripHTML(gore))
for sex in tags.find_all("a", {"class":"tag-sex"}):
self.story.addToList("warnings", stripHTML(sex))
for series in tags.find_all("a", {"class":"tag-series"}):
#using 'fandoms' as the identifier to standardize with archiveofourown.org
self.story.addToList("fandoms", stripHTML(series))
for warning in tags.find_all("a", {"class":"tag-warning"}):
self.story.addToList("warnings", stripHTML(warning))
for content in tags.find_all("a", {"class":"tag-content"}):
self.story.addToList("content", stripHTML(content))
# Likes and dislikes
storyToolbar = soup.find('div', {'class':'story-top-toolbar'})
@ -282,8 +284,8 @@ class FimFictionNetSiteAdapter(BaseSiteAdapter):
self.story.setMetadata("short_description", stripHTML(descriptionMeta['content']))
#groups
groupDiv = soup.find('div', {'class':'groups'})
if groupDiv != None and groupDiv.find('div').find('button'):
groupButton = soup.find('button', {'data-click':'showAll'})
if groupButton != None and groupButton.find('i', {'class':'fa-search-plus'}):
groupResponse = self._fetchUrl("https://www.fimfiction.net/ajax/stories/%s/groups" % (self.story.getMetadata("storyId")))
groupData = json.loads(groupResponse)
groupList = self.make_soup(groupData["content"])
@ -291,9 +293,13 @@ class FimFictionNetSiteAdapter(BaseSiteAdapter):
groupList = soup.find('ul', {'id':'story-groups-list'})
if not (groupList == None):
for groupName in groupList.find_all('a'):
self.story.addToList("groupsUrl", 'https://'+self.host+groupName["href"])
self.story.addToList("groups",stripHTML(groupName).replace(',', ';'))
for groupContent in groupList.find_all('a'):
self.story.addToList("groupsUrl", 'https://'+self.host+groupContent["href"])
groupName = groupContent.find('span', {"class":"group-name"})
if groupName != None:
self.story.addToList("groups",stripHTML(groupName).replace(',', ';'))
else:
self.story.addToList("groups",stripHTML(groupContent).replace(',', ';'))
#sequels
for header in soup.find_all('h1', {'class':'header-stories'}):

View File

@ -1065,13 +1065,12 @@ website_encodings:Windows-1252,utf8
## extra_titlepage_entries, logpage_entries, extra_logpage_entries,
## and include_in_* config items. You can also add additional entries
## here to build up composite metadata entries.
## archiveofourown.org.org, for example, fills genre (a standard
## archiveofourown.org, for example, fills genre (a standard
## entry) as the composite offreeformtags, ao3categories in
## include_in_genre. If there's ever more than 4 series, add
## series04,series04Url etc.
extra_valid_entries:fandoms,freeformtags,freefromtags,ao3categories,comments,kudos,hits,bookmarks,collections,byline,bookmarktags,bookmarksummary,series00,series01,series02,series03,series00Url,series01Url,series02Url,series03Url,series00HTML,series01HTML,series02HTML,series03HTML
fandoms_label:Fandoms
freeformtags_label:Freeform Tags
freefromtags_label:Freeform Tags
ao3categories_label:AO3 Categories
comments_label:Comments
@ -2505,7 +2504,7 @@ extracategories:My Little Pony: Friendship is Magic
## Extra metadata that this adapter knows about. See [archiveofourown.org]
## for examples of how to use them.
extra_valid_entries:likes,dislikes,views,total_views,short_description,groups,groupsUrl,groupsHTML,prequel,prequelUrl,prequelHTML,sequels,sequelsUrl,sequelsHTML,comment_count,coverSource,coverSourceUrl,coverSourceHTML,authorLastLogin
extra_valid_entries:likes,dislikes,views,total_views,short_description,groups,groupsUrl,groupsHTML,prequel,prequelUrl,prequelHTML,sequels,sequelsUrl,sequelsHTML,comment_count,coverSource,coverSourceUrl,coverSourceHTML,authorLastLogin,content,fandoms
likes_label:Likes
dislikes_label:Dislikes
views_label:Highest Single Chapter Views
@ -2525,6 +2524,8 @@ coverSource_label:Cover Source
coverSourceUrl_label:Cover Source URL
coverSourceHTML_label:Cover Source
authorLastLogin_label:Author Last Logged In
content_label:Content
fandoms_label:Fandoms
keep_in_order_sequels:true
keep_in_order_sequelsUrl:true