[init] initial commit

This commit is contained in:
2023-06-05 23:04:30 +08:00
commit 66b1dd4d70
72 changed files with 10079 additions and 0 deletions

136
todo/todo_format.py Normal file
View File

@ -0,0 +1,136 @@
import os
import time
import re
def utf8_length(text):
if text is None:
return 0
len_text = len(text)
len_text_utf8 = len(text.encode('utf-8'))
# utf-8一个汉字占3个字符减去原计数就是多出来的2/3再除以2就是增量。再加回去即可
size = int((len_text_utf8 - len_text) / 2 + len_text)
return size
def tidy_done():
with open('/opt/logs/TODO/done.txt', 'r') as donetxt, open('/tmp/tmp_done.txt', 'w') as tmpdone:
lines = donetxt.readlines()
for line in lines:
tmpdone.write(line.strip() + '\n')
os.system('mv /tmp/tmp_done.txt /opt/logs/TODO/done.txt')
def format_col_1(item):
global number_of_days
global item_no
global auto_weekend
end_time_date = item.strip()[-10:]
try:
end_time_stamp = time.strptime(end_time_date, "%Y-%m-%d")
except Exception as Err:
print('Error Encounted: ', end='')
print(str(Err))
print(f"Please modify /opt/logs/TODO/todo.txt @ line {item_no} manually, and then run it again.\n")
os._exit(1)
end_time_stamp = time.mktime(end_time_stamp)
now_time_stamp = int(time.time())
number_of_days = round((end_time_stamp - now_time_stamp) / 3600 / 24 + 0.75, 2)
# print('number_of_days-1:', number_of_days)
if auto_weekend and number_of_days < 0:
end_time_stamp += 604800
end_time_date = time.strftime('%Y-%m-%d', time.localtime(end_time_stamp))
item = item.strip()[:-10] + end_time_date
number_of_days += 7
item_format = re.sub(' +', ' ', item.strip())
done.write(item_format)
for i in range(16 - len(item_format)):
done.write(' ')
done.write('|')
def format_col_2(item):
done.write(' ')
done.write(item.strip())
for i in range(12 - 1 - len(item.strip())):
done.write(' ')
done.write('|')
def format_col_3(item):
global number_of_days
# print('number_of_days-3:', number_of_days)
item = 'T:' + str(number_of_days)
done.write(' ')
done.write(item.strip())
for i in range(10 - 1 - len(item.strip())):
done.write(' ')
done.write('|')
def format_col_4(item):
done.write(' ')
try:
with open('/tmp/col.log', 'r') as obj_col:
width = int(obj_col.readline().strip())
except:
width = 125
item_format = re.sub(' +', ' ', item.strip())
len_of_task = utf8_length(item_format)
# get the width of current terminal
left_white = width - 11 - 12 - 10 - 5 - len_of_task - 8
done.write(item_format + ' ' * left_white + '\n')
if __name__ == "__main__":
number_of_days = 0
item_no = 1
# 0 signifies that task without priority, and 1 vice versa
with open('/opt/logs/TODO/todo.txt', 'r') as todo, open('/tmp/tmp.txt', 'w') as done:
for line in todo.readlines():
col = 1
auto_weekend = 0
if line.strip() == '':
continue
elif 'Happy weekend~' in line:
auto_weekend = 1
else:
pass
for item in line.strip().split('|'):
if col == 1:
format_col_1(item)
elif col == 2:
format_col_2(item)
elif col == 3:
format_col_3(item)
elif col == 4:
format_col_4(item)
else:
break
col += 1
item_no += 1
os.system('mv /tmp/tmp.txt /opt/logs/TODO/todo.txt')
tidy_done()