diff --git a/main.py b/main.py index 9e3c980..986df1e 100644 --- a/main.py +++ b/main.py @@ -18,6 +18,13 @@ Date 06/03/2021 version = '0.9' +@dataclass +class RGB: + r: int = 0 + g: int = 0 + b: int = 0 + + def sent_message(filename: str, sent: bool) -> None: print(f'\t[{filename}] ==> [{(fg(10), fg(9))[sent]}{("Sent", "ERROR")[sent]}{attr("reset")}]') @@ -27,26 +34,43 @@ class LOADING: def sending_file_progress(filename: bytes, size: int, sent: int) -> None: - # float(sent) / float(size) * 100 - green_scale = [28, 34, 40, 76, 82, 118] + def return_diff_color(c1: RGB, c2: RGB, percent: int) -> RGB: + def return_diff(n1, n2, percent=100) -> int: + if n1 > n2: + return n1 - int((n1 - n2) * (percent / 100)) + elif n2 > n1: + return n2 - int((n2 - n1) * (percent / 100)) + return n1 + + new_rgb = RGB(r=return_diff(c1.r, c2.r, percent), g=return_diff(c1.g, c2.g, percent), + b=return_diff(c1.b, c2.b, percent)) + return new_rgb + + def color_to_hex(color: RGB) -> str: + def return_hex_number(n: int): + hnum = hex(int(n)) + return f'{str(hnum).replace("0x", "").zfill(2)}' + + r: str = return_hex_number(color.r) + g: str = return_hex_number(color.g) + b: str = return_hex_number(color.b) + return f"{r}{g}{b}" + + base_color= RGB(r=68, g=121, b=84) + end_color= RGB(r=0, g=255, b=68) + loading_chars = "|/-\\" _filename = filename.decode() screen_size = get_terminal_size() - cols = int(screen_size.columns / 100 * 50) + available_colums = int(screen_size.columns / 100 * 50) percent = int(float(sent) / float(size) * 100) _n = percent % len(loading_chars) - _color: int - _color_picker = int((percent / 10) * (len(green_scale) / 10)) + space_filling = " " * int((available_colums / 100) * (100 - percent)) + load_bar = "=" * int((available_colums / 100) * percent) + '=>' - space_filling = " " * int(100 - percent / (100 * cols)) + " " - load_bar = f'{"=" * int(percent / 100 * cols)}=>' - - if int(percent) >= 100: - _color = green_scale[len(green_scale) - 1] - else: - _color = green_scale[_color_picker] + _color = f'#{color_to_hex(return_diff_color(base_color,end_color,percent))}' print( f'\t[{loading_chars[_n]}] {fg(_color)}{load_bar}{attr("reset")} [{percent}%] {space_filling} [{(_filename[:75] + "..") if len(_filename) > 75 else _filename}]', end='\r') diff --git a/t5.py b/t5.py new file mode 100644 index 0000000..9c42e58 --- /dev/null +++ b/t5.py @@ -0,0 +1,46 @@ +from dataclasses import dataclass + + +@dataclass +class RGB: + r: int = 0 + g: int = 0 + b: int = 0 + + + + +def return_diff_color(c1: RGB, c2: RGB, percent: int) -> RGB: + def return_diff(n1, n2, percent=100) -> int: + if n1 > n2: + return n1 - int((n1 - n2) * (percent / 100)) + elif n2 > n1: + return n2 - int((n2 - n1) * (percent / 100)) + return n1 + new_rgb = RGB(r=return_diff(c1.r, c2.r,percent), g=return_diff(c1.g, c2.g,percent), b=return_diff(c1.b, c2.b,percent)) + return new_rgb + + +def color_to_hex(color: RGB) -> str: + def return_hex_number(n: int): + hnum=hex(int(n)) + return f'{str(hnum).replace("0x", "").zfill(2)}' + + r: str = return_hex_number(color.r) + g: str = return_hex_number(color.g) + b: str = return_hex_number(color.b) + return f"{r}{g}{b}" + + +base_color = RGB(r=68, g=121, b=84) +end_color = RGB(r=0, g=255, b=68) + +print(base_color) +print(end_color) +print(return_diff_color(base_color,end_color,50)) + +for x in range(1, 101,20): + # _color=return_diff_color(c1=base_color,c2=end_color,percent=x) + _color = f'#{color_to_hex(return_diff_color(base_color, end_color, x))}' + print(_color) +# print(return_diff(0,100,50)) diff --git a/test_barr.py b/test_barr.py new file mode 100644 index 0000000..759cd1d --- /dev/null +++ b/test_barr.py @@ -0,0 +1,8 @@ +from main import sending_file_progress +from time import sleep + + + +for x in range(1,100): + sending_file_progress(filename=b"file", size=100, sent=x) + sleep(0.05) \ No newline at end of file