def update(self, episode): heading = episode.title subheading = _('from %s') % (episode.channel.title) details = self.details_fmt % ( util.format_date(episode.published), util.format_filesize(episode.file_size, digits=1) if episode.file_size > 0 else "-", episode.get_play_info_string()) self.define_colors() hyperlinks = [(0, None)] self.text_buffer.set_text('') self.text_buffer.insert_with_tags_by_name( self.text_buffer.get_end_iter(), heading, 'heading') self.text_buffer.insert_at_cursor('\n') self.text_buffer.insert_with_tags_by_name( self.text_buffer.get_end_iter(), subheading, 'subheading') self.text_buffer.insert_at_cursor('\n') self.text_buffer.insert_with_tags_by_name( self.text_buffer.get_end_iter(), details, 'details') self.text_buffer.insert_at_cursor('\n\n') for target, text in util.extract_hyperlinked_text( episode.description_html or episode.description): hyperlinks.append((self.text_buffer.get_char_count(), target)) if target: self.text_buffer.insert_with_tags_by_name( self.text_buffer.get_end_iter(), text, 'hyperlink') else: self.text_buffer.insert(self.text_buffer.get_end_iter(), text) hyperlinks.append((self.text_buffer.get_char_count(), None)) self.hyperlinks = [ (start, end, url) for (start, url), (end, _) in zip(hyperlinks, hyperlinks[1:]) if url ] self.text_buffer.place_cursor(self.text_buffer.get_start_iter())
def update(self, heading, subheading, episode): hyperlinks = [(0, None)] self.text_buffer.set_text('') self.text_buffer.insert_with_tags_by_name(self.text_buffer.get_end_iter(), heading, 'heading') self.text_buffer.insert_at_cursor('\n') self.text_buffer.insert_with_tags_by_name(self.text_buffer.get_end_iter(), subheading, 'subheading') self.text_buffer.insert_at_cursor('\n\n') for target, text in util.extract_hyperlinked_text(episode.description_html or episode.description): hyperlinks.append((self.text_buffer.get_char_count(), target)) if target: self.text_buffer.insert_with_tags_by_name( self.text_buffer.get_end_iter(), text, 'hyperlink') else: self.text_buffer.insert( self.text_buffer.get_end_iter(), text) hyperlinks.append((self.text_buffer.get_char_count(), None)) self.hyperlinks = [(start, end, url) for (start, url), (end, _) in zip(hyperlinks, hyperlinks[1:]) if url] self.text_buffer.place_cursor(self.text_buffer.get_start_iter())
def update(self, heading, subheading, episode): self.define_colors() hyperlinks = [(0, None)] self.text_buffer.set_text('') self.text_buffer.insert_with_tags_by_name(self.text_buffer.get_end_iter(), heading, 'heading') self.text_buffer.insert_at_cursor('\n') self.text_buffer.insert_with_tags_by_name(self.text_buffer.get_end_iter(), subheading, 'subheading') self.text_buffer.insert_at_cursor('\n\n') for target, text in util.extract_hyperlinked_text(episode.description_html or episode.description): hyperlinks.append((self.text_buffer.get_char_count(), target)) if target: self.text_buffer.insert_with_tags_by_name( self.text_buffer.get_end_iter(), text, 'hyperlink') else: self.text_buffer.insert( self.text_buffer.get_end_iter(), text) hyperlinks.append((self.text_buffer.get_char_count(), None)) self.hyperlinks = [(start, end, url) for (start, url), (end, _) in zip(hyperlinks, hyperlinks[1:]) if url] self.text_buffer.place_cursor(self.text_buffer.get_start_iter())
def update(self, episode): self.scrolled_window.get_vadjustment().set_value(0) heading = episode.title subheading = _('from %s') % (episode.channel.title) details = self.details_fmt % { 'date': util.format_date(episode.published), 'size': util.format_filesize(episode.file_size, digits=1) if episode.file_size > 0 else "-", 'duration': episode.get_play_info_string()} self.define_colors() hyperlinks = [(0, None)] self.text_buffer.set_text('') if episode.link: hyperlinks.append((self.text_buffer.get_char_count(), episode.link)) self.text_buffer.insert_with_tags_by_name(self.text_buffer.get_end_iter(), heading, 'heading') if episode.link: hyperlinks.append((self.text_buffer.get_char_count(), None)) self.text_buffer.insert_at_cursor('\n') self.text_buffer.insert_with_tags_by_name(self.text_buffer.get_end_iter(), subheading, 'subheading') self.text_buffer.insert_at_cursor('\n') self.text_buffer.insert_with_tags_by_name(self.text_buffer.get_end_iter(), details, 'details') self.text_buffer.insert_at_cursor('\n\n') for target, text in util.extract_hyperlinked_text(episode.html_description()): hyperlinks.append((self.text_buffer.get_char_count(), target)) if target: self.text_buffer.insert_with_tags_by_name( self.text_buffer.get_end_iter(), text, 'hyperlink') else: self.text_buffer.insert( self.text_buffer.get_end_iter(), text) hyperlinks.append((self.text_buffer.get_char_count(), None)) self.hyperlinks = [(start, end, url) for (start, url), (end, _) in zip(hyperlinks, hyperlinks[1:]) if url] self.text_buffer.place_cursor(self.text_buffer.get_start_iter()) if self.populate_popup_id is not None: self.text_view.disconnect(self.populate_popup_id) self.populate_popup_id = self.text_view.connect('populate-popup', self.on_populate_popup) self.episode = episode