diff --git a/controllers/default.py b/controllers/default.py index 6324adca..f54c571f 100644 --- a/controllers/default.py +++ b/controllers/default.py @@ -273,9 +273,15 @@ def user_editorials(): table_rows = sorted(table_rows, key=lambda x: (x[0], x[1]), reverse=True) - return dict(table_rows=table_rows[:10], + res = dict(table_rows=table_rows[:10], recent_editorials_table=table, pending_count=pending_count) + + # for api request + if utilities.is_apicall(): + return response.json(res) + + return res # ---------------------------------------------------------------------------- def user_wise_editorials(): @@ -748,6 +754,8 @@ def contests(): reminder_class = button_class + " orange set-reminder" left_tooltip_attrs = {"position": "left", "delay": "50"} + api_resp = [] + for contest in contest_list: if contest["site"] not in CONTESTS_SITE_MAPPING: continue @@ -764,6 +772,8 @@ def contests(): contest["name"] = contest["name"].encode("ascii", "ignore") + api_resp.append(contest) + append = tr.append if contest["status"] == "CODING": @@ -811,6 +821,9 @@ def contests(): tbody.append(tr) + if utilities.is_apicall(): + return response.json(dict(contests=api_resp)) + table.append(tbody) return dict(table=table, retrieved=True) diff --git a/controllers/user.py b/controllers/user.py index 1cfb48fe..3328e8a9 100644 --- a/controllers/user.py +++ b/controllers/user.py @@ -813,8 +813,10 @@ def _get_categorized_json(problem_ids): # ------------------------------------------------------------------------------ def get_stopstalk_user_stats(): if request.extension != "json": - raise HTTP(400) - return + # for api request + if not utilities.is_apicall(): + raise HTTP(400) + return user_id = request.vars.get("user_id", None) custom = request.vars.get("custom", None) @@ -842,6 +844,11 @@ def get_stopstalk_user_stats(): result = utilities.get_rating_information(user_id, custom, auth.is_logged_in()) + + # for api request + if utilities.is_apicall(): + return response.json(result) + return result # ------------------------------------------------------------------------------ @@ -974,6 +981,10 @@ def profile(): output["cf_count"] = cf_count + # for api request + if utilities.is_apicall(): + return response.json(output) + return output # ------------------------------------------------------------------------------