Added command to /check out tasks (until next notification) Changed tasks from a list to a dictionary Went to sleep and forgot to commit changes and push
62 lines
1.7 KiB
Python
62 lines
1.7 KiB
Python
from task import *
|
|
|
|
class Chat(object):
|
|
def __init__(self, ident, name):
|
|
self.id = ident
|
|
self.tasks = {}
|
|
self.name = name
|
|
|
|
def addTask(self, name, repeat=0, hour=0, day=0, month=0, year=0):
|
|
t = Task(name, repeat, hour, day, month, year)
|
|
if name in self.tasks:
|
|
raise ValueError('duplicate key "' + name + '" found')
|
|
self.tasks[name] = t
|
|
print('new task ' + t.name + ' added:')
|
|
print(str(t) + '\n')
|
|
return t
|
|
|
|
def getTasksRange(self, d=0, m=0, y=0, d2=0, m2=0, y2=0):
|
|
dateNow = datetime.now()
|
|
if y == 0:
|
|
y = dateNow.year
|
|
if m == 0:
|
|
m = dateNow.month
|
|
if d == 0:
|
|
d = dateNow.day
|
|
if y2 == 0:
|
|
y2 = dateNow.year
|
|
if m2 == 0:
|
|
m2 = dateNow.month
|
|
if d2 == 0:
|
|
d2 = dateNow.day
|
|
dateIni = datetime(y, m, d)
|
|
dateEnd = datetime(y2, m2, d2, 23)
|
|
resultTasks = []
|
|
for t in self.tasks:
|
|
task = self.tasks[t]
|
|
print(task)
|
|
if task.getDate() >= dateIni and task.getDate() <= dateEnd:
|
|
resultTasks.append(task)
|
|
return resultTasks
|
|
|
|
def getTasks(self):
|
|
resultTasks = []
|
|
for _, v in self.tasks.items():
|
|
resultTasks.append(v)
|
|
return resultTasks
|
|
|
|
def deleteTask(self, name):
|
|
if name in self.tasks:
|
|
del self.tasks[name]
|
|
return True
|
|
return False
|
|
|
|
def markDone(self, name):
|
|
if name in self.tasks:
|
|
t = self.tasks[name]
|
|
if t.repeat > 0:
|
|
t.date += timedelta(t.repeat)
|
|
else:
|
|
del self.tasks[name]
|
|
return True
|
|
return False
|