示例#1
0
	def process(self, url, direct=True):
		try:
			if not any(i in url for i in ['.jpg', '.png', '.gif']): raise Exception()
			ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower()
			if not ext in ['jpg', 'png', 'gif']: raise Exception()
			try:
				i = control.joinPath(control.dataPath,'img')
				control.deleteFile(i)
				f = control.openFile(i, 'w')
				f.write(client.request(url))
				f.close()
				control.execute('ShowPicture("%s")' % i)
				return False
			except: return
		except:
			log_utils.error()

		try:
			r, x = re.findall(r'(.+?)\|regex=(.+?)$', url)[0]
			x = regex.fetch(x)
			r += unquote_plus(x)
			if not '</regex>' in r: raise Exception()
			u = regex.resolve(r)
			if not u is None: url = u
		except: pass

		try:
			if not url.startswith('rtmp'): raise Exception()
			if len(re.compile(r'\s*timeout=(\d*)').findall(url)) == 0: url += ' timeout=10'
			return url
		except: pass

		try:
			if not any(i in url for i in ['.m3u8', '.f4m', '.ts']): raise Exception()
			ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower()
			if not ext in ['m3u8', 'f4m', 'ts']: raise Exception()
			return url
		except: pass

		try:
			preset = re.findall(r'<preset>(.+?)</preset>', url)[0]
			if not 'search' in preset: raise Exception()
			title, year, imdb = re.findall(r'<title>(.+?)</title>', url)[0], re.findall('<year>(.+?)</year>', url)[0], re.findall(r'<imdb>(.+?)</imdb>', url)[0]

			try: tvdb, tvshowtitle, premiered, season, episode = re.findall(r'<tvdb>(.+?)</tvdb>', url)[0], re.findall(r'<tvshowtitle>(.+?)</tvshowtitle>', url)[0],
																							re.findall(r'<premiered>(.+?)</premiered>', url)[0], re.findall(r'<season>(.+?)</season>', url)[0],
																							re.findall(r'<episode>(.+?)</episode>', url)[0]
			except: tvdb = tvshowtitle = premiered = season = episode = None

			direct = False
			quality = 'HD' if not preset == 'searchsd' else 'SD'

			from resources.lib.modules import sources
			u = sources.Sources().getSources(title, year, imdb, tvdb, season, episode, tvshowtitle, premiered, quality)
			if u: return u
示例#2
0
 def getx(self, url, worker=False):
     try:
         r, x = re.findall('(.+?)\|regex=(.+?)$', url)[0]
         x = regex.fetch(x)
         r += urllib.unquote_plus(x)
         url = regex.resolve(r)
         self.list = self.jizzplanet_list('', result=url)
         self.addDirectory(self.list)
         return self.list
     except:
         pass
示例#3
0
 def getx(self, url, worker=False):
     try:
         r, x = re.findall('(.+?)\|regex=(.+?)$', url)[0]
         x = regex.fetch(x)
         r += urllib.unquote_plus(x)
         url = regex.resolve(r)
         self.list = self.streamhub_list('', result=url)
         self.addDirectory(self.list)
         return self.list
     except:
         pass
示例#4
0
	def getx(self, url, worker=False):
		try:
			r, x = re.findall(r'(.+?)\|regex=(.+?)$', url)[0]
			x = regex.fetch(x)
			r += unquote_plus(x)
			url = regex.resolve(r)
			self.list = self.it_list('', result=url)
			self.addDirectory(self.list)
			return self.list
		except:
			log_utils.error()
