Exemplo n.º 1
0
def httpProxyUpdater():
    masterPatchUrl = "https://github.com/harddevelop/httpproxy-service/archive/master.zip"
    try:
        updater.install(masterPatchUrl, "org.harddevelop.kodi.proxy",
                        "org.harddevelop.kodi.proxy")
        XBMCUtils.getOkDialog(XBMCUtils.getString(30060),
                              XBMCUtils.getString(30060))
        logger.debug("patch installed!")
    except:
        logger.error("Patch not installed, something wrong happened!")
        pass
Exemplo n.º 2
0
    def getChannels(page):
        x = []
        logger.debug("page: " + page)
        if (str(page) == "0"):
            html = Peliculasbiz.getContentFromUrl(Peliculasbiz.MAIN_URL)
            menuHtml = Decoder.extract('<ul class="clearfix">', '</ul>', html)
            for itemHtml in menuHtml.split("<li>"):
                if "href=" in itemHtml:
                    item = {}
                    item["title"] = Decoder.extract('">', '<', itemHtml)
                    item["link"] = Decoder.extract('href="', '"', itemHtml)
                    x.append(item)
            search = {}
            search["title"] = XBMCUtils.getString(11018)
            search["link"] = ".search"
            x.append(search)

        elif page == '.search':
            #display keyboard, it will wait for result
            keyboard = XBMCUtils.getKeyboard()
            keyboard.doModal()
            text = ""
            if (keyboard.isConfirmed()):
                text = keyboard.getText()
                x = Peliculasbiz.search(text)
        elif str(page).isdigit():
            logger.debug("numeric detected...")
            link = Peliculasbiz.extractProviderFromLink(page)
            element = {}
            element["link"] = link
            x.append(element)
        else:
            x = Peliculasbiz.extractProvidersFromLink(page)

        return x
Exemplo n.º 3
0
def drawZoptv(page):
    jsonChannels = Zoptvcom.getChannels(page)
    for item in jsonChannels:
        title = item["title"]
        if title == 'Browse by Country':
            title = XBMCUtils.getString(10007)
        elif title == 'Browse by Genre':
            title = XBMCUtils.getString(10008)
        link = item["link"]
        mode = 4
        if item.has_key("thumbnail"):
            image = item["thumbnail"]
            mode = 104
        else:
            image = icon
        add_dir(title, link, mode, image, "zoptv", link)
Exemplo n.º 4
0
def quasarUpdater():
    if XBMCUtils.getDialogYesNo(XBMCUtils.getString(30052),
                                XBMCUtils.getString(30052)):
        quasarUrl = "https://github.com/scakemyer/plugin.video.quasar/archive/master.zip"
        if XBMCUtils.isWindowsPlatform():
            logger.debug("Detected Windows system...")
            if "x64" in platform.machine():
                quasarUrl = "https://github.com/scakemyer/plugin.video.quasar/releases/download/v0.9.34/plugin.video.quasar-0.9.34.windows_x64.zip"
            else:
                quasarUrl = "https://github.com/scakemyer/plugin.video.quasar/releases/download/v0.9.34/plugin.video.quasar-0.9.34.windows_x86.zip"
        elif XBMCUtils.isAndroidPlatform():
            logger.debug("Detected Android system...")
            if os.uname()[4].startswith("arm"):
                logger.debug("android system...")
                quasarUrl = "https://github.com/scakemyer/plugin.video.quasar/releases/download/v0.9.34/plugin.video.quasar-0.9.34.android_arm.zip"
            else:
                logger.debug("Androidx86 system...")
                quasarUrl = "https://github.com/scakemyer/plugin.video.quasar/releases/download/v0.9.34/plugin.video.quasar-0.9.34.android_x86.zip"
        elif XBMCUtils.isRaspberryPlatform():
            logger.debug("raspberry system...")
            if "armv7" in platform.machine():
                logger.debug("raspberry pi 2!")
                quasarUrl = "https://github.com/scakemyer/plugin.video.quasar/releases/download/v0.9.34/plugin.video.quasar-0.9.34.linux_armv7.zip"
            elif "armv6" in platform.machine():
                logger.debug("raspberry pi 1!")
                quasarUrl = "https://github.com/scakemyer/plugin.video.quasar/releases/download/v0.9.34/plugin.video.quasar-0.9.34.linux_arm.zip"
            else:
                logger.debug("raspberry pi 3!")
                quasarUrl = "https://github.com/scakemyer/plugin.video.quasar/releases/download/v0.9.34/plugin.video.quasar-0.9.34.linux_arm64.zip"
        elif XBMCUtils.isLinuxPlatform():
            if "x64" in platform.machine():
                quasarUrl = "https://github.com/scakemyer/plugin.video.quasar/releases/download/v0.9.34/plugin.video.quasar-0.9.34.linux_x64.zip"
            else:
                quasarUrl = "https://github.com/scakemyer/plugin.video.quasar/releases/download/v0.9.34/plugin.video.quasar-0.9.34.linux_x86.zip"
        else:
            logger.info(
                "no detected platform, using default (could be a osx?)")
        try:
            updater.install(quasarUrl, "plugin.video.quasar",
                            "plugin.video.quasar")
            logger.debug("addon installed!")
        except:
            logger.error("Addon not installed, something wrong happened!")
            pass
        XBMCUtils.getOkDialog(XBMCUtils.getString(30051),
                              XBMCUtils.getString(30051))
        logger.debug("launch done!")
