Exemplo n.º 1
0
def get_source(url, referer=None):
    logger.info()
    #Parche temporal por fallo en dominio principal
    old_dom = scrapertools.get_domain_from_url(url)
    new_dom = scrapertools.get_domain_from_url(host)
    url = re.sub(old_dom, new_dom, url)

    if referer is None:
        data = httptools.downloadpage(url).data
    else:
        data = httptools.downloadpage(url, headers={'Referer': referer}).data
    data = re.sub(r'\n|\r|\t|&nbsp;|<br>|\s{2,}', "", data)
    return data
Exemplo n.º 2
0
def test_video_exists(page_url):
    global headers
    real_host = '116.202.226.34'
    headers = [['User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0'],
               ['Host', scrapertools.get_domain_from_url(page_url)]]

    logger.info("(page_url='%s')" % page_url)
    if 'wstream' in page_url:
        resp = httptools.downloadpage(page_url.replace(headers[1][1], real_host), headers=headers, verify=False)
    else:
        resp = httptools.downloadpage(page_url, headers=headers, verify=False)

    global data, real_url
    data = resp.data

    page_url = resp.url.replace(headers[1][1], real_host)
    if '/streaming.php' in page_url in page_url:
        code = httptools.downloadpage(page_url, headers=headers, follow_redirects=False, only_headers=True, verify=False).headers['location'].split('/')[-1].replace('.html', '')
        # logger.info('WCODE=' + code)
        page_url = 'https://' + real_host + '/video.php?file_code=' + code
        data = httptools.downloadpage(page_url, headers=headers, follow_redirects=True, verify=False).data

    if 'nored.icu' in str(headers):
        var = scrapertools.find_single_match(data, r'var [a-zA-Z0-9]+ = \[([^\]]+).*?')
        value = scrapertools.find_single_match(data, r'String\.fromCharCode\(parseInt\(value\) \D (\d+)')
        if var and value:
            dec = ''
            for v in var.split(','):
                dec += chr(int(v) - int(value))
            page_url = 'https://' + real_host + '/video.php?file_code=' + scrapertools.find_single_match(dec, "src='([^']+)").split('/')[-1].replace('.html','')
            headers = [['User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0'],['Host', 'wstream.video']]
            new_data = httptools.downloadpage(page_url, headers=headers, follow_redirects=True, verify=False).data
            logger.info('NEW DATA: \n' + new_data)
            if new_data:
                data = new_data

    real_url = page_url
    if "Not Found" in data or "File was deleted" in data or 'Video is processing' in data or 'Sorry this video is unavailable' in data:
        return False, config.get_localized_string(70449) % 'Wstream'
    else:
        return True, ""
Exemplo n.º 3
0
def get_video_url(page_url,
                  premium=False,
                  user="",
                  password="",
                  video_password=""):
    video_urls = []
    global data
    host = scrapertools.get_domain_from_url(page_url)
    sources = scrapertools.find_multiple_matches(
        data, r'download_video([^"]+)[^\d]+\d+x(\d+)')
    if sources:
        sources.sort(key=lambda x: int(x[1]), reverse=True)
        sources = [(x[1] + 'p', x[0]) for x in sources]
        s = sources[
            0]  # only the first to reduce the number of requests to google recaptcha
        code, mode, hash = eval(s[1])
        dl_url = 'https://{0}/dl?op=download_orig&id={1}&mode={2}&hash={3}'.format(
            host, code, mode, hash)
        data = httptools.downloadpage(dl_url).data
        captcha = scrapertools.girc(
            data, 'https://{0}/'.format(host),
            base64.b64encode('https://{0}:443'.format(host).encode(
                'utf-8')).decode('utf-8').replace('=', ''))
        if captcha:
            data = httptools.downloadpage(dl_url,
                                          post={
                                              'op': 'download_orig',
                                              'id': code,
                                              'mode': mode,
                                              'hash': hash,
                                              'g-recaptcha-response': captcha
                                          },
                                          timeout=10).data
            media_url = scrapertools.find_single_match(
                data, 'href="([^"]+)"[^>]+>Download')
            if media_url:
                video_urls.append([s[0], media_url])
    return video_urls
