コード例 #1
0
ファイル: views.py プロジェクト: RobJohansen/tilde
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 ''
    }
コード例 #2
0
ファイル: views_page.py プロジェクト: RobJohansen/tilde
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
コード例 #3
0
ファイル: views.py プロジェクト: RobJohansen/tilde
    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)