1
0
Fork 0
mirror of synced 2024-06-06 12:24:39 +12:00

Fix a crash when downloading a disabled pornhub video

This commit is contained in:
Serene-Arc 2021-11-05 13:23:55 +10:00
parent d25f3fe008
commit 801784c46d
2 changed files with 21 additions and 1 deletions

View file

@ -6,6 +6,7 @@ from typing import Optional
from praw.models import Submission
from bdfr.exceptions import SiteDownloaderError
from bdfr.resource import Resource
from bdfr.site_authenticator import SiteAuthenticator
from bdfr.site_downloaders.youtube import Youtube
@ -22,10 +23,15 @@ class PornHub(Youtube):
'format': 'best',
'nooverwrites': True,
}
if video_attributes := super().get_video_attributes(self.post.url):
extension = video_attributes['ext']
else:
raise SiteDownloaderError()
out = Resource(
self.post,
self.post.url,
super()._download_video(ytdl_options),
super().get_video_attributes(self.post.url)['ext'],
extension,
)
return [out]

View file

@ -5,6 +5,7 @@ from unittest.mock import MagicMock
import pytest
from bdfr.exceptions import SiteDownloaderError
from bdfr.resource import Resource
from bdfr.site_downloaders.pornhub import PornHub
@ -13,6 +14,7 @@ from bdfr.site_downloaders.pornhub import PornHub
@pytest.mark.slow
@pytest.mark.parametrize(('test_url', 'expected_hash'), (
('https://www.pornhub.com/view_video.php?viewkey=ph6074c59798497', 'd9b99e4ebecf2d8d67efe5e70d2acf8a'),
('https://www.pornhub.com/view_video.php?viewkey=ph5ede121f0d3f8', ''),
))
def test_find_resources_good(test_url: str, expected_hash: str):
test_submission = MagicMock()
@ -23,3 +25,15 @@ def test_find_resources_good(test_url: str, expected_hash: str):
assert isinstance(resources[0], Resource)
resources[0].download()
assert resources[0].hash.hexdigest() == expected_hash
@pytest.mark.online
@pytest.mark.parametrize('test_url', (
'https://www.pornhub.com/view_video.php?viewkey=ph5ede121f0d3f8',
))
def test_find_resources_good(test_url: str):
test_submission = MagicMock()
test_submission.url = test_url
downloader = PornHub(test_submission)
with pytest.raises(SiteDownloaderError):
downloader.find_resources()