2019-08-29 17:19:20 +02:00

71 lines
3.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from __future__ import unicode_literals
import re
import ast
from .common import InfoExtractor
class ClaviorIE(InfoExtractor):
_VALID_URL = r'http://(?:www\.)?(clavior|bofiaz)\.com/(?P<key>.*)/index.php\?option=com_content&view=article&id=(?P<id>.*):ghhghgh&catid=(?P<catid>[0-9]+):(?P<genre>[a-z]+)-&Itemid=(?P<itemid>[0-9]+)'
_TESTS = [{
'url': 'http://clavior.com/kk54bvb7gyt8/index.php?option=com_content&view=article&id=685549200:ghhghgh&catid=7:drame-&Itemid=17',
'info_dict': {
'id': '685549200',
'ext': 'mp4',
'title': 'Tolkien (2019) ',
'description': 'Revient sur la jeunesse et les années dapprentissage du célèbre auteur J.R.R. Tolkien. Orphelin, il trouve lamitié, lamour et linspiration au sein dun groupe de camarades de son école. Mais la Première Guerre Mondiale éclate et menace de détruire cette « communauté ». Ce sont toutes ces expériences qui vont inspirer Tolkien dans lécriture de ses romans de la Terre du Milieu "Bilbo le Hobbit" et "Le Seigneur des Anneaux".',
'thumbnail': r're:^https?://image\.tmdb\.org/t/p/original/.*\.jpg$',
},
}, {
'url': 'http://bofiaz.com/lmop87vv5d4c8df7/index.php?option=com_content&view=article&id=1036058205:ghhghgh&catid=6:comedie-&Itemid=16',
'info_dict': {
'id': '1036058205',
'ext': 'mp4',
'title': 'Tu pourrais être le tueur (2018) ',
'description': "Un moniteur de camp souffrant de trous de mémoire se retrouve entouré de meurtre. Il se tourne vers son ami passionné de films d'horreur pour lui demander conseil et pour lui faire croire qu'il est peut-être le tueur.",
'thumbnail': r're:^https?://image\.tmdb\.org/t/p/original/.*\.jpg$',
},
}]
def _real_extract(self, url):
if 'test' not in self._downloader.params:
self._downloader.report_warning('For now, this extractor only supports the 30 second previews. Patches welcome!')
mobj = re.match(self._VALID_URL, url)
id = mobj.group('id')
webpage = self._download_webpage(url, id)
nexturl = self._search_regex(r'<iframe src="(((?!com).)*?)"', webpage, "Iframe src")
title = self._search_regex(r'<title>(.*?)</title>', webpage, "title")
description = self._search_regex(r'<p style="text-align: left;">\s*(([\s\S])*?)\s*</p>', webpage, "description")
thumbnail = self._search_regex(r'<img src="(.*?)"', webpage, "thumbnail")
webpage = self._download_webpage(nexturl, id)
nexturl = self._search_regex(r"""<a onclick="window\.location\.href='(.*?)'""", webpage, "Onclick location")
webpage = self._download_webpage(nexturl, id)
data_json = self._search_regex(r'sources: \[\s*(([\s\S])*?)\s*\],', webpage, "data JSON")
data_json = data_json.replace("'", '"').replace('file', '"file"').replace('label', '"label"').replace('type', '"type"').replace('},', '}').replace('\t', '')
formats = []
for line in data_json.splitlines():
data = ast.literal_eval(line)
formats.append({
'format_id': 'full',
'url': data.get('file'),
'preference': -1 if data.get('label') == '720p' else -2,
'ext': data.get('type'),
})
return {
'id': id,
'title': title,
'description': description,
'thumbnail': thumbnail,
'formats': formats,
}