from pathlib import Path from db import CalDB import configparser from enum import Enum from datetime import date, timedelta import datetime, time class EvtRepeat(Enum): DAYLY = 1 WEEKLY = 2 MONTHLY = 3 YEARLY = 4 class EvtLocation(Enum): LOCAL = 1 REMOTE = 2 LOCAL_AND_REMOTE = 3 class CalType(Enum): TROPICAL = 1 CALDAV = 2 class Env: __VERSION__ = "0.1" def __init__(self): # Config directory self.confdir=Path.home() / ".config" / "tropical" if not self.confdir.is_dir(): self.confdir.mkdir() # Config file self.confFile=self.confdir / "config.ini" self.config=configparser.ConfigParser() if not self.confFile.is_file(): self.initConfig() else: self.config.read(self.confFile) # Database self.dbFile=self.confdir / "sqlite3.db" self.db=CalDB(str(self.dbFile)) def initConfig(self): self.config["global"]={"new":True} with open(self.confFile,"w") as f: self.config.write(f) def listEventsOn(self, yy, mm, dd): offset=24*3600-1 d=datetime.date(yy,mm,dd) start=int(time.mktime(d.timetuple())) end=start+offset events=list() for e in self.db.listEvents(): if e["start"] >=start and e["start"] <= end: events.append(e) # TODO: Account for repeat return events