mirror of
https://github.com/csd4ni3l/siege-calendar.git
synced 2026-01-01 12:33:47 +01:00
Initial commit with features and everything.
This commit is contained in:
57
utils/utils.py
Normal file
57
utils/utils.py
Normal file
@@ -0,0 +1,57 @@
|
||||
import sys, time
|
||||
|
||||
from datetime import date, datetime
|
||||
|
||||
def slow_print(text, interval=.03):
|
||||
for char in text:
|
||||
sys.stdout.write(char)
|
||||
sys.stdout.flush()
|
||||
time.sleep(interval)
|
||||
|
||||
sys.stdout.write('\n')
|
||||
|
||||
def getchar():
|
||||
try:
|
||||
import msvcrt
|
||||
ch = msvcrt.getch()
|
||||
try:
|
||||
return ch.decode()
|
||||
except UnicodeDecodeError:
|
||||
return ch
|
||||
except ImportError:
|
||||
import tty, termios
|
||||
fd = sys.stdin.fileno()
|
||||
old_settings = termios.tcgetattr(fd)
|
||||
try:
|
||||
tty.setraw(fd)
|
||||
ch = sys.stdin.read(1)
|
||||
finally:
|
||||
termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
|
||||
return ch
|
||||
|
||||
def is_valid_date(date_str: str) -> bool:
|
||||
try:
|
||||
datetime.strptime(date_str, "%Y-%m-%d")
|
||||
return True
|
||||
except ValueError:
|
||||
return False
|
||||
|
||||
def get_siege_days_passed(current_date=None):
|
||||
if current_date is None:
|
||||
current_date = date.today()
|
||||
|
||||
start = date(2025, 9, 1)
|
||||
|
||||
return (current_date - start).days
|
||||
|
||||
def siege_week(current_date=None):
|
||||
week = get_siege_days_passed(current_date) // 7
|
||||
|
||||
if week < 0:
|
||||
return "Not started yet"
|
||||
elif week < 3:
|
||||
return f"Prep Week {week + 1}"
|
||||
elif week < 13:
|
||||
return f"Siege Week {week - 2}"
|
||||
else:
|
||||
return "Event finished"
|
||||
Reference in New Issue
Block a user