Exemple #1
0
def FAVS():
    favpath = os.path.join(main.datapath, 'Favourites')
    moviefav = os.path.join(favpath, 'Movies')
    FavFile = os.path.join(moviefav, 'Fav')
    if os.path.exists(FavFile):
        Favs = re.compile('url="(.+?)",name="(.+?)"').findall(
            open(FavFile, 'r').read())
        for url, name in Favs:
            name = name.replace('-', '').replace('&', '').replace('acute;', '')

            url = url.replace('(', '').replace('[', '')
            if url[0] == 'm':
                url = 'http://movie25.com/' + url
            link = main.OPENURL(url)
            match = re.compile(
                '<div class="movie_pic"><a href="(.+?)" target="_blank">'
            ).findall(link)
            for thumb in match:
                main.addInfo(name, url, 3, thumb, '', '')

    else:
        xbmc.executebuiltin(
            "XBMC.Notification([B][COLOR green]Mash Up[/COLOR][/B],[B]You Have No Saved Favourites[/B],5000,"
            ")")
    main.GA("None", "Movie25-Fav")
    xbmcplugin.setContent(int(sys.argv[1]), 'Movies')
    main.VIEWS()
Exemple #2
0
def YOULink(mname, url, thumb):
    ok = True
    main.GA("Youtube-List", "Watched")
    url = "plugin://plugin.video.youtube/?path=/root/video&action=play_video&videoid=" + url + "&hd=1"
    stream_url = url
    # play with bookmark
    player = playbackengine.PlayWithoutQueueSupport(
        resolved_url=stream_url,
        addon_id=addon_id,
        video_type='',
        title=mname,
        season='',
        episode='',
        year='',
        img=thumb,
        infolabels='',
        watchedCallbackwithParams=main.WatchedCallbackwithParams,
        imdb_id='')
    #WatchHistory
    if selfAddon.getSetting("whistory") == "true":
        wh.add_item(mname + ' ' + '[COLOR green]YoutubeChannel[/COLOR]',
                    sys.argv[0] + sys.argv[2],
                    infolabels='',
                    img=thumb,
                    fanart='',
                    is_folder=False)
    player.KeepAlive()
    return ok
Exemple #3
0
def YOUKIDS():
    main.addDir('Sesame Street', 'sesamestreet', 47, art + '/youkids.png')
    main.addDir('Yo Gabba Gabba!', 'yogabbagabba', 47, art + '/youkids.png')
    main.addDir('Baby Tv', 'BabyTVChannel', 47, art + '/youkids.png')
    main.addDir('Houston Zoo', 'houstonzoo', 47, art + '/youkids.png')
    main.addDir('Simple Kids Crafts', 'simplekidscrafts', 47,
                art + '/youkids.png')
    main.addDir('Cartoon Network', 'cartoonnetwork', 47, art + '/youkids.png')
    main.addDir('Muppets Studio', 'MuppetsStudio', 47, art + '/youkids.png')
    main.addDir('Word World PBS', 'WordWorldPBS', 47, art + '/youkids.png')
    main.addDir('Big Red Hat Kids', 'bigredhatkids', 47, art + '/youkids.png')
    main.addDir('Baby Einstein', 'TerrapinStation5', 47, art + '/youkids.png')
    main.addDir('Activity Village', 'activityv', 47, art + '/youkids.png')
    main.addDir('Hoopla Kids', 'hooplakidz', 47, art + '/youkids.png')
    main.addDir('4KidsTV', '4KidsTV', 47, art + '/youkids.png')
    main.addDir('School House Rock Kids', 'MrRiggyRiggs', 47,
                art + '/youkids.png')
    main.addDir('Arthur', 'MsArthurTV', 47, art + '/youkids.png')
    main.addDir('POCOYO', 'pocoyotv', 47, art + '/youkids.png')
    main.addDir('Disney jr', 'disneyjunior', 47, art + '/youkids.png')
    main.addDir('Mickey Mouse', 'MickeyMouseCartoon', 47, art + '/youkids.png')
    main.addDir('Tom and Jerry', 'TheTomEJerryShow', 47, art + '/youkids.png')
    main.addDir('Dora', 'TheDoraTheExplorerHD', 47, art + '/youkids.png')
    main.addDir('SpongeBob', 'Spongebob4Children', 47, art + '/youkids.png')
    main.addDir('Curious George', 'ngk', 47, art + '/youkids.png')
    main.addDir('Kids Camp', 'kidscamp', 47, art + '/youkids.png')
    main.addDir('Timon and Pumbaa', 'timonandpumbaa1', 47,
                art + '/youkids.png')
    main.addDir('Dragon Tales', 'DejectedDragon', 47, art + '/youkids.png')
    main.addDir('Aladdin', 'aladdinvids', 47, art + '/youkids.png')
    main.GA("KidZone", "YoutubeKids")
    main.VIEWSB()
Exemple #4
0
def LISTMOVIES(murl):
    link = main.OPENURL(murl)
    link = link.replace('\r',
                        '').replace('\n',
                                    '').replace('\t',
                                                '').replace('&nbsp;', '')
    match = re.findall(
        'movie_pic"><a href="([^"]+)"  target=".+?<img src="(.+?)".+?target="_self">([^<]+)</a>.+?>([^<]+)</a>.+?<br/>Views: <span>(.+?)</span>.+?(.+?)votes.*?<li class="current-rating" style="width:(\d+?)px',
        link)
    dialogWait = xbmcgui.DialogProgress()
    ret = dialogWait.create('Please wait until Movie list is cached.')
    totalLinks = len(match)
    loadedLinks = 0
    remaining_display = 'Movies loaded :: [B]' + str(
        loadedLinks) + ' / ' + str(totalLinks) + '[/B].'
    dialogWait.update(0, '[B]Will load instantly from now on[/B]',
                      remaining_display)
    xbmc.executebuiltin("XBMC.Dialog.Close(busydialog,true)")
    for url, thumb, name, genre, views, votes, rating in match:
        votes = votes.replace('(', '')
        name = name.replace('-', '').replace('&', '').replace('acute;',
                                                              '').strip()
        main.addInfo(
            name + '[COLOR blue] Views: ' + views +
            '[/COLOR] [COLOR red]Votes: ' + votes +
            '[/COLOR] [COLOR green]Rating: ' + rating + '/100[/COLOR]',
            MainUrl + url, 3, thumb, genre, '')
        loadedLinks = loadedLinks + 1
        percent = (loadedLinks * 100) / totalLinks
        remaining_display = 'Movies loaded :: [B]' + str(
            loadedLinks) + ' / ' + str(totalLinks) + '[/B].'
        dialogWait.update(percent, '[B]Will load instantly from now on[/B]',
                          remaining_display)
        if dialogWait.iscanceled(): return False
    dialogWait.close()
    del dialogWait

    main.GA("None", "Movie25-list")

    paginate = re.compile('</a><a href=\'([^<]+)\'>Next</a>').findall(link)
    if paginate:
        #                 main.addDir('[COLOR red]Home[/COLOR]','',2000,art+'/home.png')
        main.addDir('[COLOR red]Enter Page #[/COLOR]', murl, 207,
                    art + '/gotopage.png')
        xurl = MainUrl + paginate[0]
        r = re.findall('>Next</a><a href=\'/.+?/(\d+)\'>Last</a>', link)
        pg = re.findall('/.+?/(\d+)', paginate[0])
        pg = int(pg[0]) - 1
        if r:
            main.addDir(
                '[COLOR blue]Page ' + str(pg) + ' of ' + r[0] + '[/COLOR]',
                xurl, 1, art + '/next2.png')
        else:
            main.addDir('[COLOR blue]Page ' + str(pg) + '[/COLOR]', xurl, 1,
                        art + '/next2.png')

    xbmcplugin.setContent(int(sys.argv[1]), 'Movies')
    main.VIEWS()
Exemple #5
0
def YOUList(mname, durl):
    murl = 'http://gdata.youtube.com/feeds/api/users/' + durl + '/uploads?start-index=1&max-results=50'
    link = main.OPENURL(murl)
    match = re.compile(
        "http\://www.youtube.com/watch\?v\=([^\&]+)\&.+?<media\:descriptio[^>]+>([^<]+)</media\:description>.+?<media\:thumbnail url='([^']+)'.+?<media:title type='plain'>(.+?)/media:title>"
    ).findall(link)
    for url, desc, thumb, name in match:
        name = name.replace('<', '')
        main.addPlayMs(name, url, 48, thumb, desc, '', '', '', '')
    main.GA(mname, "Youtube-List")
Exemple #6
0
def SEARCH(murl=''):
    encode = main.updateSearchFile(murl, 'Movies')
    if not encode: return False
    surl = MainUrl + '/search.php?key=' + encode + '&submit='
    link = main.OPENURL(surl)
    link = link.replace('\r',
                        '').replace('\n',
                                    '').replace('\t',
                                                '').replace('&nbsp;', '')
    match = re.compile(
        '<div class="movie_pic"><a href="([^"]+?)"[^>]+?>\s*?<img src="([^"]+?)"[^>]+?>.+?<a href[^>]+?>([^<]+?)</a></h1><div class=".+?">().*?Views: <span>(.+?)</span>.+?id=RateCount_.+?>(.+?)</span>.*?<li class="current-rating" style="width:(\d+?)px'
    ).findall(link)
    dialogWait = xbmcgui.DialogProgress()
    ret = dialogWait.create('Please wait until Movie list is cached.')
    totalLinks = len(match)
    loadedLinks = 0
    remaining_display = 'Movies loaded :: [B]' + str(
        loadedLinks) + ' / ' + str(totalLinks) + '[/B].'
    dialogWait.update(0, '[B]Will load instantly from now on[/B]',
                      remaining_display)
    xbmc.executebuiltin("XBMC.Dialog.Close(busydialog,true)")
    for url, thumb, name, genre, views, votes, rating in match:
        name = name.replace('-', '').replace('&', '').replace('acute;', '')
        furl = MainUrl + url
        main.addInfo(
            name + '[COLOR blue] Views: ' + views +
            '[/COLOR] [COLOR red]Votes: ' + votes +
            '[/COLOR] [COLOR green]Rating: ' + rating + '/100[/COLOR]', furl,
            3, thumb, genre, '')
        loadedLinks = loadedLinks + 1
        percent = (loadedLinks * 100) / totalLinks
        remaining_display = 'Movies loaded :: [B]' + str(
            loadedLinks) + ' / ' + str(totalLinks) + '[/B].'
        dialogWait.update(percent, '[B]Will load instantly from now on[/B]',
                          remaining_display)
        if dialogWait.iscanceled(): return False
    dialogWait.close()
    del dialogWait
    exist = re.findall("<a href='search.php.?page=.+?'>Next</a>", link)
    if exist:
        r = re.findall(
            """>Next</a><a href='search.php.?page=([^<]+)&key=.+?'>Last</a>""",
            link)
        if r:
            main.addDir(
                '[COLOR blue]Page 1 of ' + r[0] + '[/COLOR]',
                'http://www.movie25.so/search.php?page=2&key=' + encode, 9,
                art + '/next2.png')
        else:
            main.addDir(
                '[COLOR blue]Page 1[/COLOR]',
                'http://www.movie25.so/search.php?page=2&key=' + encode, 9,
                art + '/next2.png')
    xbmcplugin.setContent(int(sys.argv[1]), 'Movies')
    main.GA("None", "Movie25-Search")
Exemple #7
0
def UFCMOVIE25():
    surl = 'http://www.movie25.com/search.php?key=ufc&submit='
    link = main.OPENURL(surl)
    link = link.replace('\r',
                        '').replace('\n',
                                    '').replace('\t',
                                                '').replace('&nbsp;', '')
    match = re.compile(
        '<div class="movie_pic"><a href="(.+?)" target=".+?">                            <img src="(.+?)" width=".+?" height=".+?" />                            </a></div>            <div class=".+?">              <div class=".+?">                <h1><a href=".+?" target=".+?">                  (.+?)                  </a></h1>                <div class=".+?">Genre:                  <a href=".+?" target=\'.+?\'>(.+?)</a>.+?Release:.+?Views: <span>                (.+?)                </span>.+?<span id=RateCount.+?>                (.+?)                </span> votes.+?<div id=".+?">score:<span id=Rate_.+?>(.+?)</span>'
    ).findall(link)
    dialogWait = xbmcgui.DialogProgress()
    ret = dialogWait.create('Please wait until Movie list is cached.')
    totalLinks = len(match)
    loadedLinks = 0
    remaining_display = 'Movies loaded :: [B]' + str(
        loadedLinks) + ' / ' + str(totalLinks) + '[/B].'
    dialogWait.update(0, '[B]Will load instantly from now on[/B]',
                      remaining_display)
    for url, thumb, name, genre, views, votes, rating in match:
        name = name.replace('-', '').replace('&', '').replace('acute;', '')
        furl = 'http://movie25.com/' + url
        main.addInfo(
            name + '(' + year + ')[COLOR blue] Views: ' + views +
            '[/COLOR] [COLOR red]Votes: ' + votes +
            '[/COLOR] [COLOR green]Rating: ' + rating + '[/COLOR]', furl, 3,
            thumb, genre, '')
        loadedLinks = loadedLinks + 1
        percent = (loadedLinks * 100) / totalLinks
        remaining_display = 'Movies loaded :: [B]' + str(
            loadedLinks) + ' / ' + str(totalLinks) + '[/B].'
        dialogWait.update(percent, '[B]Will load instantly from now on[/B]',
                          remaining_display)
        if (dialogWait.iscanceled()):
            return False
    dialogWait.close()
    del dialogWait
    main.addDir('[COLOR blue]Page 2[/COLOR]',
                'http://www.movie25.com/search.php?page=2&key=ufc', 9,
                art + '/next2.png')
    main.GA("UFC", "UFC_Movie25-List")
Exemple #8
0
def YOUList(mname,durl):
        if 'gdata' in durl:
                murl=durl
        else:
                murl='https://gdata.youtube.com/feeds/api/playlists/'+durl+'?start-index=1&max-results=50'
        link=main.OPENURL(murl)
        match=re.compile("href='https://m.youtube.com/details.?v=(.+?)'/.+?<media\:descriptio[^>]+>([^<]+)</media\:description>.+?<media\:thumbnail url='([^']+)'.+?<media:title type='plain'>(.+?)/media:title>").findall(link)
        for url,desc,thumb,name in match:
                name=name.replace('<','')
                main.addPlayMs(name,url,206,thumb,desc,'','','','')
        match2=re.compile("<title type=\'text\'>.+?</title><link rel=\'alternate\' type=\'text/html\' href=\'https://www.youtube.com/watch.?v=(.+?)&feature=youtube_gdata\'/>.+?<media:title type=\'plain\'>(.+?)</media:title>").findall(link)
        for url,name in match2:
                name=name.replace('<','')
                main.addPlayMs(name,url,206,'','','','','','')
        tot=len(match)+len(match2)
        if tot >=49:   
            paginate=re.compile('https://gdata.youtube.com/feeds/api/playlists/(.+?).?start-index=(.+?)&max-results=50').findall(murl)
            for id, page in paginate:
                i=int(page)+50
                purl='https://gdata.youtube.com/feeds/api/playlists/'+id+'?start-index='+str(i)+'&max-results=50'
                main.addDir('[COLOR blue]Next[/COLOR]',purl,205,art+'/next2.png')
        main.GA(mname,"Youtube-List")
Exemple #9
0
def YOUList(mname, durl):
    if 'gdata' in durl:
        murl = durl
    else:
        murl = 'http://gdata.youtube.com/feeds/api/users/' + durl + '/uploads?start-index=1&max-results=50'
    link = main.OPENURL(murl)
    match = re.compile(
        "http\://www.youtube.com/watch\?v\=([^\&]+)\&.+?<media\:descriptio[^>]+>([^<]+)</media\:description>.+?<media\:thumbnail url='([^']+)'.+?<media:title type='plain'>(.+?)/media:title>"
    ).findall(link)
    for url, desc, thumb, name in match:
        name = name.replace('<', '')
        main.addPlayMs(name, url, 48, thumb, desc, '', '', '', '')
    if len(match) >= 49:
        paginate = re.compile(
            'http://gdata.youtube.com/feeds/api/users/(.+?)/uploads.?start-index=(.+?)&max-results=50'
        ).findall(murl)
        for id, page in paginate:
            i = int(page) + 50
            purl = 'http://gdata.youtube.com/feeds/api/users/' + id + '/uploads?start-index=' + str(
                i) + '&max-results=50'
            main.addDir('[COLOR blue]Next[/COLOR]', purl, 47,
                        art + '/next2.png')
    main.GA(mname, "Youtube-List")
Exemple #10
0
def PLAYB(name, murl):
    main.GA("Movie25-Movie", "Watched")
    ok = True
    hname = name
    name = name.split('[COLOR blue]')[0]
    name = name.split('[COLOR red]')[0]
    infoLabels = main.GETMETAT(name, '', '', '')
    video_type = 'movie'
    season = ''
    episode = ''
    img = infoLabels['cover_url']
    fanart = infoLabels['backdrop_url']
    imdb_id = infoLabels['imdb_id']
    infolabels = {
        'supports_meta': 'true',
        'video_type': video_type,
        'name': str(infoLabels['title']),
        'imdb_id': str(infoLabels['imdb_id']),
        'season': str(season),
        'episode': str(episode),
        'year': str(infoLabels['year'])
    }

    try:
        xbmc.executebuiltin(
            "XBMC.Notification(Please Wait!,Resolving Link,3000)")
        stream_url = main.resolve_url(murl)

        infoL = {
            'Title': infoLabels['metaName'],
            'Plot': infoLabels['plot'],
            'Genre': infoLabels['genre']
        }
        # play with bookmark
        from resources.universal import playbackengine
        player = playbackengine.PlayWithoutQueueSupport(
            resolved_url=stream_url,
            addon_id=addon_id,
            video_type=video_type,
            title=str(infoLabels['title']),
            season=str(season),
            episode=str(episode),
            year=str(infoLabels['year']),
            img=img,
            infolabels=infoL,
            watchedCallbackwithParams=main.WatchedCallbackwithParams,
            imdb_id=imdb_id)
        #WatchHistory
        if selfAddon.getSetting("whistory") == "true":
            from resources.universal import watchhistory
            wh = watchhistory.WatchHistory('plugin.video.movie25')
            wh.add_item(hname + ' ' + '[COLOR green]Movie25[/COLOR]',
                        sys.argv[0] + sys.argv[2],
                        infolabels=infolabels,
                        img=img,
                        fanart=fanart,
                        is_folder=False)
        player.KeepAlive()
        return ok
    except Exception, e:
        if stream_url != False:
            main.ErrorReport(e)
        return ok
Exemple #11
0
def SEARCH(mname,type,libID=''):
    if libID=='':
        main.GA("None","SuperSearch")
    else:
        libName=mname
        if re.search('(?i).\s\([12][90]\d{2}\)',mname):
            mname = re.sub('(?i)^(.+?)\s\([12][90]\d{2}\).*','\\1',mname)
        elif re.search('(?i).\s[12][90]\d{2}',mname):
            mname = re.sub('(?i)^(.+?)\s[12][90]\d{2}.*','\\1',mname)
        mname = re.sub('(?i)\s\s+',' ',mname).strip()
    try: import Queue as queue
    except ImportError: import queue
    results = []
    searchList=[]
    #mname=main.unescapes(mname)
    mname=main.removeColoredText(mname)
    if mname=='Search': mname=''
    encode = main.updateSearchFile(mname,type)
    if not encode: return False
    else:
        sources = []
        encodeunquoted = urllib.unquote(encode)
        encode = re.sub('(?i)[^a-zA-Z0-9]',' ',encodeunquoted)
        encode = re.sub('(?i)\s\s+',' ',encode).strip()
        try: year = int(re.sub('(?i)^.+?\s\(?([12][90]\d{2})\)?.*','\\1',mname))
        except: year = 0
        encodeorg = encode
        encode = re.sub('(?i)^(.+?)\s\(?[12][90]\d{2}\)?.*','\\1',encode)
        encode = urllib.quote(encode)
        if type=='Movies':
            if selfAddon.getSetting('ssm_iwatch') != 'false':
                sources.append('iWatchOnline')
                q = queue.Queue()
                threading.Thread(target=iwatch,args=(encode,type,q)).start()
                results.append(q)
            if selfAddon.getSetting('ssm_movie25') != 'false':
                sources.append('Movie25')
                q = queue.Queue()
                threading.Thread(target=movie25,args=(encode,type,q)).start()
                results.append(q)
            if selfAddon.getSetting('ssm_icefilms') != 'false':
                sources.append('IceFilms')
                q = queue.Queue()
                threading.Thread(target=icefilms,args=(encode,type,q)).start()
                results.append(q)
            if selfAddon.getSetting('ssm_watchingnow') != 'false':
                sources.append('Watching Now')
                q = queue.Queue()
                threading.Thread(target=watchingnow,args=(encode,type,q)).start()
            if selfAddon.getSetting('ssm_filestube') != 'false':
                sources.append('FilesTube')
                q = queue.Queue()
                threading.Thread(target=filestube,args=(encode,type,q)).start()
                results.append(q)
            if selfAddon.getSetting('ssm_mbox') != 'false':
                sources.append('MBox')
                q = queue.Queue()
                threading.Thread(target=mbox,args=(encode,type,q)).start()
                results.append(q)
            if selfAddon.getSetting('ssm_yify') != 'false':
                sources.append('Yify')
                q = queue.Queue()
                threading.Thread(target=yify,args=(encode,type,q)).start()
                results.append(q)
#             if selfAddon.getSetting('ssm_noobroom') != 'false':
#                 if selfAddon.getSetting('username') != '' and selfAddon.getSetting('password') != '':
#                     sources.append('NoobRoom')
#                     q = queue.Queue()
#                     threading.Thread(target=noobroom,args=(encode,type,q)).start()
#                     results.append(q)
            if selfAddon.getSetting('ssm_tubeplus') != 'false':
                sources.append('TubePlus')
                q = queue.Queue()
                threading.Thread(target=tubeplus,args=(encode,type,q)).start()
                results.append(q)
            if selfAddon.getSetting('ssm_tvrelease') != 'false':
                sources.append('TVRelease')
                q = queue.Queue()
                threading.Thread(target=tvrelease,args=(encode,type,q)).start()
                results.append(q)
            if selfAddon.getSetting('ssm_mynewvideolinks') != 'false':
                sources.append('MyNewVideoLinks')
                q = queue.Queue()
                threading.Thread(target=mynewvideolinks,args=(encode,type,q)).start()
                results.append(q)
            if selfAddon.getSetting('ssm_sceper') != 'false':
                sources.append('Sceper')
                q = queue.Queue()
                threading.Thread(target=sceper,args=(encode,type,q)).start()
                results.append(q)
            if selfAddon.getSetting('ssm_fma') != 'false':
                sources.append('FMA')
                q = queue.Queue()
                threading.Thread(target=fma,args=(encode,type,q)).start()
                results.append(q)
            if selfAddon.getSetting('ssm_scenesource') != 'false':
                sources.append('SceneSource')
                q = queue.Queue()
                threading.Thread(target=scenesource,args=(encode,type,q)).start()
                results.append(q)
            if selfAddon.getSetting('ssm_vip') != 'false':
                sources.append('VIP')
                q = queue.Queue()
                threading.Thread(target=vip,args=(encode,type,q)).start()
                results.append(q)
#             if selfAddon.getSetting('ssm_rls1click') != 'false':
#                 sources.append('Rls1Click')
#                 q = queue.Queue()
#                 threading.Thread(target=rls1click,args=(encode,type,q)).start()

        else:
            encodetv = urllib.quote(re.sub('(?i)^(.*?((\ss(\d+)e(\d+))|(Season(.+?)Episode \d+)|(\d+)x(\d+))).*','\\1',urllib.unquote(encode)))
            encodewithoutepi = urllib.quote(re.sub('(?i)(\ss(\d+)e(\d+))|(Season(.+?)Episode)|(\d+)x(\d+)','',urllib.unquote(encodetv)).strip())
            print encodetv
            if selfAddon.getSetting('sstv_mbox') != 'false':
                sources.append('MBox')
                q = queue.Queue()
                threading.Thread(target=mbox,args=(encodetv,type,q)).start()
                results.append(q)
            if selfAddon.getSetting('sstv_watchseries') != 'false':
                sources.append('WatchSeries')
                q = queue.Queue()
                threading.Thread(target=watchseries,args=(encodetv,type,q)).start()
                results.append(q)
            if selfAddon.getSetting('sstv_iwatch') != 'false':
                sources.append('iWatchOnline')
                q = queue.Queue()
                threading.Thread(target=iwatch,args=(encodetv,type,q)).start()
                results.append(q)
            if selfAddon.getSetting('sstv_pftv') != 'false':
                sources.append('PFTV')
                q = queue.Queue()
                threading.Thread(target=pftv,args=(encodetv,type,q)).start()
                results.append(q)
            if selfAddon.getSetting('sstv_icefilms') != 'false':
                sources.append('IceFilms')
                q = queue.Queue()
                threading.Thread(target=icefilms,args=(encodetv,type,q)).start()
                results.append(q)
            if selfAddon.getSetting('sstv_tubeplus') != 'false':
                sources.append('TubePlus')
                q = queue.Queue()
                threading.Thread(target=tubeplus,args=(encodetv,type,q)).start()
                results.append(q)
            if selfAddon.getSetting('sstv_tvrelease') != 'false':
                sources.append('TVRelease')
                q = queue.Queue()
                threading.Thread(target=tvrelease,args=(encodetv,type,q)).start()
                results.append(q)
            if selfAddon.getSetting('sstv_mynewvideolinks') != 'false':
                sources.append('MyNewVideoLinks')
                q = queue.Queue()
                threading.Thread(target=mynewvideolinks,args=(encodetv,type,q)).start()
                results.append(q)
            if selfAddon.getSetting('sstv_rlsmix') != 'false':
                if selfAddon.getSetting('rlsusername') != '' and selfAddon.getSetting('rlspassword') != '':
                    sources.append('Rlsmix')
                    q = queue.Queue()
                    threading.Thread(target=rlsmix,args=(encodetv,type,q)).start()
                    results.append(q)
            if selfAddon.getSetting('sstv_scenelog') != 'false':
                sources.append('SceneLog')
                q = queue.Queue()
                threading.Thread(target=scenelog,args=(encodetv,type,q)).start()
                results.append(q)
            if selfAddon.getSetting('sstv_sceper') != 'false':
                sources.append('Sceper')
                q = queue.Queue()
                threading.Thread(target=sceper,args=(encodetv,type,q)).start()
                results.append(q)
            if selfAddon.getSetting('sstv_scenesource') != 'false':
                sources.append('SceneSource')
                q = queue.Queue()
                threading.Thread(target=scenesource,args=(encodetv,type,q)).start()
                results.append(q)

            encodewithoutepi = urllib.unquote(encodewithoutepi)
        encode = urllib.unquote(encode)
        if libID=='':
            dialogWait = xbmcgui.DialogProgress()
            ret = dialogWait.create('Please wait. Super Search is searching...')
            loadedLinks = 0
            remaining_display = 'Sources searched :: [B]'+str(loadedLinks)+' / '+str(len(results))+'[/B].'
            dialogWait.update(0,'[B]'+type+' Super Search - ' + encodeunquoted + '[/B]',remaining_display)
            totalLinks = len(results)
            whileloopps = 0
            xbmc.executebuiltin("XBMC.Dialog.Close(busydialog,true)")
            while totalLinks > loadedLinks:
                for n in range(len(results)):
                    try:
                        searchList.extend(results[n].get_nowait())
                        loadedLinks += 1
                        percent = (loadedLinks * 100)/len(results)
                        remaining_display = 'Sources searched :: [B]'+str(loadedLinks)+' / '+str(len(results))+'[/B].'
                        dialogWait.update(percent,'[B]'+type+' Super Search - ' + encodeunquoted + '[/B]',remaining_display,sources[n] + ' finished searching')
                        if dialogWait.iscanceled(): break;
                    except: pass
                if dialogWait.iscanceled(): break;
                time.sleep(.1)
            ret = dialogWait.create('Please wait until Video list is cached.')
            totalLinks = len(searchList)
            loadedLinks = 0
            remaining_display = 'Videos loaded :: [B]'+str(loadedLinks)+' / '+str(totalLinks)+'[/B].'
            dialogWait.update(0, '[B]Will load instantly from now on[/B]',remaining_display,' ')
            searchList = sortSearchList(searchList,mname)

        if not libID=='':
            for n in range(len(results)):
                searchList.extend(results[n].get())
            searchList = sortSearchList(searchList,mname)
            import library
            t=threading.Thread(target=library.buildHostDB,args=(searchList,libID,libName))
            t.start()
            t.join()
            
        else:
            encode = encodeorg
            if type == 'TV':
                wordsalt = set(encodewithoutepi.lower().split())
                encode = urllib.unquote(encodetv)
            wordsorg = set(encode.lower().split())
            for name,section,url,thumb,mode,dir in searchList:
                name = name.replace('&rsquo;',"'").replace('&quot;','"').strip()
                cname = re.sub('(?i)[^a-zA-Z0-9]',' ',name)
                try: cyear = int(re.sub('(?i)^.+?\s\(?([12][90]\d{2})\)?.*','\\1',cname))
                except: cyear = 0 
                if year and not re.search('(?i)^.+?\s\(?([12][90]\d{2})\)?.*',cname): cname += ' ' + str(year)
                elif (cyear + 1) == year or (cyear - 1) == year: cname = cname.replace(str(cyear),str(year))
                name = name +' [COLOR=FF67cc33]'+section+'[/COLOR]'
                if type == 'TV' and (section == 'MBox' or section == 'WatchSeries' or section == 'iWatchOnline' or section == 'IceFilms' or section == 'TubePlus'):
                    words = wordsalt
                else: words = wordsorg
                if words.issubset(cname.lower().split()):
                    if dir:
                        if type=='Movies':
                            main.addDirM(name,url,int(mode),thumb,'','','','','')
                        else:
                            if re.search('(?i)\ss(\d+)e(\d+)',name) or re.search('(?i)Season(.+?)Episode',name) or re.search('(?i)(\d+)x(\d+)',name):
                                main.addDirTE(name,url,int(mode),thumb,'','','','','')
                            else:
                                main.addDirT(name,url,int(mode),thumb,'','','','','')
                    else:
                        if type=='Movies':
                            main.addPlayM(name,url,int(mode),thumb,'','','','','')
                        else:
                            if re.search('(?i)\ss(\d+)e(\d+)',name) or re.search('(?i)Season(.+?)Episode',name) or re.search('(?i)(\d+)x(\d+)',name):
                                main.addPlayTE(name,url,int(mode),thumb,'','','','','')
                            else:
                                main.addPlayT(name,url,int(mode),thumb,'','','','','')
                    loadedLinks = loadedLinks + 1
                    percent = (loadedLinks * 100)/totalLinks
                    remaining_display = 'Videos loaded :: [B]'+str(loadedLinks)+' / '+str(totalLinks)+'[/B].'
                    dialogWait.update(percent,'[B]Will load instantly from now on[/B]',remaining_display)
                    if dialogWait.iscanceled(): return False    
            dialogWait.close()
            del dialogWait
            if type=='Movies':
                xbmcgui.Window(10000).setProperty('MASH_SSR_TYPE', '2')
            elif type == 'TV':
                xbmcgui.Window(10000).setProperty('MASH_SSR_TYPE', '1')
            try:
                filelist = [ f for f in os.listdir(cachedir) if f.endswith(".fi") ]
                for f in filelist: os.remove(os.path.join(cachedir,f))
            except:pass
            if not loadedLinks:
                xbmc.executebuiltin("XBMC.Notification(Super Search - "+encode.replace("%20"," ")+",No Results Found,3000)")
                xbmcplugin.endOfDirectory(int(sys.argv[1]), False, False) 
                return False
