Exemple #1
0
    def run(self, content, name, url, imdb, tvdb):

        if control.window.getProperty('PseudoTVRunning') == 'True':
            return control.resolve(int(sys.argv[1]), True, control.item(path=url))

        self.getVideoInfo(content, name, imdb, tvdb)

        if self.folderPath.startswith('plugin://'):
            control.resolve(int(sys.argv[1]), True, control.item(path=url))
        else:
            poster, thumb, meta = self.getLibraryMeta()
            item = control.item(path=url, iconImage='DefaultVideo.png', thumbnailImage=thumb)
            item.setInfo(type='Video', infoLabels = meta)
            try: item.setArt({'poster': poster, 'tvshow.poster': poster, 'season.poster': poster})
            except: pass
            control.resolve(int(sys.argv[1]), True, item)

        for i in range(0, 240):
            if self.isPlayingVideo(): break
            xbmc.sleep(1000)
        while self.isPlayingVideo():
            try: self.totalTime = self.getTotalTime()
            except: pass
            try: self.currentTime = self.getTime()
            except: pass
            xbmc.sleep(1000)
        control.window.clearProperty('script.trakt.ids')
        time.sleep(5)
def add_entry_video(entry):
    # Thumbnail...
    div_entry_image = entry.find("div", {"class": "entry-image"})
    if div_entry_image is None:
        return
    thumbnail = div_entry_image.find("img", {"class": "thumb"})["src"]
    if not re.match("^https?:", thumbnail):
        thumbnail = "%s%s" % (url_root, thumbnail)
    # Title
    div_entry_meta = entry.find("div", {"class": "entry-meta"})
    a_title = div_entry_meta.find("a", {"class": "title"})
    title = a_title.string

    # Video page
    video_page_url = a_title["href"]

    # Genre (date)...
    div_data = div_entry_meta.find("div", {"class": "data"})

    if div_data is None:
        genre = "none"
    else:
        span_class_date = div_data.find("span", {"class": "date"})
        genre = span_class_date.string

    # Plot
    div_description = div_entry_meta.find("div", {"class": "description"})
    plot = div_description.string

    list_item = control.item(title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail)
    list_item.setInfo("video", {"Title": title, "Studio": "Microsoft Channel 9", "Plot": plot, "Genre": genre})
    list_item.setArt({"thumb": thumbnail, "fanart": thumbnail, "landscape": thumbnail, "poster": thumbnail})
    plugin_play_url = "%s?action=play&video_page_url=%s" % (sys.argv[0], urllib.quote_plus(video_page_url))
    control.addItem(handle=int(sys.argv[1]), url=plugin_play_url, listitem=list_item, isFolder=False)
    return
    def add_blog_directory(self, entry):
        # Thumbnail...
        div_entry_image = entry.find("div", {"class": "entry-image"})
        thumbnail = div_entry_image.find("img", {"class": "thumb"})["src"]

        if not re.match("^https?:", thumbnail):
            thumbnail = "%s%s" % (utils.url_root, thumbnail)

        # Title
        div_entry_meta = entry.find("div", {"class": "entry-meta"})
        a_title = div_entry_meta.find("a", {"class": "title"})
        title = a_title.string

        # Show page URL
        show_url = a_title["href"]

        # this is to ignore things that are not linked to channel9
        if re.match('^https?:', show_url):
            return

        div_description = div_entry_meta.find("div", {"class": "description"})
        plot = div_description.string

        # Show page URL
        show_url = a_title["href"]

        # Add to list...
        list_item = control.item(title, iconImage=utils.icon_folder, thumbnailImage=thumbnail)
        list_item.setArt({"thumb": thumbnail, "fanart": thumbnail, "landscape": thumbnail, "poster": thumbnail})
        list_item.setInfo("video", {"plot": plot, "title": title})
        plugin_list_show = '%s?action=list-blog&blog-url=%s' % (sys.argv[0], urllib.quote_plus(show_url))
        control.addItem(handle=int(sys.argv[1]), url=plugin_list_show, listitem=list_item, isFolder=True)
        return
    def search(self):
        if self.search_query is None or self.search_query == '':
            t = control.lang(30201).encode('utf-8')
            k = control.keyboard('', t)
            k.doModal()
            self.search_query = k.getText() if k.isConfirmed() else None

        if self.search_query is None or self.search_query == '':
            return

        base_url = "https://c9search.azurewebsites.net/content/search?text=%s&$top=100&$skip=0&$inlinecount=allpages" \
                   % (urllib.quote_plus(self.search_query))
        data = http_request.get(base_url)
        start_index = data.index('"documents":') + 12
        if start_index <= 12:
            return

        json_data = data[start_index:-3]
        json_media = json.loads(json_data)

        for media in json_media:
            title = media["title"]
            url = media["permalink"]
            genre = media["published"]
            thumbnail = media["previewImage"]
            plot = media["summaryBody"]

            list_item = control.item(title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail)
            list_item.setInfo("video", {"Title": title, "Studio": "Microsoft Channel 9", "Plot": plot, "Genre": genre})
            plugin_play_url = '%s?action=play&video_page_url=%s' % (sys.argv[0], urllib.quote_plus(url))
            control.addItem(handle=int(sys.argv[1]), url=plugin_play_url, listitem=list_item, isFolder=False)

        # End of directory...
        control.directory_end()
        return
    def run(self, meta):

        # if control.window.getProperty('PseudoTVRunning') == 'True':
        #    return control.player.play(url, control.item(path=url))

        self.getVideoInfo(meta)
        if meta["thumb"] is None:
            meta["thumb"] = "DefaultVideo.png"
        item = control.item(path=meta["url"], iconImage=meta["thumb"], thumbnailImage=meta["thumb"])
        item.setInfo(type='Video', infoLabels={"Title": self.title, "Plot": meta["plot"], "Genre": meta["genre"]})

        item.setProperty('Video', 'true')
        # item.setProperty('IsPlayable', 'true')
        item.setProperty("ListItem.IsResumable", "true")
        item.setProperty("ListItem.EndTime", meta["endTime"])
        item.setProperty("totaltime", meta["endTime"])

        control.player.play(meta["url"], item)

        for i in range(0, 240):
            if self.isPlayingVideo(): break
            xbmc.sleep(1000)
        while self.isPlayingVideo():
            try:
                self.totalTime = self.getTotalTime()
            except Exception, e:
                print str(e)
                pass
            try:
                self.currentTime = self.getTime()
            except Exception, e:
                print str(e)
                pass