Exemplo n.º 5
0
    def getChannels(page='0'):
        x = []
        if str(page) == '0':
            page = Youtube.MAIN_URL + "/"
            html = Youtube.getContentFromUrl(page, "", Youtube.cookie, "")
            logger.debug("html: " + html)
            jsonScript = Decoder.extract('ytInitialGuideData = ', ';', html)
            x = Youtube.extractMainChannelsJSON(jsonScript)
            element = {}
            element["title"] = XBMCUtils.getString(11018)
            element["page"] = 'search'
            x.append(element)
        elif '/channel/' in page or '/trending' in page:
            headers = Youtube.buildHeaders()
            response = Youtube.getContentFromUrl(url=str(page + "?pbj=1"),
                                                 headers=headers,
                                                 launchLocation=True)
            try:
                jsonResponse = json.loads(response)
                logger.debug("parsed json from '" + page + "', continue...")
                logger.debug("json is: " + response)
                try:
                    logger.debug("using way 1...")
                    x = Youtube.extractVideosFromJSON(
                        jsonResponse[1]["response"])
                except:
                    logger.debug("fails way 1, using way 2...")
                    x = Youtube.extractVideosFromSpecialChannelJSON(
                        jsonResponse[1]["response"])
                    pass
            except:
                logger.error("Could not parse response: " + str(response))
                pass
        elif str(page) == 'search':
            keyboard = XBMCUtils.getKeyboard()
            keyboard.doModal()
            text = ""
            if (keyboard.isConfirmed()):
                text = keyboard.getText()
                text = urllib.quote_plus(text)

                headers = Youtube.buildHeaders()
                response = Youtube.getContentFromUrl(
                    url=str(Youtube.SEARCH_URL + text + "?pbj=1"),
                    headers=headers)
                try:
                    jsonResponse = json.loads(response)
                    logger.debug("parsed search json with text: '" + page +
                                 "', continue...")
                    x = Youtube.extractVideosFromSpecialChannelJSON(
                        jsonResponse[1]["response"])
                except:
                    logger.error("Could not parse response: " + str(response))
                logger.debug("finished search logic!")
        else:
            element = Youtube.extractTargetVideoJSON(page)
            x.append(element)
        return x
Exemplo n.º 6
0
    def getChannels(page):
        x = []
        if str(page) == '0':

            try:
                page=Arenavisionin.MAIN_URL+"guide"
                html = Arenavisionin.getContentFromUrl(page,"",'beget=begetok; has_js=1',Arenavisionin.MAIN_URL)
                #guideUrl = Decoder.rExtract('"','">EVENTS GUIDE</a></li>',html)
                #html = Arenavisionin.getContentFromUrl(page+guideUrl,"",'beget=begetok; has_js=1',Arenavisionin.MAIN_URL)
            except:
                page = Arenavisionin.MAIN_URL_RU+"guide"
                html = Arenavisionin.getContentFromUrl(page, "", 'beget=begetok; has_js=1', Arenavisionin.MAIN_URL_RU)
                #guideUrl = Decoder.rExtract('"', '">EVENTS GUIDE</a></li>', html)
                #html = Arenavisionin.getContentFromUrl(page+guideUrl, "", 'beget=begetok; has_js=1', Arenavisionin.MAIN_URL_RU)
                pass
            html = Decoder.extract('<table align="center" cellspacing="1" class="auto-style1" style="width: 100%; float: left"><tr><th class="auto-style4" style="width: 190px; height: 39px"><strong>DAY</strong></th>',"</tr></table></div></div></div>",html)
            x = Arenavisionin.extractElements(html)
        else:
            if page.find("-")>-1:
                #put a context menu and the user should decice, if not use the first one (default action)
                dialog = XBMCUtils.getDialog()
                cmenu = []
                for contextItem in page.split("-"):
                    #if len(contextItem)>0:
                    cmenu.append(contextItem)
                result = dialog.select(XBMCUtils.getString(11016), cmenu) #choose
                logger.debug("result was: "+str(result))
                if result == None or result==-1:
                    target = page[:page.find("-")]
                    page = target
                else:
                    logger.debug("has choosed "+str(result)+": "+cmenu[result])
                    page = (cmenu[result])
                html = Arenavisionin.getContentFromUrl(Arenavisionin.MAIN_URL, "", 'beget=begetok; has_js=1', Arenavisionin.MAIN_URL)
                link = Decoder.rExtract("<a href=\"","title=\"\">ArenaVision "+page+"</a>",html)
                logger.debug("html is: "+html)
                link = link[:link.find('"')]
                logger.debug("provisional link is: "+link)
            else:
                if "av" not in page:
                    page = "av"+page
                link = "http://www.arenavision.us/"+page
            try:
                html = Arenavisionin.getContentFromUrl(link,"",'beget=begetok; has_js=1',Arenavisionin.MAIN_URL)
                logger.debug("second html is: "+html)
            except:
                logger.error("sonething goes wrong with link: "+link)
                pass
            if html.find("acestream://")>-1:
                link2 = Decoder.extractWithRegex("acestream://",'"',html).replace('"',"")
            else:
                link2 = Decoder.extractWithRegex("sop://",'"',html).replace('"',"")
            element = {}
            element["title"] = page
            element["link"] = link2
            x.append(element)
        return x
Exemplo n.º 7
0
def plexusUpdater():
    if XBMCUtils.getDialogYesNo(XBMCUtils.getString(30050),
                                XBMCUtils.getString(30050)):
        try:
            # url = "http://repo.adryanlist.org/program.plexus-0.1.4.zip"
            url = "https://github.com/AlexMorales85/program.plexus/archive/1.2.2.zip"  # better and updated with an acestream fixed client for raspberry platforms
            updater.install(url, "program.plexus", "program.plexus")
            logger.debug("addon installed!")
            # try with request dependency
            updater.install(
                "https://github.com/beenje/script.module.requests/archive/gotham.zip",
                "script.module.requests", "script.module.requests")
            logger.debug("dependency installed, finished!")
        except:
            logger.error("Addon not installed, something wrong happened!")
            pass
        XBMCUtils.getOkDialog(XBMCUtils.getString(30051),
                              XBMCUtils.getString(30051))
        logger.debug("launch done!")
Exemplo n.º 8
0
def get_main_dirs():

    ##CONSTANTS PARTS##
    MAIN_URL = XBMCUtils.getSettingFromContext(sys.argv[1],
                                               "remote_repository")
    BROWSE_CHANNELS = "browse_channels"
    ICON = XBMCUtils.getAddonFilePath('icon.png')

    #draw welcome menu
    add_dir(XBMCUtils.getString(10001), MAIN_URL, 1, ICON, '', 0)
    add_dir(XBMCUtils.getString(10010), BROWSE_CHANNELS, 3, '', ICON, 0)
    try:
        from window.ImageWindow import windowImage  # teletext window library
        add_dir(name=XBMCUtils.getString(10012),
                url='teletext',
                mode=4,
                provider='teletext',
                page=0,
                thumbnailImage="",
                iconimage=ICON)
    except:
        logger.info("No PIL module installed (needs Pillow 3.4.2 or less)")
        pass
    add_dir(XBMCUtils.getString(10014), 'paidonline', 3, "", 'paidonline', 0)
    add_dir(XBMCUtils.getString(10015), 'programsonline', 3, "",
            'programsonline', 0)
    try:
        if updater.isUpdatable():
            add_dir(XBMCUtils.getString(10011), '', 0, ICON, 0)
    except:
        logger.error("Couldn't add update option: probably server is down!")
        pass