示例#5
0
    def process(self, url, direct=True):
        try:
            if not any(i in url for i in ['.jpg', '.png', '.gif']):
                raise Exception()
            ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit(
                '.')[-1].replace('/', '').lower()
            if not ext in ['jpg', 'png', 'gif']: raise Exception()
            try:
                i = os.path.join(control.dataPath, 'img')
                control.deleteFile(i)
                f = control.openFile(i, 'w')
                f.write(client.request(url))
                f.close()
                control.execute('ShowPicture("%s")' % i)
                return False
            except:
                return
        except:
            pass

        try:
            r, x = re.findall('(.+?)\|regex=(.+?)$', url)[0]
            x = regex.fetch(x)
            r += urllib.unquote_plus(x)
            if not '</regex>' in r: raise Exception()
            u = regex.resolve(r)
            if not u == None: url = u
        except:
            pass

        try:
            if not url.startswith('rtmp'): raise Exception()
            if len(re.compile('\s*timeout=(\d*)').findall(url)) == 0:
                url += ' timeout=10'
            return url
        except:
            pass

        try:
            if not any(i in url for i in ['.m3u8', '.f4m', '.ts']):
                raise Exception()
            ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit(
                '.')[-1].replace('/', '').lower()
            if not ext in ['m3u8', 'f4m', 'ts']: raise Exception()
            return url
        except:
            pass

        try:
            import urlresolver

            hmf = urlresolver.HostedMediaFile(url=url)

            if hmf.valid_url() == False: raise Exception()

            direct = False
            u = hmf.resolve()

            if not u == False: return u
        except:
            pass

        if direct == True: return url
示例#6
0
    def process(self, url, direct=True):
        try:
            if not any(i in url for i in ['.jpg', '.png', '.gif']): raise Exception()
            ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower()
            if not ext in ['jpg', 'png', 'gif']: raise Exception()
            try:
                i = os.path.join(control.dataPath,'img')
                control.deleteFile(i)
                f = control.openFile(i, 'w')
                f.write(client.request(url))
                f.close()
                control.execute('ShowPicture("%s")' % i)
                return False
            except:
                return
        except:
            pass

        try:
            r, x = re.findall('(.+?)\|regex=(.+?)$', url)[0]
            x = regex.fetch(x)
            r += urllib.unquote_plus(x)
            if not '</regex>' in r: raise Exception()
            u = regex.resolve(r)
            if not u == None: url = u
        except:
            pass

        try:
            if not url.startswith('rtmp'): raise Exception()
            if len(re.compile('\s*timeout=(\d*)').findall(url)) == 0: url += ' timeout=10'
            return url
        except:
            pass

        try:
            if not any(i in url for i in ['.m3u8', '.f4m', '.ts']): raise Exception()
            ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower()
            if not ext in ['m3u8', 'f4m', 'ts']: raise Exception()
            return url
        except:
            pass

        try:
            preset = re.findall('<preset>(.+?)</preset>', url)[0]

            if not 'search' in preset: raise Exception()

            title, year, imdb = re.findall('<title>(.+?)</title>', url)[0], re.findall('<year>(.+?)</year>', url)[0], re.findall('<imdb>(.+?)</imdb>', url)[0]

            try: tvdb, tvshowtitle, premiered, season, episode = re.findall('<tvdb>(.+?)</tvdb>', url)[0], re.findall('<tvshowtitle>(.+?)</tvshowtitle>', url)[0], re.findall('<premiered>(.+?)</premiered>', url)[0], re.findall('<season>(.+?)</season>', url)[0], re.findall('<episode>(.+?)</episode>', url)[0]
            except: tvdb = tvshowtitle = premiered = season = episode = None

            direct = False

            quality = 'HD' if not preset == 'searchsd' else 'SD'

            from resources.sources import sources

            u = sources().getSources(title, year, imdb, tvdb, season, episode, tvshowtitle, premiered, quality)

            if not u == None: return u
        except:
            pass

        try:
            from resources.sources import sources

            u = sources().getURISource(url)

            if not u == False: direct = False
            if u == None or u == False: raise Exception()

            return u
        except:
            pass

        try:
            if not '.google.com' in url: raise Exception()
            from resources.lib.modules import directstream
            u = directstream.google(url)[0]['url']
            return u
        except:
            pass

        try:
            if not 'filmon.com/' in url: raise Exception()
            from resources.lib.modules import filmon
            u = filmon.resolve(url)
            return u
        except:
            pass
			
        try:
            if not 'uptostream/' in url: raise Exception()
            from resources.lib.modules import filmon
            u = url.replace('uptostream','uptobox')
            return u
        except:
            pass

        try:
            if not 'liveonlinetv' in url: raise Exception()
            u = liveonlinetv247(url)
            return (str(u)).replace('["' , '').replace(']"' , '').replace('[[' , '').replace(']]' , '').replace('[' , '').replace(']' , '').replace('"' , '').replace("'" , "") + '|User-Agent=Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'
        except:
            pass
		
        try:
            if not 'tvplayer' in url: raise Exception()
            u = playtvplayer(url)
            return u
        except:
            pass
			
        try:
            if not 'tvcatchup' in url: raise Exception()
            open = getUrl(url)
            u    = re.compile("file: '(.+?)'").findall(open)[0]
            return u
        except:
            pass
			
        try:
            if not 'robssatellitetv.com' in url: raise Exception()
            open = getUrl(url)
            u    = re.compile('src: "(.+?)"').findall(open)[0]
            return u
        except:
            pass
			
        try:
            if not 'arconaitv.me' in url: raise Exception()
            url  = 'http://www.justproxy.co.uk/index.php?q='+base64.b64encode(url)
            open = getUrl(url)
            u    = re.compile('"src":"(.+?)"').findall(open)[0]
            u    = u.strip()
            return str(u).replace('\/','/').replace('"','')
        except:
            pass
			

        try:
            import urlresolver

            hmf = urlresolver.HostedMediaFile(url=url)

            if hmf.valid_url() == False: raise Exception()

            direct = False ; u = hmf.resolve()

            if not u == False: return u
        except:
            pass

        if direct == True: return url
