Compare commits

..

6 Commits

Author SHA1 Message Date
bashonly
a9212f3424
Apply suggestion from code review 2023-12-08 00:09:48 +00:00
bashonly
94b265d997
[ie/eplus] Refactor login 2023-12-07 17:57:49 -06:00
Mozi
ba4677162d [ie/eplus] get cookies in a simpler way
Co-authored-by: bashonly <88596187+bashonly@users.noreply.github.com>
2023-12-08 04:48:01 +08:00
Mozi
2d1a8d78a9 [ie/eplus] detect login by checking "ci_session" in cookies 2023-12-08 04:31:47 +08:00
Mozi
b9d65e8f30 [ie/eplus] revert
This reverts commit 5c50024289.
2023-12-08 04:30:59 +08:00
Mozi
5c50024289 [ie/eplus] detect login by checking "ci_session" in cookies 2023-12-08 04:22:56 +08:00

View File

@ -75,18 +75,14 @@ class EplusIbIE(InfoExtractor):
}] }]
_USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0' _USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0'
_TEST_EVENT_URL = 'https://live.eplus.jp/2053935'
def _perform_login(self, id, password): def _login(self, username, password, urlh):
urlh = self._request_webpage( if not self._get_cookies('https://live.eplus.jp/').get('ci_session'):
self._TEST_EVENT_URL, None, note='Getting auth status', errnote='Unable to get auth status') raise ExtractorError('Unable to get ci_session cookie')
if urlh.url.startswith(self._TEST_EVENT_URL):
# already logged in
return
cltft_token = urlh.headers.get('X-CLTFT-Token') cltft_token = urlh.headers.get('X-CLTFT-Token')
if not cltft_token: if not cltft_token:
raise ExtractorError('Unable to get X-CLTFT-Token', expected=False) raise ExtractorError('Unable to get X-CLTFT-Token')
self._set_cookie('live.eplus.jp', 'X-CLTFT-Token', cltft_token) self._set_cookie('live.eplus.jp', 'X-CLTFT-Token', cltft_token)
login_json = self._download_json( login_json = self._download_json(
@ -97,7 +93,7 @@ class EplusIbIE(InfoExtractor):
'X-Cltft-Token': cltft_token, 'X-Cltft-Token': cltft_token,
'Accept': '*/*', 'Accept': '*/*',
}, data=json.dumps({ }, data=json.dumps({
'loginId': id, 'loginId': username,
'loginPassword': password, 'loginPassword': password,
}).encode()) }).encode())
if not login_json.get('isSuccess'): if not login_json.get('isSuccess'):
@ -106,7 +102,7 @@ class EplusIbIE(InfoExtractor):
self._request_webpage( self._request_webpage(
urlh.url, None, note='Logging in', errnote='Unable to log in', urlh.url, None, note='Logging in', errnote='Unable to log in',
data=urlencode_postdata({ data=urlencode_postdata({
'loginId': id, 'loginId': username,
'loginPassword': password, 'loginPassword': password,
'Token.Default': cltft_token, 'Token.Default': cltft_token,
'op': 'nextPage', 'op': 'nextPage',
@ -117,7 +113,12 @@ class EplusIbIE(InfoExtractor):
webpage, urlh = self._download_webpage_handle( webpage, urlh = self._download_webpage_handle(
url, video_id, headers={'User-Agent': self._USER_AGENT}) url, video_id, headers={'User-Agent': self._USER_AGENT})
if urlh.url.startswith('https://live.eplus.jp/member/auth'): if urlh.url.startswith('https://live.eplus.jp/member/auth'):
username, password = self._get_login_info()
if not username:
self.raise_login_required() self.raise_login_required()
self._login(username, password, urlh)
webpage = self._download_webpage(
url, video_id, headers={'User-Agent': self._USER_AGENT})
data_json = self._search_json(r'<script>\s*var app\s*=', webpage, 'data json', video_id) data_json = self._search_json(r'<script>\s*var app\s*=', webpage, 'data json', video_id)