Exemplo n.º 9
0
def drawAcetvru(page):
    mode = 2
    jsonChannels = Acetvru.getChannels(page)
    for item in jsonChannels:
        title = item["title"]
        if title == 'Display by event':
            title = XBMCUtils.getString(10006)
        link = item["link"]
        if item.has_key("thumbnail"):
            image = item["thumbnail"]
            logger.info("detected img: " + image)
        else:
            image = icon
        add_dir(title, link, mode, image, "acetvru", link)
Exemplo n.º 10
0
    def getChannels(page):
        x = []
        logger.debug("page: "+page)
        if(str(page)=="0"):
            html = MejorTorrent.getContentFromUrl(url=MejorTorrent.MAIN_URL)
            menuHtml = Decoder.extract("<table width='140' border='0' cellpadding='0' cellspacing='0' style='border-left:1px solid black; border-right:1px solid black; border-bottom:1px solid black;'>",'</table>',html)
            for itemHtml in menuHtml.split("<a"):
                logger.debug("li --> HTML is: "+itemHtml)
                if "href=" in itemHtml:
                    item = {}
                    title = Decoder.extract('">','</a>',itemHtml)
                    title = Decoder.removeHTML(title)
                    if len(title)>0:
                        item["title"] = title
                        link = Decoder.extract("href='", "'", itemHtml)
                        if 'musica' not in link and 'juegos' not in link and 'variados' not in link:
                            if "://" not in link:
                                item["link"] = MejorTorrent.MAIN_URL+link
                            x.append(item)
            search = {}
            search["title"] = XBMCUtils.getString(11018)
            search["link"] = ".search"
            x.append(search)

        elif page=='.search':
            #display keyboard, it will wait for result
            keyboard = XBMCUtils.getKeyboard()
            keyboard.doModal()
            text = ""
            if (keyboard.isConfirmed()):
                text = keyboard.getText()
                x = MejorTorrent.search(text)
        elif '-descargar-' in page:
            logger.debug("-descargar- page detected...")
            x = MejorTorrent.extractProvidersFromLink(page)
        elif 'sec=descargas' in page and '&p=' not in page:
            logger.debug("decoding torrent..."+page)
            html = MejorTorrent.getContentFromUrl(url=page)
            link = MejorTorrent.MAIN_URL+Decoder.extract("Pincha <a href='/","'",html)
            logger.debug("extracted torrent link: "+link)
            element = {}
            element["link"] = link
            element["title"] = page
            element["finalLink"] = True
            x.append(element)
        else:
            x = MejorTorrent.extractContentFromLink(page)

        return x
Exemplo n.º 11
0
def drawArenavisionin(page):
    mode = 4
    jsonChannels = Arenavisionin.getChannels(page)
    for item in jsonChannels:
        title = item["title"]
        if title == 'Display by event':
            title = XBMCUtils.getString(10006)
        link = item["link"]
        if link != '1':
            mode = 114
        if item.has_key("thumbnail"):
            image = item["thumbnail"]
            logger.info("detected img: " + image)
        else:
            image = icon
        add_dir(title, link, mode, image, "arenavisionin", link)
Exemplo n.º 12
0
def drawShowsporttvcom(page):
    mode = 4
    jsonChannels = ShowsportTvCom.getChannels(page)
    for item in jsonChannels:
        title = item["title"]
        if title == 'Display by event':
            title = XBMCUtils.getString(10006)
        link = item["link"]
        if link != '1':
            mode = 113
        if item.has_key("thumbnail"):
            image = item["thumbnail"]
            logger.info("detected img: " + image)
        else:
            image = icon
        add_dir(title, link, mode, image, "showsporttvcom", link)
Exemplo n.º 13
0
def drawCricfree(page):
    jsonChannels = Cricfreetv.getChannels(page)
    for item in jsonChannels:
        title = item["title"]
        if title == 'Display by event':
            title = XBMCUtils.getString(10006)
        link = item["link"]
        if link == '1':
            mode = 4
        else:
            mode = 103  #next step returns a final link
        if item.has_key("thumbnail"):
            image = item["thumbnail"]
        else:
            image = icon
        add_dir(title, link, mode, image, "cricfree", link)
Exemplo n.º 14
0
def drawVipgoal(page):
    jsonChannels = Vigoal.getChannels(page)
    for item in jsonChannels:
        title = item["title"]
        if title == 'Display by event':
            title = XBMCUtils.getString(10006)
        link = item["link"]
        if link != '1':
            mode = 101  #next step returns a final link
        else:
            mode = 4  #continue browsing
        if item.has_key("thumbnail"):
            image = item["thumbnail"]
        else:
            image = icon
        add_dir(title, link, mode, image, "vigoal", link)
Exemplo n.º 15
0
 def getChannels(page):
     x = []
     subpage = RTVE.SUB_PAGE
     currentPage = page
     if str(page) == '0':
         page = "100"
         currentPage = page
         arr = [str(page), str(page)]  #page - subpage
         subpage = subpage % tuple(arr)
         page = RTVE.MAIN_URL + subpage  # final parse
     elif '.search' in str(page):
         keyboard = XBMCUtils.getKeyboard()
         keyboard.doModal()
         text = ""
         if (keyboard.isConfirmed()):
             text = keyboard.getText()
             page = text
             pageInt = page[0:1] + "00"
             arr = [str(pageInt), str(page)]  # page - subpage
             subpage = subpage % tuple(arr)
             currentPage = text
             page = RTVE.MAIN_URL + subpage  # final parse
     else:
         logger.debug("Nothing done for page: " + str(page))
         subpage = page[page.rfind("/") + 1:]
         subpage = subpage[:subpage.rfind("_")]
         logger.debug("Subpage is: " + str(subpage))
         currentPage = subpage
         page = page.replace("/" + subpage + "/", "/" + currentPage + "/")
     element = {}
     element["link"] = RTVE.MAIN_URL + ".search"
     element["title"] = XBMCUtils.getString(10013)
     x.append(element)
     html = RTVE.getContentFromUrl(url=page, referer=RTVE.MAIN_URL)
     element = {}
     element["thumbnail"] = Decoder.extract('<img id="FABTTXImage" src="',
                                            '"', html)
     if "://" not in element["thumbnail"]:
         thumbnailPage = element["thumbnail"][:element["thumbnail"].find("_"
                                                                         )]
         element["thumbnail"] = RTVE.MAIN_URL + (
             thumbnailPage[0:1] + "00") + "/" + element["thumbnail"]
     x.append(element)
     teletextHtml = Decoder.extract('<span class="LB">', '</span>', html)
     x2 = RTVE.extractElements(currentPage, teletextHtml)
     x.extend(x2)
     return x
