def draw(self, page=None, num=None, *args): if page is None: page = self.cur_page if num is None: num = self.results_per_page # Checking if next / prev page are available self.check_next_possible(page, num) self.check_prev_possible(page) self.pyjama.layouts.toolbars['radios'].cbResultsPerPage.set_item(num) self.pyjama.layouts.toolbars['radios'].lCurPage.set_text(_("Page %i") % page) self.cur_page = page for radioinfo in self.radioinfos: self.radioinfos[radioinfo].destroy() self.radioinfos = {} # query = "id+name+idstr+image+album_image/radio/json/?n=%s&pn=%s&order=numradio" % (num, page) query = "id+name+idstr+image/radio/json/?n=%s&pn=%s&order=numradio" % (num, page) ret = self.pyjama.jamendo.query(query) if ret is None: clWidgets.tofast(self.pyjama.window) if ret < 0: pass if ret: counter = 0 for dic in ret: tmp = RadioWidget(self.pyjama, dic['id'], dic['idstr'], dic['image'])#, dic['album_image']) tmp.show() tmp.eventFrame.connect("button_release_event", self.ev_play_radio, dic['id']) self.put(tmp, counter, counter) self.radioinfos[counter] = tmp counter += 1 start = (page-1)*num+1 end = (page-1)*num+num self.pyjama.window.LayoutInfo.set_text("Showing radios %i - %i" % (start, end)) self.pyjama.window.LayoutInfo.set_image("radio.png") self.arrange_topoftheweek() self.show()
def draw(self, num=None, mode="ratingweek", page=1, tag="all"): # Checking if next / prev page are available self.check_next_possible(page, num) self.check_prev_possible(page) # Got to be fixed: Setting CBs in History- Mode # causes "changed" event, which destroys the # current history- session # Switched off HistoryForward- Deletion, # as this seems to be the smaller issue self.pyjama.layouts.toolbars['top'].cbOrder.set_item(mode) show_tag = tag if tag == "all": show_tag = _("--all--") if not tag in self.pyjama.layouts.toolbars['top'].cbTags.modelist and tag != "all": self.pyjama.layouts.toolbars['top'].cbTags.entry.set_text(tag.replace("+", " ")) else: self.pyjama.layouts.toolbars['top'].cbTags.set_item(show_tag) self.pyjama.layouts.toolbars['top'].cbResultsPerPage.set_item(num) # Setting the label if tag == "all": # markup = self.pyjama.window.markuplbCaption.replace("TEXT", _("Show top %i albums in '%s'") % (int(num), mode)) txt = _("Showing top %i albums in '%s'") % (int(num), mode) self.pyjama.layouts.toolbars['top'].lCurPage.set_text(_("Page %i of %i") % (page, (self.pyjama.db.albums // num))) else: # markup = self.pyjama.window.markuplbCaption.replace("TEXT", _("Show %i albums tagged '%s' ordered by '%s'") % (int(num), tag.replace("+", " "), mode)) txt = _("Showing %i albums tagged '%s' ordered by '%s'") % (int(num), tag.replace("+", " "), mode) self.pyjama.layouts.toolbars['top'].lCurPage.set_text(_("Page %i") % page) self.cur_page = page # self.pyjama.window.lbCaption.set_markup(markup) self.pyjama.window.LayoutInfo.set_text(txt) self.pyjama.window.LayoutInfo.set_image("folder_06.png") if num==None:num=self.results_per_page for albuminfo in self.albuminfos: self.albuminfos[albuminfo].destroy() self.albuminfos = {} top = self.pyjama.jamendo.top(num, mode, page, tag) if top == None: clWidgets.tofast(self.pyjama.window) return None elif top == -1: return None ## Again: ## 2 loops in order to ## first burst download ## and then create AlbumInfo counter = 0 threads = {} # hidden = [] # shown = [] for album in top: # if "+" in tag: # count = tag.count("+")+1 # if top.count(album) != count: # hidden.append(album) # continue if self.pyjama.debug: print "(%i/%i)" % (counter + 1, len(top)) # if more than 10 threads... if clThreadedDownload.threadLimiter(threads): print ("Waiting for threads (%i seconds)") % self.pyjama.settings.get_value("PERFORMANCE", "THREAD_WAIT") sleep(self.pyjama.settings.get_value("PERFORMANCE", "THREAD_WAIT")) # album['album_image'] threads[counter] = clThreadedDownload.Download(self.pyjama, ("album", album['album_id']), counter) threads[counter].start() counter += 1 counter = 0 for album in top: # if not album in hidden and not album in shown: # shown.append(album) self.albuminfos[counter] = clWidgets.AlbumInfo(self.pyjama, album) self.albuminfos[counter].show() self.put(self.albuminfos[counter], counter, counter) counter += 1 self.arrange_topoftheweek() self.show() self.pyjama.window.toolbar.lbMoreAlbumsFromThisArtist2.hide() self.pyjama.window.toolbar.lbArtistsAlbumsToPlaylist.hide() self.pyjama.window.toolbar.lbAppendAlbum.hide() self.pyjama.window.toolbar.Separator2.hide()
def draw(self, num=None, mode="data", page=1, tag="all"): # def draw(self, data, data2, data3, data4): # num=data['num'], mode = data['mode'], page = data['page'], tag=data['tag'] ids = self.pyjama.settings.get_value("STAR PLUGIN", "STARED ALBUMS", -1) if ids == -1: ids = 0 # Checking if next / prev page are available self.check_next_possible(page, num) self.check_prev_possible(page) # Got to be fixed: Setting CBs in History- Mode # causes "changed" event, which destroys the # current history- session # Switched off HistoryForwart- Deletion, # as this seems to be the smaller issue self.pyjama.layouts.toolbars['star'].cbOrder.set_item(mode) show_tag = tag if tag == "all": show_tag = _("--all--") if not tag in self.pyjama.layouts.toolbars['star'].cbTags.modelist and tag != "all": self.pyjama.layouts.toolbars['star'].cbTags.entry.set_text(tag.replace("+", " ")) else: self.pyjama.layouts.toolbars['star'].cbTags.set_item(show_tag) self.pyjama.layouts.toolbars['star'].cbResultsPerPage.set_item(num) # Setting the label if tag == "all": ids = self.pyjama.settings.get_value("STAR PLUGIN", "STARED ALBUMS", -1) if ids == -1: count = 0 else: count = ids.count("+")*1.0 # markup = self.pyjama.window.markuplbCaption.replace("TEXT", _("Show %i stared albums in '%s'") % (int(num), mode)) txt = _("Show %i stared albums in '%s'") % (int(num), mode) self.pyjama.layouts.toolbars['star'].lCurPage.set_text(_("Page %i of %i") % (page, ceil(count/num))) else: # markup = self.pyjama.window.markuplbCaption.replace("TEXT", _("Show %i stared albums tagged '%s' ordered by '%s'") % (int(num), tag, mode)) txt = _("Show %i stared albums tagged '%s' ordered by '%s'") % (int(num), tag, mode) self.pyjama.layouts.toolbars['star'].lCurPage.set_text(_("Page %i") % page) self.cur_page = page # self.pyjama.window.lbCaption.set_markup(markup) self.pyjama.window.LayoutInfo.set_text(txt) self.pyjama.window.LayoutInfo.set_image(os.path.join(functions.install_dir(), "images", "star.png")) if ids == 0 or ids == "": return if num==None:num=self.results_per_page for albuminfo in self.albuminfos: self.albuminfos[albuminfo].destroy() self.albuminfos = {} top = self.top(ids, num, mode, page, tag) if top == None: clWidgets.tofast(self.pyjama.window) return None elif top == -1: return None ## Again: ## 2 loops in order to ## first burst download ## and then create AlbumInfo counter = 0 threads = {} for album in top: if self.pyjama.debug: print "(%i/%i)" % (counter + 1, len(top)) # if more than 10 threads... if clThreadedDownload.threadLimiter(threads): print ("Waiting for threads (%i seconds)") % self.pyjama.settings.get_value("PERFORMANCE", "THREAD_WAIT") sleep(self.pyjama.settings.get_value("PERFORMANCE", "THREAD_WAIT")) threads[counter] = clThreadedDownload.Download(self.pyjama, album['album_image'], counter) threads[counter].start() counter += 1 counter = 0 for album in top: self.albuminfos[counter] = clWidgets.AlbumInfo(self.pyjama, album) self.albuminfos[counter].show() self.put(self.albuminfos[counter], counter, counter) counter += 1 self.arrange_topoftheweek() self.show()