click 与终端彩色
🎨 r0capture 用 click 库打印彩色 banner,并探测终端能力。
在 r0capture 里的用途
show_banner 用 click.secho / click.style 打印彩色 banner:
python
try:
import click
except:
class click: # 降级:click 不可用时用 print
@staticmethod
def secho(message=None, **kwargs):
print(message)
@staticmethod
def style(**kwargs):
raise Exception("unsupported style")色板探测
python
colors = ['bright_red', 'bright_green', 'bright_blue', 'cyan', 'magenta']
try:
click.style('color test', fg='bright_red')
except:
colors = ['red', 'green', 'blue', 'cyan', 'magenta'] # 退回普通色先探测终端是否支持 bright 色,不支持则退回普通色板。
降级策略
- click 可用 → 彩色 banner
- click 不可用 → 用
print替代(class click桩) - 任何异常 → 静默吞掉,不影响抓包