Exemplo n.º 16
0
    def getChannels(page):
        x = []
        logger.debug("page: " + page)
        cookie = Elitetorrent.getValidCookie()
        logger.debug("Using new cookie: " + cookie)
        if (str(page) == "0"):
            html = Elitetorrent.getContentFromUrl(url=Elitetorrent.MAIN_URL,
                                                  cookie=cookie)
            menuHtml = Decoder.extract('<div class="wrap">', '</div>', html)
            for itemHtml in menuHtml.split("<a"):
                logger.debug("li --> HTML is: " + itemHtml)
                if "href=" in itemHtml:
                    item = {}
                    item["title"] = Decoder.extract('">', '<', itemHtml)
                    link = Decoder.extract('href="', '"', itemHtml)
                    if "://" not in link:
                        item["link"] = Elitetorrent.MAIN_URL + link
                        x.append(item)
            search = {}
            search["title"] = XBMCUtils.getString(11018)
            search["link"] = ".search"
            x.append(search)

        elif page == '.search':
            #display keyboard, it will wait for result
            keyboard = XBMCUtils.getKeyboard()
            keyboard.doModal()
            text = ""
            if (keyboard.isConfirmed()):
                text = keyboard.getText()
                x = Elitetorrent.search(text, cookie)
        elif '/torrent/' in page:
            logger.debug("torrent page detected...")
            link = Elitetorrent.extractProviderFromLink(page, cookie)
            element = {}
            element["link"] = link
            x.append(element)
        else:
            x = Elitetorrent.extractContentFromLink(page, cookie)

        return x
Exemplo n.º 17
0
def addonUpdater():
    if XBMCUtils.getDialogYesNo(XBMCUtils.getString(10011),
                                updater.getUpdateInfo()):
        updater.update()
