def _queue_item(self, item, patterns=None): self.item_count += 1 self._queue.append("") term = Terminal() time_label = ( " on %s at %s" % (term.yellow(item.time.strftime("%a, %d %b %Y")), term.yellow(item.time.strftime("%H:%M"))) if item.time is not None else "" ) self._queue.append("%s. %s%s:" % (self.item_count, term.cyan(item.source), time_label)) indent = " " * (len(str(self.item_count)) + 2) if item.title is not None: self._queue.append( "%s%s" % (indent, self._highlight_pattern(item.title, patterns, term.bold_black_on_bright_yellow, term.bold)) ) if item.text is not None: (excerpt, clipped_left, clipped_right) = TextExcerpter.get_excerpt(item.text, 300, patterns) # Hashtag or mention excerpt = re.sub(r"(?<!\w)([#@])(\w+)", term.green("\\g<1>") + term.green("\\g<2>"), excerpt) # URL in one of the forms commonly encountered on the web excerpt = re.sub( r"(\w+://)?[\w.-]+\.[a-zA-Z]{2,4}(?(1)|/)[\w#?&=%/:.-]*", term.magenta_underline("\\g<0>"), excerpt ) excerpt = self._highlight_pattern(excerpt, patterns, term.black_on_yellow) self._queue.append( "%s%s%s%s" % (indent, "... " if clipped_left else "", excerpt, " ..." if clipped_right else "") ) if item.link is not None: self._queue.append( "%s%s" % ( indent, self._highlight_pattern(item.link, patterns, term.black_on_yellow_underline, term.blue_underline), ) )