[spankbang] Improve and simplify

This commit is contained in:
Sergey M․ 2015-04-06 21:24:17 +06:00
parent a55e2f04a0
commit d97aae7572
1 changed files with 44 additions and 36 deletions

View File

@ -1,25 +1,23 @@
# coding: utf-8
from __future__ import unicode_literals from __future__ import unicode_literals
from .common import InfoExtractor
import re import re
from .common import InfoExtractor
class SpankBangIE(InfoExtractor): class SpankBangIE(InfoExtractor):
"""Extractor for http://spankbang.com""" _VALID_URL = r'https?://(?:(?:www|[a-z]{2})\.)?spankbang\.com/(?P<id>[\da-z]+)/video'
_VALID_URL = r"https?://(?:www\.)?spankbang\.com/(?P<id>\w+)/video/.*"
_TEST = { _TEST = {
"url": "http://spankbang.com/3vvn/video/fantasy+solo", 'url': 'http://spankbang.com/3vvn/video/fantasy+solo',
"md5": "1cc433e1d6aa14bc376535b8679302f7", 'md5': '1cc433e1d6aa14bc376535b8679302f7',
"info_dict": { 'info_dict': {
"id": "3vvn", 'id': '3vvn',
"title": "fantasy solo", 'ext': 'mp4',
"description": "Watch fantasy solo free HD porn video - 05 minutes - dillion harper masturbates on a bed free adult movies.", 'title': 'fantasy solo',
"format": "720p", 'description': 'dillion harper masturbates on a bed',
"format_id": "720p", 'thumbnail': 're:^https?://.*\.jpg$',
"ext": "mp4", 'uploader': 'silly2587',
"url": "http://spankbang.com/_3vvn/IjE0MjgyNjY5MTcuMzUi.IaGrcF-vDrvktMhjd-1fWixiCzU/title/720p__mp4" 'age_limit': 18,
} }
} }
@ -27,26 +25,36 @@ class SpankBangIE(InfoExtractor):
video_id = self._match_id(url) video_id = self._match_id(url)
webpage = self._download_webpage(url, video_id) webpage = self._download_webpage(url, video_id)
title = self._html_search_regex(r"<h1>(?:<img.+?>)?(.*?)</h1>", webpage, "title") stream_key = self._html_search_regex(
r'''var\s+stream_key\s*=\s*['"](.+?)['"]''',
webpage, 'stream key')
stream_key = self._html_search_regex(r"""var\s+stream_key\s*[=]\s*['"](.+?)['"]\s*;""", webpage, "stream_key") formats = [{
'url': 'http://spankbang.com/_%s/%s/title/%sp__mp4' % (video_id, stream_key, height),
'ext': 'mp4',
'format_id': '%sp' % height,
'height': int(height),
} for height in re.findall(r'<span[^>]+q_(\d+)p', webpage)]
self._sort_formats(formats)
qualities = re.findall(r"<span.+?>([0-9]+p).*?</span>", webpage) title = self._html_search_regex(
r'(?s)<h1>(.+?)</h1>', webpage, 'title')
description = self._search_regex(
r'class="desc"[^>]*>([^<]+)',
webpage, 'description', default=None)
thumbnail = self._og_search_thumbnail(webpage)
uploader = self._search_regex(
r'class="user"[^>]*>([^<]+)',
webpage, 'uploader', fatal=False)
formats = [] age_limit = self._rta_search(webpage)
for q in sorted(qualities):
formats.append({
"format_id": q,
"format": q,
"ext": "mp4",
"url": "http://spankbang.com/_{0}/{1}/title/{2}__mp4".format(video_id, stream_key, q)
})
return { return {
"id": video_id, 'id': video_id,
"title": title, 'title': title,
"description": self._og_search_description(webpage), 'description': description,
"formats": formats 'thumbnail': thumbnail,
'uploader': uploader,
'formats': formats,
'age_limit': age_limit,
} }
# vim: tabstop=4 expandtab