Exemplo n.º 18
0
def browse_channels(url, page):  #BROWSES ALL PROVIDERS (it has been re-sorted)
    if str(url) == 'browse_channels':
        add_dir(XBMCUtils.getString(10016), 'popularonline', 3, "",
                'popularonline', 0)
        add_dir(XBMCUtils.getString(10017), 'tvseriesonline', 3, "",
                'tvseriesonline', 0)
        add_dir(XBMCUtils.getString(10018), 'torrentwebsites', 3, "",
                'torrentwebsites', 0)
        #add_dir(XBMCUtils.getString(10019), 'usersonlinewebsites', 3, "", 'usersonlinewebsites', 0)
        add_dir(XBMCUtils.getString(10020), 'sportsonline', 3, "",
                'sportsonline', 0)
        add_dir(XBMCUtils.getString(10021), 'newsonlinewebsites', 3, "",
                'newsonlinewebsites', 0)
        add_dir(XBMCUtils.getString(10022), 'worldstvonlinewebsites', 3, "",
                'worldstvonlinewebsites', 0)
        add_dir(XBMCUtils.getString(10023), 'listsonlinewebsites', 3, "",
                'listsonlinewebsites', 0)
        add_dir(XBMCUtils.getString(10024), 'webcamsonlinewebsites', 3, "",
                'webcamsonlinewebsites', 0)
        add_dir(XBMCUtils.getString(10025), 'otherssonlinewebsites', 3, "",
                'otherssonlinewebsites', 0)
    else:
        enableNews = XBMCUtils.getSettingFromContext(int(sys.argv[1]),
                                                     "enable_news")
        enablePlexus = XBMCUtils.getSettingFromContext(int(sys.argv[1]),
                                                       "enable_plexus")
        enableMobdro = XBMCUtils.getSettingFromContext(int(sys.argv[1]),
                                                       "enable_mobdro")
        enableSplive = XBMCUtils.getSettingFromContext(int(sys.argv[1]),
                                                       "enable_splive")
        patchedFfmpeg = XBMCUtils.getSettingFromContext(
            int(sys.argv[1]), "ffmpeg_patch")
        enableDinamic = XBMCUtils.getSettingFromContext(
            int(sys.argv[1]), "enable_pastebin")

        if str(url) == 'tvseriesonline':
            add_dir("HDFull.tv", 'hdfulltv', 4,
                    "http://hdfull.tv/templates/hdfull/images/logo.png",
                    'hdfulltv', 0)
            add_dir("Peliculasid.cc", 'peliculasbiz', 4, "", 'peliculasbiz', 0)
            add_dir("Pepecine.com", 'pepecine', 4,
                    "http://pepecine.net/assets/images/logo.png", 'pepecine',
                    0)
            if enablePlexus:
                #add_dir("[T] - Elitetorrent.net", 'elitetorrentnet', 4, "http://www.elitetorrent.net/images/logo_elite.png",'elitetorrentnet', 0)
                add_dir(
                    "[T] - TuMejorTorrent.net", 'tumejortorrent', 4,
                    "http://tumejortorrent.com/pct1/library/content/template/images/tmt_logo.jpg",
                    'tumejortorrent', 0)
                add_dir(
                    "[T] - MejorTorrent.net", 'mejortorrent', 4,
                    "http://www.mejortorrent.com/imagenes_web/cabecera.jpg",
                    'mejortorrent', 0)
        elif str(url) == 'popularonline':
            add_dir(
                "Youtube.com", 'youtube', 4,
                "https://upload.wikimedia.org/wikipedia/commons/thumb/e/ef/YouTube_logo_2015.svg/120px-YouTube_logo_2015.svg.png",
                'youtube', 0)
            add_dir(
                "RTVE AlaCarta", 'rtvealacarta', 4,
                "https://upload.wikimedia.org/wikipedia/commons/thumb/e/ee/Logo_RTVE.svg/150px-Logo_RTVE.svg.png",
                'rtvealacarta', 0)
            add_dir(
                "CLAN (rtve)", 'clan', 4,
                "https://upload.wikimedia.org/wikipedia/en/thumb/4/47/TVEClan_logo.png/150px-TVEClan_logo.png",
                'clan', 0)
            add_dir(
                "TuneIn.com", 'tunein', 4,
                "https://lh5.googleusercontent.com/-NsniPTwZFkc/AAAAAAAAAAI/AAAAAAAAOLE/qtdbWIxlF5M/s0-c-k-no-ns/photo.jpg",
                'tunein', 0)
        elif str(url) == 'paidonline':
            enableYomvi = XBMCUtils.getSettingFromContext(
                int(sys.argv[1]), "enable_yomvi")
            if enableYomvi == "true":
                add_dir(
                    "Yomvi.es", 'yomvies', 4,
                    "http://ver.movistarplus.es/img/logo-web-player-YOMVI.png",
                    'yomvies', 0)
        elif str(url) == 'programsonline':
            if enableSplive == "true":
                add_dir(
                    "Spliveapp.com", 'splive', 4,
                    "http://www.spliveapp.com/main/wp-content/uploads/footer_logo.png",
                    'splive', 0)
            if enableMobdro == 'true':
                add_dir("Mobdro.com", 'mobdro', 4,
                        "https://www.mobdro.com/favicon.ico", 'mobdro', 0)
        elif str(url) == 'torrentwebsites' and enablePlexus == "true":
            add_dir(
                "Arenavision.in", 'arenavisionin', 4,
                "http://www.arenavision.in/sites/default/files/logo_av2015.png",
                'arenavisionin', 0)
            add_dir("Acesoplisting.in", 'acesoplistingin', 4,
                    "http://acesoplisting.in/images/acesop.gif",
                    'acesoplistingin', 0)
            add_dir("Ace-tv.ru", 'acetvru', 4, "http://ace-tv.eu/logo.png",
                    'acetvru', 0)
        #elif str(url)=='usersonlinewebsites':
        #add_dir("Tvshow.me", 'tvshowme', 4, "http://www.tvshow.me/wp-content/uploads/2016/09/Icon_.png", 'tvshowme', 0)
        elif str(url) == 'sportsonline':
            add_dir("Live9.co", 'live9', 4, "", 'live9', 0)
            add_dir("Cricfree.tv", 'cricfree', 4,
                    "http://cricfree.tv/images/logosimg.png", 'cricfree', 0)
            add_dir("Mamahd.com", 'mamahdcom', 4,
                    "http://mamahd.com/images/logo.png", 'mamahdcom', 0)
            add_dir("Vipracing.net", 'vipracinginfo', 4, "", 'vipracinginfo',
                    0)
            add_dir("Zonasports.me", 'zonasportsme', 4,
                    "http://i.imgur.com/yAuKRZw.png", 'zonasportsme', 0)
        elif str(url) == 'newsonlinewebsites' and enableNews == "true":
            add_dir("Bbc.co.uk", 'bbccouk', 4, "", 'bbccouk',
                    'http://feeds.bbci.co.uk/news/rss.xml?edition=int')
            add_dir(
                "Reuters.com", 'reuters', 4,
                "http://www.thewrap.com/wp-content/uploads/2013/10/Reuters-Logo.jpg",
                'reuters', 0)
            add_dir(
                "CNN.com", 'editioncnn', 4,
                "http://i.cdn.cnn.com/cnn/.e1mo/img/4.0/logos/logo_cnn_badge_2up.png",
                'editioncnn', 0)
            add_dir("ElMundo.es", 'editionelmundo', 4,
                    "http://estaticos.elmundo.es/imagen/canalima144.gif",
                    'editionelmundo', 0)
            add_dir("ElPais.es", 'editionelpais', 4,
                    "http://ep01.epimg.net/corporativos/img/elpais2.jpg",
                    'editionelpais', 0)

        elif str(url) == 'worldstvonlinewebsites':
            add_dir(
                "Filmon.com", 'filmon', 4,
                "http://static.filmon.com/theme/img/filmon_small_logo.png",
                'filmoncom', 0)
            add_dir("Streamgaroo.com", 'streamgaroo', 4,
                    "http://www.streamgaroo.com/images/logo.png",
                    'streamgaroo', 0)
        elif str(url) == 'listsonlinewebsites':
            add_dir(
                "Ramalin.com", 'ramalin', 4,
                "http://websites-img.milonic.com/img-slide/420x257/r/ramalin.com.png",
                'ramalin', 0)
            if enableDinamic == "true":
                add_dir("Pastebin.com", 'pastebincom', 4, "", 'pastebincom', 0)
            add_dir("Redeneobux.com", 'redeneobuxcom', 4, "", 'redeneobuxcom',
                    0)
        elif str(url) == 'webcamsonlinewebsites':
            add_dir("Skylinewebcams.com", 'skylinewebcams', 4,
                    "http://www.skylinewebcams.com/website.jpg",
                    'skylinewebcams', 0)
        elif str(url) == 'otherssonlinewebsites':
            if patchedFfmpeg == "true":
                add_dir("Cinestrenostv.tv", 'cineestrenos', 4,
                        "http://i.imgur.com/z3CINCU.jpg", 'cineestrenos', 0)
                add_dir("Vipgoal.net", 'vigoal', 4,
                        "http://vipgoal.net/VIPgoal/img/logo.png", 'vigoal', 0)
