示例#1
0
    def loadNextPageData(self, offset, resultCount, resultSize):
        self.mh_keyLocked = True
        if (self.page * self.pageSize) > resultCount:
            sz = resultCount - (self.page - 1) * self.pageSize
        else:
            sz = resultSize
        self.mh_menuListe = [(_("Please wait..."), None)]
        self.ml.setList(map(self.mh_menuListentry, self.mh_menuListe))
        if self.request_data["type"] == "playlist":
            if self.page > 1:
                d = mvClient.requestPlaylist(self.request_data, sz, offset)
                d.addCallback(self.parseVideolist, pl_type=True).addErrback(self.dataError)
            else:
                return self.getVideolist(self.request_data)
        else:
            d = mvClient.requestGroupPlaylists(self.request_data, self.filterData, sz, offset)
            d.addCallback(self.parseGroupPlaylist, 0, [])

        d.addCallback(self.mh_genMenu2).addErrback(self.mh_dataError)
示例#2
0
    def parseGroupPlaylist(self, jsonData, lev, menu):
        metadata = jsonData.get("metadata", {})
        resultId = metadata.get("resultId", 0)
        resultSize = metadata.get("resultSize", 0)
        resultCount = metadata.get("resultCount", 0)
        resultOffset = metadata.get("resultOffset", 0)
        resultType = metadata.get("resultType", "")
        if resultCount == 0:
            msg = jsonData.get("returnMessageScreen", None)
            if msg:
                self.session.open(MessageBoxExt, str(msg[0]), type=MessageBoxExt.TYPE_INFO)

            return []

        type = jsonData["type"]
        for entry in jsonData.get("resultList", {}):
            menudata = {}
            menudata["id"] = entry["id"]
            menudata["playListID"] = entry.get("playListID", 0)
            menudata["movieCount"] = entry.get("movieCount", 0)
            menudata["image"] = str(entry["preview"])
            menudata["type"] = str(type)
            menudata["length"] = entry.get("length", "")
            menudata["rate"] = entry.get("rate", "")
            title = entry["title"]
            if type not in ("group_playlists", "playlist", "videolist"):
                continue
            menu.append((lev, (menudata, ""), str(title)))

        if (resultOffset + resultSize) < resultCount and self.listAll:
            d = mvClient.requestGroupPlaylists(
                self.request_data, self.filterData, resultSize, resultOffset + resultSize
            )
            d.addCallback(self.parseGroupPlaylist, lev, menu).addErrback(self.dataError)
            return d
        else:
            self.metadata.update(metadata)
            self.getLastPage()
            return menu
示例#3
0
 def getSeries(self, request_data):
     d = mvClient.requestGroupPlaylists(request_data, sz=self.maxSize)
     d.addCallback(self.parseGroupPlaylist, 0, [])
     d.addCallback(self.mh_genMenu2).addErrback(self.mh_dataError)
示例#4
0
 def getGroups(self, request_data, filter_data={}):
     d = mvClient.requestGroupPlaylists(request_data, filter_data).addCallback(self.parseGroupPlaylist, 0, [])
     d.addCallback(self.mh_genMenu2).addErrback(self.mh_dataError)