コード例 #1
0
ファイル: exporters.py プロジェクト: xbee/zenodo
    def _build_query_string(self, event):
        id_site = current_app.config['ZENODO_STATS_PIWIK_EXPORTER']\
            .get('id_site', None)
        url = ui_link_for('record_html', id=event.recid)
        visitor_id = event.visitor_id[0:16]
        _, record = fetch_record(event.recid)
        oai = record.get('_oai', {}).get('id')
        cvar = json.dumps({'1': ['oaipmhID', oai]})
        action_name = record.get('title')[:150]  # max 150 characters

        params = dict(idsite=id_site,
                      rec=1,
                      url=url,
                      _id=visitor_id,
                      cid=visitor_id,
                      cvar=cvar,
                      cdt=event.timestamp,
                      urlref=event.referrer,
                      action_name=action_name)

        if event.to_dict().get('country'):
            params['country'] = event.country.lower()
        if event.to_dict().get('file_key'):
            params['url'] = ui_link_for('record_file',
                                        id=event.recid,
                                        filename=event.file_key)
            params['download'] = params['url']

        return '?{}'.format(urlencode(params, 'utf-8'))
コード例 #2
0
ファイル: exporters.py プロジェクト: EnterStudios/zenodo
    def _build_query_string(self, event):
        id_site = current_app.config['ZENODO_STATS_PIWIK_EXPORTER']\
            .get('id_site', None)
        url = 'zenodo.org/record/{}'.format(event.recid)
        visitor_id = event.visitor_id[0:16]
        _, record = fetch_record(event.recid)
        oai = record.get('_oai', {}).get('id')
        cvar = json.dumps({'1': ['oaipmhID', oai]})
        action_name = record.get('title')[:150]  # max 150 characters

        params = dict(idsite=id_site,
                      rec=1,
                      url=url,
                      _id=visitor_id,
                      cid=visitor_id,
                      cvar=cvar,
                      country=event.country,
                      cdt=event.timestamp,
                      urlref=event.referrer,
                      action_name=action_name)

        if 'file_key' in event:
            params['url'] = '{}/files/{}'.format(url, event.file_key)
            params['download'] = params['url']

        return '?{}'.format(urlencode(params))
コード例 #3
0
ファイル: exporters.py プロジェクト: slint/zenodo
    def _build_query_string(self, event):
        id_site = current_app.config['ZENODO_STATS_PIWIK_EXPORTER']\
            .get('id_site', None)
        url = ui_link_for('record_html', id=event.recid)
        visitor_id = event.visitor_id[0:16]
        _, record = fetch_record(event.recid)
        oai = record.get('_oai', {}).get('id')
        cvar = json.dumps({'1': ['oaipmhID', oai]})
        action_name = record.get('title')[:150]  # max 150 characters

        params = dict(
            idsite=id_site,
            rec=1,
            url=url,
            _id=visitor_id,
            cid=visitor_id,
            cvar=cvar,
            cdt=event.timestamp,
            urlref=event.referrer,
            action_name=action_name
        )

        if event.to_dict().get('country'):
            params['country'] = event.country.lower()
        if event.to_dict().get('file_key'):
            params['url'] = ui_link_for('record_file', id=event.recid,
                                        filename=event.file_key)
            params['download'] = params['url']

        return '?{}'.format(urlencode(params, 'utf-8'))
コード例 #4
0
ファイル: cli.py プロジェクト: xbee/zenodo
def build_record_view_event(data):
    """Build a 'record-view' event from request data."""
    try:
        recid, _ = parse_record_url(data['url'])
        assert recid, 'no recid in url'
        _, record = fetch_record(recid)
    except Exception:
        return

    return build_common_event(record, data)
コード例 #5
0
ファイル: cli.py プロジェクト: xbee/zenodo
def build_file_download_event(data):
    """Build a 'file-download' event from request data."""
    try:
        recid, filename = parse_record_url(data['url'])
        assert recid and filename, 'no recid and filename in url'
        _, record = fetch_record(recid)
        obj = fetch_record_file(recid, filename)
    except Exception:
        return

    return dict(
        bucket_id=str(obj.bucket_id),
        file_id=str(obj.file_id),
        file_key=obj.key,
        size=obj.file.size,
        **build_common_event(record, data)
    )