コード例 #1
0
ファイル: default.py プロジェクト: Sitronik/xbmc-plugins
    def search(self):
        query = common.getUserInput(self.language(1000), "")

        if query:
            if self.addon.getSetting('translit') == 'true':
                print "Module translit enabled"
            try:
                keyword = translit.rus(query)
            except Exception:
                keyword = translit.rus(query)
            else:
                keyword = query

        url = self.url + "/q/" + keyword + '/'
        self.getPlaylist(url)
コード例 #2
0
ファイル: default.py プロジェクト: enigma82/xbmc-plugins
    def search(self):
        query = common.getUserInput(self.language(1000), "")

        if query:
            if self.addon.getSetting('translit') == 'true':
                print "Module translit enabled"
            try:
                keyword = translit.rus(query)
            except Exception:
                keyword = translit.rus(query)
            else:
                keyword = query

        url = self.url + "/q/" + keyword + '/'
        self.getPlaylist(url)
コード例 #3
0
def generate_nfo(category, media_title):
    if "(ts)" in category:
        return
    media_title_orig = media_title
    if TRANSLIT == "true":
        media_title = translit.eng(media_title)

    nfo = '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>\n'
    nfo += '<movie>\n'
    nfo += "    <title>" + encode_(
        encode_(
            media_title_orig.split('[')[0].split('(')[0].split('/')
            [0].strip())) + "</title>\n"
    year = get_media_year(media_title_orig)
    if year:
        nfo += "    <year>" + year + "</year>\n"
    nfo += "</movie>\n"

    dirlib = os.path.join(DIRECTORY.decode("utf-8"), category)
    if not os.path.exists(dirlib):
        os.makedirs(dirlib)
    name = dirlib + "/" + encode_(media_title) + ".nfo"
    if os.path.exists(name) and (xbmcgui.Dialog().yesno(
            ".strm", "", "Exist .nfo file. Continue?") == False):
        return
    try:
        f = open(name, "w+")
        f.write(nfo + "\n")
        f.close()
    except Exception, e:
        xbmc.log('[%s]: WRITE EXCEPT [%s]' % (ID, e), 4)
        show_message(e)
        return
コード例 #4
0
ファイル: default.py プロジェクト: mlzharov/ru
def Search(params):
    mode = params['mode'] if 'mode' in params else None
    kbd = xbmc.Keyboard()
    if mode == 'clips': kbd.setHeading("Поиск по клипам")
    else: kbd.setHeading("Поиск")
    kbd.doModal()
    uri = {}
    if kbd.isConfirmed():
        query = kbd.getText()
        if use_translit:
            try:
                query = translit.rus(query)
                print 'detransified query: ' + query
                if debug_mode:
                    ShowMessage(addon_name,
                                'Detransified search query: ' + query)
            except:
                pass
        query = urllib.quote_plus(query)
    else:
        return True
    if mode == 'clips': uri['url'] = '/load/'
    else: uri['url'] = '/board'
    uri['post'] = 'query=%s&a=2' % query
    uri['mode'] = 'search'
    ListCat(uri)
コード例 #5
0
ファイル: default.py プロジェクト: mrstealth/xbmc-gotham
    def getUserInput(self):
        kbd = xbmc.Keyboard()
        kbd.setDefault('')
        kbd.setHeading(self.language(1000))
        kbd.doModal()
        keyword = None
        s = None

        if kbd.isConfirmed():
            s = kbd.getText()
            if self.addon.getSetting('translit') == 'true':
                try:
                	keyword = translit.rus(s)	
                except:pass
                try:
                	keyword = self.encode(keyword)	
                except:keyword = s      
            else:
                keyword = s
        words = []
        history = self.addon.getSetting('history')
        if history:
        	words = history.split(",")
        if keyword and keyword not in words:
        	words.append(keyword)
        	self.addon.setSetting('history', ','.join(words))
        return keyword
コード例 #6
0
    def getUserInput(self):
        kbd = xbmc.Keyboard()
        kbd.setDefault('')
        kbd.setHeading(self.language(1000))
        kbd.doModal()
        keyword = None
        s = None

        if kbd.isConfirmed():
            s = kbd.getText()
            if self.addon.getSetting('translit') == 'true':
                try:
                    keyword = translit.rus(s)
                except:
                    pass
                try:
                    keyword = self.encode(keyword)
                except:
                    keyword = s
            else:
                keyword = s
        words = []
        history = self.addon.getSetting('history')
        if history:
            words = history.split(",")
        if keyword and keyword not in words:
            words.append(keyword)
            self.addon.setSetting('history', ','.join(words))
        return keyword
コード例 #7
0
ファイル: default.py プロジェクト: Sitronik/xbmc-plugins
  def search(self):
    query = common.getUserInput(self.language(1000), "")

    if query:
      if self.addon.getSetting('translit') == 'true':
        print "Module translit enabled"

        try:
            keyword = translit.rus(query).encode('utf-8','ignore')
        except Exception, e:
            keyword = translit.rus(query)
      else:
        keyword = query

      url =self.url + '/search/?q=' +  urllib.quote_plus(keyword.replace(' ', '+'))
      self.getSongs(url)
コード例 #8
0
ファイル: default.py プロジェクト: enigma82/xbmc-plugins
    def search(self):
        query = common.getUserInput(self.language(1000), "")

        if query:
            if self.addon.getSetting('translit') == 'true':
                print "Module translit enabled"

                try:
                    keyword = translit.rus(query).encode('utf-8', 'ignore')
                except Exception, e:
                    keyword = translit.rus(query)
            else:
                keyword = query

            url = self.url + '/search/?q=' + urllib.quote_plus(
                keyword.replace(' ', '+'))
            self.getSongs(url)
コード例 #9
0
ファイル: default.py プロジェクト: serbra/ru
def gettranslit(msg):
    if use_translit == 'true':
        try:
            return translit.rus(msg)
        except:
            return msg
    else:
        return msg
コード例 #10
0
ファイル: default.py プロジェクト: mrstealth/kodi-isengard
def search():
    kbd = xbmc.Keyboard()
    kbd.setDefault('')
    kbd.setHeading(language(2002))
    kbd.doModal()
    keyword=''

    if kbd.isConfirmed():
      keyword = kbd.getText()

    if Addon.getSetting('translit') == 'true':
      keyword = translit.rus(kbd.getText())

    path = "/do=search"

    # Advanced search: titles only
    values = {
      'beforeafter' : 'after',
      'catlist[]' : '0',
      'do' : 'search',
      'full_search' : '1',
      'replyless' : '0',
      'replylimit' : '0',
      'resorder' : 'desc',
      'result_from' : '1',
      'result_num' : '30',
      'search_start' : '1',
      'searchdate' : '0',
      'searchuser' : '',
      'showposts' : '0',
      'sortby' : 'date',
      'subaction' : 'search',
      'titleonly' : '3'
    }
    try:
        # Apple TV
        values['story'] = keyword

        data = urllib.urlencode(values)
        req = Request(BASE_URL+path, data)
    except UnicodeEncodeError:
        # Desktop
        values['story'] = keyword.encode('cp1251')

        data = urllib.urlencode(values)
        req = Request(BASE_URL+path, data)

    try:
        response = urlopen(req)
    except URLError, e:
        if hasattr(e, 'reason'):
            print 'We failed to reach a server.'
            print 'Reason: ', e.reason
        elif hasattr(e, 'code'):
            print 'The server couldn\'t fulfill the request.'
            print 'Error code: ', e.code
コード例 #11
0
def search():
    kbd = xbmc.Keyboard()
    kbd.setDefault('')
    kbd.setHeading(language(2002))
    kbd.doModal()
    keyword=''

    if kbd.isConfirmed():
      keyword = kbd.getText()

    if Addon.getSetting('translit') == 'true':
      keyword = translit.rus(kbd.getText())

    path = "/do=search"

    # Advanced search: titles only
    values = {
      'beforeafter' : 'after',
      'catlist[]' : '0',
      'do' : 'search',
      'full_search' : '1',
      'replyless' : '0',
      'replylimit' : '0',
      'resorder' : 'desc',
      'result_from' : '1',
      'result_num' : '30',
      'search_start' : '1',
      'searchdate' : '0',
      'searchuser' : '',
      'showposts' : '0',
      'sortby' : 'date',
      'subaction' : 'search',
      'titleonly' : '3'
    }
    try:
        # Apple TV
        values['story'] = keyword

        data = urllib.urlencode(values)
        req = Request(BASE_URL+path, data)
    except UnicodeEncodeError:
        # Desktop
        values['story'] = keyword.encode('cp1251')

        data = urllib.urlencode(values)
        req = Request(BASE_URL+path, data)

    try:
        response = urlopen(req)
    except URLError, e:
        if hasattr(e, 'reason'):
            print 'We failed to reach a server.'
            print 'Reason: ', e.reason
        elif hasattr(e, 'code'):
            print 'The server couldn\'t fulfill the request.'
            print 'Error code: ', e.code
コード例 #12
0
def generate_strm(category, media_title):
    media_title_orig = media_title
    if TRANSLIT == "true":
        media_title = translit.eng(media_title)

    path = xbmc.getInfoLabel('ListItem.FileNameAndPath')

    dirlib = os.path.join(DIRECTORY.decode("utf-8"),
                          category.replace("(ts)", "").strip())
    xbmc.log("dir=" + dirlib)
    xbmc.log("dir2=" + DIRECTORY)
    if not os.path.exists(dirlib):
        os.makedirs(dirlib)

    playable = ''
    if (PLAYABLE == "true") and (
        (xbmc.getCondVisibility("ListItem.IsFolder") == False) or
        (xbmcgui.Dialog().yesno(".strm", "", "Is it playable content?")
         == True)):
        playable = '#'
    uri = playable + path

    action = "Generated "
    if ("(ts)" in category):
        namedir = dirlib + "/" + encode_(media_title)
        namefile = dirlib + "/" + encode_(media_title) + "/s1e1.strm"
        name = namedir
        if not os.path.exists(namedir):
            os.makedirs(namedir)
        else:
            if (xbmcgui.Dialog().yesno(
                    ".strm", "", "Exist .strm file. Continue?") == False):
                return
            f = open(namefile, "r+")
            content = urllib.unquote_plus(f.read())
            f.close()
            if (ID in content):
                if (xbmcgui.Dialog().yesno(
                        ".strm", "", "Update existing .strm file?") == True):
                    uri = update_uri(content, uri)
                    action = "Updated "
        try:
            f = open(namefile, "w+")
            uri = "plugin://{0}?mode=run&uri={1}&title={2}".format(
                ID, urllib.quote_plus(uri),
                encode_(
                    media_title_orig.split('[')[0].split('(')[0].split('/')
                    [0].strip()))
            f.write(uri + "\n")
            f.close()
        except Exception, e:
            xbmc.log('[%s]: WRITE EXCEPT [%s]' % (ID, e), 4)
            show_message(e)
            return
コード例 #13
0
ファイル: default.py プロジェクト: arayyani/xbmc-plugins
    def search(self, keyword, unified):
        print "*** Search: unified %s" % unified

        keyword = translit.rus(keyword) if unified else self.getUserInput()
        unified_search_results = []

        if keyword:
            keyword = self.encode(keyword)

            print keyword

            url = 'http://www.videokub.com/search/?q=%s' % (keyword)

            response = urllib2.urlopen(url)

            #response = common.fetchPage({"link": url})
            content = common.parseDOM(response.read(), "div", attrs={"class": "list_videos"})
            videos = common.parseDOM(content, "div", attrs={"class": "short"})

            links = common.parseDOM(videos, "a", attrs={"class": "kt_imgrc"}, ret='href')
            titles = common.parseDOM(videos, "a", attrs={"class": "kt_imgrc"}, ret='title')
            images = common.parseDOM(videos, "img", attrs={"class": "thumb"}, ret='src')

            durations = common.parseDOM(videos, "span", attrs={"class": "time"})

            if unified:
                print "Perform unified search and return results"

                for i, title in enumerate(titles):
                    title = self.encode(title)
                    unified_search_results.append({'title':  title, 'url': links[i], 'image': self.url + images[i], 'plugin': self.id})

                UnifiedSearch().collect(unified_search_results)

            else:
                for i, title in enumerate(titles):
                    duration = durations[i].split(':')[0]

                    uri = sys.argv[0] + '?mode=show&url=%s' % urllib.quote(links[i])
                    item = xbmcgui.ListItem("%s [COLOR=55FFFFFF](%s)[/COLOR]" % (title, durations[i]), iconImage=images[i])
                    item.setInfo(type='Video', infoLabels={'title': title, 'genre': durations[i], 'duration': duration})
                    xbmcplugin.addDirectoryItem(self.handle, uri, item, True)

                # TODO: Fix search pagination
                # http://www.videokub.com/search/2/?q=%D0%B1%D0%B0%D1%80%D0%B1%D0%BE%D1%81%D0%BA&search=%D0%9D%D0%B0%D0%B9%D1%82%D0%B8
                #uri = sys.argv[0] + '?mode=%s&url=%s' % ("show", url)
                #item = xbmcgui.ListItem(self.language(1004), iconImage=self.inext)
                #xbmcplugin.addDirectoryItem(self.handle, uri, item, True)

                xbmc.executebuiltin('Container.SetViewMode(52)')
                xbmcplugin.endOfDirectory(self.handle, True)

        else:
            self.menu()
コード例 #14
0
ファイル: default.py プロジェクト: enigma82/xbmc-plugins
    def search(self):
        import Translit as translit
        translit = translit.Translit(encoding='cp1251')

        kbd = xbmc.Keyboard()
        kbd.setDefault('')
        kbd.setHeading(self.language(5000))
        kbd.doModal()
        keyword = ''

        if kbd.isConfirmed():
            keyword = kbd.getText()

            if self.addon.getSetting('translit') == 'true':
                print "*** Translit enabled keyword: %s" % keyword
                keyword = translit.rus(kbd.getText())
                print "*** Transliteration: %s" % keyword.decode(
                    'cp1251').encode('utf-8')

        url = "http://film.psihov.net.ua/?action=search&searchstring=%s&name=on&originalname=on&page=0" % keyword
        self.getMovieList(url)
コード例 #15
0
ファイル: default.py プロジェクト: faisalz2015/xbmc-gotham
    def getUserInput(self):
        kbd = xbmc.Keyboard()
        kbd.setDefault('')
        kbd.setHeading(self.language(4000))
        kbd.doModal()
        keyword = None

        if kbd.isConfirmed():
            if self.addon.getSetting('translit') == 'true':
                keyword = translit.rus(kbd.getText())
            else:
                keyword = kbd.getText()
        return keyword
コード例 #16
0
    def getUserInput(self):
        kbd = xbmc.Keyboard()
        kbd.setDefault('')
        kbd.setHeading(self.language(1000))
        kbd.doModal()
        keyword = None

        if kbd.isConfirmed():
            if self.addon.getSetting('translit') == 'true':
                keyword = translit.rus(kbd.getText())
            else:
                keyword = kbd.getText()
        return keyword
コード例 #17
0
ファイル: default.py プロジェクト: Sitronik/xbmc-plugins
    def search(self, keyword, unified):
        keyword = translit.rus(keyword) if unified else self.getUserInput()
        unified_search_results = []

        if keyword:
            search_url = "http://kinosolo.ru/load/"

            # Advanced search: titles only
            values = {
                "a":  2,
                "do.x":  0,
                "do.y" :  0,
                "query": keyword,
            }

            # Send request to server
            request = urllib2.Request(search_url, urllib.urlencode(values))
            response = urllib2.urlopen(request)

            movie = common.parseDOM(response.read(), "div", attrs={"class": "post"})

            movie_header = common.parseDOM(movie, "div", attrs={"class": "post-title"})
            movie_body = common.parseDOM(movie, "div", attrs={"class": "post-story"})
            movie_footer = common.parseDOM(movie, "div", attrs={"class": "post-data"})

            titles = common.parseDOM(movie_header, "a")
            links = common.parseDOM(movie_header, "a", ret="href")
            images = common.parseDOM(movie_body, "img", ret="src")

            if unified:
                self.log("Perform unified search and return results")

                for i, title in enumerate(titles):
                    title = title.replace(self.language(5002), '')
                    unified_search_results.append({'title':  title, 'url': links[i], 'image': images[i], 'plugin': self.id})

                UnifiedSearch().collect(unified_search_results)

            else:
                for i, title in enumerate(titles):
                    title = title.replace(self.language(5002), '')

                    uri = sys.argv[0] + '?mode=show&url=%s' % links[i]
                    item = xbmcgui.ListItem(title, thumbnailImage=images[i])
                    xbmcplugin.addDirectoryItem(self.handle, uri, item, True)

                xbmc.executebuiltin('Container.SetViewMode(50)')
                xbmcplugin.endOfDirectory(self.handle, True)

        else:
            self.menu()
コード例 #18
0
ファイル: default.py プロジェクト: Sitronik/xbmc-plugins
    def search(self, keyword, unified):
        print "*** Search: unified %s" % unified

        keyword = translit.rus(keyword) if unified else self.getUserInput()
        unified_search_results = []

        if keyword:
            keyword = self.encode(keyword)

            print keyword

            url = 'http://www.videokub.com/search/?q=%s' % (keyword)

            response = urllib2.urlopen(url)

            content = common.parseDOM(response.read(), "div", attrs={"class": "list_videos"})
            videos = common.parseDOM(content, "div", attrs={"class": "short"})

            links = common.parseDOM(videos, "a", attrs={"class": "kt_imgrc"}, ret='href')
            titles = common.parseDOM(videos, "a", attrs={"class": "kt_imgrc"}, ret='title')
            images = common.parseDOM(videos, "img", attrs={"class": "thumb"}, ret='src')

            durations = common.parseDOM(videos, "span", attrs={"class": "time"})

            if unified:
                print "Perform unified search and return results"

                for i, title in enumerate(titles):
                    title = self.encode(title)
                    unified_search_results.append({'title':  title, 'url': links[i], 'image': self.url + images[i], 'plugin': self.id})

                UnifiedSearch().collect(unified_search_results)

            else:
                for i, title in enumerate(titles):
                    duration = durations[i].split(':')[0]

                    link = '88.150.243.226/vod/Skhvatka.1995.mp4/playlist.m3u8?token=3c076648ea987c21cf58a970f47fa4a5'

                    uri = sys.argv[0] + '?mode=show&url=%s' % urllib.quote(links[i])
                    item = xbmcgui.ListItem("%s [COLOR=55FFFFFF](%s)[/COLOR]" % (title, durations[i]), iconImage=images[i])
                    item.setInfo(type='Video', infoLabels={'title': title, 'genre': durations[i], 'duration': duration})
                    xbmcplugin.addDirectoryItem(self.handle, uri, item, True)

                xbmc.executebuiltin('Container.SetViewMode(52)')
                xbmcplugin.endOfDirectory(self.handle, True)

        else:
            self.menu()
コード例 #19
0
ファイル: default.py プロジェクト: arayyani/xbmc-plugins
    def search(self):
        kbd = xbmc.Keyboard()
        kbd.setDefault('')
        kbd.setHeading(self.language(2000))
        kbd.doModal()
        keyword = ''

        if kbd.isConfirmed():
            if self.addon.getSetting('translit') == 'true':
                keyword = translit.rus(kbd.getText())
            else:
                keyword = kbd.getText()

            serach_url = "%s?s=%s" % (self.url, urllib.quote(keyword))
            self.getCategoryItems(serach_url, 1)
        else:
            self.menu()
コード例 #20
0
ファイル: default.py プロジェクト: enigma82/xbmc-plugins
    def previous_results(self):
        self.log("Show search result")
        search_results = self.search_db.all()
        
        if search_results:
            for i, result in enumerate(search_results):
                uri = '%s?mode=show&search_id=%d' % (self.xpath, result['id'])
                item = xbmcgui.ListItem("%02d. %s [%d]" % (result['id'], translit.rus(result['keyword']), result['counter']), thumbnailImage=self.icon)
                xbmcplugin.addDirectoryItem(self.handle, uri, item, True)

        else:
            item = xbmcgui.ListItem("[COLOR=FFFF4000]%s[/COLOR]" % self.language(2001))
            item.setProperty('IsPlayable', 'false')
            xbmcplugin.addDirectoryItem(self.handle, '', item, False)

        xbmc.executebuiltin('Container.SetViewMode(50)')
        xbmcplugin.endOfDirectory(self.handle, True)
コード例 #21
0
    def search(self):
        kbd = xbmc.Keyboard()
        kbd.setDefault('')
        kbd.setHeading(self.language(2000))
        kbd.doModal()
        keyword = ''

        if kbd.isConfirmed():
            if self.addon.getSetting('translit') == 'true':
                keyword = translit.rus(kbd.getText())
            else:
                keyword = kbd.getText()

            serach_url = "%s?s=%s" % (self.url, urllib.quote(keyword))
            self.getCategoryItems(serach_url, 1)
        else:
            self.menu()
コード例 #22
0
ファイル: default.py プロジェクト: enigma82/xbmc-plugins
    def search(self, keyword):
        keyword = self.get_user_input()

        if keyword:
            self.log("Call other add-ons and pass keyword: %s" % keyword)

            # INFO: Generate new search id and save it
            self.search_id = self.search_db.new(keyword)
            keyword = translit.eng(keyword) if self.isCyrillic(keyword) else keyword

            for i, plugin in enumerate(self.supported_addons):
                script = "special://home/addons/%s/default.py" % plugin
                xbmc.executebuiltin("XBMC.RunScript(%s, %d, mode=search&keyword=%s&unified=True)" % (script, self.handle, keyword), False)

            # INFO: None means show please wait ...
            # self.show(None)

            # print len(self.supported_addons)
            self.notify(self.language(1000).encode('utf-8'), self.language(2000).encode('utf-8'))            
コード例 #23
0
ファイル: default.py プロジェクト: Sitronik/xbmc-plugins
    def previous_results(self):
        self.log("Show search result")
        search_results = self.search_db.all()

        if search_results:
            for i, result in enumerate(search_results):
                uri = "%s?mode=show&search_id=%d" % (self.xpath, result["id"])
                item = xbmcgui.ListItem(
                    "%02d. %s [%d]" % (result["id"], translit.rus(result["keyword"]), result["counter"]),
                    thumbnailImage=self.icon,
                )
                xbmcplugin.addDirectoryItem(self.handle, uri, item, True)

        else:
            item = xbmcgui.ListItem("[COLOR=FFFF4000]%s[/COLOR]" % self.language(2001))
            item.setProperty("IsPlayable", "false")
            xbmcplugin.addDirectoryItem(self.handle, "", item, False)

        xbmc.executebuiltin("Container.SetViewMode(50)")
        xbmcplugin.endOfDirectory(self.handle, True)
コード例 #24
0
ファイル: default.py プロジェクト: Sitronik/xbmc-plugins
    def search(self):
        import Translit as translit
        translit = translit.Translit(encoding='cp1251')

        kbd = xbmc.Keyboard()
        kbd.setDefault('')
        kbd.setHeading(self.language(5000))
        kbd.doModal()
        keyword=''

        if kbd.isConfirmed():
          keyword = kbd.getText()

          if self.addon.getSetting('translit') == 'true':
            print "*** Translit enabled keyword: %s"%keyword
            keyword = translit.rus(kbd.getText())
            print "*** Transliteration: %s"%keyword.decode('cp1251').encode('utf-8')


        url = "http://film.psihov.net.ua/?action=search&searchstring=%s&name=on&originalname=on&page=0"%keyword
        self.getMovieList(url)
コード例 #25
0
ファイル: default.py プロジェクト: serbra/ru
def Search(params):
	mode = params['mode'] if 'mode' in params else None
	kbd = xbmc.Keyboard()
	if mode == 'clips': kbd.setHeading("Поиск по клипам")
	else: kbd.setHeading("Поиск")
	kbd.doModal()
	uri = {}
	if kbd.isConfirmed():
		query = kbd.getText()
		if use_translit:
			try:
				query = translit.rus(query)
				print 'detransified search query: ' + query
			except: pass
		query = urllib.quote_plus(query)
	else: return True
	if mode == 'clips': uri['url'] = '/load/'
	else: uri['url'] = '/board'
	uri['post'] = 'query=%s&a=2' % query
	uri['mode'] = 'search'
	ListCat(uri)
コード例 #26
0
ファイル: default.py プロジェクト: Sitronik/xbmc-plugins
    def search(self, keyword):
        keyword = self.get_user_input()

        if keyword:
            self.log("Call other add-ons and pass keyword: %s" % keyword)

            # INFO: Generate new search id and save it
            self.search_id = self.search_db.new(keyword)
            keyword = translit.eng(keyword) if self.isCyrillic(keyword) else keyword

            for i, plugin in enumerate(self.supported_addons):
                script = "special://home/addons/%s/default.py" % plugin
                xbmc.executebuiltin(
                    "XBMC.RunScript(%s, %d, mode=search&keyword=%s&unified=True)" % (script, self.handle, keyword),
                    False,
                )

            # INFO: None means show please wait ...
            # self.show(None)

            # print len(self.supported_addons)
            self.notify(self.language(1000).encode("utf-8"), self.language(2000).encode("utf-8"))
コード例 #27
0
    def search(self, keyword):
        external = False
        if keyword:
            external = True
            keyword = urllib.unquote_plus(keyword)
        else: 
            keyword = self.get_user_input()

        if keyword:
            self.log("Call other add-ons and pass keyword: %s" % keyword)

            # INFO: Generate new search id and save it
            self.search_id = self.search_db.new(keyword)
            keyword = translit.eng(keyword) if self.isCyrillic(keyword) else keyword

            for i, plugin in enumerate(self.supported_addons):
                script = "special://home/addons/%s/default.py" % plugin
                xbmc.executebuiltin("XBMC.RunScript(%s, %d, mode=search&keyword=%s&unified=True)" % (script, self.handle, keyword), True)

            self.notify(self.language(1000).encode('utf-8'), self.language(2000).encode('utf-8'))

            checkEnd = False
            timeout_ = 0
            while (checkEnd == False):
                xbmc.sleep(CHECK_PERIOD) 
                timeout_ += CHECK_PERIOD
                try: 
                    counter = self.search_db.get_counter(self.search_id)
                except: 
                    pass
                if (counter and (len(self.supported_addons) == counter)) or (timeout_ > self.timeout*1000):
                    self.log("ALL DONE => %s of %d done" % (counter, len(self.supported_addons)))
                    checkEnd = True;

            self.notify("Search", "Done")
            self.show(self.search_id, external)
コード例 #28
0
ファイル: default.py プロジェクト: mrstealth/xbmc-gotham
    def getUserInput(self):
        kbd = xbmc.Keyboard()
        kbd.setDefault('')
        kbd.setHeading(self.language(4000))
        kbd.doModal()
        keyword = None

        if kbd.isConfirmed():
            if self.addon.getSetting('translit') == 'true':
                keyword = translit.rus(kbd.getText())
            else:
                keyword = kbd.getText()
        return keyword

    # def search(self, keyword, unified):
        self.log("*** Search: unified %s" % unified)

        keyword = translit.rus(keyword) if unified else self.getUserInput()
        unified_search_results = []

        if keyword:
            url = 'http://go.mail.ru/search_site?fr=main&p=1&aux=Abd67k&q=%s&x=0&y=0' % keyword
            request = urllib2.Request(url)
            request.add_header('Host', 'go.mail.ru')
            request.add_header('Referer', 'http://www.online-life.cc/')
            request.add_header('User-Agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:35.0) Gecko/20100101 Firefox/35.0')

            response = urllib2.urlopen(request).read()

            container = common.parseDOM(response, "ul", attrs={"class": "result js-result"})
            posts = common.parseDOM(container, "li", attrs={"class": "result__li js-kb-wrap"})
            results = common.parseDOM(posts, "div", attrs={"class": "result__img"})
            titles = common.parseDOM(posts, "a", attrs={"class": "light-link"})
            links = common.parseDOM(results, "a", ret="href")
            images = common.parseDOM(results, "img", ret="src")

            if unified:
                self.log("Perform unified search and return results")

                for i, title in enumerate(titles):
                    title = titles[i].encode('utf-8')
                    link = links[i]
                    image = images[i]

                    unified_search_results.append({'title':  title, 'url': link, 'image': image, 'plugin': self.id})

                UnifiedSearch().collect(unified_search_results)

            else:
                if results:
                    for i, title in enumerate(titles):
                        title = titles[i].encode('utf-8')
                        link = links[i]
                        image = images[i]

                        uri = sys.argv[0] + '?mode=show&url=%s' % link
                        item = xbmcgui.ListItem(title, thumbnailImage=image)

                        self.favorites.addContextMenuItem(item, {
                            'title': title,
                            'url': link,
                            'image': image,
                            'playable': False,
                            'action': 'add',
                            'plugin': self.id
                        })

                        xbmcplugin.addDirectoryItem(self.handle, uri, item, True)

                    xbmc.executebuiltin('Container.SetViewMode(52)')
                else:
                    item = xbmcgui.ListItem(self.language(2001), iconImage=self.icon, thumbnailImage=self.icon)
                    xbmcplugin.addDirectoryItem(self.handle, '', item, True)

                xbmcplugin.endOfDirectory(self.handle, True)
        else:
            self.menu()
コード例 #29
0
ファイル: default.py プロジェクト: roof2812/kodi
    def search(self, keyword, external):
        keyword = keyword if (external != None) else self.getUserInput()
        keyword = translit.rus(keyword) if (
            external == 'unified') else urllib.unquote_plus(keyword)
        unified_search_results = []

        if keyword:
            url = self.url + '/index.php?do=search'

            # Advanced search: titles only
            values = {
                "beforeafter": "after",
                "catlist[]": 0,
                "do": "search",
                "full_search": 0,
                "replyless": 0,
                "replylimit": 0,
                "resorder": "desc",
                "result_from": 1,
                "search_start": 1,
                "searchdate": 0,
                "searchuser": "",
                "showposts": 0,
                "sortby": "date",
                "story": self.decode(keyword),
                "subaction": "search",
                "titleonly": 0
            }

            headers = {
                "Host":
                self.domain,
                "Origin":
                self.domain,
                "Referer":
                self.url + '/',
                "User-Agent":
                "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:35.0) Gecko/20100101 Firefox/35.0"
            }

            # Send request to server
            request = urllib2.Request(url, urllib.urlencode(values), headers)
            response = urllib2.urlopen(request).read()

            content = common.parseDOM(response,
                                      "div",
                                      attrs={"id": "container"})
            items = common.parseDOM(content, "div", attrs={"class": "item"})

            link_container = common.parseDOM(
                items, "div", attrs={"class": "main-sliders-title"})
            titles = common.parseDOM(link_container, "a")
            links = common.parseDOM(link_container, "a", ret="href")
            images = common.parseDOM(items, "img", ret="src")

            descs = common.parseDOM(items, "i")

            if (external == 'unified'):
                self.log("Perform unified search and return results")

                for i, title in enumerate(titles):
                    image = images[i] if 'http' in images[
                        i] else self.url + images[i]
                    unified_search_results.append({
                        'title':
                        self.encode(self.strip(title)),
                        'url':
                        links[i],
                        'image':
                        image,
                        'plugin':
                        self.id
                    })

                UnifiedSearch().collect(unified_search_results)

            else:
                for i, title in enumerate(titles):
                    uri = sys.argv[0] + '?mode=show&url=%s' % links[i]
                    image = images[i] if 'http' in images[
                        i] else self.url + images[i]
                    item = xbmcgui.ListItem(self.encode(self.strip(title)),
                                            thumbnailImage=image)
                    xbmcplugin.addDirectoryItem(self.handle, uri, item, True)

                xbmcplugin.setContent(self.handle, 'movies')
                xbmcplugin.endOfDirectory(self.handle, True)
        else:
            self.menu()
コード例 #30
0
 def USTranslit(self, keyword, transpar):
     return translit.rus(keyword) if (transpar == None) or (transpar == "true") else keyword
コード例 #31
0
# -*- coding: utf-8 -*-

import os
import urllib
import urllib2
import sys
import xbmc
import xbmcplugin
import xbmcgui
import xbmcaddon
import re
import XbmcHelpers
common = XbmcHelpers

import Translit as translit
translit = translit.Translit(encoding='cp1251')

from youtube import YouTubeParser

class TeremokTv():
    def __init__(self):
        self.id = 'plugin.video.teremok.tv'
        self.addon = xbmcaddon.Addon(self.id)
        self.icon = self.addon.getAddonInfo('icon')
        self.path = self.addon.getAddonInfo('path')
        self.profile = self.addon.getAddonInfo('profile')

        self.language = self.addon.getLocalizedString
        self.handle = int(sys.argv[1])
        self.url = 'http://teremok.tv/'
コード例 #32
0
ファイル: default.py プロジェクト: Sitronik/xbmc-plugins
    def search(self, keyword, unified):
        keyword = translit.rus(keyword) if unified else self.getUserInput()
        unified_search_results = []

        if keyword:
            self.log("You are looking for: %s" % keyword.decode('cp1251').encode('utf-8'))

            # Simple search
            # values = {
            #     "do":           "search",
            #     "story":        keyword,
            #     "subaction":    "search",
            #     "x":            0,
            #     "y":            0
            # }

            # headers = {
            #     "Host" : "filmodrom.net",
            #     "Referer" : 'http://filmodrom.net/index.php',
            #     "User-Agent" : "Mozilla/5.0 (X11; Linux x86_64; rv:27.0) Gecko/20100101 Firefox/27.0"
            # }

            # request = urllib2.Request(url, urllib.urlencode(values), headers)
            # response = urllib2.urlopen(request)

            # Advanced search: titles only
            url = 'http://filmodrom.net/index.php?do=search'

            headers = {
                "Host" : "filmodrom.net",
                "Referer" : 'http://filmodrom.net/index.php',
                "User-Agent" : "Mozilla/5.0 (X11; Linux x86_64; rv:27.0) Gecko/20100101 Firefox/27.0"
            }

            values = {
                "beforeafter":      "after",
                "catlist[]":        "0",
                "do":               "search",
                "full_search":      "1",
                "replyless":        "0",
                "replylimit":       "0",
                "resorder":         "desc",
                "result_from":      "1",
                "result_num":       "20",
                "search_start":     "1",
                "searchdate":       "0",
                "searchuser":       "",
                "showposts":        "0",
                "sortby":           "date",
                "story":            keyword,
                "subaction":        "search",
                "titleonly":        3
            }

            request = urllib2.Request(url, urllib.urlencode(values), headers)
            # request = urllib2.Request(url, urllib.urlencode(values))
            response = urllib2.urlopen(request)

            content = common.parseDOM(response.read(), "div", attrs={"id": "dle-content"})
            table = common.parseDOM(content, "table")

            header = common.parseDOM(table, "strong")
            links = common.parseDOM(header, "a", ret="href")
            titles = common.parseDOM(header, "a")

            if titles:
                if unified:
                    self.log("Perform unified search and return results")

                    for i, title in enumerate(titles):
                        unified_search_results.append({'title': self.encode(title), 'url': links[i], 'image': None, 'plugin': self.id})
                else:
                    for i, title in enumerate(titles):
                        uri = sys.argv[0] + '?mode=show&url=%s' % links[i]
                        item = xbmcgui.ListItem(self.encode(title), iconImage=self.icon, thumbnailImage=self.icon)
                        xbmcplugin.addDirectoryItem(self.handle, uri, item, True)
            else:
                item = xbmcgui.ListItem(self.language(2001).encode('utf-8'), iconImage=self.icon, thumbnailImage=self.icon)
                xbmcplugin.addDirectoryItem(self.handle, '', item, True)

            UnifiedSearch().collect(unified_search_results)

        else:
            self.menu()

        xbmc.executebuiltin('Container.SetViewMode(52)')
        xbmcplugin.endOfDirectory(self.handle, True)
コード例 #33
0
ファイル: default.py プロジェクト: roof2812/kodi
    def search(self, keyword, external):
        keyword = keyword if (external != None) else self.getUserInput()
        keyword = translit.rus(keyword) if (external == 'unified') else urllib.unquote_plus(keyword)

        unified_search_results = []

        if keyword:
            url =  self.url + '/index.php?do=search'

            # Advanced search: titles only
            values = {
                "beforeafter": "after",
                "catlist[]": 0,
                "do": "search",
                "full_search": "1",
                "replyless": "0",
                "replylimit": "0",
                "resorder": "desc",
                "result_from": "1",
                "result_num": "50",
                "search_start": "1",
                "searchdate": "0",
                "searchuser": "",
                "showposts": "0",
                "sortby": "date",
                "story": self.decode(keyword),
                "subaction": "search",
                "titleonly": "3"
            }

            headers = {
                "Referer" : self.url + '/index.php?do=search',
                "User-Agent" : "Mozilla/5.0 (X11; Linux x86_64; rv:25.0) Gecko/20100101 Firefox/25.0"
            }

            data = urllib.urlencode(values)
            request = urllib2.Request(url, data, headers)
            response = urllib2.urlopen(request)

            containers = common.parseDOM(response.read(), "div", attrs={"class": "search_item clearfix"})
            search_item_prev = common.parseDOM(containers, "div", attrs={"class": "search_item_prev"})
            search_item_inner = common.parseDOM(containers, "div", attrs={"class": "search_item_inner"})

            descriptions = common.parseDOM(search_item_inner, "div")

            header = common.parseDOM(search_item_inner, "h3")
            gcont = common.parseDOM(search_item_inner, "span")

            titles = common.parseDOM(header, "a")
            links = common.parseDOM(header, "a", ret="href")
            images = common.parseDOM(search_item_prev, "img", ret="src")

            if (external == 'unified'):
                self.log("Perform unified search and return results")
                for i, title in enumerate(titles):
                    image = self.url + images[i]
                    unified_search_results.append({'title': self.encode(title), 'url': links[i], 'image': image, 'plugin': self.id})

                UnifiedSearch().collect(unified_search_results)

            else:
                for i, title in enumerate(titles):
                    image = self.url + images[i]
                    print image
                    genres = self.encode(', '.join(common.parseDOM(gcont[i], "a")))
                    desc = self.encode(common.stripTags(descriptions[i]))
                    uri = sys.argv[0] + '?mode=show&url=%s' % links[i]
                    item = xbmcgui.ListItem(self.encode(title), iconImage=self.icon, thumbnailImage=image)
                    item.setInfo(type='Video', infoLabels={'title': self.encode(title), 'genre': genres, 'plot': desc})

                    xbmcplugin.addDirectoryItem(self.handle, uri, item, True)

                xbmcplugin.setContent(self.handle, 'movies')
                xbmcplugin.endOfDirectory(self.handle, True)

        else:
            self.menu()
コード例 #34
0
ファイル: default.py プロジェクト: 19pvv52/seppius-xbmc-repo
def gettranslit(msg):
    if use_translit == 'true': 
        try: return translit.rus(msg)
        except: return msg
    else: return msg
コード例 #35
0
def USTranslit(keyword, external, transpar):
    if external == 'usearch':
        return urllib.unquote_plus(keyword)
    else:
        return translit.rus(keyword) if ((transpar == None) or
                                         (transpar == "true")) else keyword
コード例 #36
0
ファイル: default.py プロジェクト: enigma82/xbmc-plugins
    def search(self, keyword, unified):
        print "*** Search: unified %s" % unified

        keyword = translit.rus(keyword) if unified else self.getUserInput()
        unified_search_results = []

        if keyword:
            keyword = self.encode(keyword)

            url = 'http://www.videokub.me/search/?q=%s' % (keyword)
            response = urllib2.urlopen(url)
            content = common.parseDOM(response.read(),
                                      "div",
                                      attrs={"class": "list_videos"})
            videos = common.parseDOM(content, "div", attrs={"class": "short"})

            links = common.parseDOM(videos,
                                    "a",
                                    attrs={"class": "kt_imgrc"},
                                    ret='href')
            titles = common.parseDOM(videos,
                                     "a",
                                     attrs={"class": "kt_imgrc"},
                                     ret='title')
            images = common.parseDOM(videos,
                                     "img",
                                     attrs={"class": "thumb"},
                                     ret='src')

            durations = common.parseDOM(videos,
                                        "span",
                                        attrs={"class": "time"})

            if unified:
                print "Perform unified search and return results"

                for i, title in enumerate(titles):
                    title = self.encode(title)
                    unified_search_results.append({
                        'title': title,
                        'url': links[i],
                        'image': self.url + images[i],
                        'plugin': self.id
                    })

                UnifiedSearch().collect(unified_search_results)

            else:
                for i, title in enumerate(titles):
                    duration = durations[i].split(':')[0]

                    uri = sys.argv[0] + '?mode=show&url=%s' % urllib.quote(
                        links[i])
                    item = xbmcgui.ListItem("%s [COLOR=55FFFFFF](%s)[/COLOR]" %
                                            (title, durations[i]),
                                            iconImage=images[i])
                    item.setInfo(type='Video',
                                 infoLabels={
                                     'title': title,
                                     'genre': durations[i],
                                     'duration': duration
                                 })
                    xbmcplugin.addDirectoryItem(self.handle, uri, item, True)

                # TODO: Fix search pagination
                # http://www.videokub.me/search/2/?q=%D0%B1%D0%B0%D1%80%D0%B1%D0%BE%D1%81%D0%BA&search=%D0%9D%D0%B0%D0%B9%D1%82%D0%B8
                #uri = sys.argv[0] + '?mode=%s&url=%s' % ("show", url)
                #item = xbmcgui.ListItem(self.language(1004), iconImage=self.inext)
                #xbmcplugin.addDirectoryItem(self.handle, uri, item, True)

                xbmc.executebuiltin('Container.SetViewMode(52)')
                xbmcplugin.endOfDirectory(self.handle, True)

        else:
            self.menu()
コード例 #37
0
    def search(self, keyword, unified):
        self.log("*** Search: unified %s" % unified)

        keyword = translit.rus(keyword) if unified else self.getUserInput()
        unified_search_results = []

        if keyword:
            url = 'http://go.mail.ru/search_site?fr=main&p=1&aux=Abd67k&q=%s&x=0&y=0' % keyword
            request = urllib2.Request(url)
            request.add_header('Host', 'go.mail.ru')
            request.add_header('Referer', 'http://www.online-life.me/')
            request.add_header(
                'User-Agent',
                'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:35.0) Gecko/20100101 Firefox/35.0'
            )

            response = urllib2.urlopen(request).read()

            container = common.parseDOM(response,
                                        "ul",
                                        attrs={"class": "result js-result"})
            posts = common.parseDOM(container,
                                    "li",
                                    attrs={"class": "result__li js-kb-wrap"})
            results = common.parseDOM(posts,
                                      "div",
                                      attrs={"class": "result__img"})
            titles = common.parseDOM(posts, "a", attrs={"class": "light-link"})
            links = common.parseDOM(results, "a", ret="href")
            images = common.parseDOM(results, "img", ret="src")

            if unified:
                self.log("Perform unified search and return results")

                for i, title in enumerate(titles):
                    title = titles[i].encode('utf-8')
                    link = links[i]
                    image = images[i]

                    unified_search_results.append({
                        'title': title,
                        'url': link,
                        'image': image,
                        'plugin': self.id
                    })

                UnifiedSearch().collect(unified_search_results)

            else:
                if results:
                    for i, title in enumerate(titles):
                        title = titles[i].encode('utf-8')
                        link = links[i]
                        image = images[i]

                        uri = sys.argv[0] + '?mode=show&url=%s' % link
                        item = xbmcgui.ListItem(title, thumbnailImage=image)

                        self.favorites.addContextMenuItem(
                            item, {
                                'title': title,
                                'url': link,
                                'image': image,
                                'playable': False,
                                'action': 'add',
                                'plugin': self.id
                            })

                        xbmcplugin.addDirectoryItem(self.handle, uri, item,
                                                    True)

                    xbmc.executebuiltin('Container.SetViewMode(52)')
                else:
                    item = xbmcgui.ListItem(self.language(2001),
                                            iconImage=self.icon,
                                            thumbnailImage=self.icon)
                    xbmcplugin.addDirectoryItem(self.handle, '', item, True)

                xbmcplugin.endOfDirectory(self.handle, True)
        else:
            self.menu()
コード例 #38
0
ファイル: default.py プロジェクト: 19pvv52/seppius-xbmc-repo
def gettranslit(msg):
    if use_translit == 'true': 
        return translit.rus(msg)
    else: return msg
コード例 #39
0
ファイル: default.py プロジェクト: enigma82/xbmc-plugins
    def search(self):
        kbd = xbmc.Keyboard()
        kbd.setDefault('')
        kbd.setHeading(self.language(2000))
        kbd.doModal()
        keyword = ''

        if kbd.isConfirmed():
            if self.addon.getSetting('translit') == 'true':
                keyword = translit.rus(kbd.getText())
            else:
                keyword = kbd.getText()

            print keyword.decode('cp1251').encode('utf-8')
            url = 'http://showday.tv/index.php?do=search'

            # Advanced search: titles only
            values = {
                "beforeafter": "after",
                "catlist[]": "0",
                "do": "search",
                "full_search": "1",
                "replyless": "0",
                "replylimit": "0",
                "resorder": "desc",
                "result_from": "1",
                "search_start": "1",
                "searchdate": "0",
                "searchuser": "",
                "showposts": "0",
                "sortby": "date",
                "story": keyword,
                "subaction": "search",
                "titleonly": "3"
            }

            data = urllib.urlencode(values)
            request = urllib2.Request(url, data)
            response = urllib2.urlopen(request).read()

            container = common.parseDOM(response,
                                        "div",
                                        attrs={"id": "dle-content"})
            blocks = common.parseDOM(container,
                                     "div",
                                     attrs={"class": "block"})[1:]

            if blocks:
                for i, block in enumerate(blocks):
                    text_container = common.parseDOM(block,
                                                     "div",
                                                     attrs={"class": "text"})
                    img_cotainer = common.parseDOM(block,
                                                   "div",
                                                   attrs={"class": "image"})

                    title = self.encode(
                        common.stripTags(
                            common.parseDOM(text_container, "a")[0]))
                    link = common.parseDOM(text_container, "a", ret="href")[0]
                    image = common.parseDOM(img_cotainer, "img", ret="src")[0]

                    uri = sys.argv[0] + '?mode=episode&url=%s' % link
                    item = xbmcgui.ListItem(title,
                                            thumbnailImage=self.url + image)
                    xbmcplugin.addDirectoryItem(self.handle, uri, item, True)
            else:
                item = xbmcgui.ListItem(self.language(2001),
                                        iconImage=self.icon,
                                        thumbnailImage=self.icon)
                xbmcplugin.addDirectoryItem(self.handle, '', item, True)
        else:
            self.menu()

        xbmc.executebuiltin('Container.SetViewMode(50)')
        xbmcplugin.endOfDirectory(self.handle, True)
コード例 #40
0
    def search(self, keyword, unified):
        print "*** Search: unified %s" % unified

        keyword = translit.rus(keyword) if unified else self.getUserInput()
        unified_search_results = []

        if keyword:
            keyword = self.encode(keyword)

            print keyword

            url = 'http://www.videokub.com/search/?q=%s' % (keyword)

            response = urllib2.urlopen(url)

            content = common.parseDOM(response.read(),
                                      "div",
                                      attrs={"class": "list_videos"})
            videos = common.parseDOM(content, "div", attrs={"class": "short"})

            links = common.parseDOM(videos,
                                    "a",
                                    attrs={"class": "kt_imgrc"},
                                    ret='href')
            titles = common.parseDOM(videos,
                                     "a",
                                     attrs={"class": "kt_imgrc"},
                                     ret='title')
            images = common.parseDOM(videos,
                                     "img",
                                     attrs={"class": "thumb"},
                                     ret='src')

            durations = common.parseDOM(videos,
                                        "span",
                                        attrs={"class": "time"})

            if unified:
                print "Perform unified search and return results"

                for i, title in enumerate(titles):
                    title = self.encode(title)
                    unified_search_results.append({
                        'title': title,
                        'url': links[i],
                        'image': self.url + images[i],
                        'plugin': self.id
                    })

                UnifiedSearch().collect(unified_search_results)

            else:
                for i, title in enumerate(titles):
                    duration = durations[i].split(':')[0]

                    link = '88.150.243.226/vod/Skhvatka.1995.mp4/playlist.m3u8?token=3c076648ea987c21cf58a970f47fa4a5'

                    uri = sys.argv[0] + '?mode=show&url=%s' % urllib.quote(
                        links[i])
                    item = xbmcgui.ListItem("%s [COLOR=55FFFFFF](%s)[/COLOR]" %
                                            (title, durations[i]),
                                            iconImage=images[i])
                    item.setInfo(type='Video',
                                 infoLabels={
                                     'title': title,
                                     'genre': durations[i],
                                     'duration': duration
                                 })
                    xbmcplugin.addDirectoryItem(self.handle, uri, item, True)

                xbmc.executebuiltin('Container.SetViewMode(52)')
                xbmcplugin.endOfDirectory(self.handle, True)

        else:
            self.menu()
コード例 #41
0
ファイル: default.py プロジェクト: Sitronik/xbmc-plugins
    def search(self):
        self.showErrorMessage("Search is not implemented")
        return ""

        kbd = xbmc.Keyboard()
        kbd.setDefault('')
        kbd.setHeading(self.language(4000))
        kbd.doModal()
        keyword = ''

        if kbd.isConfirmed():
            if self.addon.getSetting('translit') == 'true':
                keyword = translit.rus(kbd.getText())
            else:
                keyword = kbd.getText()

            print keyword.decode('cp1251').encode('utf-8')
            url = 'http://kinoprosmotr.net/index.php?do=search'

            # Advanced search: titles only
            values = {
                "do": "search",
                "full_search": 0,
                "result_from": 1,
                "result_num":  20,
                "search_start": 1,
                "story": keyword,
                "subaction": "search"
            }

            data = urllib.urlencode(values)
            request = urllib2.Request(url, data)
            response = urllib2.urlopen(request)

            containers = common.parseDOM(response.read(), "div", attrs={"class": "search_item clearfix"})
            search_item_prev = common.parseDOM(containers, "div", attrs={"class": "search_item_prev"})
            search_item_inner = common.parseDOM(containers, "div", attrs={"class": "search_item_inner"})

            descriptions = common.parseDOM(search_item_inner, "div")

            # containers = common.parseDOM(response.read(), "div", attrs={"class": "search_item clearfix"})
            header = common.parseDOM(search_item_inner, "h3")

            titles = common.parseDOM(header, "a")
            links = common.parseDOM(header, "a", ret="href")
            images = common.parseDOM(search_item_prev, "img", ret="src")

            gcont = common.parseDOM(search_item_inner, "span")
            # descs = common.parseDOM(containers, "a", attrs = { "class":"screenshot" }, ret="title")

            if titles:
                for i, title in enumerate(titles):
                    genres = self.encode(', '.join(common.parseDOM(gcont[i], "a")))
                    desc = self.encode(common.stripTags(descriptions[i]))
                    uri = sys.argv[0] + '?mode=film&url=%s' % links[i]
                    item = xbmcgui.ListItem(self.encode(title), iconImage=self.icon, thumbnailImage=images[i])
                    item.setInfo(type='Video', infoLabels={'title': self.encode(title), 'genre': genres, 'plot': desc})

                    xbmcplugin.addDirectoryItem(self.handle, uri, item, True)
            else:
                item = xbmcgui.ListItem(self.language(4001), iconImage=self.icon, thumbnailImage=self.icon)
                xbmcplugin.addDirectoryItem(self.handle, '', item, True)

        else:
            self.menu()

        xbmcplugin.endOfDirectory(self.handle, True)
コード例 #42
0
ファイル: default.py プロジェクト: alex19pov31/xbmc-gotham
    def search(self, keyword, unified):
        self.log("*** Search: unified %s" % unified)

        keyword = translit.rus(keyword) if unified else self.getUserInput()
        unified_search_results = []

        if keyword:
            url = 'http://fepcom.net/index.php?do=search'

            # Advanced search: titles only
            values = {
                "beforeafter":  "after",
                "catlist[]":    30,
                "do" :          "search",
                "full_search":  1,
                "replyless":    0,
                "replylimit":   0,
                "resorder":     "desc",
                "result_from":  1,
                "search_start": 1,
                "searchdate" :  0,
                "searchuser":   "",
                "showposts":    0,
                "sortby":       "date",
                "story" :       keyword,
                "subaction":    "search",
                "titleonly":    "3"
            }

            headers = {
                "Host" : "fepcom.net",
                "Referer" : 'http://fepcom.net/index.php?do=search',
                "User-Agent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:23.0) Gecko/20100101 Firefox/23.0"
            }

            # Send request to server
            request = urllib2.Request(url, urllib.urlencode(values), headers)
            response = urllib2.urlopen(request)
            content = response.read()

            posts = common.parseDOM(content, "div", attrs={"class": "post"})
            headers = common.parseDOM(content, "h2")

            titles = common.parseDOM(headers, "a")
            links = common.parseDOM(headers, "a",  ret="href")
            images = common.parseDOM(posts, "img",  ret="src")

            if unified:
                self.log("Perform unified search and return results")

                for i, title in enumerate(titles):
                    unified_search_results.append({'title':  self.encode(title), 'url': links[i], 'image': self.url + images[i], 'plugin': self.id})

                UnifiedSearch().collect(unified_search_results)

            else:
                for i, title in enumerate(titles):
                    uri = sys.argv[0] + '?mode=show&url=%s' % links[i]
                    item = xbmcgui.ListItem(self.encode(title), thumbnailImage=self.url + images[i])
                    xbmcplugin.addDirectoryItem(self.handle, uri, item, True)

                xbmc.executebuiltin('Container.SetViewMode(50)')
                xbmcplugin.endOfDirectory(self.handle, True)

        else:
            self.menu()
コード例 #43
0
ファイル: default.py プロジェクト: faisalz2015/xbmc-gotham
    def search(self, keyword, unified):
        keyword = translit.rus(keyword) if unified else self.getUserInput()
        unified_search_results = []

        if keyword:
            keyword = self.encode(keyword)

            url = 'http://uakino.net/search_result.php'

            headers = {
                "Accept":
                "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
                "Accept-Encoding":
                "gzip,deflate",
                "Accept-Language":
                "en-US,en;q=0.5",
                "Connection":
                "keep-alive",
                "Content-Type":
                "application/x-www-form-urlencoded",
                "Host":
                "	uakino.net",
                "Referer":
                url,
                "User-Agent":
                "Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Firefox/17.0"
            }

            values = {
                "search_id": keyword,
                "send": "%D0%9F%D0%BE%D0%B8%D1%81%D0%BA"
            }

            data = urllib.urlencode(values)
            req = urllib2.Request(url, data, headers)
            html = None

            try:
                response = urllib2.urlopen(req)
                html = response.read()
            except Exception:
                if unified:
                    UnifiedSearch().collect(unified_search_results)
                pass

            self.log(keyword)

            us_titles = []
            us_links = []
            us_images = []

            if html:
                media_line = common.parseDOM(html,
                                             "div",
                                             attrs={"class": "media_line"})

                titlesA = common.parseDOM(media_line, "a", ret="title")
                pathsA = common.parseDOM(media_line,
                                         "a",
                                         attrs={"class": "fleft thumb"},
                                         ret="href")

                titlesB = common.parseDOM(media_line,
                                          "a",
                                          attrs={"class": "heading"})
                pathsB = common.parseDOM(media_line,
                                         "a",
                                         attrs={"class": "heading"},
                                         ret="href")

                images = common.parseDOM(media_line, "img", ret="src")

                items_counter = 0

                # print "Found A: %d"%len(pathsA)
                # print "Found B: %d"%len(pathsB)
                # print "Found images %d"%len(images)

                if titlesA and titlesB:
                    print "*** This is a mix of seasons and movies"

                    for i, title in enumerate(titlesA):
                        items_counter += 1

                        link = "%s/%s" % (self.url, pathsA[i])
                        image = self.url + images[i] if not 'http' in images[
                            i] else images[i]

                        # INFO: Collect search results
                        us_titles.append(title)
                        us_links.append(link)
                        us_images.append(image)

                        uri = sys.argv[0] + '?mode=subcategory&url=%s' % link
                        item = xbmcgui.ListItem(title,
                                                thumbnailImage=image,
                                                iconImage=self.icon)
                        xbmcplugin.addDirectoryItem(self.handle, uri, item,
                                                    True)

                    for i, title in enumerate(titlesB):
                        items_counter += 1

                        link = "%s/%s" % (self.url, pathsB[i])
                        image = self.url + images[
                            len(pathsB) + i] if not 'http' in images[
                                len(pathsB) + i] else images[len(pathsB) + i]

                        # INFO: Collect search results
                        us_titles.append(title)
                        us_links.append(link)
                        us_images.append(image)

                        uri = sys.argv[0] + '?mode=movie&url=%s' % link
                        item = xbmcgui.ListItem(title,
                                                thumbnailImage=image,
                                                iconImage=self.icon)
                        item.setProperty('IsPlayable', 'true')
                        xbmcplugin.addDirectoryItem(self.handle, uri, item,
                                                    False)

                elif titlesA:
                    print "*** This is a season"

                    for i, title in enumerate(titlesA):
                        items_counter += 1

                        link = "%s/%s" % (self.url, pathsA[i])
                        image = self.url + images[i] if not 'http' in images[
                            i] else images[i]

                        # INFO: Collect search results
                        us_titles.append(title)
                        us_links.append(link)
                        us_images.append(image)

                        uri = sys.argv[0] + '?mode=subcategory&url=%s' % link
                        item = xbmcgui.ListItem(title,
                                                thumbnailImage=image,
                                                iconImage=self.icon)
                        xbmcplugin.addDirectoryItem(self.handle, uri, item,
                                                    True)

                elif titlesB:
                    print "*** This is a movie"

                    ul = common.parseDOM(media_line, "ul")

                    for i, title in enumerate(titlesB):
                        genres = common.stripTags(
                            common.parseDOM(ul[i], "li")[0])

                        try:
                            description = common.stripTags(
                                common.parseDOM(ul[i], "li")[2])
                        except IndexError:
                            description = common.stripTags(
                                common.parseDOM(ul[i], "li")[1])

                        items_counter += 1

                        link = "%s/%s" % (self.url, pathsA[i])
                        image = self.url + images[i] if not 'http' in images[
                            i] else images[i]
                        info = {
                            'title': title,
                            'genre': genres,
                            'plot': description
                        }

                        # INFO: Collect search results
                        us_titles.append(title)
                        us_links.append(link)
                        us_images.append(image)

                        uri = sys.argv[0] + '?mode=movie&url=%s' % link
                        item = xbmcgui.ListItem(title,
                                                thumbnailImage=image,
                                                iconImage=self.icon)

                        item.setInfo(type='Video', infoLabels=info)
                        item.setProperty('IsPlayable', 'true')
                        xbmcplugin.addDirectoryItem(self.handle, uri, item,
                                                    False)
                else:
                    item = xbmcgui.ListItem(self.language(9001),
                                            thumbnailImage=self.icon)
                    xbmcplugin.addDirectoryItem(self.handle, "", item, False)
            else:
                self.showErrorMessage("%s: Request timeout" % self.id)

            # INFO: Convert and send unified search results
            if unified:
                self.log("Perform unified search and return results")
                for i, title in enumerate(us_titles):
                    unified_search_results.append({
                        'title': title,
                        'url': us_links[i],
                        'image': us_images[i],
                        'plugin': self.id,
                        'is_playable': True
                    })

                UnifiedSearch().collect(unified_search_results)
            else:
                xbmc.executebuiltin('Container.SetViewMode(50)')
                xbmcplugin.endOfDirectory(self.handle, True)

        else:
            self.menu()
コード例 #44
0
ファイル: default.py プロジェクト: alex19pov31/xbmc-gotham
    def search(self, keyword, unified):
        self.log("*** Search: unified %s" % unified)

        keyword = translit.rus(keyword) if unified else self.getUserInput()
        unified_search_results = []

        if keyword:
            url = 'http://www.online-life.ru/index.php?do=search'

            # Advanced search: titles only
            values = {
                "beforeafter": "after",
                "catlist[]": "0",
                "do": "search",
                "full_search": "1",
                "replyless": "0",
                "replylimit": "0",
                "resorder": "desc",
                "result_from":  "1",
                "search_start": "1",
                "searchdate": "0",
                "searchuser": "",
                "showposts": "0",
                "sortby": "date",
                "story": keyword,
                "subaction": "search",
                "titleonly": "3"
            }

            data = urllib.urlencode(values)
            request = urllib2.Request(url, data)
            response = urllib2.urlopen(request).read()

            container = common.parseDOM(response, "div", attrs={"id": "container"})
            posts = common.parseDOM(container, "div", attrs={"class": "custom-post"})

            if unified:
                self.log("Perform unified search and return results")

                for i, post in enumerate(posts):
                    poster = common.parseDOM(post, "div", attrs={"class": "custom-poster"})
                    title = self.encode(common.stripTags(common.parseDOM(post, "a")[0]))
                    link = common.parseDOM(post, "a", ret="href")[0]
                    image = common.parseDOM(post, "img", ret="src")[0]


                    unified_search_results.append({'title':  title, 'url': link, 'image': image, 'plugin': self.id})

                UnifiedSearch().collect(unified_search_results)

            else:
                if posts:
                    for i, post in enumerate(posts):
                        poster = common.parseDOM(post, "div", attrs={"class": "custom-poster"})
                        title = self.encode(common.stripTags(common.parseDOM(post, "a")[0]))
                        link = common.parseDOM(post, "a", ret="href")[0]
                        image = common.parseDOM(post, "img", ret="src")[0]

                        uri = sys.argv[0] + '?mode=show&url=%s' % link
                        item = xbmcgui.ListItem(title, thumbnailImage=image)

                        self.favorites.addContextMenuItem(item, {
                            'title': title,
                            'url': link,
                            'image': image,
                            'playable': False,
                            'action': 'add',
                            'plugin': self.id
                        })

                        xbmcplugin.addDirectoryItem(self.handle, uri, item, True)

                    xbmc.executebuiltin('Container.SetViewMode(52)')
                else:
                    item = xbmcgui.ListItem(self.language(2001), iconImage=self.icon, thumbnailImage=self.icon)
                    xbmcplugin.addDirectoryItem(self.handle, '', item, True)

                xbmcplugin.endOfDirectory(self.handle, True)
        else:
            self.menu()
コード例 #45
0
ファイル: default.py プロジェクト: RuslanSergeevich/kodi
    def search(self, keyword, external):
        print "*** Search"

        keyword = keyword if (external != None) else self.getUserInput()
        keyword = translit.rus(keyword) if (
            external == 'unified') else urllib.unquote_plus(keyword)
        unified_search_results = []

        if keyword:
            print keyword

            headers = {
                'Host':
                self.domain,
                'Referer':
                self.url,
                'Upgrade-Insecure-Requests':
                '1',
                'User-Agent':
                'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'
            }

            values = {
                "do": "search",
                "subaction": "search",
                "q": unicode(keyword)
            }

            form = urllib.urlencode(values)
            encoded_kwargs = urllib.urlencode(values.items())
            argStr = "/?%s" % (encoded_kwargs)
            request = urllib2.Request(self.url + argStr, "", headers)
            request.get_method = lambda: 'GET'
            response = urllib2.urlopen(request).read()

            content = common.parseDOM(
                response, "div", attrs={"class": "b-content__inline_items"})
            videos = common.parseDOM(content,
                                     "div",
                                     attrs={"class": "b-content__inline_item"})

            for i, videoitem in enumerate(videos):
                link = common.parseDOM(videoitem, "a", ret='href')[0]
                title = common.parseDOM(videoitem, "a")[1]

                image = common.parseDOM(videoitem, "img", ret='src')[0]
                descriptiondiv = common.parseDOM(
                    videoitem,
                    "div",
                    attrs={"class": "b-content__inline_item-link"})[0]
                description = common.parseDOM(descriptiondiv, "div")[0]

                if (external == 'unified'):
                    print "Perform unified search and return results"
                    unified_search_results.append({
                        'title': title,
                        'url': link,
                        'image': image,
                        'plugin': self.id
                    })
                else:
                    uri = sys.argv[0] + '?mode=show&url=%s' % urllib.quote(
                        link)
                    item = xbmcgui.ListItem("%s [COLOR=55FFFFFF][%s][/COLOR]" %
                                            (title, description),
                                            iconImage=image,
                                            thumbnailImage=image)
                    item.setInfo(type='Video', infoLabels={'title': title})
                    if (self.quality != 'select') and (not (
                            '/series/' in link)) and (not ('/show/' in link)):
                        item.setProperty('IsPlayable', 'true')
                        xbmcplugin.addDirectoryItem(self.handle, uri, item,
                                                    False)
                    else:
                        xbmcplugin.addDirectoryItem(self.handle, uri, item,
                                                    True)

            if (external == 'unified'):
                UnifiedSearch().collect(unified_search_results)
            else:
                xbmcplugin.setContent(self.handle, 'movies')
                xbmcplugin.endOfDirectory(self.handle, True)
        else:
            self.menu()
コード例 #46
0
ファイル: default.py プロジェクト: serbra/ru
def gettranslit(msg):
    if use_translit == 'true':
        return translit.rus(msg)
    else:
        return msg
コード例 #47
0
import re

from urllib2 import Request, build_opener, HTTPCookieProcessor, HTTPHandler
import cookielib

import xbmc
import xbmcplugin
import xbmcgui
import xbmcaddon
import XbmcHelpers

common = XbmcHelpers

import Translit as translit

translit = translit.Translit()

try:
    sys.path.append(
        os.path.dirname(__file__) + '/../plugin.video.unified.search')
    from unified_search import UnifiedSearch
except:
    pass

import xml.etree.ElementTree

socket.setdefaulttimeout(120)

#const
SELECTED_GROUPS = (0, 2)
SELECTED_MAIN_TABS = (0, 1, 2, 3)
コード例 #48
0
    def search(self, keyword, unified):
        self.log("*** Search: unified %s" % unified)

        keyword = translit.rus(keyword) if unified else self.getUserInput()
        unified_search_results = []

        if keyword:
            url = 'http://fepcom.net/index.php?do=search'

            # Advanced search: titles only
            values = {
                "beforeafter": "after",
                "catlist[]": 30,
                "do": "search",
                "full_search": 1,
                "replyless": 0,
                "replylimit": 0,
                "resorder": "desc",
                "result_from": 1,
                "search_start": 1,
                "searchdate": 0,
                "searchuser": "",
                "showposts": 0,
                "sortby": "date",
                "story": keyword,
                "subaction": "search",
                "titleonly": "3"
            }

            headers = {
                "Host":
                "fepcom.net",
                "Referer":
                'http://fepcom.net/index.php?do=search',
                "User-Agent":
                "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:23.0) Gecko/20100101 Firefox/23.0"
            }

            # Send request to server
            request = urllib2.Request(url, urllib.urlencode(values), headers)
            response = urllib2.urlopen(request)
            content = response.read()

            posts = common.parseDOM(content, "div", attrs={"class": "post"})
            headers = common.parseDOM(content, "h2")

            titles = common.parseDOM(headers, "a")
            links = common.parseDOM(headers, "a", ret="href")
            images = common.parseDOM(posts, "img", ret="src")

            if unified:
                self.log("Perform unified search and return results")

                for i, title in enumerate(titles):
                    unified_search_results.append({
                        'title': self.encode(title),
                        'url': links[i],
                        'image': self.url + images[i],
                        'plugin': self.id
                    })

                UnifiedSearch().collect(unified_search_results)

            else:
                for i, title in enumerate(titles):
                    uri = sys.argv[0] + '?mode=show&url=%s' % links[i]
                    item = xbmcgui.ListItem(self.encode(title),
                                            thumbnailImage=self.url +
                                            images[i])
                    xbmcplugin.addDirectoryItem(self.handle, uri, item, True)

                xbmc.executebuiltin('Container.SetViewMode(50)')
                xbmcplugin.endOfDirectory(self.handle, True)

        else:
            self.menu()
コード例 #49
0
    def search(self, keyword, external, page=1):
        if page == 1:
            keyword = keyword if (
                external != None) or keyword else self.getUserInput()
            keyword = translit.rus(keyword) if (
                external == 'unified') else urllib.unquote_plus(keyword)
        else:
            keyword = urllib.unquote_plus(keyword)

        unified_search_results = []

        if keyword:
            url = "https://rutube.ru/api/search/video/"

            values = {
                "order_by": "rank",
                "duration": "",
                "created": "",
                "only_hd": "false",
                "no_adult": "false",
                "query": encode2(keyword),
                "page": str(page),
                "perPage": "10"
            }

            headers = {
                "Host": "rutube.ru",
                "Connection": "keep-alive",
                "User-Agent":
                "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
                "Accept": "application/json, text/javascript, */*; q=0.01",
                "X-Requested-With": "XMLHttpRequest",
                "X-Ally": "1",
                "X-CSRFToken": "4qb8a9ysuvpxudljpz3o6ngljciy8pl2",
                "Referer":
                "https://rutube.ru/search/?query=" + encode2(keyword),
                "Accept-Language": "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4",
            }

            form = urllib.urlencode(values)
            encoded_kwargs = urllib.urlencode(values.items())
            argStr = "?%s" % (encoded_kwargs)
            request = urllib2.Request(url + argStr, "", headers)
            request.get_method = lambda: 'GET'
            response = urllib2.urlopen(request)
            data = json.loads(response.read())

            for i, result in enumerate(data['results']):
                image = result['thumbnail_url']
                if (external == 'unified'):
                    unified_search_results.append({
                        'title':
                        result['title'],
                        'url':
                        'https://rutube.ru/video/%s/?ref=search' %
                        result['id'],
                        'image':
                        image,
                        'plugin':
                        self.id
                    })
                else:
                    uri = sys.argv[
                        0] + '?mode=play&url=https://rutube.ru/video/%s/?ref=search' % result[
                            'id']
                    item = xbmcgui.ListItem(result['title'],
                                            iconImage=image,
                                            thumbnailImage=image)
                    item.setProperty('IsPlayable', 'true')
                    item.setInfo(type='Video',
                                 infoLabels={'title': result['title']})
                    xbmcplugin.addDirectoryItem(self.handle, uri, item, False)

            if (external == None) and (data['has_next'] == True):
                uri = sys.argv[0] + '?mode=%s&keyword=%s&page=%s' % (
                    'search', keyword, str(page + 1))
                item = xbmcgui.ListItem('[COLOR=FFFFD700]' +
                                        self.language(2000) % (str(page + 1)) +
                                        '[/COLOR]',
                                        thumbnailImage=self.inext,
                                        iconImage=self.inext)
                item.setInfo(type='Video', infoLabels={'title': '<NEXT PAGE>'})
                xbmcplugin.addDirectoryItem(self.handle, uri, item, True)

            if (external == 'unified'):
                UnifiedSearch().collect(unified_search_results)
            else:
                xbmcplugin.setContent(self.handle, 'movies')
                xbmcplugin.endOfDirectory(self.handle, True)
コード例 #50
0
ファイル: default.py プロジェクト: Sitronik/xbmc-plugins
    def search(self, keyword, unified):
        keyword = translit.rus(keyword) if unified else self.getUserInput()
        unified_search_results = []

        if keyword:
            keyword = self.encode(keyword)

            url = 'http://uakino.net/search_result.php'

            headers = {
                "Accept" : "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
                "Accept-Encoding": "gzip,deflate",
                "Accept-Language" : "en-US,en;q=0.5",
                "Connection" : "keep-alive",
                "Content-Type" : "application/x-www-form-urlencoded",
                "Host" : "	uakino.net",
                "Referer" : url,
                "User-Agent" : "Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Firefox/17.0"
            }

            values = {
                "search_id" : keyword,
                "send" : "%D0%9F%D0%BE%D0%B8%D1%81%D0%BA"
            }

            data = urllib.urlencode(values)
            req = urllib2.Request(url, data, headers)
            html = None

            try:
                response = urllib2.urlopen(req)
                html = response.read()
            except  Exception:
                if unified:
                    UnifiedSearch().collect(unified_search_results)
                pass

            self.log(keyword)

            us_titles = []
            us_links = []
            us_images = []

            if html:
                media_line = common.parseDOM(html, "div", attrs = { "class":"media_line" })

                titlesA = common.parseDOM(media_line, "a", ret="title")
                pathsA = common.parseDOM(media_line, "a", attrs = {"class":"fleft thumb"}, ret="href")

                titlesB = common.parseDOM(media_line, "a", attrs = {"class":"heading"})
                pathsB = common.parseDOM(media_line, "a", attrs = {"class":"heading"}, ret="href")

                images = common.parseDOM(media_line, "img", ret="src")

                items_counter = 0

                # print "Found A: %d"%len(pathsA)
                # print "Found B: %d"%len(pathsB)
                # print "Found images %d"%len(images)

                if titlesA and titlesB:
                    print "*** This is a mix of seasons and movies"

                    for i, title in enumerate(titlesA):
                        items_counter += 1

                        link = "%s/%s"%(self.url, pathsA[i])
                        image = self.url+images[i] if not 'http' in images[i] else images[i]

                        # INFO: Collect search results
                        us_titles.append(title)
                        us_links.append(link)
                        us_images.append(image)

                        uri = sys.argv[0] + '?mode=subcategory&url=%s'%link
                        item = xbmcgui.ListItem(title, thumbnailImage = image, iconImage=self.icon)
                        xbmcplugin.addDirectoryItem(self.handle, uri, item, True)

                    for i, title in enumerate(titlesB):
                        items_counter += 1

                        link = "%s/%s"%(self.url, pathsB[i])
                        image = self.url+images[len(pathsB)+i] if not 'http' in images[len(pathsB)+i] else images[len(pathsB)+i]

                        # INFO: Collect search results
                        us_titles.append(title)
                        us_links.append(link)
                        us_images.append(image)

                        uri = sys.argv[0] + '?mode=movie&url=%s'%link
                        item = xbmcgui.ListItem(title, thumbnailImage = image, iconImage=self.icon)
                        item.setProperty('IsPlayable', 'true')
                        xbmcplugin.addDirectoryItem(self.handle, uri, item, False)

                elif titlesA:
                    print "*** This is a season"

                    for i, title in enumerate(titlesA):
                        items_counter += 1

                        link = "%s/%s"%(self.url, pathsA[i])
                        image = self.url+images[i] if not 'http' in images[i] else images[i]

                        # INFO: Collect search results
                        us_titles.append(title)
                        us_links.append(link)
                        us_images.append(image)

                        uri = sys.argv[0] + '?mode=subcategory&url=%s'%link
                        item = xbmcgui.ListItem(title, thumbnailImage = image, iconImage=self.icon)
                        xbmcplugin.addDirectoryItem(self.handle, uri, item, True)


                elif titlesB:
                    print "*** This is a movie"

                    ul = common.parseDOM(media_line, "ul")

                    for i, title in enumerate(titlesB):
                        genres = common.stripTags(common.parseDOM(ul[i], "li")[0])

                        try:
                            description = common.stripTags(common.parseDOM(ul[i], "li")[2])
                        except IndexError:
                            description = common.stripTags(common.parseDOM(ul[i], "li")[1])

                        items_counter += 1

                        link = "%s/%s"%(self.url, pathsA[i])
                        image = self.url+images[i] if not 'http' in images[i] else images[i]
                        info = {'title': title, 'genre': genres, 'plot': description}

                        # INFO: Collect search results
                        us_titles.append(title)
                        us_links.append(link)
                        us_images.append(image)

                        uri = sys.argv[0] + '?mode=movie&url=%s'%link
                        item = xbmcgui.ListItem(title, thumbnailImage = image, iconImage=self.icon)

                        item.setInfo( type='Video', infoLabels=info)
                        item.setProperty('IsPlayable', 'true')
                        xbmcplugin.addDirectoryItem(self.handle, uri, item, False)
                else:
                    item = xbmcgui.ListItem(self.language(9001), thumbnailImage = self.icon)
                    xbmcplugin.addDirectoryItem(self.handle, "", item, False)
            else:
                self.showErrorMessage("%s: Request timeout" % self.id)

            # INFO: Convert and send unified search results
            if unified:
                self.log("Perform unified search and return results")
                for i, title in enumerate(us_titles):
                    unified_search_results.append({'title':  title, 'url': us_links[i], 'image': us_images[i], 'plugin': self.id, 'is_playable': True})

                UnifiedSearch().collect(unified_search_results)
            else:
                xbmc.executebuiltin('Container.SetViewMode(50)')
                xbmcplugin.endOfDirectory(self.handle, True)

        else:
            self.menu()
コード例 #51
0
ファイル: default.py プロジェクト: Sitronik/xbmc-plugins
    def search(self):
        kbd = xbmc.Keyboard()
        kbd.setDefault('')
        kbd.setHeading(self.language(2000))
        kbd.doModal()
        keyword = ''

        if kbd.isConfirmed():
            if self.addon.getSetting('translit') == 'true':
                keyword = translit.rus(kbd.getText())
            else:
                keyword = kbd.getText()

            print keyword.decode('cp1251').encode('utf-8')
            url = 'http://showday.tv/index.php?do=search'

            # Advanced search: titles only
            values = {
                "beforeafter": "after",
                "catlist[]": "0",
                "do": "search",
                "full_search": "1",
                "replyless": "0",
                "replylimit": "0",
                "resorder": "desc",
                "result_from":  "1",
                "search_start": "1",
                "searchdate": "0",
                "searchuser": "",
                "showposts": "0",
                "sortby": "date",
                "story": keyword,
                "subaction": "search",
                "titleonly": "3"
            }

            data = urllib.urlencode(values)
            request = urllib2.Request(url, data)
            response = urllib2.urlopen(request).read()

            container = common.parseDOM(response, "div", attrs={"id": "dle-content"})
            blocks = common.parseDOM(container, "div", attrs={"class": "block"})[1:]

            if blocks:
                for i, block in enumerate(blocks):
                    text_container  = common.parseDOM(block, "div", attrs={"class": "text"})
                    img_cotainer = common.parseDOM(block, "div", attrs={"class": "image"})

                    title = self.encode(common.stripTags(common.parseDOM(text_container, "a")[0]))
                    link = common.parseDOM(text_container, "a", ret="href")[0]
                    image = common.parseDOM(img_cotainer, "img", ret="src")[0]

                    uri = sys.argv[0] + '?mode=episode&url=%s' % link
                    item = xbmcgui.ListItem(title, thumbnailImage=self.url + image)
                    xbmcplugin.addDirectoryItem(self.handle, uri, item, True)
            else:
                item = xbmcgui.ListItem(self.language(2001), iconImage=self.icon, thumbnailImage=self.icon)
                xbmcplugin.addDirectoryItem(self.handle, '', item, True)
        else:
            self.menu()

        xbmc.executebuiltin('Container.SetViewMode(50)')
        xbmcplugin.endOfDirectory(self.handle, True)
コード例 #52
0
import os
import urllib
import urllib2
import sys
import json
import uppod
import cookielib

import HTMLParser

import XbmcHelpers
common = XbmcHelpers

import Translit as translit
translit = translit.Translit(encoding='utf-8')

# My Favorites module
from MyFavorites import MyFavorites


class SerialuNet():
    def __init__(self):
        self.id = 'plugin.video.mrstealth.serialu.net'
        self.addon = xbmcaddon.Addon(self.id)
        self.icon = self.addon.getAddonInfo('icon')
        self.path = self.addon.getAddonInfo('path')
        self.profile = self.addon.getAddonInfo('profile')

        self.language = self.addon.getLocalizedString
        self.handle = int(sys.argv[1])
コード例 #53
0
ファイル: default.py プロジェクト: faisalz2015/xbmc-gotham
    def search(self, keyword, unified):
        keyword = translit.rus(keyword) if unified else self.getUserInput()
        unified_search_results = []

        if keyword:
            url = 'http://kinoprosmotr.net/index.php?do=search'

            # Advanced search: titles only
            values = {
                "beforeafter": "after",
                "catlist[]": 0,
                "do": "search",
                "full_search": "1",
                "replyless": "0",
                "replylimit": "0",
                "resorder": "desc",
                "result_from": "1",
                "result_num": "50",
                "search_start": "1",
                "searchdate": "0",
                "searchuser": "",
                "showposts": "0",
                "sortby": "date",
                "story": keyword,
                "subaction": "search",
                "titleonly": "3"
            }

            headers = {
                "Referer" : 'http://kinoprosmotr.net/index.php?do=search',
                "User-Agent" : "Mozilla/5.0 (X11; Linux x86_64; rv:25.0) Gecko/20100101 Firefox/25.0"
            }

            data = urllib.urlencode(values)
            request = urllib2.Request(url, data, headers)
            response = urllib2.urlopen(request)

            containers = common.parseDOM(response.read(), "div", attrs={"class": "search_item clearfix"})
            search_item_prev = common.parseDOM(containers, "div", attrs={"class": "search_item_prev"})
            search_item_inner = common.parseDOM(containers, "div", attrs={"class": "search_item_inner"})

            print containers

            descriptions = common.parseDOM(search_item_inner, "div")

            header = common.parseDOM(search_item_inner, "h3")
            gcont = common.parseDOM(search_item_inner, "span")

            titles = common.parseDOM(header, "a")
            links = common.parseDOM(header, "a", ret="href")
            images = common.parseDOM(search_item_prev, "img", ret="src")

            if unified:
                self.log("Perform unified search and return results")
                for i, title in enumerate(titles):
                    image = self.url + images[i]
                    unified_search_results.append({'title': self.encode(title), 'url': links[i], 'image': image, 'plugin': self.id})

                UnifiedSearch().collect(unified_search_results)

            else:
                for i, title in enumerate(titles):
                    image = self.url + images[i]
                    print image
                    genres = self.encode(', '.join(common.parseDOM(gcont[i], "a")))
                    desc = self.encode(common.stripTags(descriptions[i]))
                    uri = sys.argv[0] + '?mode=show&url=%s' % links[i]
                    item = xbmcgui.ListItem(self.encode(title), iconImage=self.icon, thumbnailImage=image)
                    item.setInfo(type='Video', infoLabels={'title': self.encode(title), 'genre': genres, 'plot': desc})

                    xbmcplugin.addDirectoryItem(self.handle, uri, item, True)

                xbmc.executebuiltin('Container.SetViewMode(50)')
                xbmcplugin.endOfDirectory(self.handle, True)

        else:
            self.menu()
コード例 #54
0
ファイル: default.py プロジェクト: Sitronik/xbmc-plugins
    def search(self, keyword, unified):
        keyword = translit.rus(keyword) if unified else self.getUserInput()
        unified_search_results = []

        if keyword:
            url = 'http://kino-v-online.tv/index.php?do=search'

            values = {
                "do": "search",
                "full_search":	"0",
                "result_from": "1",
                "result_num": "22",
                "search_start": "a",
                "story": keyword,
                "subaction": "search"
            }

            data = urllib.urlencode(values)
            req = urllib2.Request(url, data)

            response = urllib2.urlopen(req)
            html = response.read()
            content = common.parseDOM(html, "div", attrs={"id": "dle-content"})

            if response.geturl() == url:
                links = common.parseDOM(content, "a", ret="href")
                titles = common.parseDOM(content, "b")
            else:
                links = [response.geturl().replace(self.url, '')]
                titles = common.parseDOM(content, "h1")

            images = common.parseDOM(content, "img", attrs={"class": "top"}, ret="src")

            if unified:
                for i, title in enumerate(titles):
                    if images:
                        unified_search_results.append({'title': self.encode(title), 'url':  self.url + '/' + links[i], 'image': images[i], 'plugin': self.id})
                    else:
                        unified_search_results.append({'title': self.encode(title), 'url': self.url + '/' + links[i], 'image': '', 'plugin': self.id})

                UnifiedSearch().collect(unified_search_results)

            else:
                if links:
                    for i, link in enumerate(links):
                        if not link == "#":
                            if images: 
                                uri = sys.argv[0] + '?mode=%s&url=%s'%("show", self.url + '/' + link)
                                item = xbmcgui.ListItem(self.encode(titles[i]), thumbnailImage = images[i])
                                xbmcplugin.addDirectoryItem(self.handle, uri, item, True)
                            else:
                                uri = sys.argv[0] + '?mode=%s&url=%s'%("show", self.url + '/' + link)
                                item = xbmcgui.ListItem(self.encode(titles[i]), thumbnailImage = self.icon)
                                xbmcplugin.addDirectoryItem(self.handle, uri, item, True)
                else:
                    item = xbmcgui.ListItem(self.language(2001), thumbnailImage = self.icon)
                    xbmcplugin.addDirectoryItem(self.handle, "", item, False)

        else:
            self.menu()

        xbmc.executebuiltin('Container.SetViewMode(50)')
        xbmcplugin.endOfDirectory(self.handle, True)