Exemple #6
0
def downloader():
    thumb = control.addonThumb() ; fanart = control.addonFanart()

    status = control.window.getProperty(property + '.status')

    if not downloadPath == '':
        item = control.item('[COLOR FF00b8ff]Downloads[/COLOR]', iconImage=thumb, thumbnailImage=thumb)
        item.addContextMenuItems([], replaceItems=True)
        item.setProperty('fanart_image', fanart)
        control.addItem(handle=int(sys.argv[1]), url=downloadPath, listitem=item, isFolder=True)

    if status == 'downloading':
        item = control.item('[COLOR red]Stop Downloads[/COLOR]', iconImage=thumb, thumbnailImage=thumb)
        item.addContextMenuItems([], replaceItems=True)
        item.setProperty('fanart_image', fanart)
        control.addItem(handle=int(sys.argv[1]), url=sys.argv[0]+'?action=stopDownload', listitem=item, isFolder=True)
    else:
        item = control.item('[COLOR FF00b8ff]Start Downloads[/COLOR]', iconImage=thumb, thumbnailImage=thumb)
        item.addContextMenuItems([], replaceItems=True)
        item.setProperty('fanart_image', fanart)
        control.addItem(handle=int(sys.argv[1]), url=sys.argv[0]+'?action=startDownload', listitem=item, isFolder=True)

    if status == 'downloading':
        item = control.item('[COLOR gold]Download Status[/COLOR]', iconImage=thumb, thumbnailImage=thumb)
        item.addContextMenuItems([], replaceItems=True)
        item.setProperty('Fanart_Image', fanart)
        control.addItem(handle=int(sys.argv[1]), url=sys.argv[0]+'?action=statusDownload', listitem=item, isFolder=True)

    def download(): return []
    result = cache.get(download, 600000000, table='rel_dl')

    for i in result:
        try:
            cm = []
            cm.append(('Remove from Queue', 'RunPlugin(%s?action=removeDownload&url=%s)' % (sys.argv[0], urllib.quote_plus(i['url']))))
            item = control.item(i['name'], iconImage=i['image'], thumbnailImage=i['image'])
            item.addContextMenuItems(cm, replaceItems=True)
            item.setProperty('fanart_image', fanart)
            item.setProperty('Video', 'true')
            item.setProperty('IsPlayable', 'true')
            control.addItem(handle=int(sys.argv[1]), url=i['url'], listitem=item)
        except:
            pass

    control.directory(int(sys.argv[1]), cacheToDisc=True)
    def play(self, name, url=None):
        try:
            url = self.worker(name, url)
            if url == None: return

            item = control.item(path=url)
            item.setProperty('IsPlayable', 'true')
            control.player.play(url, item)
        except:
            pass
