Bigpond Usage

Additional information for bigpond daily usage page

  1. // ==UserScript==
  2. // @name Bigpond Usage
  3. // @namespace http://nmtools.com
  4. // @description Additional information for bigpond daily usage page
  5. // @version 2.3
  6. // @include https://my.bigpond.com/mybigpond/myaccount/myusage/daily/*
  7. // @require http://code.jquery.com/jquery-1.8.1.min.js
  8. // @copyright NMGod
  9. // ==/UserScript==
  10.  
  11. //###Edit These two Lines###\\
  12. var Bandwidth = 100000; //Usage per month (in Megabytes)
  13. var StartDate = 2; //Day of month your bandwidth renews, ie. 2 = 2nd day of the month
  14. //###End of Editing###\\
  15.  
  16.  
  17.  
  18. //var TotalDownload = $(".usage-table tr:contains('Total'):last strong:eq(1)").html();
  19. //var TotalUplaod = $(".usage-table tr:contains('Total'):last strong:eq(2)").html();
  20.  
  21. var UnmeteredUsage = $(".usage-table tr:contains('Total'):last strong:eq(4)").html();
  22. var TotalUsage = $(".usage-table tr:contains('Total'):last strong:eq(3)").html();
  23. var Now = new Date();
  24. var DaysInUsageMonth;
  25. var DaysUsed;
  26.  
  27. if(Now.getDate() < StartDate) {
  28. //In the month after usage started
  29. DaysInUsageMonth = new Date(Now.getFullYear(), Now.getMonth(), 0).getDate();
  30. DaysUsed = (DaysInUsageMonth - StartDate) + Now.getDate() + 1;
  31. } else {
  32. DaysInUsageMonth = new Date(Now.getFullYear(), Now.getMonth() + 1, 0).getDate();
  33. DaysUsed = Now.getDate() - StartDate + 1;
  34. }
  35.  
  36. var DailyAllowance = parseInt(Bandwidth / DaysInUsageMonth);
  37. var RemainingUsage = Bandwidth - TotalUsage;
  38. var ExpectedToDate = DailyAllowance * DaysUsed;
  39. var FreeUsageToDate = ExpectedToDate - TotalUsage;
  40.  
  41. var InfoTableString = [];
  42. var RowStartStr = "<tr><td style='border-left: 1px solid #0075B0' class='light'>"
  43. var RowMiddleStr = "</td><td class='dark'>"
  44.  
  45. InfoTableString.push("<style type='text/css'>\n");
  46. InfoTableString.push("#infotable td{text-align: right; padding:0px 2px 1px 2px; border-bottom: 1px solid #005090; border-right: 1px solid #0075B0}\n");
  47. InfoTableString.push("#infotable table{width:200px !important;border-collapse: collapse; float: right}\n");
  48. InfoTableString.push(".light{background-color: #0E1E32}\n");
  49. InfoTableString.push(".dark{background-color: #070E17}\n");
  50. InfoTableString.push("</style>\n");
  51. InfoTableString.push("<div id='infotable'><table>\n");
  52. InfoTableString.push(RowStartStr + "Usage Per Day" + RowMiddleStr + "<strong>" + DailyAllowance + "</strong></td></tr>\n");
  53. InfoTableString.push(RowStartStr + "Expected Usage" + RowMiddleStr + ExpectedToDate + "</td></tr>\n");
  54. InfoTableString.push(RowStartStr + "Actual Usage" + RowMiddleStr + "<strong>" + TotalUsage + "</strong></td></tr>\n");
  55. InfoTableString.push(RowStartStr + "Free Usage" + RowMiddleStr + FreeUsageToDate + "</td></tr>\n");
  56. InfoTableString.push(RowStartStr + "Remaining Usage" + RowMiddleStr + "<strong>" + RemainingUsage + "</strong></td></tr>\n");
  57. InfoTableString.push(RowStartStr + "Unmetered Usage" + RowMiddleStr + UnmeteredUsage + "</td></tr>\n");
  58. InfoTableString.push("</table></div>");
  59.  
  60. $(InfoTableString.join("")).insertBefore(".usageScale");