def _contest_duration_format(contest): duration_days, duration_hrs, duration_mins, _ = cf_common.time_format( contest.durationSeconds) duration = f'{duration_hrs}h {duration_mins}m' if duration_days > 0: duration = f'{duration_days}d ' + duration return duration
def _get_formatted_contest_info(contest, tz): start = datetime.datetime.fromtimestamp(contest.startTimeSeconds, tz) start = f'{start.strftime("%d %b %y, %H:%M")} {tz}' duration_days, duration_hrs, duration_mins, _ = cf_common.time_format( contest.durationSeconds) duration = f'{duration_hrs}h {duration_mins}m' if duration_days > 0: duration = f'{duration_days}d ' + duration return contest.name, str(contest.id), start, duration, contest.register_url
async def _send_reminder_at(channel, role, contests, before_secs, send_time): delay = send_time - time.time() if delay <= 0: return await asyncio.sleep(delay) values = cf_common.time_format(before_secs) def make(value, label): tmp = f'{value} {label}' return tmp if value == 1 else tmp + 's' labels = 'day hr min sec'.split() before_str = ' '.join(make(value, label) for label, value in zip(labels, values) if value > 0) desc = f'About to start in {before_str}' embed = discord_common.cf_color_embed(description=desc) for name, value in _get_embed_fields_from_contests(contests): embed.add_field(name=name, value=value) await channel.send(role.mention, embed=embed)