Esempio n. 1
0
def get_submissions(user_id, handle, stopstalk_handle, submissions, site,
                    custom):
    """
        Get the submissions and populate the database
    """

    from recommendations.problems import update_recommendation_status

    submission_count = len(submissions)

    if submission_count == 0:
        return submission_count

    for submission in submissions:
        try:
            pname = submission[2].encode("utf-8", "ignore")
        except UnicodeDecodeError:
            pname = str(submission[2])

        pname = pname.replace("\"", "").replace("'", "")
        plink = submission[1]
        pid = None
        if plink not in plink_to_id:
            is_codechef_url = utilities.urltosite(plink) == "codechef"
            if is_codechef_url:
                slug = sites.codechef.Profile.get_slug(plink)
                if slug in codechef_slugs:
                    pid = codechef_slugs[slug]
                else:
                    pid = None

            if pid is None:
                pid = ptable.insert(name=pname,
                                    link=plink,
                                    editorial_link=None,
                                    tags="['-']",
                                    editorial_added_on=todays_date_string,
                                    tags_added_on=todays_date_string,
                                    user_ids="",
                                    custom_user_ids="")
                plink_to_id[plink] = pid

            if is_codechef_url and pid is not None:
                codechef_slugs[slug] = pid
        else:
            pid = plink_to_id[plink]

        utilities.add_language_to_cache(submission[5])

        submission_insert_dict = {
            "user_id": user_id if not custom else None,
            "custom_user_id": user_id if custom else None,
            "stopstalk_handle": stopstalk_handle,
            "site_handle": handle,
            "site": site,
            "time_stamp": submission[0],
            "problem_id": pid,
            "lang": submission[5],
            "status": submission[3],
            "points": submission[4],
            "view_link": submission[6]
        }
        stable.insert(**submission_insert_dict)
        process_solved_counts(pid, plink, pname, submission[3], user_id,
                              custom)

        update_recommendation_status(user_id, pid, submission)

    return submission_count
Esempio n. 2
0
def update_recommendation_status():
    from recommendations.problems import update_recommendation_status

    pid = long(request.args[0])
    update_recommendation_status(session.user_id, pid)