|
@@ -21,20 +21,20 @@ _CHECK_ERRORS = { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
def _serialize_page(page): |
|
|
def _serialize_page(page): |
|
|
return OrderedDict(("title", page.title), ("url", page.url)) |
|
|
|
|
|
|
|
|
return OrderedDict((("title", page.title), ("url", page.url))) |
|
|
|
|
|
|
|
|
def _serialize_source(source, show_skip=True): |
|
|
def _serialize_source(source, show_skip=True): |
|
|
if not source: |
|
|
if not source: |
|
|
return OrderedDict(("url", None), ("confidence", 0.0), |
|
|
|
|
|
("violation", "none")) |
|
|
|
|
|
|
|
|
return OrderedDict(( |
|
|
|
|
|
("url", None), ("confidence", 0.0), ("violation", "none"))) |
|
|
|
|
|
|
|
|
conf = source.confidence |
|
|
conf = source.confidence |
|
|
data = OrderedDict( |
|
|
|
|
|
|
|
|
data = OrderedDict(( |
|
|
("url", source.url), |
|
|
("url", source.url), |
|
|
("confidence", conf), |
|
|
("confidence", conf), |
|
|
("violation", "suspected" if conf >= T_SUSPECT else |
|
|
("violation", "suspected" if conf >= T_SUSPECT else |
|
|
"possible" if conf >= T_POSSIBLE else "none") |
|
|
"possible" if conf >= T_POSSIBLE else "none") |
|
|
) |
|
|
|
|
|
|
|
|
)) |
|
|
if show_skip: |
|
|
if show_skip: |
|
|
data["skipped"] = source.skipped |
|
|
data["skipped"] = source.skipped |
|
|
return data |
|
|
return data |
|
@@ -44,8 +44,8 @@ def format_api_error(code, info): |
|
|
info = type(info).__name__ + ": " + str(info) |
|
|
info = type(info).__name__ + ": " + str(info) |
|
|
elif isinstance(info, unicode): |
|
|
elif isinstance(info, unicode): |
|
|
info = info.encode("utf8") |
|
|
info = info.encode("utf8") |
|
|
error_inner = OrderedDict(("code", code), ("info", info)) |
|
|
|
|
|
return OrderedDict(("status", "error"), ("error", error_inner)) |
|
|
|
|
|
|
|
|
error_inner = OrderedDict((("code", code), ("info", info))) |
|
|
|
|
|
return OrderedDict((("status", "error"), ("error", error_inner))) |
|
|
|
|
|
|
|
|
def _hook_default(query): |
|
|
def _hook_default(query): |
|
|
info = u"Unknown action: '{0}'".format(query.action.lower()) |
|
|
info = u"Unknown action: '{0}'".format(query.action.lower()) |
|
@@ -73,16 +73,16 @@ def _hook_check(query): |
|
|
return format_api_error("bad_title", info.format(query.page.title)) |
|
|
return format_api_error("bad_title", info.format(query.page.title)) |
|
|
|
|
|
|
|
|
result = query.result |
|
|
result = query.result |
|
|
data = OrderedDict( |
|
|
|
|
|
|
|
|
data = OrderedDict(( |
|
|
("status", "ok"), |
|
|
("status", "ok"), |
|
|
("meta", OrderedDict( |
|
|
|
|
|
|
|
|
("meta", OrderedDict(( |
|
|
("time", result.time), |
|
|
("time", result.time), |
|
|
("queries", result.queries), |
|
|
("queries", result.queries), |
|
|
("cached", result.cached), |
|
|
("cached", result.cached), |
|
|
("redirected", bool(query.redirected_from)) |
|
|
("redirected", bool(query.redirected_from)) |
|
|
)), |
|
|
|
|
|
|
|
|
))), |
|
|
("page", _serialize_page(query.page)) |
|
|
("page", _serialize_page(query.page)) |
|
|
) |
|
|
|
|
|
|
|
|
)) |
|
|
if result.cached: |
|
|
if result.cached: |
|
|
data["meta"]["cache_time"] = result.cache_time |
|
|
data["meta"]["cache_time"] = result.cache_time |
|
|
if query.redirected_from: |
|
|
if query.redirected_from: |
|
@@ -93,8 +93,8 @@ def _hook_check(query): |
|
|
|
|
|
|
|
|
def _hook_sites(query): |
|
|
def _hook_sites(query): |
|
|
langs, projects = get_sites() |
|
|
langs, projects = get_sites() |
|
|
return OrderedDict(("status", "ok"), ("langs", langs), |
|
|
|
|
|
("projects", projects)) |
|
|
|
|
|
|
|
|
return OrderedDict(( |
|
|
|
|
|
("status", "ok"), ("langs", langs), ("projects", projects))) |
|
|
|
|
|
|
|
|
_HOOKS = { |
|
|
_HOOKS = { |
|
|
"compare": _hook_check, |
|
|
"compare": _hook_check, |
|
|