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'))
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))
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'))
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)
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) )