User:GemmaBot/timer.py

From Wikisource
Jump to navigation Jump to search
from time import perf_counter

def timedisplay(sec):
    time_elapsed_m = int(sec / 60)
    time_elapsed_h = int(time_elapsed_m / 60)
    time_elapsed_s_rem = int(sec % 60)
    time_elapsed_m_rem = int(time_elapsed_m % 60)
    if time_elapsed_m >= 1 and time_elapsed_m < 60:
        return f"{time_elapsed_h} h, {time_elapsed_m} m, {time_elapsed_s_rem} s"
    elif time_elapsed_m >= 60:
        return f"{time_elapsed_h} h, {time_elapsed_m_rem} m, {time_elapsed_s_rem} s"
    else:
        return f"{time_elapsed_h} h, {time_elapsed_m} m, {sec} s"

def timedisplaysingle(sec):
    time_elapsed_m = int(sec / 60)
    time_elapsed_h = int(time_elapsed_m / 60)
    time_elapsed_s_rem = int(sec % 60)
    time_elapsed_m_rem = int(time_elapsed_m % 60)
    if time_elapsed_m >= 1 and time_elapsed_m < 60:
        return f"{time_elapsed_m} m, {time_elapsed_s_rem} s"
    elif time_elapsed_m >= 60:
        return f"{time_elapsed_m_rem} m, {time_elapsed_s_rem} s"
    else:
        return f"{time_elapsed_m} m, {sec} s"

t1_begin = perf_counter()

while 1:
    timerfile = open("timer.txt", "a")
    timerread = open("timer.txt", "r")
    times = timerread.readlines()
    times_to_stat = []
    timecount = 0
    for time in times:
        timecount += 1
        if timecount == 1:
            pages = int(time)
        if timecount == 2:
            chapters = int(time)
        else:
            try:
                times_to_stat.append(int(time))
            except:
                pass
    average = sum(times_to_stat) / len(times_to_stat)
    eta = average * ((pages + chapters) - len(times))
    t1_start = perf_counter()
    def stop(inp):
        t1_stop = perf_counter()
        timepassed = int(t1_stop - t1_start)
        totalpassed = int(t1_stop - t1_begin)
        if inp == "b":
            br = "b"
        elif inp == "a":
            br = "a"
        else:
            br = ""
        print(f"Total: {timedisplay(totalpassed)} {br}\nS:   {timedisplaysingle(timepassed)} {br}   A:   {timedisplaysingle(average)}   E:   {timedisplay(eta)}")
        timerfile.write(f"{timepassed}{br}\n")
        timerfile.close()
        timerread.close()
    x = input("Timer: ")
    stop(x)

I, the copyright holder of this work, hereby release it into the public domain. This applies worldwide.

In case this is not legally possible:

I grant anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law.

Public domainPublic domainfalsefalse