add worldstar mime parser

This commit is contained in:
woorst
2017-10-29 08:24:49 -05:00
parent 8af18e8a14
commit 2f4f335a0f
3 changed files with 232 additions and 0 deletions

View File

@@ -382,6 +382,7 @@ class LiveleakMIMEParser(BaseMIMEParser):
else:
return url, None
class ClippitUserMIMEParser(BaseMIMEParser):
"""
"""
@@ -446,6 +447,33 @@ class FlickrMIMEParser(OpenGraphMIMEParser):
# TODO: handle albums/photosets (https://www.flickr.com/services/api)
class WorldStarHipHopMIMEParser(BaseMIMEParser):
"""
<video>
<source src="https://hw-mobile.worldstarhiphop.com/..mp4" type="video/mp4">
<source src="" type="video/mp4">
</video>
Sometimes only one video source is available
"""
pattern = re.compile(r'https?://((www|m)\.)?worldstarhiphop\.com/videos/video.php\?v=\w+$')
@staticmethod
def get_mimetype(url):
page = requests.get(url)
soup = BeautifulSoup(page.content, 'html.parser')
source = soup.find_all(lambda t: t.name == 'source' and
t['src'] and t['type'] == 'video/mp4')
if source:
return source[0]['src'], 'video/mp4'
else:
iframe = soup.find_all(lambda t: t.name == 'iframe' and
'youtube.com' in t['src'])
if iframe:
return YoutubeMIMEParser.get_mimetype(iframe[0]['src'])
# Parsers should be listed in the order they will be checked
parsers = [
ClippitUserMIMEParser,
@@ -467,5 +495,6 @@ parsers = [
ImgflipMIMEParser,
LivememeMIMEParser,
MakeamemeMIMEParser,
WorldStarHipHopMIMEParser,
GifvMIMEParser,
BaseMIMEParser]