Exemplo n.º 4
0
def findvideospeliculas(item):
    logger.info("[tumejortv.py] findvideospeliculas")
    
    data = scrapertools.cache_page(item.url)
    itemlist=[]
    
    data = scrapertools.get_match(data,'DEO ONLINE</label>(.*?)<div id="antlo_panel_derecho">')
    patron = '<tr>(.*?)</tr>'
    matches = re.compile(patron,re.DOTALL).findall(data)
    if DEBUG: scrapertools.printMatches(matches)

    for match in matches:
        '''
        <td  style="background-color:#F4FFF5;"  width="5px"></td>
        <td style="background-color:#f2f2f2;padding:5px;">
          <a href="http://www.putlocker.com/file/5F69DEDC53BDB38B" target="_blank" rel="nofollow"> 
          <img src="http://www.tumejortv.com/images/general/acceder.gif">
          <br /> Ver </a>
        </td>
        <td style="background-color:#F4FFF5;" >
          <a rel="nofollow" title=" Ver " href="http://www.putlocker.com/file/5F69DEDC53BDB38B" target="_blank">
          <img src="http://www.tumejortv.com/images/gestores/Kd4wAuVbUUh8gg4q.png" alt="IMG" height="20px"><br>putlocker</a></td>
        <td style="background-color:#F4FFF5;" ><abbr title="1 Partes">1</abbr></td>
        <td style="background-color:#F4FFF5;" >BluRay-RIP</td>
        <td style="background-color:#F4FFF5;" ><img src="http://www.tumejortv.com/resize_image.php?img=images/idioma/tRGyYHsBvDCDBBGk.png&mw=80&mh=24" alt="Latino" title="Latino"/></td>
        <td style="background-color:#F4FFF5;" ><img src="http://www.tumejortv.com/resize_image.php?img=images/idioma/mM7jVs9QPgMysjip.png&mw=80&mh=24" alt="No" title="No"/></td>
        <td style="background-color:#F4FFF5;" >gonkus</td><td style="background-color:#F4FFF5;" ><a rel="nofollow" href="http://www.putlocker.com/file/5F69DEDC53BDB38B" target="_blank" title=" Ver ">Oz un mundo de ...</a></td>
        '''
        try:
            url = scrapertools.get_match(match,'<a rel="nofollow" title=" Ver " href="([^"]+)"')
        except:
            try:
                url = scrapertools.get_match(match,'<a rel="nofollow" title=" Bajar " href="([^"]+)"')
            except:
                logger.info("No encuentro la url en #"+match+"#")
                url=""
        try:
            #<br>vidxden</a></td>
            #<td style="background-color:#F4FFF5;" >1</td>
            #<td style="background-color:#F4FFF5;" >HDTV 720p AC3 5.1</td><td style="background-color:#F4FFF5;" >
            calidad = scrapertools.get_match(match,'<br>[^<]+</a></td[^<]+<td[^<]+<abbr[^<]+</abbr[^<]+</td[^<]+<td[^>]+>([^<]+)</td>')
        except:
            logger.info("No encuentro la calidad en #"+match+"#")
            calidad=""

        try:
            servidor = scrapertools.get_match(match,'<br>([^<]+)</a></td')
        except:
            logger.info("No encuentro el servidor en #"+match+"#")
            servidor=""

        try:
            idioma = scrapertools.get_match(match,'<br>[^<]+</a></td[^<]+<td[^<]+<abbr[^<]+</abbr[^<]+</td[^<]+<td[^<]+</td><td[^<]+<img src="[^"]+" alt="([^"]+)"')
        except:
            logger.info("No encuentro el idioma en #"+match+"#")
            idioma=""

        if url!="":
            if "www.tumejortv.com" in url:
                itemlist.append( Item(channel=__channel__, action="findvideos_partes" , title=scrapertools.get_domain_from_url(url).strip()+" ("+idioma+") ("+calidad+") ("+servidor+")" , url=url, thumbnail=item.thumbnail, plot=item.plot, folder=True, fulltitle=item.title))
            else:
                itemlist.append( Item(channel=__channel__, action="play" , title=scrapertools.get_domain_from_url(url).strip()+" ("+idioma+") ("+calidad+") ("+servidor+")" , url=url, thumbnail=item.thumbnail, plot=item.plot, folder=False, fulltitle=item.title))

    return itemlist
Exemplo n.º 5
0
def findvideos(item):
    logger.info("[tumejortv.py] findvideos")
    
    data = scrapertools.cache_page(item.url)
    itemlist=[]
    '''
    from servers import servertools
    itemlist = servertools.find_video_items(data=data)
    for videoitem in itemlist:
        videoitem.channel=__channel__
        videoitem.action="play"
        videoitem.folder=False
        videoitem.title = "["+videoitem.server+"]"
        videoitem.fulltitle=item.fulltitle
    '''
    '''
    <tr>
    <td  style="background-color:#F4FFF5;"  width="5px">
    <img src="http://www.tumejortv.com/images/general/estreno2.png" alt="Estreno2"/>
    </td>
    <td style="background-color:#f2f2f2;padding:5px;">
    <a href="http://www.vidxden.com/tt4vyii9k1r8" target="_blank" rel="nofollow">
    <img src="http://www.tumejortv.com/images/general/acceder.gif">
    <br /> Ver </a></td><td style="background-color:#F4FFF5;" >
    <a rel="nofollow" title=" Ver " href="http://www.vidxden.com/tt4vyii9k1r8" target="_blank">
    <img src="http://www.tumejortv.com/images/gestores/hmaSfmTfLQ3xULF2.png" alt="IMG" height="20px">
    <br>vidxden</a></td>
    <td style="background-color:#F4FFF5;" >1</td>
    <td style="background-color:#F4FFF5;" >HDTV 720p AC3 5.1</td><td style="background-color:#F4FFF5;" >
    <img src="http://www.tumejortv.com/resize_image.php?img=images/idioma/antlo-es.png&mw=80&mh=24" alt="Español" title="Español"/>
    </td><td style="background-color:#F4FFF5;" >
    <img src="http://www.tumejortv.com/resize_image.php?img=images/idioma/mM7jVs9QPgMysjip.png&mw=80&mh=24" alt="No" title="No"/>
    </td>
    <td style="background-color:#F4FFF5;" >Carlitos(o)</td>
    <td style="background-color:#F4FFF5;" ><a rel="nofollow" href="http://www.vidxden.com/tt4vyii9k1r8" target="_blank" title=" Ver ">Capitulo 306</a></td></tr>
    '''
    #<label class="text_link">ONLINE</label>(.*?)<div id="antlo_listado_capitulos">
    data = scrapertools.get_match(data,'<label class="text_link">ONLINE</label>(.*?)<div id="antlo_listado_capitulos">')
    #patron = '<a title="[^>]+" href="(http://www.tumejortv.com/.*?/url/\d+)"[^>]+>([^<]+)</a></td><td>([^<]+)</td><td><img src="[^"]+" alt="([^"]+)"'
    patron = '<tr>(.*?)</tr>'
    matches = re.compile(patron,re.DOTALL).findall(data)
    if DEBUG: scrapertools.printMatches(matches)
    for match in matches:
        
        try:
            #
            url = scrapertools.get_match(match,'<a rel="nofollow" href="([^"]+)" target="_blank" title=" Ver "')
        except:
            try:
                url = scrapertools.get_match(match,'<a rel="nofollow" title=" Bajar " href="([^"]+)"')
            except:
                logger.info("No encuentro la url en #"+match+"#")
                url=""
        try:
            #<br>vidxden</a></td>
            #<td style="background-color:#F4FFF5;" >1</td>
            #<td style="background-color:#F4FFF5;" >HDTV 720p AC3 5.1</td><td style="background-color:#F4FFF5;" >
            calidad = scrapertools.get_match(match,'<br>[^<]+</a></td[^<]+<td[^<]+</td[^<]+<td[^>]+>([^<]+)</td>')
        except:
            logger.info("No encuentro la calidad en #"+match+"#")
            calidad=""
        try:
            idioma = scrapertools.get_match(match,'<br>[^<]+</a></td[^<]+<td[^<]+</td[^<]+<td[^<]+</td><td[^<]+<img src="[^"]+" alt="([^"]+)"')
        except:
            logger.info("No encuentro el idioma en #"+match+"#")
            idioma=""

        if url!="":
            #http://www.tumejortv.com/peliculas/A-Roma-con-amor--2012--2/url/364905
            itemlist.append( Item(channel=__channel__, action="play" , title=scrapertools.get_domain_from_url(url).strip()+" ("+idioma+") ("+calidad+")" , url=url, thumbnail=item.thumbnail, plot=item.plot, folder=False, fulltitle=item.title))

    return itemlist
Exemplo n.º 6
0
    def wrapper(*args):
        itemlist = []

        args = func(*args)
        function = func.__name__ if not 'actLike' in args else args['actLike']
        # log('STACK= ',inspect.stack()[1][3])

        item = args['item']

        action = args['action'] if 'action' in args else 'findvideos'
        anime = args['anime'] if 'anime' in args else ''
        addVideolibrary = args[
            'addVideolibrary'] if 'addVideolibrary' in args else True
        search = args['search'] if 'search' in args else ''
        blacklist = args['blacklist'] if 'blacklist' in args else []
        data = args['data'] if 'data' in args else ''
        patron = args['patron'] if 'patron' in args else args[
            'patronMenu'] if 'patronMenu' in args else ''
        if 'headers' in args:
            headers = args['headers']
        elif 'headers' in func.__globals__:
            headers = func.__globals__['headers']
        else:
            headers = ''
        patronNext = args['patronNext'] if 'patronNext' in args else ''
        patronBlock = args['patronBlock'] if 'patronBlock' in args else ''
        typeActionDict = args[
            'typeActionDict'] if 'typeActionDict' in args else {}
        typeContentDict = args[
            'typeContentDict'] if 'typeContentDict' in args else {}
        debug = args['debug'] if 'debug' in args else False
        debugBlock = args['debugBlock'] if 'debugBlock' in args else False
        if 'pagination' in args and inspect.stack()[1][3] not in [
                'add_tvshow', 'get_episodes', 'update', 'find_episodes'
        ]:
            pagination = args['pagination'] if args['pagination'] else 20
        else:
            pagination = ''
        lang = args['deflang'] if 'deflang' in args else ''
        pag = item.page if item.page else 1  # pagination
        matches = []

        log('PATRON= ', patron)
        if not data:
            page = httptools.downloadpage(item.url,
                                          headers=headers,
                                          ignore_response_code=True,
                                          session=item.session)
            # if url may be changed and channel has findhost to update
            if (not page.data or scrapertools.get_domain_from_url(
                    page.url) != scrapertools.get_domain_from_url(item.url)
                ) and 'findhost' in func.__globals__:
                host = func.__globals__['findhost']()
                parse = list(urlparse.urlparse(item.url))
                from core import jsontools
                jsontools.update_node(host,
                                      func.__module__.split('.')[-1], 'url')
                parse[1] = scrapertools.get_domain_from_url(host)
                item.url = urlparse.urlunparse(parse)
                page = httptools.downloadpage(item.url,
                                              headers=headers,
                                              ignore_response_code=True,
                                              session=item.session)
            data = page.data.replace("'", '"')
            data = re.sub('\n|\t', ' ', data)
            data = re.sub(r'>\s+<', '> <', data)
            # replace all ' with " and eliminate newline, so we don't need to worry about

        if patronBlock:
            if debugBlock:
                regexDbg(item, patronBlock, headers, data)
            blocks = scrapertools.find_multiple_matches_groups(
                data, patronBlock)
            block = ""
            for bl in blocks:
                # log(len(blocks),bl)
                if 'season' in bl and bl['season']:
                    item.season = bl['season']
                blockItemlist, blockMatches = scrapeBlock(
                    item, args, bl['block'], patron, headers, action,
                    pagination, debug, typeContentDict, typeActionDict,
                    blacklist, search, pag, function, lang)
                for it in blockItemlist:
                    if 'lang' in bl:
                        it.contentLanguage, it.title = scrapeLang(
                            bl, it.contentLanguage, it.title)
                    if 'quality' in bl and bl['quality']:
                        it.quality = bl['quality'].strip()
                        it.title = it.title + typo(bl['quality'].strip(),
                                                   '_ [] color kod')
                itemlist.extend(blockItemlist)
                matches.extend(blockMatches)
        elif patron:
            itemlist, matches = scrapeBlock(item, args, data, patron, headers,
                                            action, pagination, debug,
                                            typeContentDict, typeActionDict,
                                            blacklist, search, pag, function,
                                            lang)

        if 'itemlistHook' in args:
            itemlist = args['itemlistHook'](itemlist)

        if (pagination and len(matches) <= pag * pagination
            ) or not pagination:  # next page with pagination
            if patronNext and inspect.stack()[1][3] != 'newest':
                nextPage(itemlist, item, data, patronNext, function)

        # next page for pagination
        if pagination and len(matches) > pag * pagination and not search:
            if inspect.stack()[1][3] != 'get_newest':
                itemlist.append(
                    Item(channel=item.channel,
                         action=item.action,
                         contentType=item.contentType,
                         title=typo(config.get_localized_string(30992),
                                    'color kod bold'),
                         fulltitle=item.fulltitle,
                         show=item.show,
                         url=item.url,
                         args=item.args,
                         page=pag + 1,
                         thumbnail=thumb()))

        if action != 'play' and function != 'episodios' and 'patronMenu' not in args:
            tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)

        from specials import autorenumber
        if anime:
            if function == 'episodios' or item.action == 'episodios':
                autorenumber.renumber(itemlist, item, 'bold')
            else:
                autorenumber.renumber(itemlist)
        if anime and autorenumber.check(
                item) == False and not scrapertools.find_single_match(
                    itemlist[0].title, r'(\d+.\d+)'):
            pass
        else:
            if addVideolibrary and (item.infoLabels["title"]
                                    or item.fulltitle):
                # item.fulltitle = item.infoLabels["title"]
                videolibrary(itemlist, item, function=function)
            if config.get_setting('downloadenabled') and (
                    function == 'episodios' or function == 'findvideos'):
                download(itemlist, item, function=function)

        if 'patronMenu' in args and itemlist:
            itemlist = thumb(itemlist, genre=True)

        if 'fullItemlistHook' in args:
            itemlist = args['fullItemlistHook'](itemlist)

        # itemlist = filterLang(item, itemlist)   # causa problemi a newest

        return itemlist
