Пример #1
0
    def initial_page_for_pagination(self, identifier=''):
        enable = self.addon.getSetting('enable_pagination') == 'true'
        offset = int(self.addon.getSetting('items_per_page'))

        if enable:
            return Page(0, offset, 0, identifier)

        return Page.inifinite(identifier)
Пример #2
0
 def partial_result(self, playlist, page, session):
     tracks = []
     page = Page(page.start, page.offset, playlist.num_tracks(), page.identifier)
     
     for i in page.current_range():
         track = playlist.track(i)
         tracks.append(track)
         
     return Model(tracks = self.model_factory.to_track_list_model(tracks, session), page = page)
Пример #3
0
 def search(self, args, path):        
     if args.identifier == '':
         query = self.ui_helper.keyboardText()
     else:
         query = args.identifier
     if query is not None and query is not '':
         tracks_model = Model.from_object(self.server.search(Page(args.start, args.offset, args.max_items, query)))
         self.ui_helper.create_list_of_tracks(Model.from_object_list(tracks_model.tracks), Page.from_obj(tracks_model.page), path)
     self.ui_helper.end_directory()
Пример #4
0
    def create_track_list_items(self, tracks, page=Page()):
        indexes = range(0, len(tracks))
        if not page.is_infinite():
            indexes = page.current_range()
        for index in indexes:
            track = tracks[index - page.start]
            path, item = self.list_item_factory.create_list_item(
                track, index + 1)
            self.add_context_menu(track, path, item)

            xbmcplugin.addDirectoryItem(handle=self.addon_handle,
                                        url=path,
                                        listitem=item)
Пример #5
0
    def create_list_of_tracks(self, tracks, page=Page(), path=None):
        xbmcplugin.setContent(self.addon_handle, UiHelper.CONTENT_SONGS)
        xbmcplugin.addSortMethod(self.addon_handle,
                                 xbmcplugin.SORT_METHOD_TRACKNUM)
        xbmcplugin.addSortMethod(self.addon_handle,
                                 xbmcplugin.SORT_METHOD_ARTIST)
        xbmcplugin.addSortMethod(self.addon_handle,
                                 xbmcplugin.SORT_METHOD_TITLE)
        xbmcplugin.addSortMethod(self.addon_handle,
                                 xbmcplugin.SORT_METHOD_ALBUM)

        self.create_track_list_items(tracks, page)

        if page.has_next():
            self.create_folder_item(self.add_on.getLocalizedString(30029),
                                    Router.url_for(path, page.next()))
Пример #6
0
 def tracks_model(self, playlist, page, session):
     if not page.is_infinite():
         tracks_model = self.partial_result(playlist, page, session)
     else:            
         tracks = LoadTrack.from_list(playlist.tracks(), session)
         tracks_model = Model(tracks = self.model_factory.to_track_list_model(tracks, session), page = Page())
      
     return tracks_model
Пример #7
0
    def initial_page_for_search(self, identifier=''):
        offset = int(self.addon.getSetting('items_per_page'))

        return Page(0, offset, 0, identifier)