[Pgp-tools-commit] r635 - trunk/keyart

Aaron Toponce atoponce-guest at moszumanska.debian.org
Tue Jun 3 17:23:11 UTC 2014


Author: atoponce-guest
Date: 2014-06-03 17:23:11 +0000 (Tue, 03 Jun 2014)
New Revision: 635

Modified:
   trunk/keyart/keyart
Log:
Fix outstanding bug where 'S' and 'E' coins were not getting printed in ANSI


Modified: trunk/keyart/keyart
===================================================================
--- trunk/keyart/keyart	2014-06-01 20:39:43 UTC (rev 634)
+++ trunk/keyart/keyart	2014-06-03 17:23:11 UTC (rev 635)
@@ -60,40 +60,7 @@
     pos = 104
     walk = [pos]
     visits = [0]*209
-    if args.ansi:
-        b1 = '\033[38;5;21m' # blue
-        b2 = '\033[38;5;33m'
-        b3 = '\033[38;5;45m'
-        b4 = '\033[38;5;50m'
-        g1 = '\033[38;5;48m'
-        g2 = '\033[38;5;46m' # green
-        g3 = '\033[38;5;118m'
-        y1 = '\033[38;5;190m'
-        y2 = '\033[38;5;226m' # yellow
-        y3 = '\033[38;5;220m'
-        o1 = '\033[38;5;214m' # orange
-        o2 = '\033[38;5;208m'
-        o3 = '\033[38;5;202m'
-        r1 = '\033[38;5;196m' # red
-        r2 = '\033[38;5;203m'
-        r3 = '\033[38;5;210m'
-        p1 = '\033[38;5;217m' # pink
-        p2 = '\033[38;5;224m'
-        reset = '\033[0m'
 
-        coins = [' ', '%s%s%s' % (b1,'.',reset), '%s%s%s' % (b2,'^',reset),
-                      '%s%s%s' % (b3,':',reset), '%s%s%s' % (b4,'l',reset),
-                      '%s%s%s' % (g1,'i',reset), '%s%s%s' % (g2,'?',reset),
-                      '%s%s%s' % (g3,'{',reset), '%s%s%s' % (y1,'f',reset),
-                      '%s%s%s' % (y2,'x',reset), '%s%s%s' % (y3,'X',reset),
-                      '%s%s%s' % (o1,'Z',reset), '%s%s%s' % (o2,'#',reset),
-                      '%s%s%s' % (o3,'M',reset), '%s%s%s' % (r1,'W',reset),
-                      '%s%s%s' % (r2,'&',reset), '%s%s%s' % (r3,'8',reset),
-                      '%s%s%s' % (p1,'%',reset), '%s%s%s' % (p2,'@',reset)]
-        markers = ['%s%s' % (reset,'S'), '%s%s' % (reset,'E')]
-    else:
-        coins = [' ','.','^',':','l','i','?','{','f','x','X','Z','#','M','W','&','8','%','@']
-
     zfill = str.zfill
 
     for c in key_fpr:
@@ -188,19 +155,64 @@
         art += '+-------------------+\n'
 
     for i, v in enumerate(visits):
-        coin += coins[v]
+        # Build up the art with the boundaries and newlines
         if i % 19 == 0:
-            coin = "|%s" % coin
-        #if i == 104:
-        #    coin = "%s%s" % (coin[:10], markers[0])
-        #if i == walk[len(walk)-1]:
-        #    coin = "%s%s" % (coin[:len(coin)-1], markers[1])
-        if i % 19 == 18:
-            art += "%s|\n" % coin
-            coin = ''
+            art += "|{}"
+        elif i % 19 == 18:
+            art += "{}|\n"
+        else:
+            art += '{}'
 
+        # Insert the 'coin' into the art at this position
+        if i == 104: # Starting position
+            art = art.format(_get_coin(v, args.ansi, token='S'))
+        elif i == walk[len(walk)-1]: # Ending position
+            art = art.format(_get_coin(v, args.ansi, token='E'))
+        else:
+            art = art.format(_get_coin(v, args.ansi))
+
     art += '+----[{0}]-----+'.format(key_fpr[-8:])
     return art
 
-key = args.file.name
-print draw_art(key)
+def _get_coin(num_of_hits, ansi_art=False, token=None):
+    '''
+    Returns the coin for this humber of hits. If ansi_art is enabled the coin
+    will be colorized with ansi codes. If token is not None, it will use that
+    token instead of the default (used for the 'S' and 'E', start end tokens)
+    '''
+    tokens = [' ','.','^',':','l','i','?','{','f','x','X','Z','#','M','W','&','8','%','@']
+    if ansi_art:
+        colors = [
+            '\033[38;5;21m', # blue
+            '\033[38;5;33m',
+            '\033[38;5;45m',
+            '\033[38;5;50m',
+            '\033[38;5;48m',
+            '\033[38;5;46m', # green
+            '\033[38;5;118m',
+            '\033[38;5;190m',
+            '\033[38;5;226m', # yellow
+            '\033[38;5;220m',
+            '\033[38;5;214m', # orange
+            '\033[38;5;208m',
+            '\033[38;5;202m',
+            '\033[38;5;196m', # red
+            '\033[38;5;203m',
+            '\033[38;5;210m',
+            '\033[38;5;217m', # pink
+            '\033[38;5;224m',
+        ]
+        reset = '\033[0m'
+    else:
+        colors = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+                  '', '', '', ]
+        reset = ''
+
+    color = colors[num_of_hits]
+    if not token:
+        token = tokens[num_of_hits]
+    return '{}{}{}'.format(color, token, reset)
+
+if __name__ == '__main__':
+    key = args.file.name
+    print draw_art(key)




More information about the Pgp-tools-commit mailing list