Exemplo n.º 7
0
def get_server_host(server_name):
    from core import scrapertools
    return [scrapertools.get_domain_from_url(pattern['url']) for pattern in get_server_parameters(server_name)['find_videos']['patterns']]
Exemplo n.º 8
0
def findvideospeliculas(item):
    logger.info("pelisalacarta.channels.tumejortv findvideospeliculas")

    if item.url.startswith("http://www.tumejortv.com"):
        item.url = item.url.replace("http://www.tumejortv.com", BASE_URL)

    data = scrapertools.cache_page(item.url)
    itemlist = []

    data = scrapertools.get_match(
        data, 'DEO ONLINE</label>(.*?)<div id="antlo_panel_derecho">')
    patron = '<tr>(.*?)</tr>'
    matches = re.compile(patron, re.DOTALL).findall(data)
    if DEBUG: scrapertools.printMatches(matches)

    for match in matches:
        '''
        <td  style="background-color:#F4FFF5;"  width="5px"></td>
        <td style="background-color:#f2f2f2;padding:5px;">
          <a href="http://www.putlocker.com/file/5F69DEDC53BDB38B" target="_blank" rel="nofollow"> 
          <img src="http://www.tumejortv.com/images/general/acceder.gif">
          <br /> Ver </a>
        </td>
        <td style="background-color:#F4FFF5;" >
          <a rel="nofollow" title=" Ver " href="http://www.putlocker.com/file/5F69DEDC53BDB38B" target="_blank">
          <img src="http://www.tumejortv.com/images/gestores/Kd4wAuVbUUh8gg4q.png" alt="IMG" height="20px"><br>putlocker</a></td>
        <td style="background-color:#F4FFF5;" ><abbr title="1 Partes">1</abbr></td>
        <td style="background-color:#F4FFF5;" >BluRay-RIP</td>
        <td style="background-color:#F4FFF5;" ><img src="http://www.tumejortv.com/resize_image.php?img=images/idioma/tRGyYHsBvDCDBBGk.png&mw=80&mh=24" alt="Latino" title="Latino"/></td>
        <td style="background-color:#F4FFF5;" ><img src="http://www.tumejortv.com/resize_image.php?img=images/idioma/mM7jVs9QPgMysjip.png&mw=80&mh=24" alt="No" title="No"/></td>
        <td style="background-color:#F4FFF5;" >gonkus</td><td style="background-color:#F4FFF5;" ><a rel="nofollow" href="http://www.putlocker.com/file/5F69DEDC53BDB38B" target="_blank" title=" Ver ">Oz un mundo de ...</a></td>
        '''
        try:
            url = scrapertools.get_match(
                match, '<a rel="nofollow" title=" Ver " href="([^"]+)"')
        except:
            try:
                url = scrapertools.get_match(
                    match, '<a rel="nofollow" title=" Bajar " href="([^"]+)"')
            except:
                logger.info("No encuentro la url en #" + match + "#")
                url = ""
        try:
            #<br>vidxden</a></td>
            #<td style="background-color:#F4FFF5;" >1</td>
            #<td style="background-color:#F4FFF5;" >HDTV 720p AC3 5.1</td><td style="background-color:#F4FFF5;" >
            calidad = scrapertools.get_match(
                match,
                '<br>[^<]+</a></td[^<]+<td[^<]+<abbr[^<]+</abbr[^<]+</td[^<]+<td[^>]+>([^<]+)</td>'
            )
        except:
            logger.info("No encuentro la calidad en #" + match + "#")
            calidad = ""

        try:
            servidor = scrapertools.get_match(match, '<br>([^<]+)</a></td')
        except:
            logger.info("No encuentro el servidor en #" + match + "#")
            servidor = ""

        try:
            idioma = scrapertools.get_match(
                match,
                '<br>[^<]+</a></td[^<]+<td[^<]+<abbr[^<]+</abbr[^<]+</td[^<]+<td[^<]+</td><td[^<]+<img src="[^"]+" alt="([^"]+)"'
            )
        except:
            logger.info("No encuentro el idioma en #" + match + "#")
            idioma = ""

        if url != "":
            if "www.tumejortv.com" in url:
                itemlist.append(
                    Item(channel=__channel__,
                         action="findvideos_partes",
                         title=scrapertools.get_domain_from_url(url).strip() +
                         " (" + idioma + ") (" + calidad + ") (" + servidor +
                         ")",
                         url=url,
                         thumbnail=item.thumbnail,
                         plot=item.plot,
                         folder=True,
                         fulltitle=item.title))
            else:
                itemlist.append(
                    Item(channel=__channel__,
                         action="play",
                         title=scrapertools.get_domain_from_url(url).strip() +
                         " (" + idioma + ") (" + calidad + ") (" + servidor +
                         ")",
                         url=url,
                         thumbnail=item.thumbnail,
                         plot=item.plot,
                         folder=False,
                         fulltitle=item.title))

    return itemlist
