You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
3.1 KiB
Python

import os
from pathlib import Path
from random import randint
from datetime import datetime
thisyear = datetime.now().strftime("%Y")
home = str(Path.home())
stats = []
def iterate(category,action,year=thisyear,date=False):
basedir = home + "/Documents/drive/org/journal/" + str(year)
count = 0
print("* " + category)
print("** " + action)
month = 1
while True:
if month < 13:
if month < 10:
monthname = basedir + "/0" + str(month)
else:
monthname = basedir + "/" + str(month)
if os.path.exists(monthname):
for file in sorted(os.listdir(monthname)):
filename = monthname + "/" + str(file)
if filename.endswith(".org"):
with open(filename, "r") as file:
lines = file.readlines()
for num, line in enumerate (lines, 0):
if str("** " + str(action)) in line:
num += 1
if num + 1 < len(lines):
if "*** " in lines[num]:
while True:
if "*** " in lines[num]:
if date == True:
print(lines[num].strip() + " " + lines[0].strip())
else:
print(lines[num].strip())
count += 1
else:
break
if num + 1 < len(lines):
num += 1
else:
break
else:
break
else:
break
else:
if num < len(lines):
if "*** " in lines[num]:
if date == True:
print(lines[num].strip() + " " + lines[0].strip())
else:
print(lines[num].strip())
count += 1
else:
break
else:
break
month += 1
stats.append(count)
def yeargrab(year=thisyear):
iterate("books","read",year)
iterate("films","watched",year)
print("* stats")
print("** books read: " + str(stats[0]))
print("** films watched: " + str(stats[1]))
if __name__ == "__main__":
yeargrab()