def add_next_page(bs, item_url, page):
    ul_paging = bs.find("ul", {"class": "paging"})
    if ul_paging is not None:
        list_item = control.item(
            "[B][UPPERCASE][COLOR green]%s[/COLOR][/UPPERCASE][/B]" % control.lang(30503) % page,
            iconImage=icon_next,
            thumbnailImage=icon_next,
        )
        control.addItem(handle=int(sys.argv[1]), url=item_url, listitem=list_item, isFolder=True)
    return
Exemple #9
0
def resolve(url, meta=None, icon=None):

    item = control.item(path=url)

    if not icon is None:
        item.setArt({'icon': icon, 'thumb': icon})

    if not meta is None:
        item.setInfo(type='Video', infoLabels=meta)

    control.resolve(syshandle, True, item)
Exemple #10
0
    def run(self, content, name, url, imdb, tvdb):

        if control.window.getProperty('PseudoTVRunning') == 'True':
            return control.resolve(int(sys.argv[1]), True,
                                   control.item(path=url))

        self.getVideoInfo(content, name, imdb, tvdb)

        if self.folderPath.startswith('plugin://'):
            control.resolve(int(sys.argv[1]), True, control.item(path=url))
        else:
            poster, thumb, meta = self.getLibraryMeta()
            item = control.item(path=url,
                                iconImage='DefaultVideo.png',
                                thumbnailImage=thumb)
            item.setInfo(type='Video', infoLabels=meta)
            try:
                item.setArt({
                    'poster': poster,
                    'tvshow.poster': poster,
                    'season.poster': poster
                })
            except:
                pass
            control.resolve(int(sys.argv[1]), True, item)

        for i in range(0, 240):
            if self.isPlayingVideo(): break
            xbmc.sleep(1000)
        while self.isPlayingVideo():
            try:
                self.totalTime = self.getTotalTime()
            except:
                pass
            try:
                self.currentTime = self.getTime()
            except:
                pass
            xbmc.sleep(1000)
        control.window.clearProperty('script.trakt.ids')
        time.sleep(5)
Exemple #11
0
    def view(self, meta):

        self.getVideoInfo(meta)
        if meta["thumb"] is None:
            meta["thumb"] = "DefaultPicture.png"
        item = control.item(path=meta["url"], iconImage=meta["thumb"], thumbnailImage=meta["thumb"])
        item.setInfo(type='Pictures', infoLabels={"title": self.title, "picturepath": meta["url"]})

        ss_url = '%s?action=slideshow&image_url=%s' % (sys.argv[0], urllib.quote_plus(meta["url"]))
        xbmc.log("SlideShow(%s)" % ss_url)
        xbmc.executebuiltin("SlideShow(%s)" % ss_url)
        return
def add_video(title, thumbnail, plot, genre, video_url, dbid,  video_duration=None):
    list_item = control.item(title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail)
    list_item.setInfo("video", {"Title": title, "Studio": "Microsoft Channel 9", "Plot": plot, "Genre": genre})
    list_item.setProperty("ListItem.IsResumable", "true")
    if video_duration is not None:
        seconds = convert_timespan(video_duration).total_seconds()
        list_item.setProperty("ListItem.TotalTime", str(seconds))
        list_item.setProperty("ListItem.EndTime", str(seconds))
    list_item.setProperty("ListItem.DBID", str(seconds))
    list_item.setArt({"thumb": thumbnail, "fanart": thumbnail, "landscape": thumbnail, "poster": thumbnail})
    plugin_play_url = '%s?action=play&video_url=%s' % (sys.argv[0], urllib.quote_plus(video_url))
    control.addItem(handle=int(sys.argv[1]), url=plugin_play_url, listitem=list_item, isFolder=False)