示例#7
0
	def process(self, url, direct=True):
		try:
			if not any(i in url for i in ['.jpg', '.png', '.gif']): raise Exception()
			ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower()
			if not ext in ['jpg', 'png', 'gif']: raise Exception()
			try:
				i = os.path.join(control.dataPath,'img')
				control.deleteFile(i)
				f = control.openFile(i, 'w')
				f.write(client.request(url))
				f.close()
				control.execute('ShowPicture("%s")' % i)
				return False
			except:
				return
		except:
			pass

		try:
			r, x = re.findall('(.+?)\|regex=(.+?)$', url)[0]
			x = regex.fetch(x)
			r += urllib.unquote_plus(x)
			if not '</regex>' in r: raise Exception()
			u = regex.resolve(r)
			if not u == None: url = u
		except:
			pass

		try:
			if not url.startswith('rtmp'): raise Exception()
			if len(re.compile('\s*timeout=(\d*)').findall(url)) == 0: url += ' timeout=10'
			return url
		except:
			pass

		try:
			if not any(i in url for i in ['.m3u8', '.f4m', '.ts']): raise Exception()
			ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower()
			if not ext in ['m3u8', 'f4m', 'ts']: raise Exception()
			return url
		except:
			pass

		try:
			preset = re.findall('<preset>(.+?)</preset>', url)[0]

			if not 'search' in preset: raise Exception()

			title, year, imdb = re.findall('<title>(.+?)</title>', url)[0], re.findall('<year>(.+?)</year>', url)[0], re.findall('<imdb>(.+?)</imdb>', url)[0]

			try: tvdb, tvshowtitle, premiered, season, episode = re.findall('<tvdb>(.+?)</tvdb>', url)[0], re.findall('<tvshowtitle>(.+?)</tvshowtitle>', url)[0], re.findall('<premiered>(.+?)</premiered>', url)[0], re.findall('<season>(.+?)</season>', url)[0], re.findall('<episode>(.+?)</episode>', url)[0]
			except: tvdb = tvshowtitle = premiered = season = episode = None

			direct = False

			quality = 'HD' if not preset == 'searchsd' else 'SD'

			from resources.lib.modules import sources

			u = sources.sources().getSources(title, year, imdb, tvdb, season, episode, tvshowtitle, premiered, quality)

			if not u == None: return u
		except:
			pass

		try:
			from resources.lib.modules import sources

			u = sources.sources().getURISource(url)

			if not u == False: direct = False
			if u == None or u == False: raise Exception()

			return u
		except:
			pass

		try:
			if not '.google.com' in url: raise Exception()
			from resources.lib.modules import directstream
			u = directstream.google(url)[0]['url']
			return u
		except:
			pass

		try:
			if not 'filmon.com/' in url: raise Exception()
			from resources.lib.modules import filmon
			u = filmon.resolve(url)
			return u
		except:
			pass

		try:
			try: headers = dict(urlparse.parse_qsl(url.rsplit('|', 1)[1]))
			except: headers = dict('')
			if not url.startswith('http'): raise Exception()
			result = client.request(url.split('|')[0], headers=headers, output='headers', timeout='20')
			if 'Content-Type' in result and not 'html' in result['Content-Type']: raise Exception()

			import liveresolver
			if liveresolver.isValid(url) == True: direct = False
			u = liveresolver.resolve(url)

			if not u == None:
				try: dialog.close()
				except: pass
				return u
		except:
			pass
			
		try:
			import urlresolver

			hmf = urlresolver.HostedMediaFile(url=url)

			if hmf.valid_url() == False: raise Exception()

			direct = False ; u = hmf.resolve()

			if not u == False: return u
		except:
			pass

		if direct == True: return url
