import base64 from io import BytesIO from .event import * from .draw import * def im2base64str(im): io = BytesIO() im.save(io, 'png') base64_str = f"base64://{base64.b64encode(io.getvalue()).decode()}" return base64_str async def generate_day_schedule(server='cn'): events = await get_events(server, 0, 15) has_prediction = False for event in events: if event['start_days'] > 0: has_prediction = True if has_prediction: im = create_image(len(events) + 2) else: im = create_image(len(events) + 1) title = f'原神日历' pcr_now = get_pcr_now(0) draw_title(im, 0, title, pcr_now.strftime('%Y/%m/%d'), '正在进行') if len(events) == 0: draw_item(im, 1, 1, '无数据', 0, False) i = 1 for event in events: if event['start_days'] <= 0: draw_item(im, i, event['type'], event['title'], event['left_days'], event['forever']) i += 1 if has_prediction: draw_title(im, i, right='即将开始') for event in events: if event['start_days'] > 0: i += 1 draw_item(im, i, event['type'], event['title'], - event['start_days'], event['forever']) return im