[utils] Recognize units with full names in parse_filename
Reference: https://en.wikipedia.org/wiki/Template:Quantities_of_bytes
This commit is contained in:
		
							parent
							
								
									a9a3b4a081
								
							
						
					
					
						commit
						70852b47ca
					
				
					 3 changed files with 21 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -1,7 +1,9 @@
 | 
			
		|||
version <unreleased>
 | 
			
		||||
 | 
			
		||||
Core
 | 
			
		||||
* Support m3u8 manifests in HTML5 multimedia tags
 | 
			
		||||
+ Recognize file size strings with full unit names (for example "8.5
 | 
			
		||||
  megabytes")
 | 
			
		||||
+ Support m3u8 manifests in HTML5 multimedia tags
 | 
			
		||||
* Fix js_to_json(): correct octal or hexadecimal number detection
 | 
			
		||||
 | 
			
		||||
Extractors
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -823,6 +823,7 @@ class TestUtil(unittest.TestCase):
 | 
			
		|||
        self.assertEqual(parse_filesize('1.2tb'), 1200000000000)
 | 
			
		||||
        self.assertEqual(parse_filesize('1,24 KB'), 1240)
 | 
			
		||||
        self.assertEqual(parse_filesize('1,24 kb'), 1240)
 | 
			
		||||
        self.assertEqual(parse_filesize('8.5 megabytes'), 8500000)
 | 
			
		||||
 | 
			
		||||
    def test_parse_count(self):
 | 
			
		||||
        self.assertEqual(parse_count(None), None)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1504,46 +1504,63 @@ def parse_filesize(s):
 | 
			
		|||
    _UNIT_TABLE = {
 | 
			
		||||
        'B': 1,
 | 
			
		||||
        'b': 1,
 | 
			
		||||
        'bytes': 1,
 | 
			
		||||
        'KiB': 1024,
 | 
			
		||||
        'KB': 1000,
 | 
			
		||||
        'kB': 1024,
 | 
			
		||||
        'Kb': 1000,
 | 
			
		||||
        'kb': 1000,
 | 
			
		||||
        'kilobytes': 1000,
 | 
			
		||||
        'kibibytes': 1024,
 | 
			
		||||
        'MiB': 1024 ** 2,
 | 
			
		||||
        'MB': 1000 ** 2,
 | 
			
		||||
        'mB': 1024 ** 2,
 | 
			
		||||
        'Mb': 1000 ** 2,
 | 
			
		||||
        'mb': 1000 ** 2,
 | 
			
		||||
        'megabytes': 1000 ** 2,
 | 
			
		||||
        'mebibytes': 1024 ** 2,
 | 
			
		||||
        'GiB': 1024 ** 3,
 | 
			
		||||
        'GB': 1000 ** 3,
 | 
			
		||||
        'gB': 1024 ** 3,
 | 
			
		||||
        'Gb': 1000 ** 3,
 | 
			
		||||
        'gb': 1000 ** 3,
 | 
			
		||||
        'gigabytes': 1000 ** 3,
 | 
			
		||||
        'gibibytes': 1024 ** 3,
 | 
			
		||||
        'TiB': 1024 ** 4,
 | 
			
		||||
        'TB': 1000 ** 4,
 | 
			
		||||
        'tB': 1024 ** 4,
 | 
			
		||||
        'Tb': 1000 ** 4,
 | 
			
		||||
        'tb': 1000 ** 4,
 | 
			
		||||
        'terabytes': 1000 ** 4,
 | 
			
		||||
        'tebibytes': 1024 ** 4,
 | 
			
		||||
        'PiB': 1024 ** 5,
 | 
			
		||||
        'PB': 1000 ** 5,
 | 
			
		||||
        'pB': 1024 ** 5,
 | 
			
		||||
        'Pb': 1000 ** 5,
 | 
			
		||||
        'pb': 1000 ** 5,
 | 
			
		||||
        'petabytes': 1000 ** 5,
 | 
			
		||||
        'pebibytes': 1024 ** 5,
 | 
			
		||||
        'EiB': 1024 ** 6,
 | 
			
		||||
        'EB': 1000 ** 6,
 | 
			
		||||
        'eB': 1024 ** 6,
 | 
			
		||||
        'Eb': 1000 ** 6,
 | 
			
		||||
        'eb': 1000 ** 6,
 | 
			
		||||
        'exabytes': 1000 ** 6,
 | 
			
		||||
        'exbibytes': 1024 ** 6,
 | 
			
		||||
        'ZiB': 1024 ** 7,
 | 
			
		||||
        'ZB': 1000 ** 7,
 | 
			
		||||
        'zB': 1024 ** 7,
 | 
			
		||||
        'Zb': 1000 ** 7,
 | 
			
		||||
        'zb': 1000 ** 7,
 | 
			
		||||
        'zettabytes': 1000 ** 7,
 | 
			
		||||
        'zebibytes': 1024 ** 7,
 | 
			
		||||
        'YiB': 1024 ** 8,
 | 
			
		||||
        'YB': 1000 ** 8,
 | 
			
		||||
        'yB': 1024 ** 8,
 | 
			
		||||
        'Yb': 1000 ** 8,
 | 
			
		||||
        'yb': 1000 ** 8,
 | 
			
		||||
        'yottabytes': 1000 ** 8,
 | 
			
		||||
        'yobibytes': 1024 ** 8,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return lookup_unit_table(_UNIT_TABLE, s)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue