aboutsummaryrefslogblamecommitdiff
path: root/src/background.ts
blob: 1a0c1eb4110f8817c332b9a4ea82c46fce661238 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
                               
                                     
                                                                    
                            
                                                  
                                                           
 



                                                       
              
                     



                                                                                               
  
                                    




                                                                 
                 
                                     
                                                                
                                                 
                                             



                                           
                                                                                                               

                                        

                                                                                                          
         















                                                              
              




                                      
                                                                 
                                    


                                                                              
                         





                                                       























                                                                      


                                                                  
                     
                                


                                          
                                            






                            
                        








                                                                  


                                                     

                                         
                         
                          
                                      
                                                                                                   
                                         
                                           
                

                                        
                                                
                  
         
                                   




                                           
                                                                          
                  
         
                                       
                                 
                                 
                                                
                  
         
                                    




                                                        
                                                                                                                   

                                                
                  
         
                                    
                                                                                                      
                                  
                                                                   


                                       
                  
         
                                    
                                                                                          




                                                 


                                                
                                 

                                                

                                                                                     
               


                                               
                                    
                                                                                                   








                                                                      
                                                  


         
import * as gapi from './gapi';
import { MsgType, Msg } from './msg';
import { Duration, TrackPeriod, TrackPeriodFlat } from './duration';
import moment from 'moment';
import { GraphData, getGraphData } from './graph';
import { PatternEntry, PatternEntryFlat } from './pattern';

let mainPatterns: PatternEntry[] = [];
let analyzePatterns: PatternEntry[] = [];
let calendars: {[id: string]: gapi.GCalendarMeta} = {};
let calData: {[id: string]: gapi.GCalendar} = {};
let config = {
    trackedPeriods: [
        new TrackPeriod('Today', Duration.days(1), Duration.days(0)),
        new TrackPeriod('Yesterday', Duration.days(2), Duration.days(1)),
        new TrackPeriod('This Week', Duration.weeks(1), Duration.weeks(0)),
        new TrackPeriod('This Month', Duration.months(1), Duration.months(0))] as TrackPeriod[]
};
let mainGraphData: GraphData[] = [];
let dirtyMetadata = false;

function loadMetadata() {
    return new Promise(resolver => chrome.storage.local.get([
        'calendars', 'config', 'mainPatterns', 'analyzePatterns',
    ], items => {
        if (chrome.runtime.lastError)
            console.error("error while loading saved metadata");
        else if (!items.hasOwnProperty('config'))
            console.log("no saved metadata");
        else
        {
            console.log('metadata loaded');
            config = {
                trackedPeriods: items.config.trackedPeriods.map((p: TrackPeriodFlat) => TrackPeriod.inflate(p))
            };
            calendars = items.calendars;
            mainPatterns = items