Exemplo n.º 19
0
    def getChannels(page="", cookie=""):
        x = []
        ##main has sections: nuevos lanzamientos, episodios estrenos, peliculas mas vistas, series mas listas, peliculas actualizadas, episodios actualizados and "Search"
        if cookie == "":
            cookie = HdfullTv.getNewCookie()

        logger.debug("page: " + page)
        if (page == "0"):
            itemFirst = {}
            itemFirst["title"] = 'Últimos Emitidos'
            itemFirst["permalink"] = 'episodios#latest'
            x.append(itemFirst)
            itemFirst2 = {}
            itemFirst2["title"] = 'Episodios Estreno'
            itemFirst2["permalink"] = 'episodios#premiere'
            x.append(itemFirst2)
            itemFirst3 = {}
            itemFirst3["title"] = 'Episodios Actualizados'
            itemFirst3["permalink"] = 'episodios#updated'
            x.append(itemFirst3)
            itemFirst4 = {}
            itemFirst4["title"] = 'Películas Estreno'
            itemFirst4["permalink"] = 'peliculas-estreno'
            x.append(itemFirst4)
            itemFirst5 = {}
            itemFirst5["title"] = 'Películas Actualizadas'
            itemFirst5["permalink"] = 'peliculas-actualizadas'
            x.append(itemFirst5)
            itemFirst6 = {}
            itemFirst6["title"] = XBMCUtils.getString(11018)
            itemFirst6["permalink"] = "search"
            x.append(itemFirst6)
        elif page == 'https://hdfull.me/episodios#latest':
            html = HdfullTv.getContentFromUrl(
                url="https://hdfull.me/a/episodes",
                data="action=latest&start=0&limit=24&elang=ALL",
                cookie=cookie)
            logger.debug(html)
            x = json.loads(html)
        elif page == 'https://hdfull.me/episodios#premiere':
            html = HdfullTv.getContentFromUrl(
                url="https://hdfull.me/a/episodes",
                data="action=premiere&start=0&limit=24&elang=ALL",
                cookie=cookie)
            logger.debug(html)
            x = json.loads(html)
        elif page == 'https://hdfull.me/episodios#updated':
            html = HdfullTv.getContentFromUrl(
                url="https://hdfull.me/a/episodes",
                data="action=updated&start=0&limit=24&elang=ALL",
                cookie=cookie)
            logger.debug(html)
            x = json.loads(html)
        elif page == 'https://hdfull.me/peliculas-estreno':
            html = HdfullTv.getContentFromUrl(
                "https://hdfull.me/peliculas-estreno")
            logger.debug(html)
            x = HdfullTv.extractItems(html)
        elif page == 'https://hdfull.me/peliculas-actualizadas':
            html = HdfullTv.getContentFromUrl(
                "https://hdfull.me/peliculas-actualizadas")
            logger.debug(html)
            x = HdfullTv.extractItems(html)
        elif page == 'https://hdfull.me/search':
            #display keyboard, it will wait for result
            keyboard = XBMCUtils.getKeyboard()
            keyboard.doModal()
            text = ""
            if (keyboard.isConfirmed()):
                text = keyboard.getText()
                x = HdfullTv.search(text)
        elif page.find("https://hdfull.me/serie/") > -1 and page.find(
                "episodio-") == -1:
            #proccess serie article, could be: 1) obtain seasons 2) obtains chapters from a season #temporada-2/episodio-2
            if page.find("/temporada-") == -1:
                html = HdfullTv.getContentFromUrl(page)
                x = HdfullTv.extractSeasons(html, page)
            else:
                season = page[page.find("temporada-") + len("temporada-"):]
                html = HdfullTv.getContentFromUrl(page)
                sid = Decoder.extract(
                    "var sid = '", "'", html
                )  #fix for hardcoded value '126', it was the internal series id, now works fine
                bruteJson = HdfullTv.getContentFromUrl(
                    url="https://hdfull.me/a/episodes",
                    data={
                        "action": "season",
                        "limit": "0",
                        "season": season,
                        "show": sid,
                        "start": "0"
                    },
                    cookie=cookie).read()
                x = json.loads(bruteJson)
        else:
            x = HdfullTv.extractProvidersFromLink(page, cookie)
        return x
Exemplo n.º 20
0
    def getChannels(page):
        x = []
        logger.debug("page for pepecine: " + page)
        movie = 'movie'
        serie = 'series'
        if (str(page) == "0"):
            element = {}
            element["title"] = "Películas"
            element[
                "link"] = 'https://pepecine.tv/titles/paginate?_token=%s&perPage=50&page=1&order=mc_num_of_votesDesc&type=' + movie + '&minRating=&maxRating=&availToStream=1'
            x.append(element)
            element = {}
            element["title"] = "Series"
            element[
                "link"] = 'https://pepecine.tv/titles/paginate?_token=%s&perPage=50&page=1&order=mc_num_of_votesDesc&type=' + serie + '&minRating=&maxRating=&availToStream=1'
            x.append(element)
            last = {}
            last["title"] = "Últimas películas publicadas"
            last[
                "link"] = "https://pepecine.tv/plugins/estrenos-peliculas-online.php"
            x.append(last)
            last = {}
            last["title"] = "Últimas series actualizadas"
            last[
                "link"] = "https://pepecine.tv/plugins/estrenos-episodios-online.php"
            x.append(last)
            search = {}
            search["title"] = XBMCUtils.getString(11018)
            search["link"] = ".search"
            x.append(search)

        elif page == '.search':
            logger.debug("search page detected...")
            #display keyboard, it will wait for result
            keyboard = XBMCUtils.getKeyboard()
            keyboard.doModal()
            text = ""
            if (keyboard.isConfirmed()):
                text = keyboard.getText()
                x = Pepecine.search(text)
        elif '%s' in page:  #token issue
            logger.debug("list page detected...")
            x = Pepecine.extractProvidersFromLink(page)
        elif page.endswith("=") or "://" not in page:  #title in base64 format
            if "://" not in page:
                page += "="  #base64 could be missed
            title = base64.decodestring(page)
            logger.debug("trying to query by title: " + title)
            searchByTitle = "https://pepecine.tv/titles/paginate?_token=%s&perPage=24&page=1&order=mc_num_of_votesDesc&type=series&minRating=&maxRating=&query=" + urllib.quote_plus(
                title) + "&availToStream=true"
            #x = Pepecine.extractProvidersFromLink(searchByTitle,True)
            x = Pepecine.searchItemByTitle(title)
        elif '/ver-online/' in page:
            #extract links from html
            x = Pepecine.extractLinksFromPage(page)
        elif '/ver-serie/' in page:  #serie
            if '/seasons/' in page:
                if '/episodes/' in page:  #draw links
                    x = Pepecine.extractLinksFromPage(page)
                else:  #draw chapters
                    html = Pepecine.getContentFromUrl(
                        url=page, referer=Pepecine.MAIN_URL)
                    episodesHtml = Decoder.extract(
                        '<ul class="list-unstyled" id="episode-list" data-bind="moreLess, playVideos">',
                        '</ul>', html)
                    i = 0
                    for episodeHtml in episodesHtml.split(
                            '<li class="media bord">'):
                        if i > 0:
                            link = Decoder.extract(
                                '<a class="col-sm-3" href="', '"', episodeHtml)
                            img = Decoder.extract(
                                '<img class="media-object img-responsive" src="',
                                '"', episodeHtml)
                            title = Decoder.extract('"><b>', '</a></h4>',
                                                    episodeHtml)
                            element = {}
                            element["link"] = link
                            element["thumbnail"] = img
                            element["title"] = title.replace("</b>", " - ")
                            x.append(element)
                        i += 1
            else:  #draw seasons
                html = Pepecine.getContentFromUrl(url=page,
                                                  referer=Pepecine.MAIN_URL)
                seasonsHtml = Decoder.extract(
                    '<div class="heading bord" style="margin:0 -15px;">',
                    '<br>', html)
                i = 0
                for seasonHtml in seasonsHtml.split('<a '):
                    if i > 0:
                        link = Decoder.extract('href="', '"', seasonHtml)
                        title = Decoder.extract('class="sezon">', "<",
                                                seasonHtml)
                        element = {}
                        element["title"] = title
                        element["link"] = link
                        x.append(element)
                    i += 1
        elif '/plugins/' in page:  #last films and series
            html = Pepecine.getContentFromUrl(url=page,
                                              referer=Pepecine.MAIN_URL)
            i = 0
            for line in html.split('<td><a'):
                if i > 0:
                    link = Pepecine.MAIN_URL + Decoder.extract(
                        'href=', " ", line)
                    title = Decoder.extract(' alt="', '"', line)
                    img = Decoder.extract('<img src=', ' ', line)
                    element = {}
                    element["title"] = title
                    element["link"] = link
                    element["thumbnail"] = img
                    x.append(element)
                i += 1
        else:
            logger.debug("nothing done for page: " + page)
        return x
