Browse Source

Finished with a very simple implementation

master
Raphael Roberts 5 years ago
parent
commit
98cb878814
  1. 53
      panera_shifts_gcal_backend/__init__.py
  2. 10
      panera_shifts_gcal_backend/config.py

53
panera_shifts_gcal_backend/__init__.py

@ -0,0 +1,53 @@
import pytz
import calendar as cal_module
import datetime
from panera_shifts_gcal_backend.shifts import Shift
from panera_shifts_gcal_backend.config import config
from gapi.apis.calendar_api.models import Calendar
from gapi.apis.calendar_api.calendar_api import calendar_api
from panera_shifts import login, get_shifts_between
def init_calendar():
api = calendar_api("Panera shift sync")
calendar = Calendar(api, config["calendar"]["calendar_name"].lower())
return calendar
def input_all_shifts_for_month():
# get latest inputted date; only show shifts past that date
calendar = init_calendar()
today = datetime.date.today()
max_day = cal_module.monthrange(today.year, today.month)
start = datetime.date(today.year, today.month, 1)
end = datetime.date(today.year, today.month, max_day[1])
read_from = datetime.date(start.year, start.month, start.day)
start_dt = datetime.datetime.combine(
start, datetime.time(0, 0, 0, 0), datetime.timezone.utc
)
end_dt = datetime.datetime.combine(
end + datetime.timedelta(days=1),
datetime.time(0, 0, 0, 0),
datetime.timezone.utc,
)
for event in calendar.get_events(start_dt, end_dt):
if event.end > read_from:
read_from = event.end
panera_session = login(
config["credentials"]["username"], config["credentials"]["password"]
)
shifts_info = get_shifts_between(
panera_session,
datetime.date(read_from.year, read_from.month, read_from.day),
end,
)
timezone = shifts_info["data"]["timezone"]
cafe_info = shifts_info["data"]["currentShifts"]["cafe"][0]
for shift in shifts_info["data"]["currentShifts"]["shifts"]:
s = Shift.from_dict(shift, cafe_info, timezone)
e = s.to_Event()
calendar.update_or_add_event(e)
if __name__ == "__main__":
input_all_shifts_for_month()

10
panera_shifts_gcal_backend/config.py

@ -0,0 +1,10 @@
import appdirs
import os
import toml
from pathlib import Path
my_appdirs = appdirs.AppDirs("panera_shifts_gcal")
os.makedirs(my_appdirs.user_config_dir, exist_ok=True)
config_file = Path(my_appdirs.user_config_dir) / "config.toml"
with config_file.open() as config:
config = toml.load(config)
Loading…
Cancel
Save