def test_query(self): wlib = self.store.wlib result = query_wlib.query(wlib, 'wiki', None) self.assertTrue(result) self.assertEqual(len(result), 4) # 4 webpages have wiki result = query_wlib.query(wlib, '.net', None) self.assertTrue(result) self.assertEqual(len(result), 1) # 1 match url
def test_query(self): wlib = self.store.wlib # 4 webpages have wiki result = query_wlib.query(wlib, 'wiki', None) self.assertTrue(result) self.assertEqual(len(result), 4) # 1 match url result = query_wlib.query(wlib, '.net', None) self.assertTrue(result) self.assertEqual(len(result), 1) self.assertEqual(result[0][0].id, 1) # 1 match nickname result = query_wlib.query(wlib, '_nickname_', None) self.assertTrue(result) self.assertEqual(len(result), 1) self.assertEqual(result[0][0].id, 1)
def queryWebLib(wfile, req, tag, querytxt): go_direct = req.param('submit') == '>' if querytxt.endswith('>'): querytxt = querytxt[:-1] go_direct = True wlib = store.getWeblib() tags, _ = weblib.parseTags(wlib, tag) # query result = query_wlib.query(wlib, querytxt, tags) # quick jump? if go_direct and result: top_item = result[0][0] #top_item = wlib.visit(top_item) response.redirect(wfile, top_item.url) return # category pane categoryList = _buildCategoryList(wlib) tag = tags and wlib.getTagByName(tags[-1]) or None # webitem pane webItems = [] if querytxt: tags_matched = query_wlib.query_tags(wlib, querytxt, tags) for tag in tags_matched: node = WebItemTagNode(tag) node.suffix = '...' webItems.append(node) for item,_ in result: webItems.append(WebItemNode(item)) renderer = WeblibRenderer(wfile) renderer.setLayoutParam(querytxt=querytxt) renderer.output( wlib.tags, None, wlib.getDefaultTag(), categoryList, webItems)
def queryWebLib(wfile, req, tag, sort, querytxt): go_direct = req.param('submit') == '>' if querytxt.endswith('>'): querytxt = querytxt[:-1] go_direct = True wlib = store.getWeblib() tags, _ = weblib.parseTags(wlib, tag) # query result = query_wlib.query(wlib, querytxt, tags) # quick jump? if go_direct and result: top_item = result[0][0] #top_item = wlib.visit(top_item) response.redirect(wfile, top_item.url) return # category pane categoryList = _buildCategoryList(wlib) tag = tags and wlib.getTagByName(tags[-1]) or None # upgrade_info upgrade_info = upgrade_checker.pollUpgradeInfo() # webitem pane webItems = [] if querytxt: tags_matched = query_wlib.query_tags(wlib, querytxt, tags) for tag in tags_matched: node = WebItemTagNode(tag) node.suffix = '...' webItems.append(node) # sort result? col, order = SORT.parse_token(sort) if col == SORT.TITLE or col == SORT.DATE: lst = [] for r in result: item = r[0] if col == SORT.TITLE: key = item.name.lower() else: key = item.created lst.append((key,r)) lst.sort(reverse=(order==SORT.DESC)) result = [r for _,r in lst] for item,_ in result: webItems.append(WebItemNode(item)) # reconstuct the base url qs = urllib.quote_plus(querytxt.encode('utf8')) base_url = '/weblib?query=' + qs renderer = WeblibRenderer(wfile) if sort: renderer.cookie['weblib_sort'] = sort renderer.setLayoutParam(querytxt=querytxt) renderer.output( base_url, wlib.tags, None, wlib.getDefaultTag(), categoryList, upgrade_info, sort, webItems, )