Fix spoiler tags for XF2, add base_xenforo2forum ini section.

This commit is contained in:
Jim Miller 2019-04-30 14:20:56 -05:00
parent de66ca06ae
commit 1a5c8b02d0
2 changed files with 16 additions and 2 deletions

View file

@ -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')

View file

@ -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)