This commit is contained in:
olari
2021-06-11 20:56:33 +03:00
parent 557df1bb20
commit 689c40b58d
4 changed files with 384 additions and 21 deletions

28
compile.py Normal file
View File

@@ -0,0 +1,28 @@
from subprocess import run
import sys
import json
from common import format_timestamp
journal = json.load(open('journal.json'))
matches = []
keywords = sys.argv[1:]
for day, obj in journal.items():
for entry in obj['entries']:
for block in entry['blocks']:
if isinstance(block, str):
words = block.lower().split()
if any(kw in words for kw in keywords):
matches.append((
format_timestamp(entry['timestamp']),
'\n\n'.join([b for b in entry if isinstance(b, str)])
))
buf = ''
for (ts, c) in matches:
buf += f'{ts}\n\n{c}\n\n'
run(['nvim', '-'], input=buf.encode('utf-8'))

299
foods
View File

@@ -1,4 +1,218 @@
Popcorn
Energy 375kcal
Fat 4.3g
SaturatedFat 0.6g
Carbs 74g
Fiber 13g
Sugar 0.9g
Protein 11g
Kompot
Energy 60kcal
Carbs 15g
Sugar 14g
WhippedCream
Energy 252kcal
Fat 23g
SaturatedFat 18g
Carbs 9.5g
Sugar 3.2g
GrandinoCookies
Energy 513kcal
Fat 27.2g
SaturatedFat 12.5g
Carbs 60g
Sugar 40.2g
Protein 5.4g
Salt 0.6g
FourCheesePizza
Energy 215kcal
Fat 9.4g
SaturatedFat 5.5g
Carbs 20.7g
Sugar 3.3g
Protein 10.9g
Salt 1g
TeriyakiSauce
Energy 150kcal
Fat 0g
Carbs 40g
Sugar 37g
Protein 3g
Salt 5.1g
ChowMeinNoodles
Energy 364kcal
Fat 1g
SaturatedFat 0.4g
Carbs 75.6g
Sugar 1.7g
Protein 11.8g
Salt 0.43g
MaggiBuljong
Energy 5kcal
RedLentil
Energy 350kcal
Fat 1.8g
SaturatedFat 0.3g
Carbs 51g
Sugar 1.3g
Fiber 11g
Protein 26g
Salt 0.1g
KauraRieskanen
Energy 161kcal
Fat 2.7g
SaturatedFat 0.5g
Carbs 25.4g
Sugar 1.9g
Fiber 6.6g
Protein 5.4g
Salt 1.6g
Margarita
Energy 60kcal
Mayonnaise
Energy 328kcal
Fat 30g
SaturatedFat 2.4g
Carbs 12.2g
Sugar 8.2g
Protein 0.6g
Salt 1.81g
CannedPeas
Energy 79kcal
Fat 1.1g
SaturatedFat 0.3g
Carbs 7.3g
Sugar 2.2g
Protein 5.2g
Salt 0.46g
Carrot
Energy 40kcal
Fat 0.2g
Carbs 9.6g
Fiber 2.8g
Sugar 4.7g
Protein 0.9g
Cucumber
Energy 10kcal
Fat 0.2g
Carbs 2.2g
Fiber 0.7g
Sugar 1.4g
Protein 0.6g
TatraHelbed
Energy 365kcal
Fat 2.6g
SaturatedFat 0.4g
Carbs 74g
Sugar 1.2g
Fiber 4.5g
Protein 9.6g
SoySauce
Energy 77kcal
Carbs 3.2g
Sugar 0.6g
Protein 10g
Salt 16.9g
Pear
Energy 57kcal
Fat 0.1g
Carbs 15g
Fiber 3.1g
Sugar 10g
Protein 0.4g
AlmondMilk
Energy 26kcal
Fat 1.3g
SaturatedFat 0.1g
Carbs 3.1g
Protein 0.5g
Salt 0.13g
NyhtoKaura
Energy 213kcal
Fat 5.9g
SaturatedFat 0.8g
Carbs 10g
Sugar 3.4g
Fiber 3g
Protein 28g
Salt 1.5g
HamburgerSauce
Energy 333kcal
Fat 31.2g
SaturatedFat 2.4g
Carbs 10g
Carbs 7.2g
Protein 1.8g
Salt 1.24g
AmericanCheese
Energy 247kcal
Fat 17g
SaturatedFat 11g
Carbs 6.5g
Sugar 6.5g
Protein 17g
Salt 3.25g
Cheese
Energy 329kcal
Fat 24g
SaturatedFat 14g
Protein 27g
Salt 1.5g
HalloumiCheese
Energy 319kcal
Fat 25g
SaturatedFat 16g
Carbs 1.5g
Protein 22.0g
Salt 2.7g
HamburgerBread
Energy 284kcal
Fat 5.9g
SaturatedFat 0.6g
Carbs 46.3g
Sugar 6.9g
Fiber 3.4g
Protein 10.6g
Salt 1.2g
Tomato
Energy 18kcal
Fat 0.2g
Carbs 3.9g
Fiber 1.2g
Sugar 2.6g
Protein 0.9g
Pepsi
Energy 41kcal
Carbs 11g
Sugar 11g
KauraPasta KauraPasta
Energy 359kcal Energy 359kcal
Fat 3.5g Fat 3.5g
@@ -277,13 +491,6 @@ Salt
Energy 0kcal Energy 0kcal
Salt 100g Salt 100g
Cheese
Energy 329kcal
Fat 24g
SaturatedFat 14g
Protein 27g
Salt 1.5g
Potato Potato
Energy 68kcal Energy 68kcal
Fat 0.2g Fat 0.2g
@@ -480,9 +687,9 @@ Carbs 4.7g
Sugar 3.7g Sugar 3.7g
Honey Honey
Energy 64kcal Energy 305kcal
Carbs 17g Carbs 80g
Sugar 17g Sugar 80g
Coffee Coffee
Energy 0kcal Energy 0kcal
@@ -551,6 +758,15 @@ Sugar 7.2g
Fiber 4.7g Fiber 4.7g
Protein 0.95g Protein 0.95g
OrangeIcecream
Energy 197kcal
Fat 8.4g
SaturatedFat 5.6g
Carbs 27.8g
Sugar 25.6g
Protein 2.6g
Salt 0.07g
VanilliIceCream VanilliIceCream
Energy 160kcal Energy 160kcal
Fat 6.3g Fat 6.3g
@@ -700,14 +916,6 @@ Sugar 3.4g
Protein 21.4g Protein 21.4g
Salt 0.05 Salt 0.05
HalloumiCheese
Energy 319kcal
Fat 25g
SaturatedFat 16g
Carbs 1.5g
Protein 22.0g
Salt 2.7g
Salmon Salmon
Energy 208kcal Energy 208kcal
Fat 13g Fat 13g
@@ -772,6 +980,12 @@ SojaRouha 300g
PeasCornPepper 225g PeasCornPepper 225g
TOTAL 2460g TOTAL 2460g
RiceAndVeggies
BrownRice 700g
PeasCornPepper 450g
Oil 40g
TOTAL 1960g
MilkSoup MilkSoup
Margarine 30g Margarine 30g
Milk 500g Milk 500g
@@ -821,6 +1035,10 @@ BakedPotatoes
Potato 1440g Potato 1440g
Oil 40g Oil 40g
BakedPotatoes2
Potato 1150g
Oil 60g
SeedAndOilSalad SeedAndOilSalad
Salad 120g Salad 120g
Cucumber 120g Cucumber 120g
@@ -868,6 +1086,12 @@ Milk 450g
WholeGrainBread 50g WholeGrainBread 50g
Flour 90g Flour 90g
VegeKotlet3
HarkisRouheseos 200g
Milk 400g
Egg 195g
Flour 70g
RoastedVeggies2 RoastedVeggies2
Broccoli 300g Broccoli 300g
Oil 70g Oil 70g
@@ -906,3 +1130,42 @@ Oil 40g
KauraPasta 500g KauraPasta 500g
PeasCornPepper 450g PeasCornPepper 450g
TOTAL 1720g TOTAL 1720g
Smoothie
AlmondMilk 500g
Banana 144g
Pear 210g
Apple 90g
Sugar 10g
TatraHelbedDone
TatraHelbed 290g
Margarine 60g
TOTAL 1440g
PotatoSalad
Potato 1060g
PickleSlices 280g
CannedPeas 250g
Carrot 390g
Cucumber 300g
SourCream 600g
Mayonnaise 400g
Sugar 15g
LentilSoup
RedLentil 400g
MaggiBuljong 20g
Oil 35g
Carrot 350g
Potato 400g
TOTAL 2635g
BreadEgg
WholeGrainBread 40g
Oil 20g
Egg 130g
PopcornDone
Popcorn 150g
Oil 40g

