update
This commit is contained in:
28
compile.py
Normal file
28
compile.py
Normal 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
299
foods
@@ -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
65
generate.py
Normal 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)
|
||||||
|
|
||||||
|
|
||||||
13
parse.py
13
parse.py
@@ -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):
|
||||||
|
|||||||
Reference in New Issue
Block a user