Exemple #13
0
    def add_blog_directory(self, entry):
        # Thumbnail...
        div_entry_image = entry.find("a", {"class": "tile"})
        if div_entry_image is None:
            return

        thumb_image = div_entry_image.find("img", {"role": "img"})

        thumbnail = "/assets/images/nineguy-512-bw.png"
        if thumb_image is not None:
            thumbnail = thumb_image["src"]

        if not re.match("^https?:", thumbnail):
            thumbnail = "%s%s" % (utils.url_root, thumbnail)

        # Title
        div_entry_meta = entry.find("h3")
        a_title = div_entry_meta.find("a")
        title = a_title.string

        # Show page URL
        show_url = a_title["href"]

        # this is to ignore things that are not linked to channel9
        if re.match('^https?:', show_url):
            return

        #div_description = div_entry_meta.find("div", {"class": "description"})
        #plot = div_description.string
        plot = ""

        # Add to list...
        list_item = control.item(title,
                                 iconImage=utils.icon_folder,
                                 thumbnailImage=thumbnail)
        list_item.setArt({
            "thumb": thumbnail,
            "fanart": thumbnail,
            "landscape": thumbnail,
            "poster": thumbnail
        })
        list_item.setInfo("video", {"plot": plot, "title": title})
        plugin_list_show = '%s?action=list-blog&blog-url=%s' % (
            sys.argv[0], urllib.quote_plus(show_url))
        control.addItem(handle=int(sys.argv[1]),
                        url=plugin_list_show,
                        listitem=list_item,
                        isFolder=True)
        return
Exemple #14
0
    def play(self, name, url=None):
        try:
            url = self.worker(name, url)
            if url == None: return

            title = control.infoLabel('listitem.title')
            if title == '': title = control.infoLabel('listitem.label')
            icon = control.infoLabel('listitem.icon')

            item = control.item(path=url, iconImage=icon, thumbnailImage=icon)
            try: item.setArt({'icon': icon})
            except: pass
            item.setInfo(type='Video', infoLabels = {'title': title})
            control.player.play(url, item)
        except:
            pass
Exemple #15
0
    def play(self, name, url=None):
        try:
            url = self.worker(name, url)
            if url == None: return

            title = control.infoLabel('listitem.title')
            if title == '': title = control.infoLabel('listitem.label')
            icon = control.infoLabel('listitem.icon')

            item = control.item(path=url, iconImage=icon, thumbnailImage=icon)
            try: item.setArt({'icon': icon})
            except: pass
            item.setInfo(type='Video', infoLabels = {'title': title})
            control.player.play(url, item)
        except:
            pass
Exemple #16
0
    def search(self):
        if self.search_query is None or self.search_query == '':
            t = control.lang(30201).encode('utf-8')
            k = control.keyboard('', t)
            k.doModal()
            self.search_query = k.getText() if k.isConfirmed() else None

        if self.search_query is None or self.search_query == '':
            return

        base_url = "https://c9search.azurewebsites.net/content/search?text=%s&$top=100&$skip=0&$inlinecount=allpages" \
                   % (urllib.quote_plus(self.search_query))
        data = http_request.get(base_url)
        start_index = data.index('"documents":') + 12
        if start_index <= 12:
            return

        json_data = data[start_index:-3]
        json_media = json.loads(json_data)

        for media in json_media:
            title = media["title"]
            url = media["permalink"]
            genre = media["published"]
            thumbnail = media["previewImage"]
            plot = media["summaryBody"]

            list_item = control.item(title,
                                     iconImage="DefaultVideo.png",
                                     thumbnailImage=thumbnail)
            list_item.setInfo(
                "video", {
                    "Title": title,
                    "Studio": "Microsoft Channel 9",
                    "Plot": plot,
                    "Genre": genre
                })
            plugin_play_url = '%s?action=play&video_page_url=%s' % (
                sys.argv[0], urllib.quote_plus(url))
            control.addItem(handle=int(sys.argv[1]),
                            url=plugin_play_url,
                            listitem=list_item,
                            isFolder=False)

        # End of directory...
        control.directory_end()
        return