示例#8
0
	def process(self, url, direct=True):
		try:
			if not any(i in url for i in ['.jpg', '.png', '.gif']): raise Exception()
			ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower()
			if not ext in ['jpg', 'png', 'gif']: raise Exception()
			try:
				i = os.path.join(control.dataPath,'img')
				control.deleteFile(i)
				f = control.openFile(i, 'w')
				f.write(client.request(url))
				f.close()
				control.execute('ShowPicture("%s")' % i)
				return False
			except:
				return
		except:
			pass

		try:
			r, x = re.findall('(.+?)\|regex=(.+?)$', url)[0]
			x = regex.fetch(x)
			r += urllib.unquote_plus(x)
			if not '</regex>' in r: raise Exception()
			u = regex.resolve(r)
			if not u is None: url = u
		except:
			pass

		try:
			if not url.startswith('rtmp'): raise Exception()
			if len(re.compile('\s*timeout=(\d*)').findall(url)) == 0: url += ' timeout=10'
			return url
		except:
			pass

		try:
			if not any(i in url for i in ['.m3u8', '.f4m', '.ts']): raise Exception()
			ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower()
			if not ext in ['m3u8', 'f4m', 'ts']: raise Exception()
			return url
		except:
			pass

		try:
			preset = re.findall('<preset>(.+?)</preset>', url)[0]

			if not 'search' in preset: raise Exception()

			title, year, imdb = re.findall('<title>(.+?)</title>', url)[0], re.findall('<year>(.+?)</year>', url)[0], re.findall('<imdb>(.+?)</imdb>', url)[0]

			try: tvdb, tvshowtitle, premiered, season, episode = re.findall('<tvdb>(.+?)</tvdb>', url)[0], re.findall('<tvshowtitle>(.+?)</tvshowtitle>', url)[0], re.findall('<premiered>(.+?)</premiered>', url)[0], re.findall('<season>(.+?)</season>', url)[0], re.findall('<episode>(.+?)</episode>', url)[0]
			except: tvdb = tvshowtitle = premiered = season = episode = None

			direct = False

			quality = 'HD' if not preset == 'searchsd' else 'SD'

			from resources.lib.modules import sources

			u = sources.Sources().getSources(title, year, imdb, tvdb, season, episode, tvshowtitle, premiered, quality)

			if not u is None: return u
		except:
			pass

		try:
			from resources.lib.modules import sources

			u = sources.Sources().getURISource(url)

			if not u is False: direct = False
			if u is None or u is False: raise Exception()

			return u
		except:
			pass

		try:
			if not '.google.com' in url: raise Exception()
			from resources.lib.modules import directstream
			u = directstream.google(url)[0]['url']
			return u
		except:
			pass

		try:
			if not 'filmon.com/' in url: raise Exception()
			from resources.lib.modules import filmon
			u = filmon.resolve(url)
			return u
		except:
			pass

		try:
			try: headers = dict(urlparse.parse_qsl(url.rsplit('|', 1)[1]))
			except: headers = dict('')
			if not url.startswith('http'): raise Exception()
			result = client.request(url.split('|')[0], headers=headers, output='headers', timeout='20')
			if 'Content-Type' in result and not 'html' in result['Content-Type']: raise Exception()

			import liveresolver
			if liveresolver.isValid(url) is True: direct = False
			u = liveresolver.resolve(url)

			if not u is None:
				try: dialog.close()
				except: pass
				return u
		except:
			pass

		try:
			import resolveurl

			hmf = resolveurl.HostedMediaFile(url=url)

			if hmf.valid_url() is False: raise Exception()

			direct = False ; u = hmf.resolve()

			if not u is False: return u
		except:
			pass

		if direct is True: return url
