Merge remote-tracking branch 'dstftw/macgamestore'

This commit is contained in:
Philipp Hagemeister 2014-01-03 13:06:22 +01:00
commit cc14dfb8ec
2 changed files with 41 additions and 0 deletions

View File

@ -102,6 +102,7 @@ from .kickstarter import KickStarterIE
from .keek import KeekIE
from .liveleak import LiveLeakIE
from .livestream import LivestreamIE, LivestreamOriginalIE
from .macgamestore import MacGameStoreIE
from .mdr import MDRIE
from .metacafe import MetacafeIE
from .metacritic import MetacriticIE

View File

@ -0,0 +1,40 @@
import re
from .common import InfoExtractor
from ..utils import ExtractorError
class MacGameStoreIE(InfoExtractor):
IE_NAME = u'macgamestore'
IE_DESC = u'MacGameStore trailers'
_VALID_URL = r'https?://www\.macgamestore\.com/mediaviewer\.php\?trailer=(?P<id>\d+)'
_TEST = {
u'url': u'http://www.macgamestore.com/mediaviewer.php?trailer=2450',
u'file': u'2450.m4v',
u'md5': u'8649b8ea684b6666b4c5be736ecddc61',
u'info_dict': {
u'title': u'Crow',
}
}
def _real_extract(self, url):
mobj = re.match(self._VALID_URL, url)
video_id = mobj.group('id')
webpage = self._download_webpage(url, video_id, u'Downloading trailer page')
if re.search(r'>Missing Media<', webpage) is not None:
raise ExtractorError(u'Trailer %s does not exist' % video_id, expected=True)
mobj = re.search(r'<title>MacGameStore: (?P<title>.*?) Trailer</title>', webpage)
video_title = mobj.group('title')
mobj = re.search(r'(?s)<div\s+id="video-player".*?href="(?P<video>[^"]+)"\s*>', webpage)
video_url = mobj.group('video')
return {
'id': video_id,
'url': video_url,
'title': video_title
}