1
0
mirror of https://github.com/l1ving/youtube-dl synced 2025-01-23 02:02:53 +08:00

PR feedback

This commit is contained in:
Devon Meunier 2020-03-08 19:03:59 -04:00
parent 9a3f9af97b
commit d8a2941dba

View File

@ -3,6 +3,7 @@ from __future__ import unicode_literals
import json import json
import re import re
from xml.sax.saxutils import escape
from .common import InfoExtractor from .common import InfoExtractor
from ..compat import ( from ..compat import (
@ -221,10 +222,7 @@ class CBCWatchBaseIE(InfoExtractor):
_API_KEY = '3f4beddd-2061-49b0-ae80-6f1f2ed65b37' _API_KEY = '3f4beddd-2061-49b0-ae80-6f1f2ed65b37'
_NETRC_MACHINE = 'cbcwatch' _NETRC_MACHINE = 'cbcwatch'
def _signature(self): def _signature(self, email, password):
email, password = self._get_login_info()
if email is None:
return
data = json.dumps({ data = json.dumps({
'email': email, 'email': email,
'password': password, 'password': password,
@ -275,19 +273,21 @@ class CBCWatchBaseIE(InfoExtractor):
return self._device_id and self._device_token return self._device_id and self._device_token
def _register_device(self): def _register_device(self):
signature = self._signature()
self._device_id = self._device_token = None
result = self._download_xml( result = self._download_xml(
self._API_BASE_URL + 'device/register', self._API_BASE_URL + 'device/register',
None, 'Acquiring device token', None, 'Acquiring device token',
data=b'<device><type>web</type></device>') data=b'<device><type>web</type></device>')
self._device_id = xpath_text(result, 'deviceId', fatal=True) self._device_id = xpath_text(result, 'deviceId', fatal=True)
self._device_token = xpath_text(result, 'deviceToken', fatal=True) anon_device_token = xpath_text(result, 'deviceToken', fatal=True)
if signature: email, password = self._get_login_info()
data = '<login><token>{0}</token><device><deviceId>{1}</deviceId><type>web</type></device></login>'.format(signature, self._device_id).encode() if email and password:
signature = self._signature(email, password)
data = '<login><token>{0}</token><device><deviceId>{1}</deviceId><type>web</type></device></login>'.format(escape(signature), escape(self._device_id)).encode()
url = self._API_BASE_URL + 'device/login' url = self._API_BASE_URL + 'device/login'
result = self._download_xml(url, None, data=data, headers={'content-type': 'application/xml'}) result = self._download_xml(url, None, data=data, headers={'content-type': 'application/xml'})
self._device_token = xpath_text(result, 'token', fatal=True) self._device_token = xpath_text(result, 'token', fatal=True)
else:
self._device_token = anon_device_token
self._downloader.cache.store( self._downloader.cache.store(
'cbcwatch', 'device', { 'cbcwatch', 'device', {
'id': self._device_id, 'id': self._device_id,