output gay colored results of searches
This commit is contained in:
parent
9d46a62d6c
commit
bbbca2214b
1 changed files with 22 additions and 8 deletions
|
|
@ -18,14 +18,18 @@
|
||||||
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
|
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import subprocess
|
import subprocess
|
||||||
if sys.platform == 'win32':
|
if sys.platform == 'win32':
|
||||||
import WConio
|
import WConio
|
||||||
|
|
||||||
|
try:
|
||||||
|
from termcolor import colored
|
||||||
|
except ImportError:
|
||||||
|
def colored(s, *args, **kwargs):
|
||||||
|
return s
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import tty
|
import tty
|
||||||
import termios
|
import termios
|
||||||
|
|
@ -81,6 +85,14 @@ class IFormatter(object):
|
||||||
BOLD = property(get_bold)
|
BOLD = property(get_bold)
|
||||||
NC = property(get_nc)
|
NC = property(get_nc)
|
||||||
|
|
||||||
|
def colored(self, string, color, attrs=None, on_color=None):
|
||||||
|
if self.outfile != sys.stdout or not (os.isatty(self.outfile.fileno())):
|
||||||
|
return string
|
||||||
|
|
||||||
|
if isinstance(attrs, basestring):
|
||||||
|
attrs = [attrs]
|
||||||
|
return colored(string, color, on_color=on_color, attrs=attrs)
|
||||||
|
|
||||||
def __init__(self, display_keys=True, display_header=True, outfile=sys.stdout):
|
def __init__(self, display_keys=True, display_header=True, outfile=sys.stdout):
|
||||||
self.display_keys = display_keys
|
self.display_keys = display_keys
|
||||||
self.display_header = display_header
|
self.display_header = display_header
|
||||||
|
|
@ -199,16 +211,18 @@ class PrettyFormatter(IFormatter):
|
||||||
title = self.get_title(obj)
|
title = self.get_title(obj)
|
||||||
desc = self.get_description(obj)
|
desc = self.get_description(obj)
|
||||||
|
|
||||||
if desc is None:
|
|
||||||
title = '%s%s%s' % (self.NC, title, self.BOLD)
|
|
||||||
|
|
||||||
if alias is not None:
|
if alias is not None:
|
||||||
result = u'%s* (%s) %s (%s)%s' % (self.BOLD, alias, title, obj.backend, self.NC)
|
result = u'%s %s %s (%s)' % (self.colored('%2s' % alias, 'red', 'bold'),
|
||||||
|
self.colored(u'—', 'cyan', 'bold'),
|
||||||
|
self.colored(title, 'yellow', 'bold'),
|
||||||
|
self.colored(obj.backend, 'blue', 'bold'))
|
||||||
else:
|
else:
|
||||||
result = u'%s* (%s) %s%s' % (self.BOLD, obj.fullid, title, self.NC)
|
result = u'%s %s %s' % (self.colored(obj.fullid, 'red', 'bold'),
|
||||||
|
self.colored(u'—', 'cyan', 'bold'),
|
||||||
|
self.colored(title, 'yellow', 'bold'))
|
||||||
|
|
||||||
if desc is not None:
|
if desc is not None:
|
||||||
result += u'\n\t%s' % desc
|
result += u'\n\t%s' % self.colored(desc, 'white')
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue