Send_files/t4.py
Oriol Filter Anson 5140df5df6 first commit
2022-03-05 23:42:29 +01:00

43 lines
1.3 KiB
Python

import time
from os import get_terminal_size
from colored import fg, bg, attr # para los colores
from time import sleep
def sending_file_progress(filename: bytes, size: int, sent: int) -> None:
# float(sent) / float(size) * 100
green_scale = [28, 34, 40, 76, 82, 118]
loading_chars = "|/-\\"
_filename = filename.decode()
screen_size = get_terminal_size()
cols = 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(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]
# print(int(percent / 100 * cols),end="\r")
# print("+"*int(percent / 100 * cols),end="")
# print(" ", end="")
# print("+" * int(100 - percent / 100 * cols), end="\r")
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')
x = 0
while x <= 100:
sending_file_progress(b"file", 100, x) # bytes string, not flat string
time.sleep(0.05)
x += 1
print()