mirror of
https://github.com/rachelos/we-mp-rss.git
synced 2026-11-03 17:01:40 +08:00
148 lines
4.3 KiB
Python
148 lines
4.3 KiB
Python
import sys
|
|
import os
|
|
from colorama import init, Fore, Back, Style
|
|
# 确保在Linux下也能正确初始化colorama
|
|
if os.name == 'posix':
|
|
os.environ['TERM'] = 'xterm-256color' # 设置终端类型为支持颜色的终端
|
|
init() # 初始化colorama,确保跨平台支持ANSI颜色
|
|
class ColorPrinter:
|
|
"""带颜色输出的打印工具类"""
|
|
|
|
def __init__(self):
|
|
self._fore_color = ''
|
|
self._back_color = ''
|
|
self._style = ''
|
|
self._text = ''
|
|
|
|
def _reset(self):
|
|
"""重置颜色和样式"""
|
|
self._fore_color = ''
|
|
self._back_color = ''
|
|
self._style = ''
|
|
return self
|
|
|
|
def red(self):
|
|
"""设置前景色为红色"""
|
|
self._fore_color = Fore.RED
|
|
return self
|
|
|
|
def green(self):
|
|
"""设置前景色为绿色"""
|
|
self._fore_color = Fore.GREEN
|
|
return self
|
|
|
|
def yellow(self):
|
|
"""设置前景色为黄色"""
|
|
self._fore_color = Fore.YELLOW
|
|
return self
|
|
|
|
def blue(self):
|
|
"""设置前景色为蓝色"""
|
|
self._fore_color = Fore.BLUE
|
|
return self
|
|
|
|
def magenta(self):
|
|
"""设置前景色为洋红色"""
|
|
self._fore_color = Fore.MAGENTA
|
|
return self
|
|
|
|
def cyan(self):
|
|
"""设置前景色为青色"""
|
|
self._fore_color = Fore.CYAN
|
|
return self
|
|
|
|
def white(self):
|
|
"""设置前景色为白色"""
|
|
self._fore_color = Fore.WHITE
|
|
return self
|
|
|
|
def black(self):
|
|
"""设置前景色为黑色"""
|
|
self._fore_color = Fore.BLACK
|
|
return self
|
|
|
|
def bg_red(self):
|
|
"""设置背景色为红色"""
|
|
self._back_color = Back.RED
|
|
return self
|
|
|
|
def bg_green(self):
|
|
"""设置背景色为绿色"""
|
|
self._back_color = Back.GREEN
|
|
return self
|
|
|
|
def bold(self):
|
|
"""设置文本为粗体"""
|
|
self._style = Style.BRIGHT
|
|
return self
|
|
|
|
def dim(self):
|
|
"""设置文本为暗淡"""
|
|
self._style = Style.DIM
|
|
return self
|
|
|
|
def normal(self):
|
|
"""设置文本为普通样式"""
|
|
self._style = Style.NORMAL
|
|
return self
|
|
|
|
def print(self, text, end='\n', file=sys.stdout):
|
|
"""打印带格式的文本"""
|
|
formatted = f"{self._style}{self._back_color}{self._fore_color}{text}{Style.RESET_ALL}"
|
|
print(formatted, end=end, file=file)
|
|
self._reset()
|
|
return self
|
|
|
|
# 快捷方法
|
|
def print_red(self, text, **kwargs):
|
|
"""快捷打印红色文本"""
|
|
self.red().print(text, **kwargs)
|
|
|
|
def print_green(self, text, **kwargs):
|
|
"""快捷打印绿色文本"""
|
|
self.green().print(text, **kwargs)
|
|
|
|
def print_yellow(self, text, **kwargs):
|
|
"""快捷打印黄色文本"""
|
|
self.yellow().print(text, **kwargs)
|
|
|
|
def print_blue(self, text, **kwargs):
|
|
"""快捷打印蓝色文本"""
|
|
self.blue().print(text, **kwargs)
|
|
|
|
def print_magenta(self, text, **kwargs):
|
|
"""快捷打印洋红色文本"""
|
|
self.magenta().print(text, **kwargs)
|
|
|
|
def print_cyan(self, text, **kwargs):
|
|
"""快捷打印青色文本"""
|
|
self.cyan().print(text, **kwargs)
|
|
|
|
def print_error(self, text, **kwargs):
|
|
"""快捷打印错误信息(红色粗体)"""
|
|
self.red().bold().print(text, **kwargs)
|
|
|
|
def print_warning(self, text, **kwargs):
|
|
"""快捷打印警告信息(黄色粗体)"""
|
|
self.yellow().bold().print(text, **kwargs)
|
|
|
|
def print_success(self, text, **kwargs):
|
|
"""快捷打印成功信息(绿色粗体)"""
|
|
self.green().bold().print(text, **kwargs)
|
|
|
|
def print_info(self, text, **kwargs):
|
|
"""快捷打印信息(蓝色)"""
|
|
self.blue().print(text, **kwargs)
|
|
|
|
# 创建全局实例方便使用
|
|
printer = ColorPrinter()
|
|
def print_error(text, **kwargs):
|
|
printer.print_error(text, **kwargs)
|
|
|
|
def print_info(text, **kwargs):
|
|
printer.print_info(text, **kwargs)
|
|
|
|
def print_warning(text, **kwargs):
|
|
printer.print_warning(text, **kwargs)
|
|
def print_success(text, **kwargs):
|
|
printer.print_success(text, **kwargs) |