def search(query, wfile): query_len = 1 text = query["text"][0] if text == "word-info": return word_info(query, wfile) elif text == "document-info": return doc_info(query, wfile) elif text == "lexgramm": saas_query, query_len = parse_lexgramm_cgi(query) elif text == "lexform": saas_query, query_len = parse_lexform_cgi(query) else: saas_query = text serp_params = dict(DEFAULT_SERP_PARAMS) serp_params["p"] = p = int(query.get("p", [0])[0]) serp_params["dpp"] = dpp = int(query.get("dpp", [10])[0]) serp_params["spd"] = spd = int(query.get("spd", [10])[0]) response = SearchResponse( query=saas_query, kps=KPS, max_docs=(p + 1) * dpp, docs_per_group=spd, hits_count=True, hits_info=True, ) results, stat = process(response, query_len, serp_params) rendering.render_xml(results, stat, serp_params, wfile)
def doc_info(query, wfile): docid = base64.b64decode(query["docid"][0]) response = SearchResponse( query='p_url:"%s"' % docid, kps=KPS, grouping=False, max_docs=1, ) if response.IsEmpty(): return attrs = tuple(response.Groups())[0].Attrs() results = [{"Attrs": attrs, "Snippets": [], "Url": docid}] stat = {"Docs": 1, "Hits": 0} rendering.render_xml(results, stat, DEFAULT_SERP_PARAMS, wfile, query_type="document-info", search_type="document-info")