def router(url):

    try:

        add_plugin_dirs(
            [control.join(control.addonPath, 'resources', 'lib', 'resolvers')])

        forced_host = control.setting('force_host')

        rr = relevant_resolvers()
        domains = [r.domains for r in rr][1:]
        domain_list = [d for dm in domains for d in dm]

        if forced_host in domain_list:

            stream = HostedMediaFile(media_id=url, host=forced_host).resolve()

            return stream

        elif HostedMediaFile(url).valid_url():

            stream = resolve(url)

            return stream

        else:

            return url

    except ResolverError:

        return url
Beispiel #2
0
def _():
    (path, serverlist, titlelist,
     title) = request.parse(plugin.path, 'ServerListParser')
    position = Dialog().select(_addon.getLocalizedString(33500), titlelist)
    item = ListItem(title)
    url = False

    if position != -1:
        xbmc.executebuiltin('ActivateWindow(busydialognocancel)')
        resolveurl.add_plugin_dirs(_plugins)

        try:
            url = resolveurl.resolve(serverlist[position])

            if url:
                edb.connect()
                edb.add(path)
                edb.close()
                item.setPath(url)
                subtitle = request.subtitle(serverlist[position])

                if subtitle:
                    item.setSubtitles([subtitle])
            else:
                Dialog().notification(_addon.getLocalizedString(33502), '')
        except:
            Dialog().notification(_addon.getLocalizedString(33501), '')

        xbmc.executebuiltin('Dialog.Close(busydialognocancel)')
    else:
        xbmc.executebuiltin('Playlist.Clear')
        xbmc.sleep(500)

    xbmcplugin.setResolvedUrl(plugin.handle, isinstance(url, str), item)
Beispiel #3
0
def get_resolved(url):
    import xbmcvfs

    resolved = daddyFind(url)
    if resolved:
        return resolved
    else:
        logga("NO RESOLVER DADDY")

    resolved = wizhdFind(url)
    if resolved:
        return resolved
    else:
        logga("NO RESOLVER WIZHD")

    resolved = assiaFind(url)
    if resolved:
        return resolved
    else:
        logga("NO RESOLVER ASSIA")

    resolved = GetLSProData(url)
    if resolved:
        return resolved
    else:
        logga("NO RESOLVER DATA")

    try:
        import resolveurl
    except:
        dialog = xbmcgui.Dialog()
        mess = "Lo script 'script.module.resolveurl' non risulta installato."
        dialog.ok("Mandrakodi", mess)
        return url

    logga("TRY TO RESOLVE: " + url)
    xxx_plugins_path = 'special://home/addons/script.module.resolveurl.xxx/resources/plugins/'
    if xbmcvfs.exists(xxx_plugins_path):
        logging.warning("OK XXX RESOLVER ")
        if sys.version_info[0] > 2:
            xxxp = xbmcvfs.translatePath(xxx_plugins_path)
        else:
            import xbmc
            xxxp = xbmc.translatePath(xxx_plugins_path)
        resolveurl.add_plugin_dirs(xxxp)
    try:
        resolved = resolveurl.resolve(url)
        if resolved:
            logga("OK RESOLVER: " + resolved)
            return resolved
    except Exception as e:
        logga("NO RESOLVER")

    return url
Beispiel #4
0
def resolveMyUrl(url):
    import resolveurl, xbmcvfs
    xxx_plugins_path = 'special://home/addons/script.module.resolveurl.xxx/resources/plugins/'
    if xbmcvfs.exists(xxx_plugins_path):
        resolveurl.add_plugin_dirs(xbmc.translatePath(xxx_plugins_path))
    try:
        resolved = resolveurl.resolve(url)
    except:
        pass
    if resolved:
        logging.error("MANDRA URL_SOLVED: " + resolved)
        return resolved
    else:
        return url
Beispiel #5
0
def play_episode():
    response = request(plugin.path)
    document = BeautifulSoup(response.text, 'html.parser')
    title = document.find('h1').text.strip()
    all_server = document.find_all('li', {'data-video': True})
    position = Dialog().select('Choose Server',
                               [server.contents[0] for server in all_server])

    if position != -1:
        xbmc.executebuiltin('ActivateWindow(busydialognocancel)')
        resolveurl.add_plugin_dirs(__plugins__)

        try:
            url = resolveurl.resolve(all_server[position].attrs['data-video'])

            if url:
                item = ListItem(title, path=url)
                sub = re.search('&sub=([^&]+)',
                                all_server[position].attrs['data-video'])

                if sub:
                    response = session.get(
                        'https://embed.watchasian.to/player/sub/index.php?id='
                        + sub.group(1))
                    item.setSubtitles([__temp__])

                    with open(__temp__, 'w') as o:
                        for i, text in enumerate(re.split(
                                'WEBVTT\r\n\r\n|\r\n\r\n', response.text)[1:],
                                                 start=1):
                            o.write('{}\r\n{}\r\n\r\n'.format(
                                i, text.encode('utf-8')))

                xbmcplugin.setResolvedUrl(plugin.handle, True, item)
            else:
                raise
        except:
            Dialog().notification('Couldn\'t Resolve Server', '')

        xbmc.executebuiltin('Dialog.Close(busydialognocancel)')
