mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	[camdemy] Simplify and make more robust (#4938)
Do not throw errors if view count or upload date extraction fails. Dispose of re.MULTILINE, which had absolutely no effect without any ^ or $ in sight. Follow PEP8 naming conventions.
This commit is contained in:
		| @@ -666,26 +666,27 @@ class YoutubeDLHTTPSHandler(compat_urllib_request.HTTPSHandler): | ||||
|             req, **kwargs) | ||||
|  | ||||
|  | ||||
| def parse_iso8601(date_str, delimiter='T'): | ||||
| def parse_iso8601(date_str, delimiter='T', timezone=None): | ||||
|     """ Return a UNIX timestamp from the given date """ | ||||
|  | ||||
|     if date_str is None: | ||||
|         return None | ||||
|  | ||||
|     m = re.search( | ||||
|         r'(\.[0-9]+)?(?:Z$| ?(?P<sign>\+|-)(?P<hours>[0-9]{2}):?(?P<minutes>[0-9]{2})$)', | ||||
|         date_str) | ||||
|     if not m: | ||||
|         timezone = datetime.timedelta() | ||||
|     else: | ||||
|         date_str = date_str[:-len(m.group(0))] | ||||
|         if not m.group('sign'): | ||||
|     if timezone is None: | ||||
|         m = re.search( | ||||
|             r'(\.[0-9]+)?(?:Z$| ?(?P<sign>\+|-)(?P<hours>[0-9]{2}):?(?P<minutes>[0-9]{2})$)', | ||||
|             date_str) | ||||
|         if not m: | ||||
|             timezone = datetime.timedelta() | ||||
|         else: | ||||
|             sign = 1 if m.group('sign') == '+' else -1 | ||||
|             timezone = datetime.timedelta( | ||||
|                 hours=sign * int(m.group('hours')), | ||||
|                 minutes=sign * int(m.group('minutes'))) | ||||
|             date_str = date_str[:-len(m.group(0))] | ||||
|             if not m.group('sign'): | ||||
|                 timezone = datetime.timedelta() | ||||
|             else: | ||||
|                 sign = 1 if m.group('sign') == '+' else -1 | ||||
|                 timezone = datetime.timedelta( | ||||
|                     hours=sign * int(m.group('hours')), | ||||
|                     minutes=sign * int(m.group('minutes'))) | ||||
|     date_format = '%Y-%m-%d{0}%H:%M:%S'.format(delimiter) | ||||
|     dt = datetime.datetime.strptime(date_str, date_format) - timezone | ||||
|     return calendar.timegm(dt.timetuple()) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user