Prevent index errors searching for comments

Make sure not to exceed existing indexes of wikicode object while trying
to search for comments

Related Task: [FS#141](https://fs.golderweb.de/index.php?do=details&task_id=141)
This commit is contained in:
2017-08-25 17:09:38 +02:00
parent 642a29b022
commit 31c10073a2

View File

@@ -224,25 +224,28 @@ class MarkPagesBot( CurrentPageBot ): # sets 'current_page' on each treat()
insert_after_index = self.current_wikicode.index( insert_after_index = self.current_wikicode.index(
ltemplates[-1] ) ltemplates[-1] )
# Filter one linebreak # If there is more content
if isinstance( self.current_wikicode.get( if len(self.current_wikicode.nodes) > (insert_after_index + 1):
insert_after_index + 1), mwparser.nodes.text.Text ) and \ # Filter one linebreak
re.search( r"^\n[^\n\S]+$", self.current_wikicode.get( if isinstance( self.current_wikicode.get(
insert_after_index + 1 ).value ): insert_after_index + 1),
mwparser.nodes.text.Text) and \
re.search( r"^\n[^\n\S]+$", self.current_wikicode.get(
insert_after_index + 1 ).value ):
insert_after_index += 1 insert_after_index += 1
while isinstance( while len(self.current_wikicode.nodes) > \
self.current_wikicode.get(insert_after_index + 1), (insert_after_index + 1) and \
mwparser.nodes.comment.Comment ): isinstance(
self.current_wikicode.get(insert_after_index + 1),
mwparser.nodes.comment.Comment ):
insert_after_index += 1 insert_after_index += 1
else: self.current_wikicode.insert_after(
self.current_wikicode.get(insert_after_index),
self.current_wikicode.insert_after( self.disc_notice )
self.current_wikicode.get(insert_after_index),
self.disc_notice )
# To have it in its own line we need to add a linbreak before # To have it in its own line we need to add a linbreak before
self.current_wikicode.insert_before(self.disc_notice, "\n" ) self.current_wikicode.insert_before(self.disc_notice, "\n" )