Exemplo n.º 1
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
Exemplo n.º 2
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
Exemplo n.º 3
0
    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'))            
Exemplo n.º 4
0
    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"))
Exemplo n.º 5
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)