Exemple #1
0
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