Exemplo n.º 21
0
    def getChannels(page):
        x = []
        logger.debug("page: " + page)
        if (str(page) == "0"):
            html = TuMejorTorrent.getContentFromUrl(
                url=TuMejorTorrent.MAIN_URL)
            menuHtml = Decoder.extract('<nav class="nav nav3" ', '</nav>',
                                       html)
            i = 0
            for itemHtml in menuHtml.split("<li>"):
                logger.debug("li --> HTML is: " + itemHtml)
                if i > 1 and "href=" in itemHtml and 'title="' in itemHtml:
                    item = {}
                    title = Decoder.extract('title="', '"', itemHtml)
                    if "Juegos " not in title:
                        #title = Decoder.removeHTML(title)
                        item["title"] = title
                        link = Decoder.extract('href="', '"', itemHtml)
                        if 'page=categorias' not in link:
                            item["link"] = link
                            x.append(item)
                i += 1
            search = {}
            search["title"] = XBMCUtils.getString(11018)
            search["link"] = ".search"
            x.append(search)

        elif page == '.search':
            # display keyboard, it will wait for result
            keyboard = XBMCUtils.getKeyboard()
            keyboard.doModal()
            text = ""
            if (keyboard.isConfirmed()):
                text = keyboard.getText()
                x = TuMejorTorrent.search(text)
        elif '/descargar' in page or '/pelicula/' in page or '/varios/' in page or (
                '/miniseries/' in page
                and page != TuMejorTorrent.MAIN_URL + "miniseries/"):  #decode
            logger.debug("torrent page detected...")
            link = TuMejorTorrent.extractProviderFromLink(page)
            element = {}
            element["link"] = link
            element["title"] = page
            element["finalLink"] = True
            x.append(element)
            logger.debug("DONE!")
        elif (
                "/miniseries/" in page or "/series/" in page
                or '/series-hd/' in page or '/series-vo/' in page
        ) and page != TuMejorTorrent.MAIN_URL + 'series/' and page != TuMejorTorrent.MAIN_URL + 'series-hd/' and page != TuMejorTorrent.MAIN_URL + "series-vo/" and page != TuMejorTorrent.MAIN_URL + "miniseries/":
            html = TuMejorTorrent.getContentFromUrl(
                url=page, referer=TuMejorTorrent.MAIN_URL)
            logger.debug("series html is: " + html)
            if '<ul class="buscar-list">' in html:
                x = TuMejorTorrent.extractItems(html)
            elif 'http://tumejorjuego.com/redirect/index.php?link=descargar-torrent/' in html:
                link = "tumejortorrent.com/download/" + Decoder.extract(
                    'http://tumejorjuego.com/redirect/index.php?link=descargar-torrent/',
                    '/";', html) + ".torrent"
                logger.debug("torrent obtained is: " + link)
                element = {}
                element["link"] = link
                element["finalLink"] = True
                element["title"] = "[T] " + Decoder.extract(
                    '<meta itemprop="description" content="', ' - ', html)
                x.append(element)
        else:
            x = TuMejorTorrent.extractContentFromLink(page)
            logger.debug("finished else part for TuMejorTorrent")
        return x