Beispiel #6
0
def play_episode():
    response = request(plugin.path)
    document = BeautifulSoup(response.text, 'html.parser')
    sources = []
    for server in document.find('div', class_="anime_muti_link").find_all('a'):
        if server.contents[1].name == 'i':
            title = server.contents[2]
        else:
            title = server.contents[1]
        source = ListItem(title)
        source.setProperty("data-video", server['data-video'])
        if not 'hydrax' in server['data-video'] and not 'mp4upload' in server[
                'data-video']:
            sources.append(source)
    position = Dialog().select("Choose server", sources)

    if position != -1:
        # resolvedUrl = resolveUrl(sources[position].getProperty("data-video"))
        resolveurl.add_plugin_dirs(__plugins__)
        url = resolveurl.resolve(sources[position].getProperty("data-video"))
        print(url)
        xbmcplugin.setResolvedUrl(plugin.handle, True, ListItem(path=url))
Beispiel #7
0
import requests

import xbmc
import xbmcplugin
import xbmcgui
import xbmcaddon
import xbmcvfs
import cloudflare
from jsunpack import unpack
import resolveurl
import xbmcvfs
from functools import wraps

xxx_plugins_path = 'special://home/addons/script.module.resolveurl.xxx/resources/plugins/'
if xbmcvfs.exists(xxx_plugins_path):
    resolveurl.add_plugin_dirs(xbmc.translatePath(xxx_plugins_path))

from url_dispatcher import URL_Dispatcher

url_dispatcher = URL_Dispatcher()

USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0'  #resolveurl.lib.net.get_ua()

