Esempio n. 1
0
def track_data(name, data):
    """ Track arbitrary data.

        Calling this function will generate a data tracking event.

        :param name: The identifier of the data.
        :type name: str

        :param data: Arbitrary data, must be compatible with JSON.
        :type data: dict, list, str, int, float, None
    """

    event = {
        'type': 'data',
        'time': int(time.time()),
        'timezone_offset': get_utc_offset(),
        'os_version': OS_VERSION,
        'cpu_id': CPU_ID,
        'token': TOKEN,
        'language': LANGUAGE,
        'name': str(name),
        'data': data
    }

    try:
        af = open_locked(tracker_events_file, 'a')
    except IOError as e:
        logger.error("Error opening tracker events file {}".format(e))
    else:
        with af:
            af.write(json.dumps(event) + "\n")
        if 'SUDO_USER' in os.environ:
            chown_path(tracker_events_file)
Esempio n. 2
0
def get_action_event(name):
    return {
        'type': 'action',
        'time': int(time.time()),
        'timezone_offset': get_utc_offset(),
        'os_version': OS_VERSION,
        'cpu_id': CPU_ID,
        'token': TOKEN,
        'language': LANGUAGE,
        'name': name
    }
Esempio n. 3
0
def get_action_event(name):
    """TODO"""

    return {
        'type': 'action',
        'time': int(time.time()),
        'timezone_offset': get_utc_offset(),
        'os_version': OS_VERSION,
        'cpu_id': CPU_ID,
        'token': TOKEN,
        'language': LANGUAGE,
        'name': name
    }
Esempio n. 4
0
def get_data_event(name, data):
    """TODO"""

    return {
        'type': 'data',
        'time': int(time.time()),
        'timezone_offset': get_utc_offset(),
        'os_version': OS_VERSION,
        'cpu_id': CPU_ID,
        'token': TOKEN,
        'language': LANGUAGE,
        'name': str(name),
        'data': data
    }
Esempio n. 5
0
def get_data_event(name, data):
    """TODO"""

    return {
        'type': 'data',
        'time': int(time.time()),
        'timezone_offset': get_utc_offset(),
        'os_version': OS_VERSION,
        'cpu_id': CPU_ID,
        'token': TOKEN,
        'language': LANGUAGE,
        'name': str(name),
        'data': data
    }
Esempio n. 6
0
def get_session_event(session):
    """ Construct the event data structure for a session. """

    return {
        'type': 'session',
        'time': session['started'],
        'timezone_offset': get_utc_offset(),
        'os_version': OS_VERSION,
        'cpu_id': CPU_ID,
        'token': TOKEN,
        'language': LANGUAGE,
        'name': session['name'],
        'length': session['elapsed'],
        'token-system': session.get('token-system', '')
    }