Exemple #17
0
def add_video(title, thumbnail, video_url):
    list_item = control.item(title,
                             iconImage="DefaultVideo.png",
                             thumbnailImage=thumbnail)
    list_item.setInfo("video", {"Title": title, "Studio": "4Chan"})
    list_item.setProperty("ListItem.IsResumable", "true")
    list_item.setArt({
        "thumb": thumbnail,
        "fanart": thumbnail,
        "landscape": thumbnail,
        "poster": thumbnail
    })
    plugin_play_url = '%s?action=play&video_url=%s' % (
        sys.argv[0], urllib.quote_plus(video_url))
    control.addItem(handle=int(sys.argv[1]),
                    url=plugin_play_url,
                    listitem=list_item,
                    isFolder=False)
def add_entry_video(entry):
    # Thumbnail...
    div_entry_image = entry.find("a", {"class": "tile"})
    if div_entry_image is None:
        return
    thumb_image = div_entry_image.find("img", {"role": "img"})

    thumbnail = "/assets/images/nineguy-512-bw.png"
    if thumb_image is not None:
        thumbnail = thumb_image["src"]

    if not re.match("^https?:", thumbnail):
        thumbnail = "%s%s" % (url_root, thumbnail)
    # Title
    heading = entry.find("h3")
    if heading is None:
        return

    a_title = heading.find("a")
    title = a_title.string

    # Video page
    video_page_url = a_title["href"]

    # Genre (date)...
    div_data = heading.find("div", {"class": "data"})

    if div_data is None:
        genre = "none"
    else:
        span_class_date = div_data.find("span", {"class": "date"})
        genre = span_class_date.string

    # Plot
    #div_description = div_entry_meta.find("div", {"class": "description"})
    #plot = div_description.string
    plot = ""

    list_item = control.item(title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail)
    list_item.setInfo("video", {"Title": title, "Studio": "Microsoft Channel 9", "Plot": plot, "Genre": genre})
    list_item.setArt({"thumb": thumbnail, "fanart": thumbnail, "landscape": thumbnail, "poster": thumbnail})
    plugin_play_url = '%s?action=play&video_page_url=%s' % (sys.argv[0], urllib.quote_plus(video_page_url))
    control.addItem(handle=int(sys.argv[1]), url=plugin_play_url, listitem=list_item, isFolder=False)
    return
Exemple #19
0
    def run(self, meta):

        # if control.window.getProperty('PseudoTVRunning') == 'True':
        #    return control.player.play(url, control.item(path=url))

        self.getVideoInfo(meta)
        if meta["thumb"] is None:
            meta["thumb"] = "DefaultVideo.png"
        item = control.item(path=meta["url"],
                            iconImage=meta["thumb"],
                            thumbnailImage=meta["thumb"])
        item.setInfo(type='Video', infoLabels={"Title": self.title})

        item.setProperty('Video', 'true')
        # item.setProperty('IsPlayable', 'true')
        item.setProperty("ListItem.IsResumable", "true")
        item.setProperty("ListItem.EndTime", meta["endTime"])
        item.setProperty("totaltime", meta["endTime"])

        playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO)
        playlist.clear()
        playlist.add(meta["url"], item)
        control.player.play(playlist)
        xbmc.executebuiltin("PlayerControl(RepeatAll)")

        for i in range(0, 240):
            if self.isPlayingVideo(): break
            xbmc.sleep(1000)
        while self.isPlayingVideo():
            try:
                self.totalTime = self.getTotalTime()
            except Exception, e:
                print str(e)
                pass
            try:
                self.currentTime = self.getTime()
            except Exception, e:
                print str(e)
                pass
def add_show_directory(entry, action_url):
    # Thumbnail...
    div_entry_image = entry.find("div", {"class": "entry-image"})
    thumbnail = div_entry_image.find("img", {"class": "thumb"})["src"]
    if not re.match("^https?:", thumbnail):
        thumbnail = "%s%s" % (url_root, thumbnail)

    # Title
    div_entry_meta = entry.find("div", {"class": "entry-meta"})
    a_title = div_entry_meta.find("a", {"class": "title"})
    title = a_title.string

    # Show page URL
    show_url = a_title["href"]

    # Add to list...
    list_item = control.item(title, iconImage=icon_folder, thumbnailImage=thumbnail)
    list_item.setArt({"thumb": thumbnail, "fanart": thumbnail, "landscape": thumbnail, "poster": thumbnail})
    control.addItem(
        handle=int(sys.argv[1]), url=action_url % urllib.quote_plus(show_url), listitem=list_item, isFolder=True
    )
    return
Exemple #21
0
def add_image(title, thumbnail, image_url, slideshow=False):
    list_item = control.item(title,
                             iconImage="DefaultPicture.png",
                             thumbnailImage=thumbnail,
                             path=image_url)
    list_item.setInfo(type="pictures",
                      infoLabels={
                          "title": title,
                          "exif:path": image_url,
                          "picturepath": image_url
                      })
    list_item.setArt({"thumb": thumbnail})
    list_item.setProperty(u'fanart_image', image_url)
    if slideshow:
        control.addItem(handle=int(sys.argv[1]),
                        url=image_url,
                        listitem=list_item)
    else:
        plugin_play_url = '%s?action=view&image_url=%s' % (
            sys.argv[0], urllib.quote_plus(image_url))
        control.addItem(handle=int(sys.argv[1]),
                        url=plugin_play_url,
                        listitem=list_item)
Exemple #22
0
def downloader():
    thumb = control.addonThumb()
    fanart = control.addonFanart()

    status = control.window.getProperty(property + '.status')

    if not downloadPath == '':
        item = control.item('[COLOR FF00b8ff]Downloads[/COLOR]',
                            iconImage=thumb,
                            thumbnailImage=thumb)
        item.addContextMenuItems([], replaceItems=True)
        item.setProperty('fanart_image', fanart)
        control.addItem(handle=int(sys.argv[1]),
                        url=downloadPath,
                        listitem=item,
                        isFolder=True)

    if status == 'downloading':
        item = control.item('[COLOR red]Stop Downloads[/COLOR]',
                            iconImage=thumb,
                            thumbnailImage=thumb)
        item.addContextMenuItems([], replaceItems=True)
        item.setProperty('fanart_image', fanart)
        control.addItem(handle=int(sys.argv[1]),
                        url=sys.argv[0] + '?action=stopDownload',
                        listitem=item,
                        isFolder=True)
    else:
        item = control.item('[COLOR FF00b8ff]Start Downloads[/COLOR]',
                            iconImage=thumb,
                            thumbnailImage=thumb)
        item.addContextMenuItems([], replaceItems=True)
        item.setProperty('fanart_image', fanart)
        control.addItem(handle=int(sys.argv[1]),
                        url=sys.argv[0] + '?action=startDownload',
                        listitem=item,
                        isFolder=True)

    if status == 'downloading':
        item = control.item('[COLOR gold]Download Status[/COLOR]',
                            iconImage=thumb,
                            thumbnailImage=thumb)
        item.addContextMenuItems([], replaceItems=True)
        item.setProperty('Fanart_Image', fanart)
        control.addItem(handle=int(sys.argv[1]),
                        url=sys.argv[0] + '?action=statusDownload',
                        listitem=item,
                        isFolder=True)

    def download():
        return []

    result = cache.get(download, 600000000, table='rel_dl')

    for i in result:
        try:
            cm = []
            cm.append(('Remove from Queue',
                       'RunPlugin(%s?action=removeDownload&url=%s)' %
                       (sys.argv[0], urllib.quote_plus(i['url']))))
            item = control.item(i['name'],
                                iconImage=i['image'],
                                thumbnailImage=i['image'])
            item.addContextMenuItems(cm, replaceItems=True)
            item.setProperty('fanart_image', fanart)
            item.setProperty('Video', 'true')
            item.setProperty('IsPlayable', 'true')
            control.addItem(handle=int(sys.argv[1]),
                            url=i['url'],
                            listitem=item)
        except:
            pass

    control.directory(int(sys.argv[1]), cacheToDisc=True)
Exemple #23
0
 def play(self, name, url):
     url = self.worker(name, url)
     if url == None: return
     item = control.item(path=url)
     item.setProperty('IsPlayable', 'true')
     control.player.play(url, item)
Exemple #24
0
def add(items, cacheToDisc=True, content=None, mediatype=None, infotype='video'):

    if items is None or len(items) == 0:
        return

    sysicon = control.join(control.addonInfo('path'), 'resources', 'media')
    sysimage = control.addonInfo('icon')
    sysfanart = control.addonInfo('fanart')

    for i in items:
        try:
            try:
                label = control.lang(i['title']).encode('utf-8')
            except:
                label = i['title']

            if 'label' in i and not i['label'] == '0':
                label = i['label']

            if 'image' in i and not i['image'] == '0':
                image = i['image']
            elif 'poster' in i and not i['poster'] == '0':
                image = i['poster']
            elif 'icon' in i and not i['icon'] == '0':
                image = control.join(sysicon, i['icon'])
            else:
                image = sysimage

            if 'banner' in i and not i['banner'] == '0':
                banner = i['banner']
            elif 'fanart' in i and not i['fanart'] == '0':
                banner = i['fanart']
            else:
                banner = image

            fanart = i['fanart'] if 'fanart' in i and not i['fanart'] == '0' else sysfanart

            isFolder = False if 'isFolder' in i and not i['isFolder'] == '0' else True

            url = '%s?action=%s' % (sysaddon, i['action'])

            try:
                url += '&url=%s' % urllib.quote_plus(i['url'])
            except:
                pass
            try:
                url += '&image=%s' % urllib.quote_plus(i['image'])
            except:
                pass

            cm = []
            menus = i['cm'] if 'cm' in i else []

            for menu in menus:
                try:
                    try:
                        tmenu = control.lang(menu['title']).encode('utf-8')
                    except:
                        tmenu = menu['title']
                    qmenu = urllib.urlencode(menu['query'])
                    cm.append((tmenu, 'RunPlugin(%s?%s)' % (sysaddon, qmenu)))
                except:
                    pass

            meta = dict((k, v) for k, v in i.iteritems() if not k == 'cm' and not v == '0')
            if not mediatype == None:
                meta['mediatype'] = mediatype

            item = control.item(label=label, iconImage=image, thumbnailImage=image)

            item.setArt({'icon': image, 'thumb': image, 'poster': image, 'tvshow.poster': image, 'season.poster': image, 'banner': banner, 'tvshow.banner': banner, 'season.banner': banner})

            item.setProperty('Fanart_Image', fanart)

            item.addContextMenuItems(cm)
            item.setInfo(type=infotype, infoLabels = meta)
            if isFolder == False:
                item.setProperty('IsPlayable', 'true') if not i['action'] == 'pvr_client' else item.setProperty('IsPlayable', 'false')

            control.addItem(handle=syshandle, url=url, listitem=item, isFolder=isFolder)
        except:
            pass

    try:
        i = items[0]
        if i['next'] == '':
            raise Exception()

        url = '%s?action=%s&url=%s' % (sysaddon, i['nextaction'], urllib.quote_plus(i['next']))
        icon = i['nexticon'] if 'nexticon' in i else control.join(sysicon, 'next.png')
        fanart = i['nextfanart'] if 'nextfanart' in i else sysfanart
        try:
            label = control.lang(i['nextlabel']).encode('utf-8')
        except:
            label = 'next'

        item = control.item(label=label, iconImage=icon, thumbnailImage=icon)
        item.setArt({'icon': icon, 'thumb': icon, 'poster': icon, 'tvshow.poster': icon, 'season.poster': icon, 'banner': icon, 'tvshow.banner': icon, 'season.banner': icon})
        item.setProperty('Fanart_Image', fanart)
        control.addItem(handle=syshandle, url=url, listitem=item, isFolder=True)
    except:
        pass

    if not content is None:
        control.content(syshandle, content)

    control.directory(syshandle, cacheToDisc=cacheToDisc)
Exemple #25
0
def add(items,
        cacheToDisc=True,
        content=None,
        mediatype=None,
        infotype='video'):

    if items is None or len(items) == 0:
        return

    sysicon = control.join(control.addonInfo('path'), 'resources', 'media')
    sysimage = control.addonInfo('icon')
    sysfanart = control.addonInfo('fanart')

    for i in items:
        try:
            try:
                label = control.lang(i['title']).encode('utf-8')
            except:
                label = i['title']

            if 'label' in i and not i['label'] == '0':
                label = i['label']

            if 'image' in i and not i['image'] == '0':
                image = i['image']
            elif 'poster' in i and not i['poster'] == '0':
                image = i['poster']
            elif 'icon' in i and not i['icon'] == '0':
                image = control.join(sysicon, i['icon'])
            else:
                image = sysimage

            if 'banner' in i and not i['banner'] == '0':
                banner = i['banner']
            elif 'fanart' in i and not i['fanart'] == '0':
                banner = i['fanart']
            else:
                banner = image

            fanart = i['fanart'] if 'fanart' in i and not i[
                'fanart'] == '0' else sysfanart

            isFolder = False if 'isFolder' in i and not i[
                'isFolder'] == '0' else True

            url = '%s?action=%s' % (sysaddon, i['action'])

            try:
                url += '&url=%s' % urllib.quote_plus(i['url'])
            except:
                pass
            try:
                url += '&image=%s' % urllib.quote_plus(i['image'])
            except:
                pass

            cm = []
            menus = i['cm'] if 'cm' in i else []

            for menu in menus:
                try:
                    try:
                        tmenu = control.lang(menu['title']).encode('utf-8')
                    except:
                        tmenu = menu['title']
                    qmenu = urllib.urlencode(menu['query'])
                    cm.append((tmenu, 'RunPlugin(%s?%s)' % (sysaddon, qmenu)))
                except:
                    pass

            meta = dict((k, v) for k, v in i.iteritems()
                        if not k == 'cm' and not v == '0')
            if not mediatype == None:
                meta['mediatype'] = mediatype

            item = control.item(label=label,
                                iconImage=image,
                                thumbnailImage=image)

            item.setArt({
                'icon': image,
                'thumb': image,
                'poster': image,
                'tvshow.poster': image,
                'season.poster': image,
                'banner': banner,
                'tvshow.banner': banner,
                'season.banner': banner
            })

            item.setProperty('Fanart_Image', fanart)

            item.addContextMenuItems(cm)
            item.setInfo(type=infotype, infoLabels=meta)
            if isFolder is False:
                item.setProperty(
                    'IsPlayable', 'true'
                ) if not i['action'] == 'pvr_client' else item.setProperty(
                    'IsPlayable', 'false')
                if not i['action'] == 'pvr_client' and infotype == 'video':
                    item.addStreamInfo('video', {'codec': 'h264'})

            control.addItem(handle=syshandle,
                            url=url,
                            listitem=item,
                            isFolder=isFolder)
        except:
            pass

    try:
        i = items[0]
        if i['next'] == '':
            raise Exception()

        url = '%s?action=%s&url=%s' % (sysaddon, i['nextaction'],
                                       urllib.quote_plus(i['next']))
        icon = i['nexticon'] if 'nexticon' in i else control.join(
            sysicon, 'next.png')
        fanart = i['nextfanart'] if 'nextfanart' in i else sysfanart
        try:
            label = control.lang(i['nextlabel']).encode('utf-8')
        except:
            label = 'next'

        item = control.item(label=label, iconImage=icon, thumbnailImage=icon)
        item.setArt({
            'icon': icon,
            'thumb': icon,
            'poster': icon,
            'tvshow.poster': icon,
            'season.poster': icon,
            'banner': icon,
            'tvshow.banner': icon,
            'season.banner': icon
        })
        item.setProperty('Fanart_Image', fanart)
        control.addItem(handle=syshandle,
                        url=url,
                        listitem=item,
                        isFolder=True)
    except:
        pass

    if not content is None:
        control.content(syshandle, content)

    control.directory(syshandle, cacheToDisc=cacheToDisc)
def add_next_page(item_url, page):
    list_item = control.item(text_green % (control.lang(30500) % page),
                             iconImage=icon_next, thumbnailImage=icon_next)
    control.addItem(handle=int(sys.argv[1]), url=item_url, listitem=list_item, isFolder=True)
    return