headers = {
    'User-Agent': USER_AGENT,
    'Accept':
    'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
    'Accept-Encoding': 'gzip',
    'Accept-Language': 'en-US,en;q=0.8',
    'Connection': 'keep-alive'
import six

from resources.lib.modules.player import multilinkselector

adultresolver = adultresolver.streamer()

URLopener = six.moves.urllib.request.URLopener
quote_plus = six.moves.urllib.parse.quote_plus
unquote_plus = six.moves.urllib.parse.unquote_plus

buildDirectory = local_utils.buildDir

xxx_plugins_path = 'special://home/addons/script.module.resolveurl.xxx/resources/plugins/'

if xbmcvfs.exists(xxx_plugins_path):
    add_plugin_dirs(xbmc.translatePath(xxx_plugins_path))

download_icon = xbmc.translatePath(
    os.path.join(
        'special://home/addons/script.adultflix.artwork/resources/art/main',
        'downloads.png'))


class MyOpener(URLopener):
    version = 'python-requests/2.9.1'


myopener = MyOpener()
urlretrieve = MyOpener().retrieve
urlopen = MyOpener().open
download_location = kodi.get_setting("download_location")
Beispiel #9
0
import xbmc,xbmcgui,os,re,urllib,time
import adultresolver
adultresolver = adultresolver.streamer()
import kodi
import xbmcaddon, os
import client
import utils
import history
import blacklist
import log_utils
import downloader
import resolveurl, xbmcvfs
xxx_plugins_path = 'special://home/addons/script.module.resolveurl.xxx/resources/plugins/'
if xbmcvfs.exists(xxx_plugins_path): resolveurl.add_plugin_dirs(xbmc.translatePath(xxx_plugins_path))
dialog = xbmcgui.Dialog()
@utils.url_dispatcher.register('801', ['url'], ['name', 'iconimage', 'pattern']) 
def resolve_url(url, name=None, iconimage=None, pattern=None):

    kodi.busy()
    
    try: url,site = url.split('|SPLIT|')
    except: 
        site = 'Unknown'
        log_utils.log('Error getting site information from :: %s' % (url), log_utils.LOGERROR)
    
    if not name: name = 'Unknown'
    if not iconimage: iconimage = kodi.addonicon
    name = re.sub(r'(\[.+?\])','',name); name = name.lstrip()
    if '] - ' in name: name = name.split('] - ')[-1] 
    if 'site=' in url: url,site = url.split('site=')
Beispiel #10
0
import requests

import xbmc
import xbmcplugin
import xbmcgui
import xbmcaddon
import xbmcvfs
import cloudflare
from jsunpack import unpack
import resolveurl
import xbmcvfs
from functools import wraps

xxx_plugins_path = 'special://home/addons/script.module.resolveurl.xxx/resources/plugins/'
if xbmcvfs.exists(xxx_plugins_path):
    resolveurl.add_plugin_dirs(xbmc.translatePath(xxx_plugins_path))

from url_dispatcher import URL_Dispatcher

url_dispatcher = URL_Dispatcher()

USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0'#resolveurl.lib.net.get_ua()

headers = {'User-Agent': USER_AGENT,
           'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
           'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
           'Accept-Encoding': 'gzip',
           'Accept-Language': 'en-US,en;q=0.8',
           'Connection': 'keep-alive'}
openloadhdr = headers
def conditionals(url):

    add_plugin_dirs(control.transPath(PLUGINS_PATH))

    def yt(uri):

        if uri.startswith('plugin://'):
            return uri

        if len(uri) == 11:

            uri = YT_URL + uri

        try:
            return youtube.wrapper(uri)
        except YouTubeException as exp:
            log_debug('Youtube resolver failure, reason: ' + repr(exp))
            return

    if 'youtu' in url or len(url) == 11:

        log_debug('Resolving with youtube addon...')

        return yt(url)

    elif HOSTS(url) and HostedMediaFile(url).valid_url():

        try:
            stream = resolve_url(url)
            log_debug('Resolving with Resolveurl...')
        except HTTPError:
            return url

        return stream

    elif HostedMediaFile(url).valid_url():

        if control.setting('show_alt_vod') == 'true':

            try:
                stream = resolve_url(url)
                log_debug('Resolving with Resolveurl...')
            except ResolverError:
                return
            except HTTPError:
                return url

            return stream

        else:

            control.okDialog('AliveGR', control.lang(30354))
            return 'https://static.adman.gr/inpage/blank.mp4'

    elif GM_BASE in url:

        sources = gm_source_maker(url)
        stream = mini_picker(sources['links'])

        return conditionals(stream)

    elif urlparse(GK_BASE).netloc in url:

        streams = gk_source_maker(url)
        stream = mini_picker(streams['links'])

        if control.setting('check_streams') == 'true':
            return stream
        else:
            return conditionals(stream)

    else:

        log_debug('Passing direct link...')

        return url
def conditionals(url):

    add_plugin_dirs(control.transPath(PLUGINS_PATH))

    def yt(uri):

        if uri.startswith('plugin://'):
            return uri

        if len(uri) == 11:

            uri = YT_URL + uri

        try:
            return youtube.wrapper(uri)
        except YouTubeException as exp:
            log_debug('Youtube resolver failure, reason: ' + repr(exp))
            return

    if 'youtu' in url:

        log_debug('Resolved with youtube addon')

        return yt(url)

    elif url.startswith('iptv://'):

        try:
            if CACHE_DEBUG:
                hosts, urls = common.iptv(urlsplit(url).netloc)
            else:
                hosts, urls = cache.get(common.iptv, 2, urlsplit(url).netloc)
        except Exception:
            return

        stream = mini_picker(hosts, urls, dont_check=True)

        return stream

    elif HOSTS(url) and HostedMediaFile(url).valid_url():

        try:
            stream = resolve_url(url)
        except urllib2.HTTPError:
            return url

        return stream

    elif HostedMediaFile(url).valid_url():

        if control.setting('show_alt_vod') == 'true':

            try:
                stream = resolve_url(url)
            except urllib2.HTTPError:
                return url

            return stream

        else:

            control.okDialog('AliveGR', control.lang(30354))
            return 'https://static.adman.gr/inpage/blank.mp4'

    elif GM_BASE in url:

        if CACHE_DEBUG:
            sources = source_maker(url)
        else:
            sources = cache.get(source_maker, 6, url)
            if not sources:
                return

        link = mini_picker(sources['hosts'], sources['links'])

        if not link:
            return

        stream = conditionals(link)
        return stream

    elif GK_BASE in url:

        if CACHE_DEBUG:
            stream = gk_debris(url)
        else:
            stream = cache.get(gk_debris, 48, url)
        if not stream:
            return
        else:
            return stream

    else:

        return url