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
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()
|