tolikpunkoff

ip_background.js (background script for firefox addon)

Sep 30th, 2019
189
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var defAddr='https://api.myip.com/';
  2. var curAddr='';
  3.  
  4. function isEmptyObject(obj)
  5. {
  6.     for (var i in obj)
  7.     {
  8.         if (obj.hasOwnProperty(i))
  9.         {
  10.             return false;
  11.         }
  12.     }
  13.     return true;
  14. }
  15.  
  16. function onGot(item)
  17. {
  18.     if (isEmptyObject(item))
  19.     {
  20.         curAddr = defAddr;
  21.     }
  22.     else
  23.     {
  24.         if (item.server_settings.script_addr == '')
  25.         {
  26.             curAddr = defAddr;
  27.         }
  28.         else
  29.         {
  30.             curAddr = item.server_settings.script_addr;
  31.         }
  32.     }  
  33. }
  34.  
  35. function onGotError(error)
  36. {
  37.     window.alert(`Error: ${error}`);
  38. }
  39.  
  40. function loadSettings()
  41. {
  42.     var gettingItem = browser.storage.local.get('server_settings');
  43.     return gettingItem.then(onGot, onGotError);
  44. }
  45.  
  46. function doRequest() //main request function
  47. {
  48.     var btitle = '';
  49.    
  50.     browser.browserAction.setIcon({
  51.         path: 'flags/1working.png'
  52.     });
  53.     btitle = "Working...";
  54.     browser.browserAction.setTitle({title: btitle});
  55.    
  56.     $.get(curAddr)
  57.         .done (function (data) {
  58.             //data processing code here
  59.             var json = $.parseJSON(data);
  60.                        
  61.             if (json.cc.trim() == '') //no country code
  62.             {
  63.                 browser.browserAction.setIcon({
  64.                     path: 'flags/3unknow.png'
  65.                 });            
  66.                 btitle = json.ip + " " + "Unknow country";
  67.                 browser.browserAction.setTitle({title: btitle});
  68.             }
  69.             else //country code exist
  70.             {
  71.                 browser.browserAction.setIcon({
  72.                     path: 'flags/' + json.cc.trim() + '.png'
  73.                 });
  74.                 btitle = json.ip + " " + json.country + " (" + json.cc + ")";
  75.                 browser.browserAction.setTitle({title: btitle});
  76.             }
  77.         })
  78.         .fail(function () {
  79.             //error processing code here
  80.             browser.browserAction.setIcon({
  81.                     path: 'flags/2error.png'
  82.             });
  83.             btitle = "Error";
  84.             browser.browserAction.setTitle({title: btitle});
  85.         });
  86. }
  87.  
  88. function listinerRun()
  89. {
  90.     loadSettings()
  91.     .then(doRequest);  
  92. }
  93.  
  94. browser.tabs.onActivated.addListener(listinerRun);
  95. browser.tabs.onCreated.addListener(listinerRun);
  96. browser.tabs.onUpdated.addListener(listinerRun);
RAW Paste Data