def _calc_status_text(self): """Calculate the text/color for our status line. :returns: (text, color) tuple """ if self.info.downloaded: if self.info.is_playable: if not self.info.video_watched: return (_('Unplayed'), UNPLAYED_COLOR) elif self.info.expiration_date: text = displaytext.expiration_date_short( self.info.expiration_date) return (text, EXPIRING_TEXT_COLOR) elif (self.info.download_info and self.info.download_info.rate == 0): if self.info.download_info.state == 'paused': return (_('paused'), DOWNLOADING_COLOR) elif self.info.download_info.state == 'pending': return (_('queued'), DOWNLOADING_COLOR) elif self.info.download_info.state == 'failed': return (self.info.download_info.short_reason_failed, ERROR_COLOR) else: return (self.info.download_info.startup_activity, DOWNLOADING_COLOR) elif not self.info.item_viewed: return (_('Newly Available'), AVAILABLE_COLOR) return ('', self.default_text_color)