您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds an average daily usage calculation to a wispmon.com Usage Report
当前为
// ==UserScript== // @name Average Daily Usage for wispmon.com Usage Report // @namespace http://clinton.kopotic.com/ // @version 0.4 // @description Adds an average daily usage calculation to a wispmon.com Usage Report // @match http://www.wispmon.com/usage/* // @match http://wispmon.com/usage/* // @require http://code.jquery.com/jquery-latest.js // @copyright 2014, Clinton Kopotic // ==/UserScript== /**/ var $total_month_usage = $("strong:contains('Total Usage This Month:')"); var $total_month_usage_html = $total_month_usage.html(); var number_of_days = $("strong:contains('Current Month')").nextAll("br").length - 3; var total_month_usage = parseFloat($total_month_usage_html.substring($total_month_usage_html.indexOf(":") + 1,$total_month_usage_html.indexOf("(")).trim()); console.log(total_month_usage + " / " + number_of_days + " = " + (total_month_usage / number_of_days)); var average_usage = total_month_usage / number_of_days; var average_usage_html = "<strong>Average Daily Usage: " + average_usage.toFixed(4) + "</strong><br>"; $total_month_usage.next().after(average_usage_html); /**/ /* A better algorithm would be: * 1) read through each of the days in current month parsing: * a) date * b) upload total * c) download total */ function DateLine(startDate, endDate, uploadAmount, uploadUnits, downloadAmount, downloadUnits) { this.startDate = startDate; this.endDate = endDate; this.uploadAmount = uploadAmount; this.uploadUnits = uploadUnits; this.downloadAmount = downloadAmount; this.downloadUnits = downloadUnits; this.toString = function () { return startDate + " - " + endDate }; } var $current_month = $("strong:contains('Current Month')"); var $days_list = $current_month.nextUntil('strong'); var days_list_length = $days_list.length - 1; var days_list_array = []; var total_upload = 0.0; var total_download = 0.0; for (var i = 0; i < days_list_length; ++i) { var date_line_split_array = $days_list.eq(i).prop("nextSibling").data.split(" "); days_list_array[i] = new DateLine( date_line_split_array[0], date_line_split_array[2], parseFloat(date_line_split_array[4]), date_line_split_array[5], parseFloat(date_line_split_array[8]), date_line_split_array[9] ); total_upload += days_list_array[i].uploadAmount; total_download += days_list_array[i].downloadAmount; } var now_date = new Date(); var days_in_month = new Date(now_date.getFullYear(), now_date.getMonth(), 0).getDate() + 1; var day_of_month = (now_date.getHours() >= 3) ? now_date.getDate() : now_date.getDate() - 1; console.log(day_of_month); console.log(days_in_month); $total_month_usage.next().after("<strong>Average Daily Upload Usage: " + (total_upload / days_list_length).toFixed(4) + "</strong><br>"); $total_month_usage.next().after("<strong>Average Daily Download Usage: " + (total_download / days_list_length).toFixed(4) + "</strong><br>"); $total_month_usage.next().after("<strong>Total Upload Usage: " + (total_upload).toFixed(4) + " (" + ((total_upload / 7.32) * 100.0).toFixed(2) + "%)" + "</strong><br>"); $total_month_usage.next().after("<strong>Total Download Usage: " + (total_download).toFixed(4) + " (" + ((total_download / 29.3) * 100.0).toFixed(2) + "%)" + "</strong><br>"); $total_month_usage.next().after("<strong>Percent Through Month: " + ((day_of_month / days_in_month) * 100.0).toFixed(2) + "%" + "</strong><br>"); /* * 2) Calculate the upload and download totals from 1) * 3) Determine the end date (not necessarily from 1)) * 4) Provide daily averages for upload and download * 5) Provide percentage limit total of upload and download via cookies and forms */