-
Notifications
You must be signed in to change notification settings - Fork 0
/
writeLog.py
88 lines (72 loc) · 2.35 KB
/
writeLog.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
'''
Created on 5 Mar 2014
@author: stanislav.poritskiy
'''
import datetime
from collections import namedtuple, defaultdict
import os
class NoteWriter(object):
def __init__(self, config):
self.config = config
self.week_range = self.get_week_range((datetime.datetime.today()))
self.today_date = datetime.date.today().strftime("%A")
self.notes_file = self.config.get("out_file")
self.notes = defaultdict(list)
def get_notes(self):
return self.notes
def set_notes(self, loaded_notes):
self.notes = loaded_notes
def write_entry(self, message):
self.notes[message.date].append(message)
with open(self.notes_file, "a+") as text_file:
file_content = text_file.readlines()
text_file.write(self.format_entry(message, file_content))
text_file.close()
def format_entry(self, raw_entry, file_content):
post = ''
message = '\t+ {0} \n'.format(raw_entry())
if self.is_current_week(file_content):
if self.is_today(file_content):
post += message
else:
post += "{0} - \n".format(self.today_date)
post += message
else:
post += self.create_header()
post += "{0} - \n".format(self.today_date)
post += message
return post
def is_today(self, file_content):
today = "{0} -".format(self.today_date)
for line in file_content:
print(line)
if str(today) == str(line.rstrip()):
return True
return False
def is_current_week(self, file_content):
clue = 'Week of: {0}, {1}'.format(self.week_range[0], self.week_range[1])
for line in file_content:
if str(clue) == str(line.rstrip()):
return True
return False
def create_header(self):
header = ''
header += '\n'
header += 'Week of: {0}, {1}'.format(self.week_range[0], self.week_range[1])
header += '\n'
return header
def get_week_range(self, day):
week_range = namedtuple('week_range', ['start', 'end'])
current_week_day = day.weekday()
to_beginning_of_week = datetime.timedelta(days=current_week_day)
beginning_of_week = day - to_beginning_of_week
to_end_of_week = datetime.timedelta(days=7 - current_week_day)
end_of_week = day + to_end_of_week
return (beginning_of_week.strftime("%B %d, %Y"), end_of_week.strftime("%B %d, %Y"))
# @staticmethod
# def handle_message(message):
# writer = NoteWriter()
# writer.write_entry(message())
@staticmethod
def show_notes(*args):
os.system('start ' + '{}'.format(NoteWriter.config.get("out_file")))