From 5f3ec01abd615d82bdc654201401999dfd48ea94 Mon Sep 17 00:00:00 2001 From: bakachaneee <125930766+bakachaneee@users.noreply.github.com> Date: Thu, 9 Nov 2023 10:49:40 +0900 Subject: [PATCH] Add files via upload --- tjaf.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tjaf.py b/tjaf.py index 30dfdf5..c03501d 100644 --- a/tjaf.py +++ b/tjaf.py @@ -1,4 +1,5 @@ import pathlib +import re class ValueWrapper(): def __init__(self, value): @@ -22,3 +23,33 @@ class ValueWrapper(): def as_float(self): return float(self.as_simple_str() or 0) + + def __str__(self): + return f"VW({self.as_simple_str()})" + + def __repr__(self): + return f"ValueWrapper({self.as_str()})" + +class Tja(): + def __init__(self, text): + self.text = text + self.common_headers = {} + self.headers = [{},{},{},{},{},{},{}] + + current_level = 3 + for line in text.splitlines(): + if re.match("^[a-zA-Z0-9]+:",line): + key,value = line.split(":",1) + if key not in ["COURSE","LEVEL","BALLOON","BALLOONNOR","BALLOONEXP","BALLOONMAS","SCOREINIT","SCOREDIFF","EXAM2"]: + header = (key,ValueWrapper(value)) + self.common_headers.update([header]) + else: + if key == "COURSE": + levels = ["easy","normal","hard","oni","edit","tower","dan"] + if value.lower() in levels: + current_level = levels.index(value.lower()) + elif value.isdigit(): + current_level = ValueWrapper(value).as_int() + + header = (key,ValueWrapper(value)) + self.headers[current_level].update([header])