Exemple #1
0
    def judgeTurtleNextAction(self, actionObj):
        ProgressDisplayer().displayMessage(80, line1='Preparing items for display or play', line2='Total items: ' + str(len(self.response_obj.get_item_list())))
        if self.response_obj.get_redirect_action_name() is None:
            isAnyVideoItem = False
            for item in self.response_obj.get_item_list():
                nextActionId = actionObj.get_next_action_map()[item.get_next_action_name()]
                if nextActionId == '__play__':
                    if not isAnyVideoItem:
                        XBMCInterfaceUtils.clearPlayList() #Clear playlist item only when at least one video item is found.
                    XBMCInterfaceUtils.addPlayListItem(item)
                    isAnyVideoItem = True
                elif nextActionId == '__service_response__':
                    #Do Nothing , get response object from container for parameters to be returned
                    pass
                else:
                    is_Folder = self.addon_context.isNextActionFolder(actionObj.get_action_id(), item.get_next_action_name())
                    XBMCInterfaceUtils.addFolderItem(item, nextActionId, is_Folder)
            if isAnyVideoItem == True:
                ProgressDisplayer().end()
                XBMCInterfaceUtils.play()
            else:
                if self.response_obj.get_xbmc_sort_method() is not None:
                    XBMCInterfaceUtils.sortItems(self.response_obj.get_xbmc_sort_method())
                if self.response_obj.get_xbmc_content_type() is not None:
                    XBMCInterfaceUtils.setContentType(self.response_obj.get_xbmc_content_type())

        else:
            redirectActionId = actionObj.get_redirect_action_map()[self.response_obj.get_redirect_action_name()]
            self.response_obj.set_redirect_action_name(None)
            return redirectActionId
 def judgeTurtleNextAction(self, actionObj):
     ProgressDisplayer().displayMessage(80, line1='Preparing items for display or play', line2='Total items: ' + str(len(self.response_obj.get_item_list())))
     if self.response_obj.get_redirect_action_name() is None:
         isAnyPlayableItem = False
         isItemsList = False
         playlist_type = None
         for item in self.response_obj.get_item_list():
             nextActionId = actionObj.get_next_action_map()[item.get_next_action_name()]
             if nextActionId == '__play__':
                 if item.get_moving_data().has_key('pluginUrl'):
                     XBMCInterfaceUtils.executePlugin(item.get_moving_data()['pluginUrl'])
                 else:
                     if not isAnyPlayableItem and not XBMCInterfaceUtils.isPlaying():
                         XBMCInterfaceUtils.clearPlayList()  # Clear playlist item only when at least one video item is found.
                     playlist_type = XBMCInterfaceUtils.addPlayListItem(item)
                     isAnyPlayableItem = True
             elif nextActionId == '__service_response__':
                 # Do Nothing , get response object from container for parameters to be returned
                 pass
             elif nextActionId == '__download__':
                 downloadPath = self.addon_context.addon.getSetting('downloadPath')
                 if downloadPath is None or downloadPath == '':
                     XBMCInterfaceUtils.displayDialogMessage("Download path not provided", "Please provide download path in add-on settings.", "The download path should be a local directory.")
                     self.addon_context.addon.openSettings(sys.argv[ 0 ])
                     downloadPath = self.addon_context.addon.getSetting('downloadPath')
                 if downloadPath is not None and downloadPath != '':
                     XBMCInterfaceUtils.downloadVideo(item, downloadPath)
             elif nextActionId == '__resolved__':
                 XBMCInterfaceUtils.setResolvedMediaUrl(item)
             else:
                 isItemsList = True
                 is_Folder = self.addon_context.isNextActionFolder(actionObj.get_action_id(), item.get_next_action_name())
                 downloadAction = self.addon_context.getDownloadActionIfDownloadable(actionObj.get_action_id(), item.get_next_action_name())
                 if(downloadAction is not None):
                     XBMCInterfaceUtils.addContextMenuItem(item, 'Download Video', downloadAction)
                 XBMCInterfaceUtils.addFolderItem(item, nextActionId, is_Folder)
             del item  # deletes item
         if isAnyPlayableItem == True:
             ProgressDisplayer().end()
             try:
                 if playlist_type is not None:
                     XBMCInterfaceUtils.play(list_type=playlist_type)
                 else:
                     XBMCInterfaceUtils.play()
             except Exception, e:
                 Logger.logFatal(e)
         elif isItemsList:
             if self.response_obj.get_xbmc_sort_method() is not None:
                 XBMCInterfaceUtils.sortMethod(self.response_obj.get_xbmc_sort_method())
             if self.response_obj.get_xbmc_content_type() is not None:
                 XBMCInterfaceUtils.setContentType(self.response_obj.get_xbmc_content_type())
             XBMCInterfaceUtils.setSortMethods()
Exemple #3
0
 def judgeTurtleNextAction(self, actionObj):
     ProgressDisplayer().displayMessage(
         80,
         line1='Preparing items for display or play',
         line2='Total items: ' +
         str(len(self.response_obj.get_item_list())))
     if self.response_obj.get_redirect_action_name() is None:
         isAnyPlayableItem = False
         isItemsList = False
         playlist_type = None
         for item in self.response_obj.get_item_list():
             nextActionId = actionObj.get_next_action_map()[
                 item.get_next_action_name()]
             if nextActionId == '__play__':
                 if item.get_moving_data().has_key('pluginUrl'):
                     XBMCInterfaceUtils.executePlugin(
                         item.get_moving_data()['pluginUrl'])
                 else:
                     if not isAnyPlayableItem and not XBMCInterfaceUtils.isPlaying(
                     ):
                         XBMCInterfaceUtils.clearPlayList(
                         )  # Clear playlist item only when at least one video item is found.
                     playlist_type = XBMCInterfaceUtils.addPlayListItem(
                         item)
                     isAnyPlayableItem = True
             elif nextActionId == '__service_response__':
                 # Do Nothing , get response object from container for parameters to be returned
                 pass
             elif nextActionId == '__download__':
                 downloadPath = self.addon_context.addon.getSetting(
                     'downloadPath')
                 if downloadPath is None or downloadPath == '':
                     XBMCInterfaceUtils.displayDialogMessage(
                         "Download path not provided",
                         "Please provide download path in add-on settings.",
                         "The download path should be a local directory.")
                     self.addon_context.addon.openSettings(sys.argv[0])
                     downloadPath = self.addon_context.addon.getSetting(
                         'downloadPath')
                 if downloadPath is not None and downloadPath != '':
                     XBMCInterfaceUtils.downloadVideo(item, downloadPath)
             elif nextActionId == '__resolved__':
                 XBMCInterfaceUtils.setResolvedMediaUrl(item)
             else:
                 isItemsList = True
                 is_Folder = self.addon_context.isNextActionFolder(
                     actionObj.get_action_id(), item.get_next_action_name())
                 downloadAction = self.addon_context.getDownloadActionIfDownloadable(
                     actionObj.get_action_id(), item.get_next_action_name())
                 if (downloadAction is not None):
                     XBMCInterfaceUtils.addContextMenuItem(
                         item, 'Download Video', downloadAction)
                 XBMCInterfaceUtils.addFolderItem(item, nextActionId,
                                                  is_Folder)
             del item  # deletes item
         if isAnyPlayableItem == True:
             ProgressDisplayer().end()
             try:
                 if playlist_type is not None:
                     XBMCInterfaceUtils.play(list_type=playlist_type)
                 else:
                     XBMCInterfaceUtils.play()
             except Exception, e:
                 Logger.logFatal(e)
         elif isItemsList:
             if self.response_obj.get_xbmc_sort_method() is not None:
                 XBMCInterfaceUtils.sortMethod(
                     self.response_obj.get_xbmc_sort_method())
             if self.response_obj.get_xbmc_content_type() is not None:
                 XBMCInterfaceUtils.setContentType(
                     self.response_obj.get_xbmc_content_type())
             XBMCInterfaceUtils.setSortMethods()