예제 #1
0
    def GetFileHosts(self, url, list, lock, message_queue):
        from entertainment.net import Net

        net = Net(do_not_cache_if_any=do_no_cache_keywords_list)

        custom_url = self.get_url()

        if self.Settings().get_setting("proxy") == "true":
            import socks

            (proxy, port) = self.get_proxy()
            socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, proxy, port)
            net.set_socket_class(socks.socksocket)

        content = common.unescape(common.str_conv(net.http_GET(url).content))

        import re

        for sq in re.finditer(r"<span class=quality_(.+?)>.+?<a href=\".+?external.+?url=(.+?)&", content):

            quality = sq.group(1).upper()

            if quality == "UNKNOWN":
                continue

            import base64

            host_url = base64.b64decode(sq.group(2))
            if not "affbuzz" in host_url.lower():
                self.AddFileHost(list, quality, host_url)
예제 #2
0
    def GetFileHosts(self, url, list, lock, message_queue):
        from entertainment.net import Net
        net = Net(do_not_cache_if_any=do_no_cache_keywords_list)

        custom_url = self.get_url()

        if self.Settings().get_setting('proxy') == "true":
            import socks
            (proxy, port) = self.get_proxy()
            socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, proxy, port)
            net.set_socket_class(socks.socksocket)

        content = common.unescape(common.str_conv(net.http_GET(url).content))

        import re
        #print content
        for sq in re.finditer(r"quality_(.+?)>.+?url=(.+?)&", content):

            quality = sq.group(1).upper()
            quality = quality.replace('"', '')

            if quality == 'UNKNOWN':
                continue

            import base64
            host_url = base64.b64decode(sq.group(2))

            if not 'affbuzz' in host_url.lower():
                if not 'ads.ad-center.com' in host_url.lower():
                    if not 'offer?' in host_url.lower():
                        #print quality
                        self.AddFileHost(list, quality, host_url)
예제 #3
0
    def Search(self,
               srcr,
               keywords,
               type,
               list,
               lock,
               message_queue,
               page='',
               total_pages=''):

        from entertainment.net import Net
        net = Net(cached=False, do_not_cache_if_any=do_no_cache_keywords_list)

        if self.Settings().get_setting('proxy') == "true":
            import socks
            (proxy, port) = self.get_proxy()
            socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, proxy, port)
            net.set_socket_class(socks.socksocket)

        custom_url = self.get_url()

        keywords = self.CleanTextForSearch(keywords)

        search_page_url = custom_url + 'index.php?search'

        search_page_content = common.unescape(
            common.str_conv(net.http_GET(search_page_url).content))

        import re

        search_key = re.compile(
            'input type="hidden" name="key" value="([0-9a-f]*)"',
            re.DOTALL).findall(search_page_content)[0]

        import urllib
        from entertainment import odict
        search_dict = odict.odict({
            'key':
            search_key,
            'search_keywords':
            keywords,
            'search_section':
            '1' if type == 'movies' else '2',
            'sort':
            'featured'
        })
        search_dict.sort(key=lambda x: x[0].lower())

        search_for_url = custom_url + 'index.php?' + urllib.urlencode(
            search_dict)

        self.ExtractContentAndAddtoList(srcr,
                                        'search',
                                        search_for_url,
                                        type,
                                        list,
                                        page=page,
                                        total_pages=total_pages)
예제 #4
0
    def SearchContent(self, search_key, search_keywords, type, year):
        from entertainment.net import Net
        net = Net(do_not_cache_if_any=do_no_cache_keywords_list)

        if self.Settings().get_setting('proxy') == "true":
            import socks
            (proxy, port) = self.get_proxy()
            socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, proxy, port)
            net.set_socket_class(socks.socksocket)

        custom_url = self.get_url()

        import re

        import urllib
        search_dict = {
            'key': search_key,
            'search_keywords': search_keywords,
            'search_section': '1' if type == 'movies' else '2',
            'year': year
        }
        search_for_url = custom_url + 'index.php?' + urllib.urlencode(
            search_dict)

        from entertainment import odict
        search_dict_for_cache = odict.odict(search_dict)
        search_dict_for_cache.update({'key': ''})
        search_dict_for_cache.sort(key=lambda x: x[0].lower())
        search_for_url_for_cache = custom_url + 'index.php?' + urllib.urlencode(
            search_dict_for_cache)

        search_results = common.unescape(
            common.str_conv(
                net.http_GET(search_for_url,
                             url_for_cache=search_for_url_for_cache).content))
        search_content = None

        #print search_results
        for search_item in re.finditer(
                r"<div class=\"index_item.+?\"><a href=\"(.+?)\" title=\"Watch (.+?)\"",
                search_results):

            searchitem = search_item.group(2)
            if year == '0' or year == '':
                searchitem = re.sub(' \([0-9]+\)', '', searchitem)

            if common.CreateIdFromString(
                    searchitem) == common.CreateIdFromString(
                        search_keywords +
                        (' (' + year +
                         ')' if year != '0' and year != '' else '')):
                search_content = search_item
                break

        return search_content
예제 #5
0
    def SearchContent(self, search_key, search_keywords, type, year):
        from entertainment.net import Net

        net = Net(do_not_cache_if_any=do_no_cache_keywords_list)

        if self.Settings().get_setting("proxy") == "true":
            import socks

            (proxy, port) = self.get_proxy()
            socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, proxy, port)
            net.set_socket_class(socks.socksocket)

        custom_url = self.get_url()

        import re

        import urllib

        search_dict = {
            "key": search_key,
            "search_keywords": search_keywords,
            "search_section": "1" if type == "movies" else "2",
            "year": year,
            "advanced": "1",
        }
        search_for_url = custom_url + "index.php?" + urllib.urlencode(search_dict)

        from entertainment import odict

        search_dict_for_cache = odict.odict(search_dict)
        search_dict_for_cache.update({"key": ""})
        search_dict_for_cache.sort(key=lambda x: x[0].lower())
        search_for_url_for_cache = custom_url + "index.php?" + urllib.urlencode(search_dict_for_cache)

        search_results = common.unescape(
            common.str_conv(net.http_GET(search_for_url, url_for_cache=search_for_url_for_cache).content)
        )
        search_content = None

        for search_item in re.finditer(
            r"<div class=\"index_item.+?\"><a href=\"(.+?)\" title=\"Watch (.+?)\"", search_results
        ):

            searchitem = search_item.group(2)
            if year == "0" or year == "":
                searchitem = re.sub(" \([0-9]+\)", "", searchitem)

            if common.CreateIdFromString(searchitem) == common.CreateIdFromString(
                search_keywords + (" (" + year + ")" if year != "0" and year != "" else "")
            ):
                search_content = search_item
                break

        return search_content
예제 #6
0
    def Search(self, srcr, keywords, type, list, lock, message_queue, page="", total_pages=""):

        from entertainment.net import Net

        net = Net(cached=False, do_not_cache_if_any=do_no_cache_keywords_list)

        if self.Settings().get_setting("proxy") == "true":
            import socks

            (proxy, port) = self.get_proxy()
            socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, proxy, port)
            net.set_socket_class(socks.socksocket)

        custom_url = self.get_url()

        keywords = self.CleanTextForSearch(keywords)

        search_page_url = custom_url + "index.php?search"

        search_page_content = common.unescape(common.str_conv(net.http_GET(search_page_url).content))

        import re

        search_key = re.search('input type="hidden" name="key" value="([0-9a-f]*)"', search_page_content).group(1)

        import urllib
        from entertainment import odict

        search_dict = odict.odict(
            {
                "key": search_key,
                "search_keywords": keywords,
                "search_section": "1" if type == "movies" else "2",
                "sort": "featured",
            }
        )
        search_dict.sort(key=lambda x: x[0].lower())

        search_for_url = custom_url + "index.php?" + urllib.urlencode(search_dict)

        self.ExtractContentAndAddtoList(srcr, "search", search_for_url, type, list, page=page, total_pages=total_pages)
예제 #7
0
    def GetFileHostsForContent(self, title, name, year, season, episode, type,
                               list, lock, message_queue):
        from entertainment.net import Net
        net = Net(cached=False, do_not_cache_if_any=do_no_cache_keywords_list)

        if self.Settings().get_setting('proxy') == "true":
            import socks
            (proxy, port) = self.get_proxy()
            socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, proxy, port)
            net.set_socket_class(socks.socksocket)

        custom_url = self.get_url()

        if 'primeware.racing' in custom_url:

            import xbmcaddon
            ADDON = xbmcaddon.Addon(
                id='script.icechannel.primewireag.settings')
            ADDON.setSetting('custom_text_url', 'http://www.primewire.ch/')

        title = self.CleanTextForSearch(title)
        name = self.CleanTextForSearch(name)

        search_page_url = custom_url + 'index.php?search'

        search_page_content = common.unescape(
            common.str_conv(net.http_GET(search_page_url).content))

        if 'virginmedia.com/courtorders' in search_page_content.lower(
        ) or 'ukispcourtorders' in search_page_content.lower(
        ) or 'is not available through bskyb' in search_page_content.lower(
        ) or 'ACCESS TO THE WEBSITES LISTED ON THIS PAGE HAS BEEN BLOCKED PURSUANT TO ORDERS OF THE HIGH COURT' in search_page_content.upper(
        ):
            import xbmcaddon
            ADDON = xbmcaddon.Addon(
                id='script.icechannel.primewireag.settings')
            ADDON.setSetting('custom_url', 'Custom')
            ADDON.setSetting('custom_text_url', 'http://www.primewire.ch/')

        import re

        search_key = re.compile(
            'input type="hidden" name="key" value="([0-9a-f]*)"',
            re.DOTALL).findall(search_page_content)[0]

        search_content = None
        name = name.replace("'", " ")
        search_content = self.SearchContent(search_key, name, type, year)

        if search_content == None and ':' in name:
            new_name = name.replace(':', ' -')
            search_content = self.SearchContent(search_key, new_name, type,
                                                year)

            if search_content == None and (new_name.endswith('s')
                                           or new_name.endswith('?')):
                new_name = new_name[:len(new_name) - 1]
                search_content = self.SearchContent(search_key, new_name, type,
                                                    year)

                if search_content == None:
                    search_content = self.SearchContent(
                        search_key, new_name, type, '0')

            if search_content == None:
                new_name = name.replace(':', '')
                search_content = self.SearchContent(search_key, new_name, type,
                                                    year)

                if search_content == None and (new_name.endswith('s')
                                               or new_name.endswith('?')):
                    new_name = new_name[:len(new_name) - 1]
                    search_content = self.SearchContent(
                        search_key, new_name, type, year)

                    if search_content == None:
                        search_content = self.SearchContent(
                            search_key, new_name, type, '0')

        if search_content == None:
            search_content = self.SearchContent(search_key, name, type, '')

        if type == 'tv_episodes' and search_content:
            show_url = search_content.group(1)
            show_url = re.sub('watch-', 'tv-', show_url)
            show_url = show_url + '/season-' + season + '-episode-' + episode

            search_content = re.search('(.*)', show_url)

        if search_content:
            self.GetFileHosts(custom_url + search_content.group(1), list, lock,
                              message_queue)
예제 #8
0
    def GetSection(self,
                   indexer,
                   section,
                   url,
                   type,
                   list,
                   page='',
                   total_pages='',
                   sort_by='',
                   sort_order=''):
        url_type = ''
        content_type = ''

        custom_url = self.get_url()

        if indexer == common.indxr_Movies:
            url_type = ''
        elif indexer == common.indxr_TV_Shows:
            url_type = 'tv&'

        if section == 'main':
            self.AddSection(list, indexer, 'a_z', 'A-Z')
            self.AddSection(list, indexer, 'genres', 'Genres')
            self.AddSection(list, indexer, 'featured', 'Featured',
                            custom_url + '?' + url_type + 'sort=featured',
                            indexer)
            self.AddSection(list, indexer, 'views', 'Most Popular',
                            custom_url + '?' + url_type + 'sort=views',
                            indexer)
            self.AddSection(list, indexer, 'ratings', 'Highly Rated',
                            custom_url + '?' + url_type + 'sort=ratings',
                            indexer)
            self.AddSection(list, indexer, 'release', 'Date Released',
                            custom_url + '?' + url_type + 'sort=release',
                            indexer)
            self.AddSection(list, indexer, 'date', 'Date Added',
                            custom_url + '?' + url_type + 'sort=date', indexer)
        elif section == 'genres':

            from entertainment.net import Net
            net = Net(do_not_cache_if_any=do_no_cache_keywords_list)

            if self.Settings().get_setting('proxy') == "true":
                import socks
                (proxy, port) = self.get_proxy()
                socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, proxy, port)
                net.set_socket_class(socks.socksocket)

            content = net.http_GET(custom_url + '?' + url_type).content

            import re
            genres = re.compile(
                '<ul class="menu-genre-list">(.+?)</ul>').findall(content)[0]
            if genres:
                #genres = genres.group(1)
                for genre in re.finditer('<li><a href="(.+?)">(.+?)</a></li>',
                                         genres):
                    genre_url = genre.group(1)
                    if genre_url[0] == '/':
                        genre_url = genre_url[1:]
                        genre_url = custom_url + genre_url
                    genre_title = genre.group(2)
                    genre_section = genre_title.lower()

                    self.AddSection(list, indexer, genre_section, genre_title,
                                    genre_url, indexer)

        elif section == 'a_z':
            self.AddSection(list, indexer, '123', '#123',
                            custom_url + '?' + url_type + 'letter=123',
                            indexer)
            A2Z = [chr(i) for i in xrange(ord('A'), ord('Z') + 1)]
            for letter in A2Z:
                self.AddSection(
                    list, indexer, letter.lower(), letter,
                    custom_url + '?' + url_type + 'letter=' + letter.lower(),
                    indexer)
        else:
            self.ExtractContentAndAddtoList(indexer, section, url, type, list,
                                            page, total_pages, sort_by,
                                            sort_order)
예제 #9
0
    def GetContent(self, indexer, url, title, name, year, season, episode,
                   type, list):
        import urllib
        url = urllib.unquote_plus(url)
        title = urllib.unquote_plus(title)
        name = urllib.unquote_plus(name)

        custom_url = self.get_url()

        import re
        new_url = url
        if not new_url.startswith(custom_url):
            new_url = re.sub("http\://.*?/", custom_url, url)

        from entertainment.net import Net
        net = Net(do_not_cache_if_any=do_no_cache_keywords_list)

        if self.Settings().get_setting('proxy') == "true":
            import socks
            (proxy, port) = self.get_proxy()
            socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, proxy, port)
            net.set_socket_class(socks.socksocket)

        content = net.http_GET(new_url).content

        if type == 'tv_seasons':  #<h2><a href="(.+?)">Season ([0-9]+)</a></h2>
            for item in re.finditer(
                    '<a data-id=".+?" class="season-toggle" href="(.+?)">.+? Season ([0-9]+)<',
                    content):
                item_url = item.group(1)
                if item_url[0] == '/':
                    item_url = item_url[1:]
                    item_url = custom_url + item_url

                item_v_id = item.group(2)
                item_title = 'Season ' + item_v_id

                item_id = common.CreateIdFromString(title + ' ' + item_title)

                self.AddContent(list,
                                indexer,
                                common.mode_Content,
                                item_title,
                                item_id,
                                'tv_episodes',
                                url=item_url,
                                name=name,
                                year=year,
                                season=item_v_id)

        elif type == 'tv_episodes':  #<div class="tv_episode_item"> <a href="(.+?)">E[0-9]+)\s*<span class="tv_episode_name"> - (.+?)</span>

            for item in re.finditer(
                    '<div class="tv_episode_item"> <a href="(.+?)">E([0-9]+)\s*<span class="tv_episode_name"> - (.+?)</span>',
                    content):
                item_url = item.group(1)
                if item_url[0] == '/':
                    item_url = item_url[1:]
                    item_url = custom_url + item_url
                item_v_id = item.group(2)
                item_title = item.group(3)
                if item_title == None:
                    item_title = ''

                item_id = common.CreateIdFromString(name + '_' + year +
                                                    '_season_' + season +
                                                    '_episode_' + item_v_id)

                self.AddContent(list,
                                indexer,
                                common.mode_File_Hosts,
                                item_title,
                                item_id,
                                type,
                                url=item_url,
                                name=name,
                                year=year,
                                season=season,
                                episode=item_v_id)
예제 #10
0
    def ExtractContentAndAddtoList(self,
                                   indexer,
                                   section,
                                   url,
                                   type,
                                   list,
                                   page='',
                                   total_pages='',
                                   sort_by='',
                                   sort_order=''):

        import urllib

        if section != 'search':
            url = urllib.unquote_plus(url)

        custom_url = self.get_url()

        import re
        new_url = url
        if not new_url.startswith(custom_url):
            new_url = re.sub("http\://.*?/", custom_url, url)

        if page == '':
            page = '1'
        else:
            page = str(int(page))
            new_url = new_url + '&page=' + page

        if sort_by == '' and 'sort' not in new_url:
            sort_by = 'date'
        if 'sort' not in new_url:
            new_url = new_url + '&sort=' + sort_by

        from entertainment.net import Net
        net = Net(do_not_cache_if_any=do_no_cache_keywords_list)

        if self.Settings().get_setting('proxy') == "true":
            import socks
            (proxy, port) = self.get_proxy()
            socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, proxy, port)
            net.set_socket_class(socks.socksocket)

        new_url_for_cache = re.sub('\?key=.+?&', '?', new_url)
        content = net.http_GET(new_url,
                               url_for_cache=new_url_for_cache).content

        if total_pages == '':
            total_pages = re.search(
                '</a> <a href="/.+?&page=([0-9]*)"> >> </a></div>', content)
            if total_pages:
                total_pages = total_pages.group(1)
            else:
                if re.search('0 items found', content):
                    page = '0'
                    total_pages = '0'
                else:
                    page = '1'
                    total_pages = '1'

        self.AddInfo(list, indexer, section, url, type, page, total_pages,
                     sort_by, sort_order)

        mode = common.mode_File_Hosts
        if type == 'tv_shows':
            mode = common.mode_Content
            type = 'tv_seasons'

        for item in re.finditer(
                r'<a href="(.+?)" title="Watch (.+?)"><img src=', content):
            item_v_id = item.group(1)
            item_title = common.addon.unescape(item.group(2))
            item_year = re.search("\(([0-9]+)\)", item_title)
            if item_year:
                item_year = item_year.group(1)
            else:
                item_year = ''
            item_name = re.sub(" \([0-9]+\)", "", item_title)

            if item_v_id[0] == '/':
                item_v_id = item_v_id[1:]
                item_url = custom_url + item_v_id
            else:
                item_url = item_v_id

            if total_pages == '':
                total_pages = '1'

            self.AddContent(list,
                            indexer,
                            mode,
                            item_title,
                            '',
                            type,
                            url=item_url,
                            name=item_name,
                            year=item_year)
예제 #11
0
    def ExtractContentAndAddtoList(
        self, indexer, section, url, type, list, page="", total_pages="", sort_by="", sort_order=""
    ):

        import urllib

        if section != "search":
            url = urllib.unquote_plus(url)

        custom_url = self.get_url()

        import re

        new_url = url
        if not new_url.startswith(custom_url):
            new_url = re.sub("http\://.*?/", custom_url, url)

        if page == "":
            page = "1"
        else:
            page = str(int(page))
            new_url = new_url + "&page=" + page

        if sort_by == "" and "sort" not in new_url:
            sort_by = "date"
        if "sort" not in new_url:
            new_url = new_url + "&sort=" + sort_by

        from entertainment.net import Net

        net = Net(do_not_cache_if_any=do_no_cache_keywords_list)

        if self.Settings().get_setting("proxy") == "true":
            import socks

            (proxy, port) = self.get_proxy()
            socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, proxy, port)
            net.set_socket_class(socks.socksocket)

        new_url_for_cache = re.sub("\?key=.+?&", "?", new_url)
        content = net.http_GET(new_url, url_for_cache=new_url_for_cache).content

        if total_pages == "":
            total_pages = re.search('page=([0-9]*)"> >> <', content)
            if total_pages:
                total_pages = total_pages.group(1)
            else:
                if re.search("0 items found", content):
                    page = "0"
                    total_pages = "0"
                else:
                    page = "1"
                    total_pages = "1"

        self.AddInfo(list, indexer, section, url, type, page, total_pages, sort_by, sort_order)

        mode = common.mode_File_Hosts
        if type == "tv_shows":
            mode = common.mode_Content
            type = "tv_seasons"

        for item in re.finditer(r"<div class=\".+?\"><a href=\"(.+?)\" title=\"Watch (.+?)\"", content):
            item_v_id = item.group(1)
            item_title = common.addon.unescape(item.group(2))
            item_year = re.search("\(([0-9]+)\)", item_title)
            if item_year:
                item_year = item_year.group(1)
            else:
                item_year = ""
            item_name = re.sub(" \([0-9]+\)", "", item_title)

            if item_v_id[0] == "/":
                item_v_id = item_v_id[1:]
                item_url = custom_url + item_v_id
            else:
                item_url = item_v_id

            if total_pages == "":
                total_pages = "1"

            self.AddContent(list, indexer, mode, item_title, "", type, url=item_url, name=item_name, year=item_year)
예제 #12
0
    def GetFileHostsForContent(self, title, name, year, season, episode, type, list, lock, message_queue):
        from entertainment.net import Net

        net = Net(cached=False, do_not_cache_if_any=do_no_cache_keywords_list)

        if self.Settings().get_setting("proxy") == "true":
            import socks

            (proxy, port) = self.get_proxy()
            socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, proxy, port)
            net.set_socket_class(socks.socksocket)

        custom_url = self.get_url()

        title = self.CleanTextForSearch(title)
        name = self.CleanTextForSearch(name)

        search_page_url = custom_url + "index.php?search"

        search_page_content = common.unescape(common.str_conv(net.http_GET(search_page_url).content))

        if custom_url == "http://primewire.unblocked.pw/":

            import xbmcaddon

            ADDON = xbmcaddon.Addon(id="script.icechannel.PrimeWire.settings")
            ADDON.setSetting("custom_text_url", "https://www.primewire.ag/")
        if (
            "virginmedia.com/courtorders" in search_page_content
            or "ukispcourtorders" in search_page_content
            or "is not available through BSkyB" in search_page_content
            or "ACCESS TO THE WEBSITES LISTED ON THIS PAGE HAS BEEN BLOCKED PURSUANT TO ORDERS OF THE HIGH COURT"
            in search_page_content
        ):
            import xbmcaddon

            ADDON = xbmcaddon.Addon(id="script.icechannel.PrimeWire.settings")
            ADDON.setSetting("custom_url", "Custom")
            ADDON.setSetting("custom_text_url", "https://www.primewire.ag/")

        import re

        search_key = re.search('input type="hidden" name="key" value="([0-9a-f]*)"', search_page_content).group(1)

        search_content = None
        name = name.replace("'", " ")
        search_content = self.SearchContent(search_key, name, type, year)

        if search_content == None and ":" in name:
            new_name = name.replace(":", " -")
            search_content = self.SearchContent(search_key, new_name, type, year)

            if search_content == None and (new_name.endswith("s") or new_name.endswith("?")):
                new_name = new_name[: len(new_name) - 1]
                search_content = self.SearchContent(search_key, new_name, type, year)

                if search_content == None:
                    search_content = self.SearchContent(search_key, new_name, type, "0")

            if search_content == None:
                new_name = name.replace(":", "")
                search_content = self.SearchContent(search_key, new_name, type, year)

                if search_content == None and (new_name.endswith("s") or new_name.endswith("?")):
                    new_name = new_name[: len(new_name) - 1]
                    search_content = self.SearchContent(search_key, new_name, type, year)

                    if search_content == None:
                        search_content = self.SearchContent(search_key, new_name, type, "0")

        if search_content == None:
            search_content = self.SearchContent(search_key, name, type, "")

        if type == "tv_episodes" and search_content:
            show_url = search_content.group(1)
            show_url = re.sub("watch-", "tv-", show_url)
            show_url = show_url + "/season-" + season + "-episode-" + episode

            search_content = re.search("(.*)", show_url)

        if search_content:
            self.GetFileHosts(custom_url + search_content.group(1), list, lock, message_queue)
예제 #13
0
    def GetSection(self, indexer, section, url, type, list, page="", total_pages="", sort_by="", sort_order=""):
        url_type = ""
        content_type = ""

        custom_url = self.get_url()

        if indexer == common.indxr_Movies:
            url_type = ""
        elif indexer == common.indxr_TV_Shows:
            url_type = "tv&"

        if section == "main":
            self.AddSection(list, indexer, "a_z", "A-Z")
            self.AddSection(list, indexer, "genres", "Genres")
            self.AddSection(
                list, indexer, "featured", "Featured", custom_url + "?" + url_type + "sort=featured", indexer
            )
            self.AddSection(list, indexer, "views", "Most Popular", custom_url + "?" + url_type + "sort=views", indexer)
            self.AddSection(
                list, indexer, "ratings", "Highly Rated", custom_url + "?" + url_type + "sort=ratings", indexer
            )
            self.AddSection(
                list, indexer, "release", "Date Released", custom_url + "?" + url_type + "sort=release", indexer
            )
            self.AddSection(list, indexer, "date", "Date Added", custom_url + "?" + url_type + "sort=date", indexer)
        elif section == "genres":

            from entertainment.net import Net

            net = Net(do_not_cache_if_any=do_no_cache_keywords_list)

            if self.Settings().get_setting("proxy") == "true":
                import socks

                (proxy, port) = self.get_proxy()
                socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, proxy, port)
                net.set_socket_class(socks.socksocket)

            content = net.http_GET(custom_url + "?" + url_type).content

            import re

            genres = re.search('<ul class="menu-genre-list">(.+?)</ul>', content)
            if genres:
                genres = genres.group(1)
                for genre in re.finditer('<li><a href="(.+?)">(.+?)</a></li>', genres):
                    genre_url = genre.group(1)
                    if genre_url[0] == "/":
                        genre_url = genre_url[1:]
                        genre_url = custom_url + genre_url
                    genre_title = genre.group(2)
                    genre_section = genre_title.lower()

                    self.AddSection(list, indexer, genre_section, genre_title, genre_url, indexer)

        elif section == "a_z":
            self.AddSection(list, indexer, "123", "#123", custom_url + "?" + url_type + "letter=123", indexer)
            A2Z = [chr(i) for i in xrange(ord("A"), ord("Z") + 1)]
            for letter in A2Z:
                self.AddSection(
                    list,
                    indexer,
                    letter.lower(),
                    letter,
                    custom_url + "?" + url_type + "letter=" + letter.lower(),
                    indexer,
                )
        else:
            self.ExtractContentAndAddtoList(indexer, section, url, type, list, page, total_pages, sort_by, sort_order)
예제 #14
0
    def GetContent(self, indexer, url, title, name, year, season, episode, type, list):
        import urllib

        url = urllib.unquote_plus(url)
        title = urllib.unquote_plus(title)
        name = urllib.unquote_plus(name)

        custom_url = self.get_url()

        import re

        new_url = url
        if not new_url.startswith(custom_url):
            new_url = re.sub("http\://.*?/", custom_url, url)

        from entertainment.net import Net

        net = Net(do_not_cache_if_any=do_no_cache_keywords_list)

        if self.Settings().get_setting("proxy") == "true":
            import socks

            (proxy, port) = self.get_proxy()
            socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, proxy, port)
            net.set_socket_class(socks.socksocket)

        content = net.http_GET(new_url).content

        if type == "tv_seasons":  # <h2><a href="(.+?)">Season ([0-9]+)</a></h2>
            for item in re.finditer(
                '<a data-id=".+?" class="season-toggle" href="(.+?)">.+? Season ([0-9]+)<', content
            ):
                item_url = item.group(1)
                if item_url[0] == "/":
                    item_url = item_url[1:]
                    item_url = custom_url + item_url

                item_v_id = item.group(2)
                item_title = "Season " + item_v_id

                item_id = common.CreateIdFromString(title + " " + item_title)

                self.AddContent(
                    list,
                    indexer,
                    common.mode_Content,
                    item_title,
                    item_id,
                    "tv_episodes",
                    url=item_url,
                    name=name,
                    year=year,
                    season=item_v_id,
                )

        elif (
            type == "tv_episodes"
        ):  # <div class="tv_episode_item"> <a href="(.+?)">E[0-9]+)\s*<span class="tv_episode_name"> - (.+?)</span>

            for item in re.finditer(
                '<div class="tv_episode_item"> <a href="(.+?)">E([0-9]+)\s*<span class="tv_episode_name"> - (.+?)</span>',
                content,
            ):
                item_url = item.group(1)
                if item_url[0] == "/":
                    item_url = item_url[1:]
                    item_url = custom_url + item_url
                item_v_id = item.group(2)
                item_title = item.group(3)
                if item_title == None:
                    item_title = ""

                item_id = common.CreateIdFromString(name + "_" + year + "_season_" + season + "_episode_" + item_v_id)

                self.AddContent(
                    list,
                    indexer,
                    common.mode_File_Hosts,
                    item_title,
                    item_id,
                    type,
                    url=item_url,
                    name=name,
                    year=year,
                    season=season,
                    episode=item_v_id,
                )