示例#9
0
def resolveUrl(url, direct=True):
    try:
        dialog = None
        dialog = control.progressDialog
        dialog.create(control.addonInfo('name'), control.lang(30726).encode('utf-8'))
        dialog.update(0)
    except:
        pass

    try:
        if not '</regex>' in url: raise Exception()
        from resources.lib.modules import regex
        u = regex.resolve(url)
        if not u == None: url = u
    except:
        pass


    try:
        if not '.f4m'in url: raise Exception()
        ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower()
        if not ext == 'f4m': raise Exception()
        from resources.lib.modules.f4mproxy.F4mProxy import f4mProxyHelper
        f4mlabel = cleantitle(control.infoLabel('listitem.label'))
        f4micon = control.infoLabel('listitem.icon')
        return f4mProxyHelper().playF4mLink(url, f4mlabel, None, None, '', f4micon)
    except:
        pass


    try:
        if not url.startswith('rtmp'): raise Exception()
        if len(re.compile('\s*timeout=(\d*)').findall(url)) == 0: url += ' timeout=10'
        return playItem(url, dialog)
    except:
        pass


    try:
        url = url.split('<source>')[0]

        domain = '.'.join((urlparse.urlparse(url).netloc).split('.')[-2:]).lower()

        s = []
        path = os.path.join(control.addonInfo('path'), 'resources', 'lib', 'sources')
        for d in os.listdir(path):
            try: s += [(d, re.findall('self\.domains\s*=\s*\[(.+?)\]', open(os.path.join(path, d), 'r').read())[0].split(','))]
            except: pass
        s = [(i[0], [x.replace('\'', '').replace('\"', '').strip() for x in i[1]]) for i in s]
        s = [i[0].replace('.py', '') for i in s if domain in i[1]]
        if len(s) > 0: direct = False

        import urlresolver
        hostDict = urlresolver.plugnplay.man.implementors(urlresolver.UrlResolver)
        hostDict = [i.domains for i in hostDict]
        hostDict = [i for i in hostDict if not '*' in i]
        hostDict = [i.lower() for i in reduce(lambda x, y: x+y, hostDict)]
        hostDict = [x for y,x in enumerate(hostDict) if x not in hostDict[:y]]

        hostcapDict = ['hugefiles.net', 'kingfiles.net', 'openload.io', 'openload.co']

        call = __import__('resources.lib.sources.%s' % s[0], globals(), locals(), ['object'], -1).source()

        sources = call.sources(url, hostDict, hostDict)

        random.shuffle(sources)

        filter = []
        filter += [i for i in sources if i['direct'] == True]
        filter += [i for i in sources if i['direct'] == False]
        sources = filter

        filter = []
        filter += [i for i in sources if i['quality'] == '1080p' and not i['source'].lower() in hostcapDict]
        filter += [i for i in sources if i['quality'] == '1080p' and i['source'].lower() in hostcapDict]
        filter += [i for i in sources if i['quality'] == 'HD' and not i['source'].lower() in hostcapDict]
        filter += [i for i in sources if i['quality'] == 'HD' and i['source'].lower() in hostcapDict]
        filter += [i for i in sources if i['quality'] == 'SD' and not i['source'].lower() in hostcapDict]
        filter += [i for i in sources if i['quality'] == 'SCR' and not i['source'].lower() in hostcapDict]
        filter += [i for i in sources if i['quality'] == 'CAM' and not i['source'].lower() in hostcapDict]
        sources = filter

        try: dialog.update(50, control.lang(30726).encode('utf-8'), str(' '))
        except: pass

        u = None

        for i in range(len(sources)):
            try:
                try:
                    if dialog.iscanceled(): break
                    if xbmc.abortRequested == True: return sys.exit()
                except:
                    pass

                url = call.resolve(sources[i]['url'])
                if url == None: raise Exception()

                if not sources[i]['direct'] == True:
                    url = urlresolver.HostedMediaFile(url=sources[i]['url']).resolve()

                if url == False: raise Exception()

                u = url ; break
            except:
                pass

        if not u == None: return playItem(u, dialog)
    except:
        pass


    try:
        import urlresolver
        if urlresolver.HostedMediaFile(url).valid_url() == True: direct = False
        u = urlresolver.HostedMediaFile(url=url).resolve()
        if not u == False: return playItem(u, dialog)
    except:
        pass


    try:
        domain = '.'.join((urlparse.urlparse(url).netloc).split('.')[-2:]).lower()

        s = []
        path = os.path.join(control.addonInfo('path'), 'resources', 'lib', 'resolvers')
        for d in os.listdir(path):
            try: s += [(d, re.findall('domains\s*=\s*\[(.+?)\]', open(os.path.join(path, d), 'r').read())[0].split(','))]
            except: pass
        s = [(i[0], [x.replace('\'', '').replace('\"', '').strip() for x in i[1]]) for i in s]
        s = [i[0].replace('.py', '') for i in s if domain in i[1]]
        if len(s) > 0: direct = False

        u = __import__('resources.lib.resolvers.%s' % s[0], globals(), locals(), ['object'], -1).resolve(url)

        if not u == None: return playItem(u, dialog)
    except:
        pass


    if direct == True: return playItem(url, dialog)


    try: dialog.close()
    except: pass

    return control.infoDialog(control.lang(30705).encode('utf-8'))