65
generate.py Normal file
View File

@@ -0,0 +1,65 @@
from common import format_timestamp
import json
def generate_godword(value):
return f"{' '.join(value[:10])}\n{' '.join(value[10:])}"
def generate_habits(value):
return '\n'.join(f'[{"x" if v else "-"}] {k}' for k,v in value.items())
header_modules = {
'godword': generate_godword,
'habits': generate_habits,
}
def generate_diet(block):
_, amount, food = block.values()
return f'@diet {amount}g {food}'
def generate_exercise(block):
if block['kind'] == 'walk':
return f'@exercise {block["minutes"]}min {block["distance"]}km {block["steps"]}steps'
def generate_default(block):
return f'@{block["type"]} {block["value"]}'
def generate_timer(block):
return f'@{block["type"]} {format_timestamp(block["timestamp"])}'
entry_modules = {
'diet': generate_diet,
'exercise': generate_exercise,
'hide': lambda _: '@hide',
'post': generate_timer,
}
journal = json.load(open('journal.json'))
for curr_day in journal:
header, entries = journal[curr_day].values()
result = f'# {curr_day}\n'
for name, value in header.items():
result += f'\n{name.title()}:\n'
result += header_modules[name](value)
result += '\n'
def format_block(block):
if isinstance(block, str):
return block
else:
return entry_modules[block['type']](block)
for entry in entries:
result += f'\n{format_timestamp(entry["timestamp"])} '
if len(entry['blocks']) == 1:
result += f'{format_block(entry["blocks"][0])}\n'
else:
result += '\n'
for block in entry['blocks']:
result += f'\n{format_block(block)}\n'
print(result)

View File

@@ -50,8 +50,15 @@ def parse_post(block):
block = block[19:] block = block[19:]
except: except:
timestamp = None timestamp = None
content = block
return {'timestamp': timestamp, 'content': content} content = block.strip()
result = {}
if content:
result['content'] = content
if timestamp:
result['timestamp'] = timestamp
return result
def parse_notes(block): def parse_notes(block):
tag, source, title = block.splitlines() tag, source, title = block.splitlines()
@@ -59,7 +66,7 @@ def parse_notes(block):
def parse_diet(block): def parse_diet(block):
tag, amount, food = block.split() tag, amount, food = block.split()
amount = float(amount.removesuffix('g')) amount = int(amount.removesuffix('g'))
return {'amount': amount, 'food': food} return {'amount': amount, 'food': food}
def parse_timer(block): def parse_timer(block):