forked from Stigmatoz/web-activity-time-tracker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbackground.js
More file actions
11 lines (11 loc) · 2.49 KB
/
background.js
File metadata and controls
11 lines (11 loc) · 2.49 KB
1
2
3
4
5
6
7
8
9
10
11
'use strict';var tabs;var currentTab;var activity=new Activity();var storage=new LocalStorage();var setting_interval_save;var setting_interval_inactivity;var setting_view_in_badge;function updateSummaryTime(){setInterval(backgroundCheck,SETTINGS_INTERVAL_CHECK_DEFAULT)}
function updateStorage(){setInterval(backgroundUpdateStorage,SETTINGS_INTERVAL_SAVE_STORAGE_DEFAULT)}
function backgroundCheck(){storage.getSettings(SETTINGS_INTERVAL_INACTIVITY,function(item){setting_interval_inactivity=item});storage.getSettings(SETTINGS_VIEW_TIME_IN_BADGE,function(item){setting_view_in_badge=item});chrome.windows.getLastFocused({populate:!0},function(currentWindow){if(currentWindow.focused){var activeTab=currentWindow.tabs.find(t=>t.active===!0);if(activeTab!==undefined&&activity.isValidPage(activeTab)){var activeUrl=activity.extractHostname(activeTab.url);var tab=activity.getTab(activeUrl);if(tab===undefined){activity.addTab(activeTab)}
if(tab!==undefined){activity.setCurrentActiveTab(tab.url);chrome.idle.queryState(parseInt(setting_interval_inactivity),function(state){if(state==='active'){tab.incSummaryTime();if(setting_view_in_badge===!0){var today=new Date().toLocaleDateString();var summary=tab.days.find(s=>s.date===today).summary;chrome.browserAction.setBadgeText({tabId:activeTab.id,text:String(convertSummaryTimeToBadgeString(summary))})}else{chrome.browserAction.setBadgeText({tabId:activeTab.id,text:''})}}})}}}})}
function backgroundUpdateStorage(){if(tabs!=undefined&&tabs.length>0)
storage.saveTabs(tabs)}
function setDefaultSettings(){storage.saveSettings(SETTINGS_INTERVAL_INACTIVITY,SETTINGS_INTERVAL_INACTIVITY_DEFAULT);storage.saveSettings(SETTINGS_INTERVAL_RANGE,SETTINGS_INTERVAL_RANGE_DEFAULT);storage.saveSettings(SETTINGS_VIEW_TIME_IN_BADGE,SETTINGS_VIEW_TIME_IN_BADGE_DEFAULT);storage.saveSettings(SETTINGS_INTERVAL_SAVE_STORAGE,SETTINGS_INTERVAL_SAVE_STORAGE_DEFAULT)}
function addListener(){chrome.tabs.onActivated.addListener(function(info){chrome.tabs.get(info.tabId,function(tab){activity.addTab(tab)})});chrome.webNavigation.onCompleted.addListener(function(details){chrome.tabs.get(details.tabId,function(tab){activity.updateFavicon(tab)})});chrome.runtime.onInstalled.addListener(function(details){if(details.reason=="install"){setDefaultSettings()}})}
function loadTabs(){storage.loadTabs(STORAGE_TABS,function(items)
{tabs=[];for(var i=0;i<items.length;i++){tabs.push(new Tab(items[i].url,items[i].favicon,items[i].days,items[i].summaryTime))}})}
loadTabs();addListener();updateSummaryTime();updateStorage()