From cc793fcab5b9fb07d47d2ac80a0bcd4c723298e8 Mon Sep 17 00:00:00 2001 From: Avi Peretz Date: Thu, 27 Dec 2018 23:43:13 +0200 Subject: [PATCH] fix ok slowness. fix upload date extraction --- youtube_dl/extractor/odnoklassniki.py | 30 +++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/youtube_dl/extractor/odnoklassniki.py b/youtube_dl/extractor/odnoklassniki.py index 190d8af4d..d52159da1 100644 --- a/youtube_dl/extractor/odnoklassniki.py +++ b/youtube_dl/extractor/odnoklassniki.py @@ -127,8 +127,8 @@ class OdnoklassnikiIE(InfoExtractor): 'http://ok.ru/video/%s' % video_id, video_id) error = self._search_regex( - r'[^>]+class="vp_video_stub_txt"[^>]*>([^<]+)<', - webpage, 'error', default=None) + r'
(?P.*?)<\/div>', + webpage, name='error',group='error', default=None) if error: raise ExtractorError(error, expected=True) @@ -172,6 +172,32 @@ class OdnoklassnikiIE(InfoExtractor): upload_date = unified_strdate(self._html_search_meta( 'ya:ovs:upload_date', webpage, 'upload date', default=None)) + if upload_date is None: + upload_date_str = self._search_regex( + r'vp-layer-info_date">(?P.*?)<\/span>', + webpage, 'upload date', group='date') + if upload_date_str: + from datetime import datetime + upload_date_time = None + try: + upload_date_time = datetime.strptime(upload_date_str, '%d %b %Y') + except: + pass + try: + upload_date_time = datetime.strptime(upload_date_str, '%d %b') + upload_date_time = upload_date_time.replace(year=datetime.utcnow().year) + except: + pass + try: + upload_date_time = datetime.strptime(upload_date_str, '%H:%M') + upload_date_time = upload_date_time.replace(year=datetime.utcnow().year) + upload_date_time = upload_date_time.replace(day=datetime.utcnow().day) + except: + pass + + if upload_date_time: + upload_date = upload_date_time.strftime('%Y%m%d') + age_limit = None adult = self._html_search_meta( 'ya:ovs:adult', webpage, 'age limit', default=None)