#!/usr/bin/env python3
# _*_ coding=utf-8 _*_
import argparse
import signal
import sys
from html.parser import HTMLParser
# BASH_STR = 'printf "\x1b[38;5;XXXmcolourXXX YYY \x1b[0m\t";'
BASH_STR = "\x1b[38;5;XXXmcolourXXX YYY \x1b[0m\t"
BASH_ANSI_STR = "\\x1b[38;5;XXXm"
COLO_LIST = []
LJUST_CONST = 4
COLORS = """
0 | Black | #000000 | rgb(0,0,0) | hsl(0,0%,0%) |
1 | Maroon | #800000 | rgb(128,0,0) | hsl(0,100%,25%) |
2 | Green | #008000 | rgb(0,128,0) | hsl(120,100%,25%) |
3 | Olive | #808000 | rgb(128,128,0) | hsl(60,100%,25%) |
4 | Navy | #000080 | rgb(0,0,128) | hsl(240,100%,25%) |
5 | Purple | #800080 | rgb(128,0,128) | hsl(300,100%,25%) |
6 | Teal | #008080 | rgb(0,128,128) | hsl(180,100%,25%) |
7 | Silver | #c0c0c0 | rgb(192,192,192) | hsl(0,0%,75%) |
8 | Grey | #808080 | rgb(128,128,128) | hsl(0,0%,50%) |
9 | Red | #ff0000 | rgb(255,0,0) | hsl(0,100%,50%) |
10 | Lime | #00ff00 | rgb(0,255,0) | hsl(120,100%,50%) |
11 | Yellow | #ffff00 | rgb(255,255,0) | hsl(60,100%,50%) |
12 | Blue | #0000ff | rgb(0,0,255) | hsl(240,100%,50%) |
13 | Fuchsia | #ff00ff | rgb(255,0,255) | hsl(300,100%,50%) |
14 | Aqua | #00ffff | rgb(0,255,255) | hsl(180,100%,50%) |
15 | White | #ffffff | rgb(255,255,255) | hsl(0,0%,100%) |
16 | Grey0 | #000000 | rgb(0,0,0) | hsl(0,0%,0%) |
17 | NavyBlue | #00005f | rgb(0,0,95) | hsl(240,100%,18%) |
18 | DarkBlue | #000087 | rgb(0,0,135) | hsl(240,100%,26%) |
19 | Blue3 | #0000af | rgb(0,0,175) | hsl(240,100%,34%) |
20 | Blue3 | #0000d7 | rgb(0,0,215) | hsl(240,100%,42%) |
21 | Blue1 | #0000ff | rgb(0,0,255) | hsl(240,100%,50%) |
22 | DarkGreen | #005f00 | rgb(0,95,0) | hsl(120,100%,18%) |
23 | DeepSkyBlue4 | #005f5f | rgb(0,95,95) | hsl(180,100%,18%) |
24 | DeepSkyBlue4 | #005f87 | rgb(0,95,135) | hsl(97,100%,26%) |
25 | DeepSkyBlue4 | #005faf | rgb(0,95,175) | hsl(07,100%,34%) |
26 | DodgerBlue3 | #005fd7 | rgb(0,95,215) | hsl(13,100%,42%) |
27 | DodgerBlue2 | #005fff | rgb(0,95,255) | hsl(17,100%,50%) |
28 | Green4 | #008700 | rgb(0,135,0) | hsl(120,100%,26%) |
29 | SpringGreen4 | #00875f | rgb(0,135,95) | hsl(62,100%,26%) |
30 | Turquoise4 | #008787 | rgb(0,135,135) | hsl(180,100%,26%) |
31 | DeepSkyBlue3 | #0087af | rgb(0,135,175) | hsl(93,100%,34%) |
32 | DeepSkyBlue3 | #0087d7 | rgb(0,135,215) | hsl(02,100%,42%) |
33 | DodgerBlue1 | #0087ff | rgb(0,135,255) | hsl(08,100%,50%) |
34 | Green3 | #00af00 | rgb(0,175,0) | hsl(120,100%,34%) |
35 | SpringGreen3 | #00af5f | rgb(0,175,95) | hsl(52,100%,34%) |
36 | DarkCyan | #00af87 | rgb(0,175,135) | hsl(66,100%,34%) |
37 | LightSeaGreen | #00afaf | rgb(0,175,175) | hsl(180,100%,34%) |
38 | DeepSkyBlue2 | #00afd7 | rgb(0,175,215) | hsl(91,100%,42%) |
39 | DeepSkyBlue1 | #00afff | rgb(0,175,255) | hsl(98,100%,50%) |
40 | Green3 | #00d700 | rgb(0,215,0) | hsl(120,100%,42%) |
41 | SpringGreen3 | #00d75f | rgb(0,215,95) | hsl(46,100%,42%) |
42 | SpringGreen2 | #00d787 | rgb(0,215,135) | hsl(57,100%,42%) |
43 | Cyan3 | #00d7af | rgb(0,215,175) | hsl(68,100%,42%) |
44 | DarkTurquoise | #00d7d7 | rgb(0,215,215) | hsl(180,100%,42%) |
45 | Turquoise2 | #00d7ff | rgb(0,215,255) | hsl(89,100%,50%) |
46 | Green1 | #00ff00 | rgb(0,255,0) | hsl(120,100%,50%) |
47 | SpringGreen2 | #00ff5f | rgb(0,255,95) | hsl(42,100%,50%) |
48 | SpringGreen1 | #00ff87 | rgb(0,255,135) | hsl(51,100%,50%) |
49 | MediumSpringGreen | #00ffaf | rgb(0,255,175) | hsl(61,100%,50%) |
50 | Cyan2 | #00ffd7 | rgb(0,255,215) | hsl(70,100%,50%) |
51 | Cyan1 | #00ffff | rgb(0,255,255) | hsl(180,100%,50%) |
52 | DarkRed | #5f0000 | rgb(95,0,0) | hsl(0,100%,18%) |
53 | DeepPink4 | #5f005f | rgb(95,0,95) | hsl(300,100%,18%) |
54 | Purple4 | #5f0087 | rgb(95,0,135) | hsl(82,100%,26%) |
55 | Purple4 | #5f00af | rgb(95,0,175) | hsl(72,100%,34%) |
56 | Purple3 | #5f00d7 | rgb(95,0,215) | hsl(66,100%,42%) |
57 | BlueViolet | #5f00ff | rgb(95,0,255) | hsl(62,100%,50%) |
58 | Orange4 | #5f5f00 | rgb(95,95,0) | hsl(60,100%,18%) |
59 | Grey37 | #5f5f5f | rgb(95,95,95) | hsl(0,0%,37%) |
60 | MediumPurple4 | #5f5f87 | rgb(95,95,135) | hsl(240,17%,45%) |
61 | SlateBlue3 | #5f5faf | rgb(95,95,175) | hsl(240,33%,52%) |
62 | SlateBlue3 | #5f5fd7 | rgb(95,95,215) | hsl(240,60%,60%) |
63 | RoyalBlue1 | #5f5fff | rgb(95,95,255) | hsl(240,100%,68%) |
64 | Chartreuse4 | #5f8700 | rgb(95,135,0) | hsl(7,100%,26%) |
65 | DarkSeaGreen4 | #5f875f | rgb(95,135,95) | hsl(120,17%,45%) |
66 | PaleTurquoise4 | #5f8787 | rgb(95,135,135) | hsl(180,17%,45%) |
67 | SteelBlue | #5f87af | rgb(95,135,175) | hsl(210,33%,52%) |
68 | SteelBlue3 | #5f87d7 | rgb(95,135,215) | hsl(220,60%,60%) |
69 | CornflowerBlue | #5f87ff | rgb(95,135,255) | hsl(225,100%,68%) |
70 | Chartreuse3 | #5faf00 | rgb(95,175,0) | hsl(7,100%,34%) |
71 | DarkSeaGreen4 | #5faf5f | rgb(95,175,95) | hsl(120,33%,52%) |
72 | CadetBlue | #5faf87 | rgb(95,175,135) | hsl(150,33%,52%) |
73 | CadetBlue | #5fafaf | rgb(95,175,175) | hsl(180,33%,52%) |
74 | SkyBlue3 | #5fafd7 | rgb(95,175,215) | hsl(200,60%,60%) |
75 | SteelBlue1 | #5fafff | rgb(95,175,255) | hsl(210,100%,68%) |
76 | Chartreuse3 | #5fd700 | rgb(95,215,0) | hsl(3,100%,42%) |
77 | PaleGreen3 | #5fd75f | rgb(95,215,95) | hsl(120,60%,60%) |
78 | SeaGreen3 | #5fd787 | rgb(95,215,135) | hsl(140,60%,60%) |
79 | Aquamarine3 | #5fd7af | rgb(95,215,175) | hsl(160,60%,60%) |
80 | MediumTurquoise | #5fd7d7 | rgb(95,215,215) | hsl(180,60%,60%) |
81 | SteelBlue1 | #5fd7ff | rgb(95,215,255) | hsl(195,100%,68%) |
82 | Chartreuse2 | #5fff00 | rgb(95,255,0) | hsl(7,100%,50%) |
83 | SeaGreen2 | #5fff5f | rgb(95,255,95) | hsl(120,100%,68%) |
84 | SeaGreen1 | #5fff87 | rgb(95,255,135) | hsl(135,100%,68%) |
85 | SeaGreen1 | #5fffaf | rgb(95,255,175) | hsl(150,100%,68%) |
86 | Aquamarine1 | #5fffd7 | rgb(95,255,215) | hsl(165,100%,68%) |
87 | DarkSlateGray2 | #5fffff | rgb(95,255,255) | hsl(180,100%,68%) |
88 | DarkRed | #870000 | rgb(135,0,0) | hsl(0,100%,26%) |
89 | DeepPink4 | #87005f | rgb(135,0,95) | hsl(17,100%,26%) |
90 | DarkMagenta | #870087 | rgb(135,0,135) | hsl(300,100%,26%) |
91 | DarkMagenta | #8700af | rgb(135,0,175) | hsl(86,100%,34%) |
92 | DarkViolet | #8700d7 | rgb(135,0,215) | hsl(77,100%,42%) |
93 | Purple | #8700ff | rgb(135,0,255) | hsl(71,100%,50%) |
94 | Orange4 | #875f00 | rgb(135,95,0) | hsl(2,100%,26%) |
95 | LightPink4 | #875f5f | rgb(135,95,95) | hsl(0,17%,45%) |
96 | Plum4 | #875f87 | rgb(135,95,135) | hsl(300,17%,45%) |
97 | MediumPurple3 | #875faf | rgb(135,95,175) | hsl(270,33%,52%) |
98 | MediumPurple3 | #875fd7 | rgb(135,95,215) | hsl(260,60%,60%) |
99 | SlateBlue1 | #875fff | rgb(135,95,255) | hsl(255,100%,68%) |
100 | Yellow4 | #878700 | rgb(135,135,0) | hsl(60,100%,26%) |
101 | Wheat4 | #87875f | rgb(135,135,95) | hsl(60,17%,45%) |
102 | Grey53 | #878787 | rgb(135,135,135) | hsl(0,0%,52%) |
103 | LightSlateGrey | #8787af | rgb(135,135,175) | hsl(240,20%,60%) |
104 | MediumPurple | #8787d7 | rgb(135,135,215) | hsl(240,50%,68%) |
105 | LightSlateBlue | #8787ff | rgb(135,135,255) | hsl(240,100%,76%) |
106 | Yellow4 | #87af00 | rgb(135,175,0) | hsl(3,100%,34%) |
107 | DarkOliveGreen3 | #87af5f | rgb(135,175,95) | hsl(90,33%,52%) |
108 | DarkSeaGreen | #87af87 | rgb(135,175,135) | hsl(120,20%,60%) |
109 | LightSkyBlue3 | #87afaf | rgb(135,175,175) | hsl(180,20%,60%) |
110 | LightSkyBlue3 | #87afd7 | rgb(135,175,215) | hsl(210,50%,68%) |
111 | SkyBlue2 | #87afff | rgb(135,175,255) | hsl(220,100%,76%) |
112 | Chartreuse2 | #87d700 | rgb(135,215,0) | hsl(2,100%,42%) |
113 | DarkOliveGreen3 | #87d75f | rgb(135,215,95) | hsl(100,60%,60%) |
114 | PaleGreen3 | #87d787 | rgb(135,215,135) | hsl(120,50%,68%) |
115 | DarkSeaGreen3 | #87d7af | rgb(135,215,175) | hsl(150,50%,68%) |
116 | DarkSlateGray3 | #87d7d7 | rgb(135,215,215) | hsl(180,50%,68%) |
117 | SkyBlue1 | #87d7ff | rgb(135,215,255) | hsl(200,100%,76%) |
118 | Chartreuse1 | #87ff00 | rgb(135,255,0) | hsl(8,100%,50%) |
119 | LightGreen | #87ff5f | rgb(135,255,95) | hsl(105,100%,68%) |
120 | LightGreen | #87ff87 | rgb(135,255,135) | hsl(120,100%,76%) |
121 | PaleGreen1 | #87ffaf | rgb(135,255,175) | hsl(140,100%,76%) |
122 | Aquamarine1 | #87ffd7 | rgb(135,255,215) | hsl(160,100%,76%) |
123 | DarkSlateGray1 | #87ffff | rgb(135,255,255) | hsl(180,100%,76%) |
124 | Red3 | #af0000 | rgb(175,0,0) | hsl(0,100%,34%) |
125 | DeepPink4 | #af005f | rgb(175,0,95) | hsl(27,100%,34%) |
126 | MediumVioletRed | #af0087 | rgb(175,0,135) | hsl(13,100%,34%) |
127 | Magenta3 | #af00af | rgb(175,0,175) | hsl(300,100%,34%) |
128 | DarkViolet | #af00d7 | rgb(175,0,215) | hsl(88,100%,42%) |
129 | Purple | #af00ff | rgb(175,0,255) | hsl(81,100%,50%) |
130 | DarkOrange3 | #af5f00 | rgb(175,95,0) | hsl(2,100%,34%) |
131 | IndianRed | #af5f5f | rgb(175,95,95) | hsl(0,33%,52%) |
132 | HotPink3 | #af5f87 | rgb(175,95,135) | hsl(330,33%,52%) |
133 | MediumOrchid3 | #af5faf | rgb(175,95,175) | hsl(300,33%,52%) |
134 | MediumOrchid | #af5fd7 | rgb(175,95,215) | hsl(280,60%,60%) |
135 | MediumPurple2 | #af5fff | rgb(175,95,255) | hsl(270,100%,68%) |
136 | DarkGoldenrod | #af8700 | rgb(175,135,0) | hsl(6,100%,34%) |
137 | LightSalmon3 | #af875f | rgb(175,135,95) | hsl(30,33%,52%) |
138 | RosyBrown | #af8787 | rgb(175,135,135) | hsl(0,20%,60%) |
139 | Grey63 | #af87af | rgb(175,135,175) | hsl(300,20%,60%) |
140 | MediumPurple2 | #af87d7 | rgb(175,135,215) | hsl(270,50%,68%) |
141 | MediumPurple1 | #af87ff | rgb(175,135,255) | hsl(260,100%,76%) |
142 | Gold3 | #afaf00 | rgb(175,175,0) | hsl(60,100%,34%) |
143 | DarkKhaki | #afaf5f | rgb(175,175,95) | hsl(60,33%,52%) |
144 | NavajoWhite3 | #afaf87 | rgb(175,175,135) | hsl(60,20%,60%) |
145 | Grey69 | #afafaf | rgb(175,175,175) | hsl(0,0%,68%) |
146 | LightSteelBlue3 | #afafd7 | rgb(175,175,215) | hsl(240,33%,76%) |
147 | LightSteelBlue | #afafff | rgb(175,175,255) | hsl(240,100%,84%) |
148 | Yellow3 | #afd700 | rgb(175,215,0) | hsl(1,100%,42%) |
149 | DarkOliveGreen3 | #afd75f | rgb(175,215,95) | hsl(80,60%,60%) |
150 | DarkSeaGreen3 | #afd787 | rgb(175,215,135) | hsl(90,50%,68%) |
151 | DarkSeaGreen2 | #afd7af | rgb(175,215,175) | hsl(120,33%,76%) |
152 | LightCyan3 | #afd7d7 | rgb(175,215,215) | hsl(180,33%,76%) |
153 | LightSkyBlue1 | #afd7ff | rgb(175,215,255) | hsl(210,100%,84%) |
154 | GreenYellow | #afff00 | rgb(175,255,0) | hsl(8,100%,50%) |
155 | DarkOliveGreen2 | #afff5f | rgb(175,255,95) | hsl(90,100%,68%) |
156 | PaleGreen1 | #afff87 | rgb(175,255,135) | hsl(100,100%,76%) |
157 | DarkSeaGreen2 | #afffaf | rgb(175,255,175) | hsl(120,100%,84%) |
158 | DarkSeaGreen1 | #afffd7 | rgb(175,255,215) | hsl(150,100%,84%) |
159 | PaleTurquoise1 | #afffff | rgb(175,255,255) | hsl(180,100%,84%) |
160 | Red3 | #d70000 | rgb(215,0,0) | hsl(0,100%,42%) |
161 | DeepPink3 | #d7005f | rgb(215,0,95) | hsl(33,100%,42%) |
162 | DeepPink3 | #d70087 | rgb(215,0,135) | hsl(22,100%,42%) |
163 | Magenta3 | #d700af | rgb(215,0,175) | hsl(11,100%,42%) |
164 | Magenta3 | #d700d7 | rgb(215,0,215) | hsl(300,100%,42%) |
165 | Magenta2 | #d700ff | rgb(215,0,255) | hsl(90,100%,50%) |
166 | DarkOrange3 | #d75f00 | rgb(215,95,0) | hsl(6,100%,42%) |
167 | IndianRed | #d75f5f | rgb(215,95,95) | hsl(0,60%,60%) |
168 | HotPink3 | #d75f87 | rgb(215,95,135) | hsl(340,60%,60%) |
169 | HotPink2 | #d75faf | rgb(215,95,175) | hsl(320,60%,60%) |
170 | Orchid | #d75fd7 | rgb(215,95,215) | hsl(300,60%,60%) |
171 | MediumOrchid1 | #d75fff | rgb(215,95,255) | hsl(285,100%,68%) |
172 | Orange3 | #d78700 | rgb(215,135,0) | hsl(7,100%,42%) |
173 | LightSalmon3 | #d7875f | rgb(215,135,95) | hsl(20,60%,60%) |
174 | LightPink3 | #d78787 | rgb(215,135,135) | hsl(0,50%,68%) |
175 | Pink3 | #d787af | rgb(215,135,175) | hsl(330,50%,68%) |
176 | Plum3 | #d787d7 | rgb(215,135,215) | hsl(300,50%,68%) |
177 | Violet | #d787ff | rgb(215,135,255) | hsl(280,100%,76%) |
178 | Gold3 | #d7af00 | rgb(215,175,0) | hsl(8,100%,42%) |
179 | LightGoldenrod3 | #d7af5f | rgb(215,175,95) | hsl(40,60%,60%) |
180 | Tan | #d7af87 | rgb(215,175,135) | hsl(30,50%,68%) |
181 | MistyRose3 | #d7afaf | rgb(215,175,175) | hsl(0,33%,76%) |
182 | Thistle3 | #d7afd7 | rgb(215,175,215) | hsl(300,33%,76%) |
183 | Plum2 | #d7afff | rgb(215,175,255) | hsl(270,100%,84%) |
184 | Yellow3 | #d7d700 | rgb(215,215,0) | hsl(60,100%,42%) |
185 | Khaki3 | #d7d75f | rgb(215,215,95) | hsl(60,60%,60%) |
186 | LightGoldenrod2 | #d7d787 | rgb(215,215,135) | hsl(60,50%,68%) |
187 | LightYellow3 | #d7d7af | rgb(215,215,175) | hsl(60,33%,76%) |
188 | Grey84 | #d7d7d7 | rgb(215,215,215) | hsl(0,0%,84%) |
189 | LightSteelBlue1 | #d7d7ff | rgb(215,215,255) | hsl(240,100%,92%) |
190 | Yellow2 | #d7ff00 | rgb(215,255,0) | hsl(9,100%,50%) |
191 | DarkOliveGreen1 | #d7ff5f | rgb(215,255,95) | hsl(75,100%,68%) |
192 | DarkOliveGreen1 | #d7ff87 | rgb(215,255,135) | hsl(80,100%,76%) |
193 | DarkSeaGreen1 | #d7ffaf | rgb(215,255,175) | hsl(90,100%,84%) |
194 | Honeydew2 | #d7ffd7 | rgb(215,255,215) | hsl(120,100%,92%) |
195 | LightCyan1 | #d7ffff | rgb(215,255,255) | hsl(180,100%,92%) |
196 | Red1 | #ff0000 | rgb(255,0,0) | hsl(0,100%,50%) |
197 | DeepPink2 | #ff005f | rgb(255,0,95) | hsl(37,100%,50%) |
198 | DeepPink1 | #ff0087 | rgb(255,0,135) | hsl(28,100%,50%) |
199 | DeepPink1 | #ff00af | rgb(255,0,175) | hsl(18,100%,50%) |
200 | Magenta2 | #ff00d7 | rgb(255,0,215) | hsl(09,100%,50%) |
201 | Magenta1 | #ff00ff | rgb(255,0,255) | hsl(300,100%,50%) |
202 | OrangeRed1 | #ff5f00 | rgb(255,95,0) | hsl(2,100%,50%) |
203 | IndianRed1 | #ff5f5f | rgb(255,95,95) | hsl(0,100%,68%) |
204 | IndianRed1 | #ff5f87 | rgb(255,95,135) | hsl(345,100%,68%) |
205 | HotPink | #ff5faf | rgb(255,95,175) | hsl(330,100%,68%) |
206 | HotPink | #ff5fd7 | rgb(255,95,215) | hsl(315,100%,68%) |
207 | MediumOrchid1 | #ff5fff | rgb(255,95,255) | hsl(300,100%,68%) |
208 | DarkOrange | #ff8700 | rgb(255,135,0) | hsl(1,100%,50%) |
209 | Salmon1 | #ff875f | rgb(255,135,95) | hsl(15,100%,68%) |
210 | LightCoral | #ff8787 | rgb(255,135,135) | hsl(0,100%,76%) |
211 | PaleVioletRed1 | #ff87af | rgb(255,135,175) | hsl(340,100%,76%) |
212 | Orchid2 | #ff87d7 | rgb(255,135,215) | hsl(320,100%,76%) |
213 | Orchid1 | #ff87ff | rgb(255,135,255) | hsl(300,100%,76%) |
214 | Orange1 | #ffaf00 | rgb(255,175,0) | hsl(1,100%,50%) |
215 | SandyBrown | #ffaf5f | rgb(255,175,95) | hsl(30,100%,68%) |
216 | LightSalmon1 | #ffaf87 | rgb(255,175,135) | hsl(20,100%,76%) |
217 | LightPink1 | #ffafaf | rgb(255,175,175) | hsl(0,100%,84%) |
218 | Pink1 | #ffafd7 | rgb(255,175,215) | hsl(330,100%,84%) |
219 | Plum1 | #ffafff | rgb(255,175,255) | hsl(300,100%,84%) |
220 | Gold1 | #ffd700 | rgb(255,215,0) | hsl(0,100%,50%) |
221 | LightGoldenrod2 | #ffd75f | rgb(255,215,95) | hsl(45,100%,68%) |
222 | LightGoldenrod2 | #ffd787 | rgb(255,215,135) | hsl(40,100%,76%) |
223 | NavajoWhite1 | #ffd7af | rgb(255,215,175) | hsl(30,100%,84%) |
224 | MistyRose1 | #ffd7d7 | rgb(255,215,215) | hsl(0,100%,92%) |
225 | Thistle1 | #ffd7ff | rgb(255,215,255) | hsl(300,100%,92%) |
226 | Yellow1 | #ffff00 | rgb(255,255,0) | hsl(60,100%,50%) |
227 | LightGoldenrod1 | #ffff5f | rgb(255,255,95) | hsl(60,100%,68%) |
228 | Khaki1 | #ffff87 | rgb(255,255,135) | hsl(60,100%,76%) |
229 | Wheat1 | #ffffaf | rgb(255,255,175) | hsl(60,100%,84%) |
230 | Cornsilk1 | #ffffd7 | rgb(255,255,215) | hsl(60,100%,92%) |
231 | Grey100 | #ffffff | rgb(255,255,255) | hsl(0,0%,100%) |
232 | Grey3 | #080808 | rgb(8,8,8) | hsl(0,0%,3%) |
233 | Grey7 | #121212 | rgb(18,18,18) | hsl(0,0%,7%) |
234 | Grey11 | #1c1c1c | rgb(28,28,28) | hsl(0,0%,10%) |
235 | Grey15 | #262626 | rgb(38,38,38) | hsl(0,0%,14%) |
236 | Grey19 | #303030 | rgb(48,48,48) | hsl(0,0%,18%) |
237 | Grey23 | #3a3a3a | rgb(58,58,58) | hsl(0,0%,22%) |
238 | Grey27 | #444444 | rgb(68,68,68) | hsl(0,0%,26%) |
239 | Grey30 | #4e4e4e | rgb(78,78,78) | hsl(0,0%,30%) |
240 | Grey35 | #585858 | rgb(88,88,88) | hsl(0,0%,34%) |
241 | Grey39 | #626262 | rgb(98,98,98) | hsl(0,0%,37%) |
242 | Grey42 | #6c6c6c | rgb(108,108,108) | hsl(0,0%,40%) |
243 | Grey46 | #767676 | rgb(118,118,118) | hsl(0,0%,46%) |
244 | Grey50 | #808080 | rgb(128,128,128) | hsl(0,0%,50%) |
245 | Grey54 | #8a8a8a | rgb(138,138,138) | hsl(0,0%,54%) |
246 | Grey58 | #949494 | rgb(148,148,148) | hsl(0,0%,58%) |
247 | Grey62 | #9e9e9e | rgb(158,158,158) | hsl(0,0%,61%) |
248 | Grey66 | #a8a8a8 | rgb(168,168,168) | hsl(0,0%,65%) |
249 | Grey70 | #b2b2b2 | rgb(178,178,178) | hsl(0,0%,69%) |
250 | Grey74 | #bcbcbc | rgb(188,188,188) | hsl(0,0%,73%) |
251 | Grey78 | #c6c6c6 | rgb(198,198,198) | hsl(0,0%,77%) |
252 | Grey82 | #d0d0d0 | rgb(208,208,208) | hsl(0,0%,81%) |
253 | Grey85 | #dadada | rgb(218,218,218) | hsl(0,0%,85%) |
254 | Grey89 | #e4e4e4 | rgb(228,228,228) | hsl(0,0%,89%) |
255 | Grey93 | #eeeeee | rgb(238,238,238) | hsl(0,0%,93%) |
"""
def SigHandler_SIGINT(signum, frame):
print()
sys.exit(0)
class Argparser(object):
def __init__(self):
parser = argparse.ArgumentParser()
parser.add_argument(
"--ansi", action="store_true", help="bool", default=False
)
parser.add_argument(
"--hsi", action="store_true", help="bool", default=False
)
parser.add_argument(
"--rgb", action="store_true", help="bool", default=False
)
parser.add_argument(
"--number", action="store_true", help="bool", default=False
)
parser.add_argument(
"--name", action="store_true", help="bool", default=False
)
parser.add_argument(
"--hex", action="store_true", help="bool", default=False
)
parser.add_argument(
"--dbg", action="store_true", help="debug", default=False
)
self.args = parser.parse_args()
class ColoParser(HTMLParser):
def handle_data(self, data):
if data == "\n":
pass
else:
COLO_LIST.append(data)
def main():
argparser = Argparser()
signal.signal(signal.SIGINT, SigHandler_SIGINT)
PRINT_LIST = str()
lines = COLORS.split("\n")
for line in lines:
parser = ColoParser()
parser.feed(line)
NUMBER_COLO_LIST = [
COLO_LIST[j] for j in range(0, len(COLO_LIST)) if ((j + 1) % 5) == 1
]
if argparser.args.hsi:
HSL_COLO_LIST = [
COLO_LIST[j]
for j in range(0, len(COLO_LIST))
if ((j + 1) % 5) == 0
]
for i in range(0, len(NUMBER_COLO_LIST)):
if i % 6 == 0 and i != 0:
PRINT_LIST += "\n"
PRINT_LIST += BASH_STR.replace("XXX", NUMBER_COLO_LIST[i]).replace(
"YYY", HSL_COLO_LIST[i]
)
elif argparser.args.rgb:
RGB_COLO_LIST = [
COLO_LIST[j]
for j in range(0, len(COLO_LIST))
if ((j + 1) % 5) == 4
]
for i in range(0, len(NUMBER_COLO_LIST)):
if i % 6 == 0 and i != 0:
PRINT_LIST += "\n"
PRINT_LIST += BASH_STR.replace("XXX", NUMBER_COLO_LIST[i]).replace(
"YYY", RGB_COLO_LIST[i]
)
elif argparser.args.number:
for i in range(0, len(NUMBER_COLO_LIST)):
if i % 12 == 0 and i != 0:
PRINT_LIST += "\n"
PRINT_LIST += BASH_STR.replace("XXX", NUMBER_COLO_LIST[i]).replace(
"YYY", NUMBER_COLO_LIST[i]
)
elif argparser.args.name:
NAME_COLO_LIST = [
COLO_LIST[j]
for j in range(0, len(COLO_LIST))
if ((j + 1) % 5) == 2
]
for i in range(0, len(NUMBER_COLO_LIST)):
if i % 6 == 0 and i != 0:
PRINT_LIST += "\n"
PRINT_LIST += BASH_STR.replace("XXX", NUMBER_COLO_LIST[i]).replace(
"YYY", NAME_COLO_LIST[i]
)
elif argparser.args.hex:
HEX_COLO_LIST = [
COLO_LIST[j]
for j in range(0, len(COLO_LIST))
if ((j + 1) % 5) == 3
]
for i in range(0, len(NUMBER_COLO_LIST)):
if i % 8 == 0 and i != 0:
PRINT_LIST += "\n"
PRINT_LIST += BASH_STR.replace("XXX", NUMBER_COLO_LIST[i]).replace(
"YYY", HEX_COLO_LIST[i]
)
elif argparser.args.ansi:
for i in range(0, len(NUMBER_COLO_LIST)):
if i % 6 == 0 and i != 0:
PRINT_LIST += "\n"
PRINT_LIST += BASH_STR.replace("XXX", NUMBER_COLO_LIST[i]).replace(
"YYY", BASH_ANSI_STR.replace("XXX", NUMBER_COLO_LIST[i])
)
else:
for i in range(0, len(NUMBER_COLO_LIST)):
if i % 12 == 0 and i != 0:
PRINT_LIST += "\n"
PRINT_LIST += BASH_STR.replace("XXX", NUMBER_COLO_LIST[i]).replace(
"YYY", NUMBER_COLO_LIST[i]
)
print(PRINT_LIST)
if __name__ == "__main__":
main()