This commit is contained in:
olari
2021-06-20 21:30:52 +03:00
parent bf589d94b5
commit 96dda8ec5e
4 changed files with 57 additions and 0 deletions

View File

@@ -10,10 +10,14 @@ def generate_habits(value):
def generate_notifications(value): def generate_notifications(value):
return '\n'.join(f'[[{n["source"]}]] {n["message"]}' for n in value) return '\n'.join(f'[[{n["source"]}]] {n["message"]}' for n in value)
def generate_tasks(value):
return '\n'.join(f'[{"x" if v else "-"}] {k}' for k,v in value.items())
header_modules = { header_modules = {
'godword': generate_godword, 'godword': generate_godword,
'habits': generate_habits, 'habits': generate_habits,
'notifications': generate_notifications, 'notifications': generate_notifications,
'tasks': generate_tasks,
} }
def generate_diet(block): def generate_diet(block):

View File

@@ -23,6 +23,20 @@ words = (journal_path / 'godword').read_text().strip().split('\n')
godword = '\n'.join(' '.join(random.choice(words) godword = '\n'.join(' '.join(random.choice(words)
for __ in range(10)) for _ in range(2)) for __ in range(10)) for _ in range(2))
def parse_tasks_file():
result = []
tasks = (journal_path / 'tasks').read_text().splitlines()
for task in tasks:
days, name = task.split(':')
days = days.split(',')
result.append((days, name))
return result
tasks_file = parse_tasks_file()
if not target_page.exists(): if not target_page.exists():
Popen( Popen(
['bash', str(script_path / 'backup-script.sh'), current_date+'.zip'], ['bash', str(script_path / 'backup-script.sh'), current_date+'.zip'],
@@ -43,6 +57,16 @@ if not target_page.exists():
block['message'] block['message']
)) ))
tasks = []
curr_day = {
0: 'mo', 1: 'tu', 2: 'we', 3: 'th',
4: 'fr', 5: 'sa', 6: 'su',
}[datetime.now().weekday()]
for days, name in tasks_file:
if curr_day in days:
tasks.append(name)
parts = [ parts = [
f'# {target_page.stem}', f'# {target_page.stem}',
f'Godword:\n{godword}', f'Godword:\n{godword}',
@@ -56,6 +80,14 @@ if not target_page.exists():
) )
parts.append(f'Notifications:\n{notifications_rendered}') parts.append(f'Notifications:\n{notifications_rendered}')
if tasks:
tasks_rendered = '\n'.join(
f'[-] {task}'
for task in tasks
)
parts.append(f'Tasks:\n{tasks_rendered}')
header = '\n\n'.join(parts) + '\n' header = '\n\n'.join(parts) + '\n'
target_page.write_text(header) target_page.write_text(header)

View File

@@ -29,11 +29,19 @@ def parse_notifications(notifications):
}) })
return result return result
def parse_tasks(tasks):
result = {}
for task in tasks.splitlines():
value, name = task.split(maxsplit=1)
name = name.strip()
result[name] = value[1] == 'x'
return result
header_modules = { header_modules = {
'godword': parse_godword, 'godword': parse_godword,
'habits': parse_habits, 'habits': parse_habits,
'notifications': parse_notifications, 'notifications': parse_notifications,
'tasks': parse_tasks,
} }
def parse_header(header): def parse_header(header):

13
test.py Normal file
View File

@@ -0,0 +1,13 @@
from pathlib import Path
from generate import generate_page
from parse import parse_page
for fpath in list(sorted((Path.home() / 'workspace' / 'journal').glob('*.md'))):
text = fpath.read_text()
parsed = parse_page(text)
generated = generate_page(fpath.stem, parsed['header'], parsed['entries'])
for l1, l2 in zip(text.split('\n'), generated.split('\n')):
if l1 != l2:
print('\n'.join([fpath.stem, l1, l2]))
breakpoint()