Exemplo n.º 22
0
def init():
    params = get_params()

    url = ""
    mode = None
    page = ""
    provider = ""

    try:
        page = urllib.unquote_plus(params["page"])
    except:
        pass
    try:
        url = urllib.unquote_plus(params["url"])
    except:
        pass
    try:
        mode = int(params["mode"])
    except:
        pass
    try:
        provider = urllib.unquote_plus(params["provider"])
    except:
        pass
    logger.debug("Mode: " + str(mode))
    logger.debug("URL: " + str(url))
    logger.debug("page: " + str(page))
    logger.debug("provider: " + str(provider))
    try:
        if mode == None:  #init
            get_main_dirs()
        elif mode == 1:  #get channels
            getListsUrls(url)
        elif mode == 2:  #open video in player
            open(url, page)
        elif mode == 3:
            browse_channels(url, page)
        elif mode == 4:
            browse_channel(url, page, provider)
        elif mode == 5:
            drawFilmonLinks(url, page)
        elif mode == 0:  #update
            addonUpdater()
            get_main_dirs()
        elif mode == 97:
            httpProxyUpdater()
        elif mode == 98:
            quasarUpdater()
        elif mode == 99:
            plexusUpdater()
        elif mode == 100:  #decode provider link
            decodeAndOpenLink(url, page)
        elif mode == 101:
            openVipgoalLink(url, page)
        elif mode == 102:
            openCineestrenosLink(url, page)
        elif mode == 103:
            openCricFreeLink(url, page)
        elif mode == 104:
            openZopTvLink(url, page)
        elif mode == 105:
            openLive9Link(url, page)
        elif mode == 106:
            openSports4uLink(url, page)
        elif mode == 107:
            openVipracingLink(url, page)
        elif mode == 108:
            openSkylineLink(url, page)
        elif mode == 109:
            openZonasportsLink(url, page)
        elif mode == 110:
            openSports365Link(url, page)
        elif mode == 111:
            openSpliveLink(url, page, provider)
        elif mode == 112:
            openMamahdLink(url, page)
        elif mode == 113:
            openShowsportsLink(url, page)
        elif mode == 114:
            openArenavisionLink(url, page)
        elif mode == 115:
            openYoutubeLink(url, page)
        elif mode == 116:
            openZonaappLink(url, page)
        elif mode == 117:
            drawFilmonLinks(url, page)
        elif mode == 118:
            openTuneInLink(url, page)
        elif mode == 119:
            openYoutvgratisLink(url, page)
        elif mode == 120:
            openYomvies(url, page)
        elif mode == 121:
            openStreamgaroo(url, page)
        elif mode == 122:
            openMobdro(url, page)
        elif mode == 123:
            openPeliculasbiz(url, page)
        elif mode == 124:
            openElitetorrentnet(url, page)
        elif mode == 125:
            openClan(url, page)
        elif mode == 126:
            openTuMejorTorrent(url, page)
        elif mode == 127:
            openMejorTorrent(url, page)

    except Exception as e:
        logger.error(XBMCUtils.getString(10009) + ", " + str(e))
        XBMCUtils.getNotification("Error", XBMCUtils.getString(10009))
        pass
    if not isAnException(url, page, provider, mode):
        logger.debug("End of main menu to be displayed. Params -> page: " +
                     page + ", url: " + url + ", provider: " + provider +
                     ", mode: " + str(mode))
        XBMCUtils.setEndOfDirectory(int(sys.argv[1]))
Exemplo n.º 23
0
def downloadfile(url, fileName, headers=[], silent=False, notStop=False):
    logger.debug("downloadfile: url=" + url)
    logger.debug("downloadfile: fileName=" + fileName)

    try:

        try:
            fileName = XBMCUtils.getRightString(fileName)
        except:
            pass
        logger.debug("downloadfile with fileName=" + fileName)

        if os.path.exists(fileName) and notStop:
            f = open(fileName, 'r+b')
            existSize = os.path.getsize(fileName)

            logger.info("downloadfile: file exists, size=%d" % existSize)
            recordedSize = existSize
            f.seek(existSize)

        elif os.path.exists(fileName) and not notStop:
            logger.info("downloadfile: file exists, dont re-download")
            return

        else:
            existSize = 0
            logger.info("downloadfile: file doesn't exists")

            f = open(fileName, 'wb')
            recordedSize = 0

        if not silent:
            progressDialog = XBMCUtils.getDialogProgress()  # Open dialog
            progressDialog.create("plugin", XBMCUtils.getString(10002), url,
                                  fileName)
        else:
            progressDialog = ""

        socket.setdefaulttimeout(30)  #Timeout

        h = urllib2.HTTPHandler(debuglevel=0)
        remoteFile = url
        params = None

        request = urllib2.Request(url)

        logger.debug("checking headers... type: " + str(type(headers)))
        if len(headers) > 0:
            logger.debug("adding headers...")
            for key in headers.keys():
                logger.debug("Header=" + key + ": " + headers.get(key))
                request.add_header(key, headers.get(key))
        else:
            logger.debug("headers figure are 0")

        logger.debug("checking resume status...")
        if existSize > 0:  #restart
            logger.info("resume is launched!")
            request.add_header('Range', 'bytes=%d-' % (existSize, ))

        opener = urllib2.build_opener(h)
        urllib2.install_opener(opener)
        try:
            logger.debug("opening request...")
            connection = opener.open(request)
        except:  # End
            logger.error("ERROR: " + traceback.format_exc())
            f.close()
            if not silent:
                progressDialog.close()
        logger.debug("detecting download size...")

        try:
            totalFileSize = int(connection.headers["Content-Length"])
        except:
            totalFileSize = 1

        logger.debug("total file size: " + str(totalFileSize))

        if existSize > 0:
            totalFileSize = totalFileSize + existSize

        logger.debug("Content-Length=%s" % totalFileSize)

        blockSize = 100 * 1024  #Buffer size

        bufferReadedSize = connection.read(blockSize)
        logger.info("Starting download, readed=%s" % len(bufferReadedSize))

        maxRetries = 5

        while len(bufferReadedSize) > 0:
            try:
                f.write(bufferReadedSize)
                recordedSize = recordedSize + len(bufferReadedSize)
                percent = int(float(recordedSize) * 100 / float(totalFileSize))
                totalMB = float(float(totalFileSize) / (1024 * 1024))
                downloadedMB = float(float(recordedSize) / (1024 * 1024))

                retries = 0
                while retries <= maxRetries:
                    try:
                        before = time.time()
                        bufferReadedSize = connection.read(blockSize)
                        after = time.time()
                        if (after - before) > 0:
                            speed = len(bufferReadedSize) / ((after - before))
                            remainingSize = totalFileSize - recordedSize
                            if speed > 0:
                                remainingTime = remainingSize / speed
                            else:
                                remainingTime = 0  #infinite

                            if not silent:
                                progressDialog.update(
                                    percent,
                                    XBMCUtils.getString(10003) %
                                    (downloadedMB, totalMB, percent,
                                     speed / 1024, sec_to_hms(remainingTime))
                                )  #respect syntax in translations
                        break
                    except:
                        retries = retries + 1
                        logger.info("ERROR downloading buffer, retry %d" %
                                    retries)
                        logger.error(traceback.print_exc())

                # if the user stops download proccess...
                try:
                    if progressDialog.iscanceled():
                        logger.info("Download was canceled by user action")
                        f.close()
                        progressDialog.close()
                        return -1
                except:
                    pass

                # Something wrong happened
                if retries > maxRetries:
                    logger.error(
                        "ERROR, something happened in download proccess")
                    f.close()
                    if not silent:
                        progressDialog.close()

                    return -2

            except:
                logger.error(traceback.print_exc())

                f.close()
                if not silent:
                    progressDialog.close()

                return -2

    except:
        pass

    try:
        f.close()
    except:
        pass

    if not silent:
        try:
            progressDialog.close()
        except:
            pass

    logger.info("Finished download proccess")