コード例 #1
0
def calculate_waste(filename):
    sessions = read_sessions(filename)
    waste = ['Preferences', 'Export page', 'Page down', 'Start', 
             'Bring to front', 'Duplicate page', 'Save', 'Copy module', 
             'Page up', 'Module repositioned', 'Paste module', 'Show preview', 
             'Module removed', 'Change page height', 'Import page', 
             'Remove module', 'Remove page', 'Send back', 'Page loaded']
    return count_events(sessions, waste)
コード例 #2
0
ファイル: segments.py プロジェクト: klangner/bluenotepad
def analyze_sessions(filename, threshold):
    sessions = read_sessions(filename)
    counter = 0
    for events in sessions.itervalues():
        if len(events) < threshold:
            counter += 1
    print( 'Below threshold: %d' % counter)
    print( 'All sessions: %d' % len(sessions))
コード例 #3
0
def analyze_event_frequency(filename):
    sessions = read_sessions(filename)
    events = defaultdict(int)
    for records in sessions.itervalues():
        for record in records:
            name = record['event']
            events[name] += 1
    print len(events)
    for name, counter in events.iteritems():
        print name, ":\t", counter
コード例 #4
0
ファイル: segments.py プロジェクト: klangner/bluenotepad
def session_histogram(filename):
    sessions = read_sessions(filename)
    data = [min(len(events),200) for events in sessions.itervalues()]
#    data = [len(events) for events in sessions.itervalues()]
    plt.ylabel('Number of sessions')
    plt.xlabel('Number of actions')
    plt.title('Histogram of session activity')
    plt.hist(data, bins=20, range=[0, 200])
#    plt.hist(data, log=True)
    plt.show()
コード例 #5
0
def analyze_events(filename):
    sessions = read_sessions(filename)
#    sessions = {k:v for k,v in sessions.iteritems() if len(v) > 10}
#    count_events(sessions, ['Save'])
    count_events(sessions, ['Page page'])
    count_events(sessions, ['Insert page'])
#    count_events(sessions, ['Show preview'])
#    count_events(sessions, ['Module repositioned'])
#    count_events(sessions, ['Change page height'])
#    count_events(sessions, ['Module edited'])
#    count_events(sessions, ['Module removed'])
#    count_events(sessions, ['Remove page'])
    print 'Events: %d Sessions: %d' % (sum([len(v) for v in sessions.itervalues()]), len(sessions))
コード例 #6
0
ファイル: aggregate.py プロジェクト: klangner/bluenotepad
 def handle(self, *args, **options):
     notepads = Notepad.objects.all();
     today = datetime.today().replace(hour=0, minute=0, second=0, microsecond=0)
     yesterday = today - timedelta(days=1)
     file_date = yesterday.strftime("%Y-%m-%d")
     counter = 0 
     for notepad in notepads:
         filename = FILE_STORAGE + notepad.uuid + "/" + file_date + ".log"
         sessions = read_sessions(filename)
         stats = DailyStats(notepad=notepad)
         stats.day = yesterday.date()
         stats.session_count = len(sessions)
         stats.event_count = sum([len(events) for events in sessions.itervalues()])
         stats.report_data = self.createReport(sessions, notepad)
         stats.save()
         if len(sessions) > 0:
             counter += 1
         self.compressLog(filename)
     self.stdout.write('processed: %d notepads\n' % (counter))
コード例 #7
0
ファイル: flow_insights.py プロジェクト: klangner/bluenotepad
# -*- coding: utf-8 -*-
'''
Created on 05-08-2013

@author: klangner
'''
from bluenotepad.storage.log import read_folder_sessions, read_sessions
from collections import defaultdict
import os


DATA_ROOT = os.path.join(os.path.dirname(__file__), '../../data/')


def event_before(sesions, event_name):
    events = defaultdict(int)
    for records in sessions.itervalues():
        last_record = None
        for record in records:
            if record['event'] == event_name:
                events[last_record['event']] += 1
            last_record = record 
    for name, counter in events.iteritems():
        print name, ":\t", counter


if __name__ == '__main__':
#    sessions = read_folder_sessions(DATA_ROOT)
    sessions = read_sessions(DATA_ROOT + '2013-08-14.log')
    event_before(sessions, 'Show preview')