def init_state(terms=None, tilds=None, timestamp=None): import sys reload(sys) sys.setdefaultencoding('utf-8') date = models.get_current_date(tilds) return { 'terms' : terms or '', 'terms_v' : terms or '', 'tilds' : tilds or '', 'tilds_v' : tilds or '', 'timestamp' : tools.to_timestamp(date) or timestamp or '', 'timestamp_v' : tools.to_verbose(d=date) or tools.to_verbose(t=timestamp) or '' }
def search(terms, **kwargs): results = [] # Check Result Existence for (page_title, page_id) in pages(terms, **kwargs): result = { 'page_id' : page_id, 'page_title' : page_title, 'is_match' : urllib.unquote(terms) in [page_id, page_title] } timestamp = kwargs.get('timestamp') rev_id = None try: html = get_response(WIKI_URL_HISTORY, { 'page_title' : urllib.quote(page_title), 'timestamp' : timestamp.ljust(14, '0') }) jsnr = json.load(html) jsnp = jsnr['query']['pages'].values()[0] if jsnp.has_key('revisions'): if timestamp: rev_id = jsnp['revisions'][0]['revid'] else: rev_id = jsnp['revisions'][0]['parentid'] except Exception as e: logging.error('views_page.search : error = ' + str(e)) result.update({ 'is_invalid' : not rev_id, 'rev_id' : rev_id, 'timestamp' : timestamp, 'date' : tools.to_verbose(t=timestamp) }) if result['is_match'] and not result.get('is_invalid'): return [result] else: results.append(result) return results
def get_json(self, tilds): context = { } try: date = models.get_current_date(tilds) context = { 'tilds' : tilds, 'timestamp' : tools.to_timestamp(date) or '', 'timestamp_v' : tools.to_verbose(d=date) or '' } except Exception as e: context['error'] = str(e) finally: tools.json_response(self, context)