mirror of https://gitlab.com/bashrc2/epicyon
				
				
				
			Function to remove scripts from content
							parent
							
								
									35da12282d
								
							
						
					
					
						commit
						7381e17c08
					
				
							
								
								
									
										25
									
								
								content.py
								
								
								
								
							
							
						
						
									
										25
									
								
								content.py
								
								
								
								
							|  | @ -1681,3 +1681,28 @@ def create_edits_html(edits_json: {}, post_json_object: {}, | ||||||
|     return '<details><summary class="cw">' + \ |     return '<details><summary class="cw">' + \ | ||||||
|         translate['SHOW EDITS'] + '</summary>' + \ |         translate['SHOW EDITS'] + '</summary>' + \ | ||||||
|         edits_str + '</details>' |         edits_str + '</details>' | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | def remove_script(content: str) -> str: | ||||||
|  |     """Removes <script> from some content | ||||||
|  |     """ | ||||||
|  |     separators = [['<', '>'], ['<', '>']] | ||||||
|  |     for sep in separators: | ||||||
|  |         prefix = sep[0] + 'script' | ||||||
|  |         ending = '/script' + sep[1] | ||||||
|  |         if prefix in content: | ||||||
|  |             sections = content.split(prefix) | ||||||
|  |             ctr = 0 | ||||||
|  |             for text in sections: | ||||||
|  |                 if ctr == 0: | ||||||
|  |                     ctr += 1 | ||||||
|  |                     continue | ||||||
|  |                 if ending not in text: | ||||||
|  |                     if '/' + sep[1] not in text: | ||||||
|  |                         continue | ||||||
|  |                 if ending in text: | ||||||
|  |                     text = prefix + text.split(ending)[0] + ending | ||||||
|  |                 else: | ||||||
|  |                     text = prefix + text.split('/' + sep[1])[0] + '/' + sep[1] | ||||||
|  |                 content = content.replace(text, '') | ||||||
|  |     return content | ||||||
|  |  | ||||||
							
								
								
									
										14
									
								
								tests.py
								
								
								
								
							
							
						
						
									
										14
									
								
								tests.py
								
								
								
								
							|  | @ -129,6 +129,7 @@ from inbox import json_post_allows_comments | ||||||
| from inbox import valid_inbox | from inbox import valid_inbox | ||||||
| from inbox import valid_inbox_filenames | from inbox import valid_inbox_filenames | ||||||
| from categories import guess_hashtag_category | from categories import guess_hashtag_category | ||||||
|  | from content import remove_script | ||||||
| from content import create_edits_html | from content import create_edits_html | ||||||
| from content import content_diff | from content import content_diff | ||||||
| from content import bold_reading_string | from content import bold_reading_string | ||||||
|  | @ -3978,6 +3979,8 @@ def _test_danger_svg(base_dir: str) -> None: | ||||||
|         '  <circle cx="5" cy="5" r="4" />' + \ |         '  <circle cx="5" cy="5" r="4" />' + \ | ||||||
|         '</svg>' |         '</svg>' | ||||||
|     assert not dangerous_svg(svg_content, False) |     assert not dangerous_svg(svg_content, False) | ||||||
|  |     cleaned_up = remove_script(svg_content) | ||||||
|  |     assert cleaned_up == svg_content | ||||||
|     svg_content = \ |     svg_content = \ | ||||||
|         '  <svg viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg">' + \ |         '  <svg viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg">' + \ | ||||||
|         '  <script>' + \ |         '  <script>' + \ | ||||||
|  | @ -3999,6 +4002,17 @@ def _test_danger_svg(base_dir: str) -> None: | ||||||
|         '</svg>' |         '</svg>' | ||||||
|     assert dangerous_svg(svg_content, False) |     assert dangerous_svg(svg_content, False) | ||||||
| 
 | 
 | ||||||
|  |     svg_clean = \ | ||||||
|  |         '  <svg viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg">' + \ | ||||||
|  |         '    <circle cx="5" cy="5" r="4" />' + \ | ||||||
|  |         '</svg>' | ||||||
|  | 
 | ||||||
|  |     cleaned_up = remove_script(svg_content) | ||||||
|  |     assert '<script' not in cleaned_up | ||||||
|  |     assert '/script>' not in cleaned_up | ||||||
|  |     if cleaned_up != svg_clean: | ||||||
|  |         print(cleaned_up) | ||||||
|  |     assert cleaned_up == svg_clean | ||||||
|     assert not scan_themes_for_scripts(base_dir) |     assert not scan_themes_for_scripts(base_dir) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue