def update_item(self): self.setText(0, self.download_info["name"]) self.setText(1, format_size(float(self.download_info["size"]))) try: self.progress_slider.setValue(int(self.download_info["progress"] * 100)) except RuntimeError: pass if self.download_info["vod_mode"]: self.setText(3, "Streaming") else: self.setText(3, DLSTATUS_STRINGS[eval(self.download_info["status"])]) self.setText(4, str(self.download_info["num_seeds"])) self.setText(5, str(self.download_info["num_peers"])) self.setText(6, format_speed(self.download_info["speed_down"])) self.setText(7, format_speed(self.download_info["speed_up"])) self.setText(8, "%.3f" % float(self.download_info["ratio"])) self.setText(9, "yes" if self.download_info["anon_download"] else "no") self.setText(10, str(self.download_info["hops"]) if self.download_info["anon_download"] else "-") self.setText(12, datetime.fromtimestamp(int(self.download_info["time_added"])).strftime('%Y-%m-%d %H:%M')) eta_text = "-" if self.get_raw_download_status() == DLSTATUS_DOWNLOADING: eta_text = duration_to_string(self.download_info["eta"]) self.setText(11, eta_text)
def update_item(self): self.setText(0, self.download_info["name"]) if self.download_info["name"] == u"<old version of your channel>": itfont = QFont(self.font(0)) itfont.setItalic(True) self.setFont(0, itfont) else: self.font(0).setItalic(False) self.setText(1, format_size(float(self.download_info["size"]))) try: self.progress_slider.setValue(int(self.download_info["progress"] * 100)) except RuntimeError: self._logger.error("The underlying GUI widget has already been removed.") if self.download_info["vod_mode"]: self.setText(3, "Streaming") else: self.setText(3, DLSTATUS_STRINGS[eval(self.download_info["status"])]) self.setText(4, "%s (%s)" % (self.download_info["num_connected_seeds"], self.download_info["num_seeds"])) self.setText(5, "%s (%s)" % (self.download_info["num_connected_peers"], self.download_info["num_peers"])) self.setText(6, format_speed(self.download_info["speed_down"])) self.setText(7, format_speed(self.download_info["speed_up"])) self.setText(8, "%.3f" % float(self.download_info["ratio"])) self.setText(9, "yes" if self.download_info["anon_download"] else "no") self.setText(10, str(self.download_info["hops"]) if self.download_info["anon_download"] else "-") self.setText(12, datetime.fromtimestamp(int(self.download_info["time_added"])).strftime('%Y-%m-%d %H:%M')) eta_text = "-" if self.get_raw_download_status() == DLSTATUS_DOWNLOADING: eta_text = duration_to_string(self.download_info["eta"]) self.setText(11, eta_text)
def update_item(self): self.setText(0, self.download_info["name"]) self.setText(1, format_size(float(self.download_info["size"]))) try: self.progress_slider.setValue( int(self.download_info["progress"] * 100)) except RuntimeError: pass self.setText(3, DLSTATUS_STRINGS[eval(self.download_info["status"])]) self.setText(4, str(self.download_info["num_seeds"])) self.setText(5, str(self.download_info["num_peers"])) self.setText(6, format_speed(self.download_info["speed_down"])) self.setText(7, format_speed(self.download_info["speed_up"])) self.setText(8, "yes" if self.download_info["anon_download"] else "no") self.setText( 9, str(self.download_info["hops"]) if self.download_info["anon_download"] else "-") eta_text = "-" if self.get_raw_download_status() == DLSTATUS_DOWNLOADING: eta_text = duration_to_string(self.download_info["eta"]) self.setText(10, eta_text)
def update_peer_row(item, peer): peer_name = "%s:%s" % (peer["ip"], peer["port"]) if peer['connection_type'] == 1: peer_name += ' [WebSeed]' elif peer['connection_type'] == 2: peer_name += ' [HTTP Seed]' elif peer['connection_type'] == 3: peer_name += ' [uTP]' state = "" if peer['optimistic']: state += "O," if peer['uinterested']: state += "UI," if peer['uchoked']: state += "UC," if peer['uhasqueries']: state += "UQ," if not peer['uflushed']: state += "UBL," if peer['dinterested']: state += "DI," if peer['dchoked']: state += "DC," if peer['snubbed']: state += "S," state += peer['direction'] item.setText(0, peer_name) item.setText(1, '%d%%' % (peer['completed'] * 100.0)) item.setText(2, format_speed(peer['downrate'])) item.setText(3, format_speed(peer['uprate'])) item.setText(4, state) item.setText(5, peer['extended_version'])
def on_received_downloads(self, downloads): if not downloads: return # This might happen when closing Tribler total_download = 0 total_upload = 0 self.received_downloads.emit(downloads) self.downloads = downloads download_infohashes = set() for download in downloads["downloads"]: if download["infohash"] in self.download_widgets: item = self.download_widgets[download["infohash"]] else: item = DownloadWidgetItem(self.window().downloads_list) self.download_widgets[download["infohash"]] = item item.update_with_download(download) # Update video player with download info video_infohash = self.window().video_player_page.active_infohash if video_infohash != "" and download["infohash"] == video_infohash: self.window().video_player_page.update_with_download_info( download) total_download += download["speed_down"] total_upload += download["speed_up"] download_infohashes.add(download["infohash"]) if self.window().download_details_widget.current_download is not None and \ self.window().download_details_widget.current_download["infohash"] == download["infohash"]: self.window( ).download_details_widget.current_download = download self.window().download_details_widget.update_pages() # Check whether there are download that should be removed toremove = set() for infohash, item in self.download_widgets.iteritems(): if infohash not in download_infohashes: index = self.window().downloads_list.indexOfTopLevelItem(item) toremove.add((infohash, index)) for infohash, index in toremove: self.window().downloads_list.takeTopLevelItem(index) del self.download_widgets[infohash] if QSystemTrayIcon.isSystemTrayAvailable(): self.window().tray_icon.setToolTip( "Down: %s, Up: %s" % (format_speed(total_download), format_speed(total_upload))) self.update_download_visibility() self.schedule_downloads_timer() # Update the top download management button if we have a row selected if len(self.window().downloads_list.selectedItems()) > 0: self.on_download_item_clicked()
def update(self, download_info): self.download_speed_label.setText( "Speed: d %s u %s" % (format_speed(download_info["speed_down"]), format_speed(download_info["speed_up"]))) self.prebuf_label.setText( "Pre-buffering progress: %s" % download_info["vod_prebuffering_progress_consec"]) self.peers_label.setText( "Peers: S%d L%d" % (download_info["num_seeds"], download_info["num_peers"]))
def on_received_downloads(self, downloads): if not downloads: return # This might happen when closing Tribler self.received_downloads.emit(downloads) self.downloads = downloads self.total_download = 0 self.total_upload = 0 download_infohashes = set() items = [] for download in downloads["downloads"]: if download["infohash"] in self.download_widgets: item = self.download_widgets[download["infohash"]] else: item = DownloadWidgetItem() self.download_widgets[download["infohash"]] = item items.append(item) item.update_with_download(download) # Update video player with download info video_infohash = self.window().video_player_page.active_infohash if video_infohash != "" and download["infohash"] == video_infohash: self.window().video_player_page.update_with_download_info(download) self.total_download += download["speed_down"] self.total_upload += download["speed_up"] download_infohashes.add(download["infohash"]) if self.window().download_details_widget.current_download is not None and \ self.window().download_details_widget.current_download["infohash"] == download["infohash"]: self.window().download_details_widget.current_download = download self.window().download_details_widget.update_pages() self.window().downloads_list.addTopLevelItems(items) for item in items: self.window().downloads_list.setItemWidget(item, 2, item.bar_container) # Check whether there are download that should be removed for infohash, item in self.download_widgets.items(): if infohash not in download_infohashes: index = self.window().downloads_list.indexOfTopLevelItem(item) self.window().downloads_list.takeTopLevelItem(index) del self.download_widgets[infohash] self.tray_set_tooltip("Down: %s, Up: %s" % (format_speed(self.total_download), format_speed(self.total_upload))) self.update_download_visibility() self.schedule_downloads_timer() # Update the top download management button if we have a row selected if len(self.window().downloads_list.selectedItems()) > 0: self.on_download_item_clicked() self.update_credit_mining_disk_usage()
def update_item(self): self.setText(0, self.download_info["name"]) if self.download_info["name"] == u"<old version of your channel>": itfont = QFont(self.font(0)) itfont.setItalic(True) self.setFont(0, itfont) else: self.font(0).setItalic(False) self.setText(1, format_size(float(self.download_info["size"]))) try: self.progress_slider.setValue( int(self.download_info["progress"] * 100)) except RuntimeError: self._logger.error( "The underlying GUI widget has already been removed.") if self.download_info["vod_mode"]: self.setText(3, "Streaming") else: self.setText(3, DLSTATUS_STRINGS[eval(self.download_info["status"])]) self.setText( 4, "%s (%s)" % (self.download_info["num_connected_seeds"], self.download_info["num_seeds"])) self.setText( 5, "%s (%s)" % (self.download_info["num_connected_peers"], self.download_info["num_peers"])) self.setText(6, format_speed(self.download_info["speed_down"])) self.setText(7, format_speed(self.download_info["speed_up"])) self.setText(8, "%.3f" % float(self.download_info["ratio"])) self.setText(9, "yes" if self.download_info["anon_download"] else "no") self.setText( 10, str(self.download_info["hops"]) if self.download_info["anon_download"] else "-") self.setText( 12, datetime.fromtimestamp(int( self.download_info["time_added"])).strftime('%Y-%m-%d %H:%M')) eta_text = "-" if self.get_raw_download_status() == DLSTATUS_DOWNLOADING: eta_text = duration_to_string(self.download_info["eta"]) self.setText(11, eta_text)
def create_widget_with_peer_info(self, peer): item = QTreeWidgetItem(self.window().download_peers_list) peer_name = "%s:%s" % (peer["ip"], peer["port"]) if peer['connection_type'] == 1: peer_name += ' [WebSeed]' elif peer['connection_type'] == 2: peer_name += ' [HTTP Seed]' elif peer['connection_type'] == 3: peer_name += ' [uTP]' state = "" if peer['optimistic']: state += "O," if peer['uinterested']: state += "UI," if peer['uchoked']: state += "UC," if peer['uhasqueries']: state += "UQ," if not peer['uflushed']: state += "UBL," if peer['dinterested']: state += "DI," if peer['dchoked']: state += "DC," if peer['snubbed']: state += "S," state += peer['direction'] item.setText(0, peer_name) item.setText(1, '%d%%' % (peer['completed'] * 100.0)) item.setText(2, format_speed(peer['downrate'])) item.setText(3, format_speed(peer['uprate'])) item.setText(4, state) item.setText(5, peer['extended_version'])
def on_received_downloads(self, downloads): if not downloads: return # This might happen when closing Tribler loading_widget_index = self.window().downloads_list.indexOfTopLevelItem(self.loading_message_widget) if loading_widget_index > -1: self.window().downloads_list.takeTopLevelItem(loading_widget_index) self.window().downloads_list.setSelectionMode(QAbstractItemView.ExtendedSelection) self.downloads = downloads self.total_download = 0 self.total_upload = 0 download_infohashes = set() items = [] for download in downloads["downloads"]: if download["infohash"] in self.download_widgets: item = self.download_widgets[download["infohash"]] else: item = DownloadWidgetItem() self.download_widgets[download["infohash"]] = item items.append(item) item.update_with_download(download) # Update video player with download info video_infohash = self.window().video_player_page.active_infohash if video_infohash != "" and download["infohash"] == video_infohash: self.window().video_player_page.update_with_download_info(download) self.total_download += download["speed_down"] self.total_upload += download["speed_up"] download_infohashes.add(download["infohash"]) if self.window().download_details_widget.current_download is not None and \ self.window().download_details_widget.current_download["infohash"] == download["infohash"]: self.window().download_details_widget.current_download = download self.window().download_details_widget.update_pages() self.window().downloads_list.addTopLevelItems(items) for item in items: self.window().downloads_list.setItemWidget(item, 2, item.bar_container) # Check whether there are download that should be removed for infohash, item in self.download_widgets.items(): if infohash not in download_infohashes: index = self.window().downloads_list.indexOfTopLevelItem(item) self.window().downloads_list.takeTopLevelItem(index) del self.download_widgets[infohash] self.window().tray_set_tooltip("Down: %s, Up: %s" % (format_speed(self.total_download), format_speed(self.total_upload))) self.update_download_visibility() self.schedule_downloads_timer() # Update the top download management button if we have a row selected if len(self.window().downloads_list.selectedItems()) > 0: self.on_download_item_clicked() self.update_credit_mining_disk_usage() self.received_downloads.emit(downloads)
def update(self, download_info): self.download_speed_label.setText("Speed: d %s u %s" % (format_speed(download_info["speed_down"]), format_speed(download_info["speed_up"]))) self.prebuf_label.setText("Pre-buffering progress: %s" % download_info["vod_prebuffering_progress_consec"]) self.peers_label.setText("Peers: S%d L%d" % (download_info["num_seeds"], download_info["num_peers"]))