''' urlresolver Kodi plugin Copyright (C) 2018 This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . ''' import json from lib import helpers from urlresolver import common from urlresolver.resolver import UrlResolver, ResolverError class FembedResolver(UrlResolver): name = "fembed" domains = ["fembed.com", "24hd.club", "vcdn.io"] pattern = '(?://|\.)((?:fembed\.com|24hd\.club|vcdn\.io))/v/([a-zA-Z0-9]+)' def __init__(self): self.net = common.Net() def get_media_url(self, host, media_id): web_url = self.get_url(host, media_id) headers = {'Referer': web_url, 'User-Agent': common.RAND_UA} api_url = 'https://www.%s/api/source/%s' % (host, media_id) js_result = self.net.http_POST(api_url, form_data={'r': ''}, headers=headers).content if js_result: try: js_data = json.loads(js_result) if js_data.get('success'): sources = [(i.get('label'), i.get('file')) for i in js_data.get('data') if i.get('type') == 'mp4'] common.logger.log(sources) sources = helpers.sort_sources_list(sources) return helpers.pick_source(sources) + helpers.append_headers(headers) else: raise Exception(js_data.get('data')) except Exception as e: raise ResolverError('Error getting video: %s' % e) raise ResolverError('Video not found') def get_url(self, host, media_id): return self._default_get_url(host, media_id, 'https://www.{host}/v/{media_id}')