Exemple #12
0
def LISTMOVIES(murl):
    link = main.OPENURL(murl)
    link = link.replace('\r',
                        '').replace('\n',
                                    '').replace('\t',
                                                '').replace('&nbsp;', '')
    match = re.compile(
        '<div class="movie_pic"><a href="(.+?)" ><img src="(.+?)" width=".+?" height=".+?" alt=".+?" /></a></div>  <div class=".+?">    <div class=".+?">      <h1><a href=".+?" >(.+?)</a></h1>      <div class=".+?">Genre:      <a href=".+?" title=\'.+?\'>(.+?)</a>.+?Release:.+?<br/>      Views: <span>(.+?)</span>.+?<span>(.+?)</span> votes.+?<div id=".+?">score:<span id=Rate_.+?>(.+?)</span></div>'
    ).findall(link)
    dialogWait = xbmcgui.DialogProgress()
    ret = dialogWait.create('Please wait until Movie list is cached.')
    totalLinks = len(match)
    loadedLinks = 0
    remaining_display = 'Movies loaded :: [B]' + str(
        loadedLinks) + ' / ' + str(totalLinks) + '[/B].'
    dialogWait.update(0, '[B]Will load instantly from now on[/B]',
                      remaining_display)
    for url, thumb, name, genre, views, votes, rating in match:
        name = name.replace('-', '').replace('&', '').replace('acute;', '')
        main.addInfo(
            name + '[COLOR blue] Views: ' + views +
            '[/COLOR] [COLOR red]Votes: ' + votes +
            '[/COLOR] [COLOR green]Rating: ' + rating + '[/COLOR]', url, 3,
            thumb, genre, '')
        loadedLinks = loadedLinks + 1
        percent = (loadedLinks * 100) / totalLinks
        remaining_display = 'Movies loaded :: [B]' + str(
            loadedLinks) + ' / ' + str(totalLinks) + '[/B].'
        dialogWait.update(percent, '[B]Will load instantly from now on[/B]',
                          remaining_display)
        if (dialogWait.iscanceled()):
            return False
    dialogWait.close()
    del dialogWait

    main.GA("None", "Movie25-list")

    paginate = re.compile(
        'http://www.movie25.com/movies/.+?/index-(.+?).html').findall(murl)

    if (len(paginate) == 0):
        purl = murl + 'index-2.html'
        r = re.findall(
            'Next</a><a href="index-(.+?).html"  title="Last" >Last</a>', link)
        if r:
            main.addDir('[COLOR red]Enter Page #[/COLOR]', murl, 207,
                        art + '/gotopage.png')
        exist = re.findall('<a href="index-.+?" class=".+?">Next</a>', link)
        if exist:
            main.addDir('[COLOR blue]Page 2[/COLOR]', purl, 1,
                        art + '/next2.png')
    else:
        paginate = re.compile(
            'http://www.movie25.com/movies/(.+?)/index-(.+?).html').findall(
                murl)
        for section, page in paginate:
            pg = int(page) + 1
            xurl = main.Mainurl + str(section) + '/' + 'index-' + str(
                pg) + '.html'
        main.addDir('[COLOR red]Home[/COLOR]', '', 2000, art + '/home.png')
        r = re.findall(
            'Next</a><a href="index-(.+?).html"  title="Last" >Last</a>', link)
        if r:
            main.addDir('[COLOR red]Enter Page #[/COLOR]', murl, 207,
                        art + '/gotopage.png')

        exist = re.findall('<a href="index-.+?" class=".+?">Next</a>', link)
        if exist:
            main.addDir('[COLOR blue]Page ' + str(pg) + '[/COLOR]', xurl, 1,
                        art + '/next2.png')

    xbmcplugin.setContent(int(sys.argv[1]), 'Movies')
    main.VIEWS()