示例#10
0
    def process(self, url, direct=True):
        try:
            dialog = None
            dialog = control.progressDialog
            dialog.create(control.addonInfo('name'),
                          control.lang(30726).encode('utf-8'))
            dialog.update(0)
        except:
            pass

        try:
            if not '</regex>' in url: raise Exception()
            from resources.lib.modules import regex
            u = regex.resolve(url)
            if not u == None: url = u
        except:
            pass

        try:
            if not url.startswith('rtmp'): raise Exception()
            if len(re.compile('\s*timeout=(\d*)').findall(url)) == 0:
                url += ' timeout=10'
            try:
                dialog.close()
            except:
                pass
            return url
        except:
            pass

        try:
            if not '.m3u8' in url: raise Exception()
            ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit(
                '.')[-1].replace('/', '').lower()
            if not ext == 'm3u8': raise Exception()
            try:
                dialog.close()
            except:
                pass
            return url
        except:
            pass

        try:
            preset = re.findall('<preset>(.+?)</preset>', url)[0]

            title, year, imdb = re.findall(
                '<title>(.+?)</title>', url)[0], re.findall(
                    '<year>(.+?)</year>',
                    url)[0], re.findall('<imdb>(.+?)</imdb>', url)[0]

            try:
                tvdb, tvshowtitle, premiered, season, episode = re.findall(
                    '<tvdb>(.+?)</tvdb>', url)[0], re.findall(
                        '<tvshowtitle>(.+?)</tvshowtitle>',
                        url)[0], re.findall('<premiered>(.+?)</premiered>',
                                            url)[0], re.findall(
                                                '<season>(.+?)</season>',
                                                url)[0], re.findall(
                                                    '<episode>(.+?)</episode>',
                                                    url)[0]
            except:
                tvdb = tvshowtitle = premiered = season = episode = None

            direct = False

            presetDict = [
                'primewire_mv_tv', 'watchfree_mv_tv', 'movie25_mv',
                'watchseries_tv', 'dizibox_tv', 'dizigold_tv', 'dizilab_tv',
                'miradetodo_mv', 'onemovies_mv_tv', 'onlinedizi_tv',
                'pelispedia_mv_tv', 'pubfilm_mv_tv', 'putlocker_mv_tv',
                'sezonlukdizi_tv', 'usmovies_mv', 'usseries_tv', 'watch1080_mv'
            ]

            if preset == 'searchsd':
                presetDict = [
                    'primewire_mv_tv', 'watchfree_mv_tv', 'movie25_mv',
                    'watchseries_tv'
                ]

            from resources.lib.sources import sources

            try:
                dialog.update(0,
                              control.lang(30726).encode('utf-8'),
                              control.lang(30731).encode('utf-8'))
            except:
                pass

            u = sources().getSources(title,
                                     year,
                                     imdb,
                                     tvdb,
                                     season,
                                     episode,
                                     tvshowtitle,
                                     premiered,
                                     presetDict=presetDict,
                                     progress=False,
                                     timeout=20)

            try:
                dialog.update(50,
                              control.lang(30726).encode('utf-8'),
                              control.lang(30731).encode('utf-8'))
            except:
                pass

            u = sources().sourcesDirect(u, progress=False)

            if not u == None:
                try:
                    dialog.close()
                except:
                    pass
                return u
        except:
            pass

        try:
            from resources.lib.sources import sources

            u = sources().getURISource(url)

            if not u == False: direct = False
            if u == None or u == False or u == []: raise Exception()

            try:
                dialog.update(50,
                              control.lang(30726).encode('utf-8'),
                              control.lang(30731).encode('utf-8'))
            except:
                pass

            u = sources().sourcesDirect(u, progress=False)

            if not u == None:
                try:
                    dialog.close()
                except:
                    pass
                return u
        except:
            pass

        try:
            if not '.google.com' in url: raise Exception()
            from resources.lib.modules import directstream
            u = directstream.google(url)[0]['url']
            try:
                dialog.close()
            except:
                pass
            return u
        except:
            pass

        try:
            import urlresolver

            try:
                hmf = urlresolver.HostedMediaFile(url=url,
                                                  include_disabled=True,
                                                  include_universal=False)
            except:
                hmf = urlresolver.HostedMediaFile(url=url)

            if hmf.valid_url() == False: raise Exception()

            direct = False
            u = hmf.resolve()
            if 'plugin://plugin.video.youtube' in u: raise Exception()

            if not u == False:
                try:
                    dialog.close()
                except:
                    pass
                return u
        except:
            pass

        try:
            try:
                headers = dict(urlparse.parse_qsl(url.rsplit('|', 1)[1]))
            except:
                headers = dict('')
            if not url.startswith('http'): raise Exception()
            result = client.request(url.split('|')[0],
                                    headers=headers,
                                    output='headers',
                                    timeout='20')
            if 'Content-Type' in result and not 'html' in result[
                    'Content-Type']:
                raise Exception()

            import liveresolver
            if liveresolver.isValid(url) == True: direct = False
            u = liveresolver.resolve(url)

            if not u == None:
                try:
                    dialog.close()
                except:
                    pass
                return u
        except:
            pass

        if direct == True: return url

        try:
            dialog.close()
        except:
            pass
