def select_top_coder(): # Top Coder Layer try: # 오늘 요일 월1 ~ 일7 dayOfWeekNum = datetime.now().isoweekday() # 요일 별 제출 기간 추려내기 minusDays = {1: -1, 2: -2, 3: -3, 4: -4, 5: -5, 6: -6, 7: -0} addDays = {1: 5, 2: 4, 3: 3, 4: 2, 5: 1, 6: 0, 7: 6} # 금주의 시작일과 끝일 구함 submissionDatePeriod = dayOfWeek(minusDays=minusDays[dayOfWeekNum], addDays=addDays[dayOfWeekNum]) # 이번주에 낸 제출 목록 ranks = select_ranks( select_between_days_last_submissions( select_last_submissions(memberIdIndex=None, problemIndex=None).subquery(), submissionDatePeriod).subquery()).subquery() ranks = join_member_id( ranks, subMemberIdIndex=ranks.c.memberIdIndex).subquery() # 랭킹 동률 처리 topCoders = ranks_sorted(rankTieProcess(ranks).subquery()).all() except Exception: topCoders = [] return topCoders
def select_top_coder(): # Top Coder Layer try: # 오늘 요일 월1 ~ 일7 dayOfWeekNum = datetime.now().isoweekday() # 요일 별 제출 기간 추려내기 minusDays = {1: -1, 2: -2, 3: -3, 4: -4, 5: -5, 6: -6, 7: -0} addDays = {1: 5, 2: 4, 3: 3, 4: 2, 5: 1, 6: 0, 7: 6} # 금주의 시작일과 끝일 구함 submissionDatePeriod = dayOfWeek(minusDays=minusDays[dayOfWeekNum], addDays=addDays[dayOfWeekNum]) # 이번주에 낸 제출 목록 topCoderId = ( ranks_sorted( select_ranks( select_between_days_last_submissions( select_last_submissions().subquery(), submissionDatePeriod ).subquery() ).subquery() ) .first() .memberId ) except Exception: topCoderId = None return topCoderId
def select_top_coder(): # Top Coder Layer try: # 오늘 요일 월1 ~ 일7 dayOfWeekNum = datetime.now().isoweekday() # 요일 별 제출 기간 추려내기 minusDays = {1: -1, 2: -2, 3: -3, 4: -4, 5: -5, 6: -6, 7: -0} addDays = {1: 5, 2: 4, 3: 3, 4: 2, 5: 1, 6: 0, 7: 6} # 금주의 시작일과 끝일 구함 submissionDatePeriod = dayOfWeek(minusDays = minusDays[dayOfWeekNum], addDays = addDays[dayOfWeekNum]) # 이번주에 낸 제출 목록 ranks = select_ranks(select_between_days_last_submissions(select_last_submissions(memberIdIndex = None, problemIndex = None).subquery(), submissionDatePeriod).subquery()).subquery() ranks = join_member_id(ranks, subMemberIdIndex = ranks.c.memberIdIndex).subquery() # 랭킹 동률 처리 topCoders= ranks_sorted(rankTieProcess(ranks).subquery()).all() except Exception: topCoders = [] return topCoders