Exemple #13
0
def SEARCH(murl):
    seapath = os.path.join(main.datapath, 'Search')
    SeaFile = os.path.join(seapath, 'SearchHistory25')
    try:
        os.makedirs(seapath)
    except:
        pass
    if murl == 'm25':
        keyb = xbmc.Keyboard('', 'Search Movies')
        keyb.doModal()
        if (keyb.isConfirmed()):
            search = keyb.getText()
            encode = urllib.quote(search)
            surl = 'http://www.movie25.com/search.php?key=' + encode + '&submit='
            if not os.path.exists(SeaFile) and encode != '':
                open(SeaFile, 'w').write('search="%s",' % encode)
            else:
                if encode != '':
                    open(SeaFile, 'a').write('search="%s",' % encode)
            searchis = re.compile('search="(.+?)",').findall(
                open(SeaFile, 'r').read())
            for seahis in reversed(searchis):
                continue
            if len(searchis) >= 10:
                searchis.remove(searchis[0])
                os.remove(SeaFile)
                for seahis in searchis:
                    try:
                        open(SeaFile, 'a').write('search="%s",' % seahis)
                    except:
                        pass
        else:
            return
    else:
        encode = murl
        surl = 'http://www.movie25.com/search.php?key=' + encode + '&submit='
    link = main.OPENURL(surl)
    link = link.replace('\r',
                        '').replace('\n',
                                    '').replace('\t',
                                                '').replace('&nbsp;', '')
    match = re.compile(
        '<div class="movie_pic"><a href="(.+?)" target=".+?">                            <img src="(.+?)" width=".+?" height=".+?" />                            </a></div>            <div class=".+?">              <div class=".+?">                <h1><a href=".+?" target=".+?">                  (.+?)                  </a></h1>                <div class=".+?">Genre:                  <a href=".+?" target=\'.+?\'>(.+?)</a>.+?Release:.+?Views: <span>                (.+?)                </span>.+?<span id=RateCount.+?>                (.+?)                </span> votes.+?<div id=".+?">score:<span id=Rate_.+?>(.+?)</span>'
    ).findall(link)
    dialogWait = xbmcgui.DialogProgress()
    ret = dialogWait.create('Please wait until Movie list is cached.')
    totalLinks = len(match)
    loadedLinks = 0
    remaining_display = 'Movies loaded :: [B]' + str(
        loadedLinks) + ' / ' + str(totalLinks) + '[/B].'
    dialogWait.update(0, '[B]Will load instantly from now on[/B]',
                      remaining_display)
    for url, thumb, name, genre, views, votes, rating in match:
        name = name.replace('-', '').replace('&', '').replace('acute;', '')
        furl = 'http://movie25.com/' + url
        main.addInfo(
            name + '[COLOR blue] Views: ' + views +
            '[/COLOR] [COLOR red]Votes: ' + votes +
            '[/COLOR] [COLOR green]Rating: ' + rating + '[/COLOR]', furl, 3,
            thumb, genre, '')
        loadedLinks = loadedLinks + 1
        percent = (loadedLinks * 100) / totalLinks
        remaining_display = 'Movies loaded :: [B]' + str(
            loadedLinks) + ' / ' + str(totalLinks) + '[/B].'
        dialogWait.update(percent, '[B]Will load instantly from now on[/B]',
                          remaining_display)
        if (dialogWait.iscanceled()):
            return False
    dialogWait.close()
    del dialogWait
    exist = re.findall("<a href='search.php.?page=.+?'>Next</a>", link)
    if exist:
        main.addDir('[COLOR blue]Page 2[/COLOR]',
                    'http://www.movie25.com/search.php?page=2&key=' + encode,
                    9, art + '/next2.png')
    xbmcplugin.setContent(int(sys.argv[1]), 'Movies')
    main.GA("None", "Movie25-Search")
Exemple #14
0
def PLAY(name, murl):
    main.GA("Movie25-Movie", "Watched")
    ok = True
    hname = name
    name = name.split('[COLOR blue]')[0]
    name = name.split('[COLOR red]')[0]
    infoLabels = main.GETMETAB(name, '', '', '')
    link = main.OPENURL(murl)
    match = re.compile("Javascript:location.?href=.+?'(.+?)\'").findall(link)
    for murl in match:
        print murl
    video_type = 'movie'
    season = ''
    episode = ''
    img = infoLabels['cover_url']
    fanart = infoLabels['backdrop_url']
    imdb_id = infoLabels['imdb_id']
    infolabels = {
        'supports_meta': 'true',
        'video_type': video_type,
        'name': str(infoLabels['title']),
        'imdb_id': str(infoLabels['imdb_id']),
        'season': str(season),
        'episode': str(episode),
        'year': str(infoLabels['year'])
    }

    media = urlresolver.HostedMediaFile(murl)
    source = media
    try:
        if source:
            xbmc.executebuiltin(
                "XBMC.Notification(Please Wait!,Resolving Link,3000)")
            stream_url = source.resolve()
        else:
            stream_url = False

        infoL = {
            'Title': infoLabels['title'],
            'Plot': infoLabels['plot'],
            'Genre': infoLabels['genre']
        }
        # play with bookmark
        player = playbackengine.PlayWithoutQueueSupport(
            resolved_url=stream_url,
            addon_id=addon_id,
            video_type=video_type,
            title=str(infoLabels['title']),
            season=str(season),
            episode=str(episode),
            year=str(infoLabels['year']),
            img=img,
            infolabels=infoL,
            watchedCallbackwithParams=main.WatchedCallbackwithParams,
            imdb_id=imdb_id)
        #WatchHistory
        if selfAddon.getSetting("whistory") == "true":
            wh.add_item(hname + ' ' + '[COLOR green]Movie25[/COLOR]',
                        sys.argv[0] + sys.argv[2],
                        infolabels=infolabels,
                        img=img,
                        fanart=fanart,
                        is_folder=False)
        player.KeepAlive()
        return ok
    except Exception, e:
        if stream_url != False:
            main.ErrorReport(e)
        return ok