def respond_schedule(message): calendar_ids = { '塩ホッケ': '*****@*****.**', '大西': '*****@*****.**', '耀太': '*****@*****.**' } john_events = get_upcoming_events(calendar_id=calendar_ids['塩ホッケ'], max_results=100) mary_events = get_upcoming_events(calendar_id=calendar_ids['大西'], max_results=100) mike_events = get_upcoming_events(calendar_id=calendar_ids['耀太'], max_results=100) from pprint import pprint min_time, max_time = datetime.time(18, 0), datetime.time(21, 0) intervals = get_available_time(min_time, max_time, john_events, mary_events, mike_events) free_list = [] for date in sorted(intervals.keys()): for pair in intervals[date]: start, end = pair start_str = start.strftime('%m/%d %H:%M') end_str = end.strftime('%m/%d %H:%M') text = '\r\n' + start_str + " ~ " + end_str free_list.append(text) reply_schedule = ' '.join(free_list) reply_message = '\r\n' + "3人の都合が合う日はこれです" + reply_schedule message.reply(reply_message)
def respond_schedule_today(message): #calendar_id = '*****@*****.**' #reply_message = events2text(calendar_id=calendar_id) #swordart_events = get_upcoming_events(calendar_id=calendar_ids['swordart'], max_results=100) #marianne_events = get_upcoming_events(calendar_id=calendar_ids['marianne'], max_results=100) #honnoji_events = get_upcoming_events(calendar_id=calendar_ids['honnoji'], max_results=100) for key in calendar_ids: reply_message = events2text_custom( events_from_now(events_today(get_upcoming_events(calendar_id=calendar_ids[key])))) message.reply(reply_message)
for date, ivals in intervals.items(): max_time = ivals[0][1] for i in range(len(ivals) - 1): first, second = ivals[i], ivals[i+1] max_time = max(max_time, first[1]) if max_time >= second[0]: continue free_interval = (max_time, second[0]) free_intervals[date].append(free_interval) return free_intervals def get_available_time(min_time, max_time, *events_list): intervals = extract_intervals(events_list) intervals = add_sentinels(intervals, min_time, max_time) intervals = sort_intervals(intervals) intervals = find_free_intervals(intervals) return intervals if __name__ == '__main__': calendar_ids = {'John': '*****@*****.**', 'Mary': '*****@*****.**', 'Mike': '*****@*****.**'} john_events = get_upcoming_events(calendar_id=calendar_ids['John'], max_results=100) mary_events = get_upcoming_events(calendar_id=calendar_ids['Mary'], max_results=100) mike_events = get_upcoming_events(calendar_id=calendar_ids['Mike'], max_results=100) from pprint import pprint min_time, max_time = datetime.time(9, 0), datetime.time(18, 0) # search free time between 9 and 18 o'clock. pprint(get_available_time(min_time, max_time, john_events, mary_events, mike_events))
free_intervals[date].append(free_interval) return free_intervals def get_available_time(min_time, max_time, *events_list): intervals = extract_intervals(events_list) intervals = add_sentinels(intervals, min_time, max_time) intervals = sort_intervals(intervals) intervals = find_free_intervals(intervals) return intervals if __name__ == '__main__': calendar_ids = { '岡本': '*****@*****.**', '山田': '*****@*****.**', '貝原': '*****@*****.**' } john_events = get_upcoming_events(calendar_id=calendar_ids['岡本'], max_results=100) mary_events = get_upcoming_events(calendar_id=calendar_ids['山田'], max_results=100) mike_events = get_upcoming_events(calendar_id=calendar_ids['貝原'], max_results=100) from pprint import pprint min_time, max_time = datetime.time(9, 0), datetime.time( 18, 0) # search free time between 9 and 18 o'clock. pprint( get_available_time(min_time, max_time, john_events, mary_events, mike_events))
def get_available_time(min_time, max_time, *events_list): intervals = extract_intervals(events_list) intervals = add_sentinels(intervals, min_time, max_time) intervals = sort_intervals(intervals) intervals = find_free_intervals(intervals) return intervals if __name__ == '__main__': calendar_ids = { '塩ホッケ': '*****@*****.**', '大西': '*****@*****.**', '耀太': '*****@*****.**' } john_events = get_upcoming_events(calendar_id=calendar_ids['塩ホッケ'], max_results=100) mary_events = get_upcoming_events(calendar_id=calendar_ids['大西'], max_results=100) mike_events = get_upcoming_events(calendar_id=calendar_ids['耀太'], max_results=100) from pprint import pprint min_time, max_time = datetime.time(9, 0), datetime.time( 18, 0) # search free time between 9 and 18 o'clock. pprint( get_available_time(min_time, max_time, john_events, mary_events, mike_events)) intervals = get_available_time(min_time, max_time, john_events, mary_events, mike_events) free_list = []
def respond_schedule_swordart(message): reply_message = events2text_custom( events_from_now(get_upcoming_events(calendar_id=calendar_ids['honnoji']))) message.reply(reply_message)