diff --git a/fanficfare/adapters/base_xenforo2forum_adapter.py b/fanficfare/adapters/base_xenforo2forum_adapter.py index bc79b3d0..caaae0da 100644 --- a/fanficfare/adapters/base_xenforo2forum_adapter.py +++ b/fanficfare/adapters/base_xenforo2forum_adapter.py @@ -40,6 +40,11 @@ class BaseXenForo2ForumAdapter(BaseXenForoForumAdapter): logger.info("init url: "+url) BaseXenForoForumAdapter.__init__(self, config, url) + @classmethod + def getConfigSections(cls): + "Only needs to be overriden if has additional ini sections." + return ['base_xenforo2forum'] + BaseXenForoForumAdapter.getConfigSections() + def parse_title(self,souptag): h1 = souptag.find('h1',{'class':'p-title-value'}) # logger.debug(h1) @@ -132,3 +137,6 @@ class BaseXenForo2ForumAdapter(BaseXenForoForumAdapter): def make_reader_url(self,tmcat_num,reader_page_num): # https://xf2test.sufficientvelocity.com/threads/mauling-snarks-worm.41471/reader/page-4?threadmark_category=4 return self.story.getMetadata('storyUrl')+'reader/page-'+unicode(reader_page_num)+'?threadmark_category='+tmcat_num + + def get_spoiler_tags(self,topsoup): + return topsoup.find_all('div',class_='bbCodeSpoiler') diff --git a/fanficfare/adapters/base_xenforoforum_adapter.py b/fanficfare/adapters/base_xenforoforum_adapter.py index b7528ae2..ba87126a 100644 --- a/fanficfare/adapters/base_xenforoforum_adapter.py +++ b/fanficfare/adapters/base_xenforoforum_adapter.py @@ -671,16 +671,22 @@ class BaseXenForoForumAdapter(BaseSiteAdapter): def make_reader_url(self,tmcat_num,reader_page_num): return self.getURLPrefix()+'/threads/'+self.story.getMetadata('storyId')+'/'+tmcat_num+'/reader?page='+unicode(reader_page_num) + def get_spoiler_tags(self,topsoup): + return topsoup.find_all('div',class_='bbCodeSpoilerContainer') + def handle_spoilers(self,topsoup): ''' Modifies tag given as required to do spoiler changes. ''' if self.getConfig('remove_spoilers'): - for div in topsoup.find_all('div',class_='bbCodeSpoilerContainer'): + for div in self.get_spoiler_tags(topsoup): div.extract() elif self.getConfig('legend_spoilers'): - for div in topsoup.find_all('div',class_='bbCodeSpoilerContainer'): + for div in self.get_spoiler_tags(topsoup): div.name='fieldset' + # add copy of XF1 class name for convenience of + # existing output_css when XF2. + div['class'].append('bbCodeSpoilerContainer') legend = topsoup.new_tag('legend') legend.string = stripHTML(div.button.span) div.insert(0,legend)