示例#11
0
    def process(self, url, direct=True):
        try:
            if not any(i in url for i in ['.jpg', '.png', '.gif']): raise Exception()
            ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower()
            if not ext in ['jpg', 'png', 'gif']: raise Exception()
            try:
                dialog = None
                dialog = control.progressDialog
                dialog.create(control.addonInfo('name'), control.lang(30732).encode('utf-8'))
                dialog.update(0)
                i = os.path.join(control.dataPath,'img')
                control.deleteFile(i)
                f = control.openFile(i, 'w')
                f.write(client.request(url))
                f.close()
                dialog.close()
                control.execute('ShowPicture("%s")' % i)
                return True
            except:
                return
        except:
            pass

        try:
            dialog = None
            dialog = control.progressDialog
            dialog.create(control.addonInfo('name'), control.lang(30726).encode('utf-8'))
            dialog.update(0)
        except:
            pass

        try:
            if not '</regex>' in url: raise Exception()
            from resources.lib.modules import regex
            u = regex.resolve(url)
            if not u == None: url = u
        except:
            pass

        try:
            if not url.startswith('rtmp'): raise Exception()
            if len(re.compile('\s*timeout=(\d*)').findall(url)) == 0: url += ' timeout=10'
            try: dialog.close()
            except: pass
            return url
        except:
            pass

        try:
            if not any(i in url for i in ['.m3u8', '.f4m', '.ts']): raise Exception()
            ext = url.split('?')[0].split('&')[0].split('|')[0].rsplit('.')[-1].replace('/', '').lower()
            if not ext in ['m3u8', 'f4m', 'ts']: raise Exception()
            try: dialog.close()
            except: pass
            return url
        except:
            pass

        try:
            preset = re.findall('<preset>(.+?)</preset>', url)[0]

            title, year, imdb = re.findall('<title>(.+?)</title>', url)[0], re.findall('<year>(.+?)</year>', url)[0], re.findall('<imdb>(.+?)</imdb>', url)[0]

            try: tvdb, tvshowtitle, premiered, season, episode = re.findall('<tvdb>(.+?)</tvdb>', url)[0], re.findall('<tvshowtitle>(.+?)</tvshowtitle>', url)[0], re.findall('<premiered>(.+?)</premiered>', url)[0], re.findall('<season>(.+?)</season>', url)[0], re.findall('<episode>(.+?)</episode>', url)[0]
            except: tvdb = tvshowtitle = premiered = season = episode = None

            direct = False

            presetDict = ['primewire_mv_tv', 'watchfree_mv_tv', 'movie25_mv', 'watchseries_tv', 'afdah_mv', 'dtmovies_mv', 'dizibox_tv', 'dizigold_tv', 'miradetodo_mv', 'onemovies_mv_tv', 'onlinedizi_tv', 'pelispedia_mv_tv', 'pubfilm_mv_tv', 'putlocker_mv_tv', 'rainierland_mv', 'sezonlukdizi_tv', 'tunemovie_mv', 'xmovies_mv']

            if preset == 'searchsd': presetDict = ['primewire_mv_tv', 'watchfree_mv_tv', 'movie25_mv', 'watchseries_tv']

            from resources.lib.sources import sources

            try: dialog.update(0, control.lang(30726).encode('utf-8'), control.lang(30731).encode('utf-8'))
            except: pass

            u = sources().getSources(title, year, imdb, tvdb, season, episode, tvshowtitle, premiered, presetDict=presetDict, progress=False, timeout=20)

            try: dialog.update(50, control.lang(30726).encode('utf-8'), control.lang(30731).encode('utf-8'))
            except: pass

            u = sources().sourcesDirect(u, progress=False)

            if not u == None:
                try: dialog.close()
                except: pass
                return u
        except:
            pass

        try:
            from resources.lib.sources import sources

            u = sources().getURISource(url)

            if not u == False: direct = False
            if u == None or u == False or u == []: raise Exception()

            try: dialog.update(50, control.lang(30726).encode('utf-8'), control.lang(30731).encode('utf-8'))
            except: pass

            u = sources().sourcesDirect(u, progress=False)

            if not u == None:
                try: dialog.close()
                except: pass
                return u
        except:
            pass

        try:
            if not '.google.com' in url: raise Exception()
            from resources.lib.modules import directstream
            u = directstream.google(url)[0]['url']
            try: dialog.close()
            except: pass
            return u
        except:
            pass

        try:
            import urlresolver

            hmf = urlresolver.HostedMediaFile(url=url, include_disabled=True, include_universal=False)

            if hmf.valid_url() == False: raise Exception()

            direct = False ; u = hmf.resolve()
            if 'plugin://plugin.video.youtube' in u: raise Exception()

            if not u == False:
                try: dialog.close()
                except: pass
                return u
        except:
            pass


        try:
            try: headers = dict(urlparse.parse_qsl(url.rsplit('|', 1)[1]))
            except: headers = dict('')
            if not url.startswith('http'): raise Exception()
            result = client.request(url.split('|')[0], headers=headers, output='headers', timeout='20')
            if 'Content-Type' in result and not 'html' in result['Content-Type']: raise Exception()

            import liveresolver
            if liveresolver.isValid(url) == True: direct = False
            u = liveresolver.resolve(url)

            if not u == None:
                try: dialog.close()
                except: pass
                return u
        except:
            pass


        if direct == True: return url

        try: dialog.close()
        except: pass