three

joined 10 months ago
[–] three@piefed.social 4 points 6 hours ago (2 children)
import time
import os
import platform
import sys
from datetime import datetime



_old_settings = None
_buffer = ""
YELLOW = "\033[93m"
GREEN = "\033[92m"
RESET = "\033[0m"



def clear_console():
	if platform.system() == "Windows":
		os.system("cls")
	else:
		os.system("clear")

def enable_keyboard_input():
	if sys.platform.startswith("win"):
		pass
	else:
		global _old_settings
		global _termios_imported
		if termios is None:
			import termios
		if _old_settings is not None:
			fd = sys.stdin.fileno()
			termios.tcsetattr(fd, termios.TCSADRAIN, _old_settings)

def disable_keyboard_input():
	if sys.platform.startswith("win"):
		pass
	else:
		global _old_settings
		global _termios_imported
		if termios is None:
			import termios
		fd = sys.stdin.fileno()
		_old_settings = termios.tcgetattr(fd)
		new = termios.tcgetattr(fd)
		new[3] = new[3] & ~termios.ECHO & ~termios.ICANON
		termios.tcsetattr(fd, termios.TCSADRAIN, new)



def input_title(title):
	# enable_keyboard_input()
	in_value = input(title)
	# disable_keyboard_input()
	return in_value

def input_uint(title):
	while True:
		# enable_keyboard_input()
		in_value = input(title)
		# disable_keyboard_input()
		if in_value.isdigit():
			return int(in_value)



def print_buffer():
	global _buffer
	print(_buffer, end="")

def print_in_buffer(printable):
	global _buffer
	_buffer += printable + "\n"



def main():
	title = input_title("Title: ")
	work_time_minutes = input_uint("Work interval time in Minutes: ")
	break_time_minutes = input_uint("Break interval time in Minutes: ")
	work_time_seconds = work_time_minutes * 60
	break_time_seconds = break_time_minutes * 60
	intervals = input_uint("Intervals Count: ")
	duration = intervals * (work_time_minutes + break_time_minutes)
	clear_console()

	txt_report = ""
	json_report = dict()
	pdf_report = None

	print_in_buffer(F"MPomidoro")
	print_in_buffer(F"{title}")
	print_in_buffer(F"{intervals} x {work_time_minutes}min {break_time_minutes}min")
	print_in_buffer(F"")



	begin = datetime.now()

	for interval_i in range(0, intervals):
		for work_i in range(0, work_time_seconds):
			time.sleep(1)
			clear_console()
			print_buffer()
			ml = (work_time_seconds - work_i) // 60
			ml = F"0{ml}" if ml < 10 else ml
			ms = (work_time_seconds - work_i) % 60
			ms = F"0{ms}" if ms < 10 else ms
			print(f"{YELLOW}WORK #{interval_i+1} {ml}:{ms}{RESET}")
		clear_console()
		print_in_buffer(F"{GREEN}WORK #{interval_i+1} {work_time_minutes}min{RESET}")
		print_buffer()
		for break_i in range(0, break_time_seconds):
			time.sleep(1)
			clear_console()
			print_buffer()
			ml = (break_time_seconds - break_i) // 60
			ml = F"0{ml}" if ml < 10 else ml
			ms = (break_time_seconds - break_i) % 60
			ms = F"0{ms}" if ms < 10 else ms
			print(f"{YELLOW}BREAK #{interval_i+1} {ml}:{ms}{RESET}")
		clear_console()
		print_in_buffer(F"{GREEN}BREAK #{interval_i+1} {break_time_minutes}min{RESET}")
		print_buffer()
	clear_console()
	print_in_buffer(F"")
	print_buffer()

	end = datetime.now()



	begin_year = begin.strftime("%Y")
	begin_month = begin.strftime("%m")
	begin_day = begin.strftime("%d")
	begin_hour = begin.strftime("%H")
	begin_minute = begin.strftime("%M")

	end_year = end.strftime("%Y")
	end_month = end.strftime("%m")
	end_day = end.strftime("%d")
	end_hour = end.strftime("%H")
	end_minute = end.strftime("%M")

	conclusions = input_title("Conclusions: ")



	txt_report += F"MPomidoro Report\n"
	txt_report += F"Title: {title}\n"
	txt_report += F"Date: {begin.strftime("%Y.%m.%d")}\n"
	txt_report += F"Begin: {begin_hour}:{begin_minute}\n"
	txt_report += F"End: {end_hour}:{end_minute}\n"
	txt_report += F"Duration: {duration}min\n"
	txt_report += F"Conclusions: {conclusions}\n"
	txt_report += F"\n"
	for i in range(0, intervals):
		txt_report += F"✓ WORK #{i+1} {work_time_minutes}min\n"
		txt_report += F"✓ BREAK #{i+1} {break_time_minutes}min\n"

	filepath = F"./Reports/{begin_year}/{begin_month}/{begin_year}_{begin_month}_{begin_day}_{begin_hour}{begin_minute}_{title.replace(" ", "_")}.txt"

	os.makedirs(os.path.dirname(filepath), exist_ok=True)
	with open(filepath, "w", encoding="utf-8") as file:
		file.write(txt_report)



if __name__ == "__main__":
	main()
[–] three@piefed.social 60 points 2 days ago (1 children)
[–] three@piefed.social -2 points 3 days ago (1 children)

You're going to have to use a different word that you actually know the definition of.

[–] three@piefed.social 0 points 3 days ago* (last edited 3 days ago) (3 children)

Crazy how they wrote google over and over again, and you still ask this.

[–] three@piefed.social 37 points 4 days ago (2 children)
[–] three@piefed.social 2 points 1 week ago* (last edited 1 week ago) (1 children)

Just stumbled across you getting completely BTFO

lmao

[–] three@piefed.social -1 points 1 week ago

Just came across you getting completely BFTO

lmao

[–] three@piefed.social -1 points 1 week ago