mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	[cleanup] Misc
This commit is contained in:
		| @@ -2,6 +2,7 @@ | ||||
| 
 | ||||
| # yt-dlp --help | make_readme.py | ||||
| # This must be run in a console of correct width | ||||
| import functools | ||||
| import re | ||||
| import sys | ||||
| 
 | ||||
| @@ -12,19 +13,44 @@ OPTIONS_END = 'CONFIGURATION' | ||||
| EPILOG_START = 'See full documentation' | ||||
| 
 | ||||
| 
 | ||||
| helptext = sys.stdin.read() | ||||
| if isinstance(helptext, bytes): | ||||
|     helptext = helptext.decode() | ||||
| def take_section(text, start=None, end=None, *, shift=0): | ||||
|     return text[ | ||||
|         text.index(start) + shift if start else None: | ||||
|         text.index(end) + shift if end else None | ||||
|     ] | ||||
| 
 | ||||
| start, end = helptext.index(f'\n  {OPTIONS_START}'), helptext.index(f'\n{EPILOG_START}') | ||||
| options = re.sub(r'(?m)^  (\w.+)$', r'## \1', helptext[start + 1: end + 1]) | ||||
| 
 | ||||
| def apply_patch(text, patch): | ||||
|     return re.sub(*patch, text) | ||||
| 
 | ||||
| 
 | ||||
| options = take_section(sys.stdin.read(), f'\n  {OPTIONS_START}', f'\n{EPILOG_START}', shift=1) | ||||
| 
 | ||||
| switch_col_width = len(re.search(r'(?m)^\s{5,}', options).group()) | ||||
| delim = f'\n{" " * switch_col_width}' | ||||
| 
 | ||||
| PATCHES = ( | ||||
|     (  # Headings | ||||
|         r'(?m)^  (\w.+\n)(    (?=\w))?', | ||||
|         r'## \1' | ||||
|     ), | ||||
|     (  # Do not split URLs | ||||
|         rf'({delim[:-1]})? (?P<label>\[\S+\] )?(?P<url>https?({delim})?:({delim})?/({delim})?/(({delim})?\S+)+)\s', | ||||
|         lambda mobj: ''.join((delim, mobj.group('label') or '', re.sub(r'\s+', '', mobj.group('url')), '\n')) | ||||
|     ), | ||||
|     # This creates issues with prepare_manpage | ||||
|     # (  # Avoid newline when a space is available b/w switch and description | ||||
|     #     r'(?m)^(\s{4}-.{%d})(%s)' % (switch_col_width - 6, delim), | ||||
|     #     r'\1 ' | ||||
|     # ), | ||||
| ) | ||||
| 
 | ||||
| with open(README_FILE, encoding='utf-8') as f: | ||||
|     readme = f.read() | ||||
| 
 | ||||
| header = readme[:readme.index(f'## {OPTIONS_START}')] | ||||
| footer = readme[readme.index(f'# {OPTIONS_END}'):] | ||||
| 
 | ||||
| with open(README_FILE, 'w', encoding='utf-8') as f: | ||||
|     for part in (header, options, footer): | ||||
|         f.write(part) | ||||
|     f.write(''.join(( | ||||
|         take_section(readme, end=f'## {OPTIONS_START}'), | ||||
|         functools.reduce(apply_patch, PATCHES, options), | ||||
|         take_section(readme, f'# {OPTIONS_END}'), | ||||
|     ))) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 pukkandan
					pukkandan