Exemplo n.º 9
0
def findvideos(item):
    logger.info("pelisalacarta.channels.tumejortv findvideos")

    if item.url.startswith("http://www.tumejortv.com"):
        item.url = item.url.replace("http://www.tumejortv.com", BASE_URL)

    data = scrapertools.cache_page(item.url)
    itemlist = []
    '''
    from servers import servertools
    itemlist = servertools.find_video_items(data=data)
    for videoitem in itemlist:
        videoitem.channel=__channel__
        videoitem.action="play"
        videoitem.folder=False
        videoitem.title = "["+videoitem.server+"]"
        videoitem.fulltitle=item.fulltitle
    '''
    '''
    <tr>
    <td  style="background-color:#F4FFF5;"  width="5px">
    <img src="http://www.tumejortv.com/images/general/estreno2.png" alt="Estreno2"/>
    </td>
    <td style="background-color:#f2f2f2;padding:5px;">
    <a href="http://www.vidxden.com/tt4vyii9k1r8" target="_blank" rel="nofollow">
    <img src="http://www.tumejortv.com/images/general/acceder.gif">
    <br /> Ver </a></td><td style="background-color:#F4FFF5;" >
    <a rel="nofollow" title=" Ver " href="http://www.vidxden.com/tt4vyii9k1r8" target="_blank">
    <img src="http://www.tumejortv.com/images/gestores/hmaSfmTfLQ3xULF2.png" alt="IMG" height="20px">
    <br>vidxden</a></td>
    <td style="background-color:#F4FFF5;" >1</td>
    <td style="background-color:#F4FFF5;" >HDTV 720p AC3 5.1</td><td style="background-color:#F4FFF5;" >
    <img src="http://www.tumejortv.com/resize_image.php?img=images/idioma/antlo-es.png&mw=80&mh=24" alt="Español" title="Español"/>
    </td><td style="background-color:#F4FFF5;" >
    <img src="http://www.tumejortv.com/resize_image.php?img=images/idioma/mM7jVs9QPgMysjip.png&mw=80&mh=24" alt="No" title="No"/>
    </td>
    <td style="background-color:#F4FFF5;" >Carlitos(o)</td>
    <td style="background-color:#F4FFF5;" ><a rel="nofollow" href="http://www.vidxden.com/tt4vyii9k1r8" target="_blank" title=" Ver ">Capitulo 306</a></td></tr>
    '''
    #<label class="text_link">ONLINE</label>(.*?)<div id="antlo_listado_capitulos">
    data = scrapertools.get_match(
        data,
        '<label class="text_link">ONLINE</label>(.*?)<div id="antlo_listado_capitulos">'
    )
    #patron = '<a title="[^>]+" href="(http://www.tumejortv.com/.*?/url/\d+)"[^>]+>([^<]+)</a></td><td>([^<]+)</td><td><img src="[^"]+" alt="([^"]+)"'
    patron = '<tr>(.*?)</tr>'
    matches = re.compile(patron, re.DOTALL).findall(data)
    if DEBUG: scrapertools.printMatches(matches)
    for match in matches:

        try:
            #
            url = scrapertools.get_match(
                match,
                '<a rel="nofollow" href="([^"]+)" target="_blank" title=" Ver "'
            )
        except:
            try:
                url = scrapertools.get_match(
                    match, '<a rel="nofollow" title=" Bajar " href="([^"]+)"')
            except:
                logger.info("No encuentro la url en #" + match + "#")
                url = ""
        try:
            #<br>vidxden</a></td>
            #<td style="background-color:#F4FFF5;" >1</td>
            #<td style="background-color:#F4FFF5;" >HDTV 720p AC3 5.1</td><td style="background-color:#F4FFF5;" >
            ### Modificado 03-07-2014
            #calidad = scrapertools.get_match(match,'<br>[^<]+</a></td[^<]+<td[^<]+</td[^<]+<td[^>]+>([^<]+)</td>')
            calidad = scrapertools.get_match(
                match, '</abbr></td><td[^>]+>([^<]+)</td>')
        except:
            logger.info("No encuentro la calidad en #" + match + "#")
            calidad = ""
        ### Añadido 03-07-2014
        try:
            servidor = scrapertools.get_match(match, '<br>([^<]+)</a>').strip()
        except:
            logger.info("No encuentro el servidor en #" + match + "#")
            servidor = ""
        try:
            ### Modificado 03-07-2014
            #idioma = scrapertools.get_match(match,'<br>[^<]+</a></td[^<]+<td[^<]+</td[^<]+<td[^<]+</td><td[^<]+<img src="[^"]+" alt="([^"]+)"')
            idioma = scrapertools.get_match(
                match,
                '<td[^>]+><img.*?images/idioma.*?title="([^"]+)"/></td>')

        except:
            logger.info("No encuentro el idioma en #" + match + "#")
            idioma = ""

        if url != "":
            #http://www.tumejortv.com/peliculas/A-Roma-con-amor--2012--2/url/364905
            ### Modificado 03-07-2014
            #itemlist.append( Item(channel=__channel__, action="play" , title=scrapertools.get_domain_from_url(url).strip()+" ("+idioma+") ("+calidad+")" , url=url, thumbnail=item.thumbnail, plot=item.plot, folder=False, fulltitle=item.title))
            itemlist.append(
                Item(channel=__channel__,
                     action="play",
                     title=scrapertools.get_domain_from_url(url).strip() +
                     " (" + idioma + ") (" + calidad + ") (" + servidor + ")",
                     url=url,
                     thumbnail=item.thumbnail,
                     plot=item.plot,
                     folder=False,
                     fulltitle=item.title))

    return itemlist