rvnstat 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. checksums.yaml +7 -0
  2. data/._README.md +0 -0
  3. data/._ss.png +0 -0
  4. data/.gitignore +17 -0
  5. data/Gemfile +6 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +34 -0
  8. data/Rakefile +1 -0
  9. data/bin/._rvnstat +0 -0
  10. data/bin/rvnstat +9 -0
  11. data/config.ru +4 -0
  12. data/config.yml +3 -0
  13. data/lib/._app.rb +0 -0
  14. data/lib/._config.rb +0 -0
  15. data/lib/._require.rb +0 -0
  16. data/lib/._rvnstat.rb +0 -0
  17. data/lib/._vnstat.rb +0 -0
  18. data/lib/app.rb +102 -0
  19. data/lib/config.rb +13 -0
  20. data/lib/require.rb +10 -0
  21. data/lib/rvnstat.rb +5 -0
  22. data/lib/rvnstat/._version.rb +0 -0
  23. data/lib/rvnstat/version.rb +3 -0
  24. data/lib/vnstat.rb +74 -0
  25. data/public/CNAME +1 -0
  26. data/public/CONTRIBUTING.md +192 -0
  27. data/public/Gruntfile.js +418 -0
  28. data/public/LICENSE +21 -0
  29. data/public/README.md +173 -0
  30. data/public/_config.yml +35 -0
  31. data/public/bower.json +24 -0
  32. data/public/browserstack.json +44 -0
  33. data/public/composer.json +25 -0
  34. data/public/dist/css/._custom.css +0 -0
  35. data/public/dist/css/bootstrap-theme.css +347 -0
  36. data/public/dist/css/bootstrap-theme.css.map +1 -0
  37. data/public/dist/css/bootstrap-theme.min.css +7 -0
  38. data/public/dist/css/bootstrap.css +5831 -0
  39. data/public/dist/css/bootstrap.css.map +1 -0
  40. data/public/dist/css/bootstrap.min.css +7 -0
  41. data/public/dist/css/custom.css +20 -0
  42. data/public/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  43. data/public/dist/fonts/glyphicons-halflings-regular.svg +229 -0
  44. data/public/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  45. data/public/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  46. data/public/dist/js/bootstrap.js +1951 -0
  47. data/public/dist/js/bootstrap.min.js +6 -0
  48. data/public/docs/LICENSE +319 -0
  49. data/public/docs/_data/glyphicons.yml +203 -0
  50. data/public/docs/_data/showcase.yml +19 -0
  51. data/public/docs/_includes/ads.html +1 -0
  52. data/public/docs/_includes/customizer-variables.html +1690 -0
  53. data/public/docs/_includes/footer.html +70 -0
  54. data/public/docs/_includes/header.html +42 -0
  55. data/public/docs/_includes/nav-about.html +9 -0
  56. data/public/docs/_includes/nav-components.html +138 -0
  57. data/public/docs/_includes/nav-css.html +127 -0
  58. data/public/docs/_includes/nav-customize.html +46 -0
  59. data/public/docs/_includes/nav-getting-started.html +62 -0
  60. data/public/docs/_includes/nav-javascript.html +89 -0
  61. data/public/docs/_includes/nav-main.html +36 -0
  62. data/public/docs/_includes/nav-migration.html +12 -0
  63. data/public/docs/_includes/social-buttons.html +16 -0
  64. data/public/docs/_layouts/default.html +55 -0
  65. data/public/docs/_layouts/home.html +18 -0
  66. data/public/docs/about.html +149 -0
  67. data/public/docs/assets/css/docs.css +1394 -0
  68. data/public/docs/assets/css/docs.min.css +6 -0
  69. data/public/docs/assets/css/pygments-manni.css +66 -0
  70. data/public/docs/assets/ico/apple-touch-icon-144-precomposed.png +0 -0
  71. data/public/docs/assets/ico/favicon.ico +0 -0
  72. data/public/docs/assets/img/components.png +0 -0
  73. data/public/docs/assets/img/devices.png +0 -0
  74. data/public/docs/assets/img/sass-less.png +0 -0
  75. data/public/docs/assets/js/application.js +101 -0
  76. data/public/docs/assets/js/customize.min.js +49 -0
  77. data/public/docs/assets/js/customizer.js +348 -0
  78. data/public/docs/assets/js/docs.min.js +16 -0
  79. data/public/docs/assets/js/ie8-responsive-file-warning.js +12 -0
  80. data/public/docs/assets/js/raw-files.min.js +8 -0
  81. data/public/docs/assets/js/vendor/blob.js +166 -0
  82. data/public/docs/assets/js/vendor/filesaver.js +236 -0
  83. data/public/docs/assets/js/vendor/holder.js +645 -0
  84. data/public/docs/assets/js/vendor/jszip.js +1474 -0
  85. data/public/docs/assets/js/vendor/less.min.js +16 -0
  86. data/public/docs/assets/js/vendor/uglify.min.js +14 -0
  87. data/public/docs/components.html +3001 -0
  88. data/public/docs/css.html +3346 -0
  89. data/public/docs/customize.html +356 -0
  90. data/public/docs/customizer-nav.jade +15 -0
  91. data/public/docs/customizer-variables.jade +21 -0
  92. data/public/docs/dist/css/bootstrap-theme.css.map +1 -0
  93. data/public/docs/dist/css/bootstrap-theme.min.css +7 -0
  94. data/public/docs/dist/css/bootstrap.css.map +1 -0
  95. data/public/docs/dist/css/bootstrap.min.css +7 -0
  96. data/public/docs/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  97. data/public/docs/dist/fonts/glyphicons-halflings-regular.svg +229 -0
  98. data/public/docs/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  99. data/public/docs/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  100. data/public/docs/dist/js/bootstrap.min.js +7 -0
  101. data/public/docs/examples/blog/blog.css +168 -0
  102. data/public/docs/examples/blog/index.html +171 -0
  103. data/public/docs/examples/carousel/carousel.css +148 -0
  104. data/public/docs/examples/carousel/index.html +206 -0
  105. data/public/docs/examples/cover/cover.css +161 -0
  106. data/public/docs/examples/cover/index.html +75 -0
  107. data/public/docs/examples/dashboard/dashboard.css +93 -0
  108. data/public/docs/examples/dashboard/index.html +243 -0
  109. data/public/docs/examples/grid/grid.css +28 -0
  110. data/public/docs/examples/grid/index.html +152 -0
  111. data/public/docs/examples/jumbotron-narrow/index.html +82 -0
  112. data/public/docs/examples/jumbotron-narrow/jumbotron-narrow.css +79 -0
  113. data/public/docs/examples/jumbotron/index.html +99 -0
  114. data/public/docs/examples/jumbotron/jumbotron.css +5 -0
  115. data/public/docs/examples/justified-nav/index.html +84 -0
  116. data/public/docs/examples/justified-nav/justified-nav.css +88 -0
  117. data/public/docs/examples/navbar-fixed-top/index.html +91 -0
  118. data/public/docs/examples/navbar-fixed-top/navbar-fixed-top.css +4 -0
  119. data/public/docs/examples/navbar-static-top/index.html +92 -0
  120. data/public/docs/examples/navbar-static-top/navbar-static-top.css +7 -0
  121. data/public/docs/examples/navbar/index.html +90 -0
  122. data/public/docs/examples/navbar/navbar.css +8 -0
  123. data/public/docs/examples/non-responsive/index.html +105 -0
  124. data/public/docs/examples/non-responsive/non-responsive.css +120 -0
  125. data/public/docs/examples/offcanvas/index.html +130 -0
  126. data/public/docs/examples/offcanvas/offcanvas.css +51 -0
  127. data/public/docs/examples/offcanvas/offcanvas.js +5 -0
  128. data/public/docs/examples/screenshots/blog.jpg +0 -0
  129. data/public/docs/examples/screenshots/carousel.jpg +0 -0
  130. data/public/docs/examples/screenshots/cover.jpg +0 -0
  131. data/public/docs/examples/screenshots/dashboard.jpg +0 -0
  132. data/public/docs/examples/screenshots/grid.jpg +0 -0
  133. data/public/docs/examples/screenshots/jumbotron-narrow.jpg +0 -0
  134. data/public/docs/examples/screenshots/jumbotron.jpg +0 -0
  135. data/public/docs/examples/screenshots/justified-nav.jpg +0 -0
  136. data/public/docs/examples/screenshots/navbar-fixed.jpg +0 -0
  137. data/public/docs/examples/screenshots/navbar-static.jpg +0 -0
  138. data/public/docs/examples/screenshots/navbar.jpg +0 -0
  139. data/public/docs/examples/screenshots/non-responsive.jpg +0 -0
  140. data/public/docs/examples/screenshots/offcanvas.jpg +0 -0
  141. data/public/docs/examples/screenshots/sign-in.jpg +0 -0
  142. data/public/docs/examples/screenshots/starter-template.jpg +0 -0
  143. data/public/docs/examples/screenshots/sticky-footer-navbar.jpg +0 -0
  144. data/public/docs/examples/screenshots/sticky-footer.jpg +0 -0
  145. data/public/docs/examples/screenshots/theme.jpg +0 -0
  146. data/public/docs/examples/signin/index.html +50 -0
  147. data/public/docs/examples/signin/signin.css +40 -0
  148. data/public/docs/examples/starter-template/index.html +68 -0
  149. data/public/docs/examples/starter-template/starter-template.css +7 -0
  150. data/public/docs/examples/sticky-footer-navbar/index.html +91 -0
  151. data/public/docs/examples/sticky-footer-navbar/sticky-footer-navbar.css +45 -0
  152. data/public/docs/examples/sticky-footer/index.html +55 -0
  153. data/public/docs/examples/sticky-footer/sticky-footer.css +38 -0
  154. data/public/docs/examples/theme/index.html +384 -0
  155. data/public/docs/examples/theme/theme.css +14 -0
  156. data/public/docs/getting-started.html +773 -0
  157. data/public/docs/grunt/bs-glyphicons-data-generator.js +33 -0
  158. data/public/docs/grunt/bs-lessdoc-parser.js +236 -0
  159. data/public/docs/grunt/bs-raw-files-generator.js +31 -0
  160. data/public/docs/index.html +72 -0
  161. data/public/docs/javascript.html +2141 -0
  162. data/public/docs/migration.html +423 -0
  163. data/public/fonts/glyphicons-halflings-regular.eot +0 -0
  164. data/public/fonts/glyphicons-halflings-regular.svg +229 -0
  165. data/public/fonts/glyphicons-halflings-regular.ttf +0 -0
  166. data/public/fonts/glyphicons-halflings-regular.woff +0 -0
  167. data/public/js/._exporting.js +0 -0
  168. data/public/js/._highcharts-all.js +0 -0
  169. data/public/js/._jquery-min.js +0 -0
  170. data/public/js/.jscs.json +15 -0
  171. data/public/js/.jshintrc +14 -0
  172. data/public/js/affix.js +137 -0
  173. data/public/js/alert.js +88 -0
  174. data/public/js/bootstrap.min.js +6 -0
  175. data/public/js/button.js +107 -0
  176. data/public/js/carousel.js +205 -0
  177. data/public/js/collapse.js +170 -0
  178. data/public/js/dropdown.js +147 -0
  179. data/public/js/highcharts.js +294 -0
  180. data/public/js/jquery-1.11.0.min.js +4 -0
  181. data/public/js/modal.js +243 -0
  182. data/public/js/popover.js +110 -0
  183. data/public/js/scrollspy.js +153 -0
  184. data/public/js/tab.js +125 -0
  185. data/public/js/tests/index.html +54 -0
  186. data/public/js/tests/unit/affix.js +50 -0
  187. data/public/js/tests/unit/alert.js +62 -0
  188. data/public/js/tests/unit/button.js +122 -0
  189. data/public/js/tests/unit/carousel.js +110 -0
  190. data/public/js/tests/unit/collapse.js +164 -0
  191. data/public/js/tests/unit/dropdown.js +218 -0
  192. data/public/js/tests/unit/modal.js +195 -0
  193. data/public/js/tests/unit/phantom.js +69 -0
  194. data/public/js/tests/unit/popover.js +133 -0
  195. data/public/js/tests/unit/scrollspy.js +36 -0
  196. data/public/js/tests/unit/tab.js +86 -0
  197. data/public/js/tests/unit/tooltip.js +432 -0
  198. data/public/js/tests/vendor/jquery.js +6 -0
  199. data/public/js/tests/vendor/qunit.css +245 -0
  200. data/public/js/tests/vendor/qunit.js +2210 -0
  201. data/public/js/tooltip.js +399 -0
  202. data/public/js/transition.js +48 -0
  203. data/public/less/.csscomb.json +297 -0
  204. data/public/less/.csslintrc +19 -0
  205. data/public/less/alerts.less +67 -0
  206. data/public/less/badges.less +55 -0
  207. data/public/less/bootstrap.less +49 -0
  208. data/public/less/breadcrumbs.less +26 -0
  209. data/public/less/button-groups.less +226 -0
  210. data/public/less/buttons.less +155 -0
  211. data/public/less/carousel.less +232 -0
  212. data/public/less/close.less +33 -0
  213. data/public/less/code.less +63 -0
  214. data/public/less/component-animations.less +29 -0
  215. data/public/less/dropdowns.less +213 -0
  216. data/public/less/forms.less +419 -0
  217. data/public/less/glyphicons.less +233 -0
  218. data/public/less/grid.less +100 -0
  219. data/public/less/input-groups.less +157 -0
  220. data/public/less/jumbotron.less +44 -0
  221. data/public/less/labels.less +64 -0
  222. data/public/less/list-group.less +110 -0
  223. data/public/less/media.less +56 -0
  224. data/public/less/mixins.less +926 -0
  225. data/public/less/modals.less +138 -0
  226. data/public/less/navbar.less +616 -0
  227. data/public/less/navs.less +242 -0
  228. data/public/less/normalize.less +423 -0
  229. data/public/less/pager.less +55 -0
  230. data/public/less/pagination.less +88 -0
  231. data/public/less/panels.less +230 -0
  232. data/public/less/popovers.less +133 -0
  233. data/public/less/print.less +101 -0
  234. data/public/less/progress-bars.less +80 -0
  235. data/public/less/responsive-utilities.less +93 -0
  236. data/public/less/scaffolding.less +134 -0
  237. data/public/less/tables.less +233 -0
  238. data/public/less/theme.less +247 -0
  239. data/public/less/thumbnails.less +36 -0
  240. data/public/less/tooltip.less +95 -0
  241. data/public/less/type.less +296 -0
  242. data/public/less/utilities.less +56 -0
  243. data/public/less/variables.less +827 -0
  244. data/public/less/wells.less +29 -0
  245. data/public/package.json +71 -0
  246. data/public/test-infra/README.md +100 -0
  247. data/public/test-infra/npm-shrinkwrap.canonical.json +1 -0
  248. data/public/test-infra/requirements.txt +1 -0
  249. data/public/test-infra/s3_cache.py +107 -0
  250. data/public/test-infra/sauce_browsers.yml +83 -0
  251. data/public/test-infra/shrinkwrap.js +24 -0
  252. data/public/test-infra/uncached-npm-install.sh +4 -0
  253. data/rvnstat.gemspec +26 -0
  254. data/rvnstat.yml +3 -0
  255. data/ss.png +0 -0
  256. data/untitled.txt +0 -0
  257. data/views/._hourly.erb +0 -0
  258. data/views/._index.erb +0 -0
  259. data/views/._live_traffic.erb +0 -0
  260. data/views/._monthly.erb +0 -0
  261. data/views/._top_ten.erb +0 -0
  262. data/views/day_detail.erb +44 -0
  263. data/views/day_total.erb +42 -0
  264. data/views/graph_test.erb +2 -0
  265. data/views/hourly.erb +19 -0
  266. data/views/index.erb +71 -0
  267. data/views/layout.erb +28 -0
  268. data/views/live_traffic.erb +57 -0
  269. data/views/monthly.erb +21 -0
  270. data/views/top_ten.erb +21 -0
  271. metadata +385 -0
@@ -0,0 +1,3 @@
1
+ vnstat_path: /usr/bin/vnstat
2
+ interface: eth0
3
+ port: 9000
data/ss.png ADDED
Binary file
File without changes
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,44 @@
1
+ <script>
2
+ $(function () {
3
+ $('#day_detail').highcharts({
4
+ chart: {
5
+ type: 'column',
6
+ backgroundColor: '#eee'
7
+ },
8
+ title: {
9
+ text: 'Bandwidth Detail'
10
+ },
11
+ xAxis: {
12
+ categories: $('#day_detail').data('dates')
13
+ },
14
+ yAxis: {
15
+ min: 0,
16
+ title: {
17
+ text: 'Megabytes'
18
+ }
19
+ },
20
+ tooltip: {
21
+ headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
22
+ pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
23
+ '<td style="padding:0"><b>{point.y:.1f} MBs</b></td></tr>',
24
+ footerFormat: '</table>',
25
+ shared: true,
26
+ useHTML: true
27
+ },
28
+ plotOptions: {
29
+ column: {
30
+ pointPadding: 0.2,
31
+ borderWidth: 0
32
+ }
33
+ },
34
+ series: [{
35
+ name: 'Recieve',
36
+ data: $('#day_detail').data('rx')},
37
+
38
+ {name: 'Transmit',
39
+ data: $('#day_detail').data('tx')
40
+ }]
41
+ });
42
+ });
43
+ </script>
44
+ <div id="day_detail" data-rx='<%= @rx %>' data-tx='<%= @tx %>' data-dates='<%= @dates %>'></div>
@@ -0,0 +1,42 @@
1
+ <script>
2
+ $(function () {
3
+ $('#day_total').highcharts({
4
+ chart: {
5
+ type: 'column',
6
+ backgroundColor: '#eee'
7
+ },
8
+ title: {
9
+ text: 'Bandwidth Total'
10
+ },
11
+ xAxis: {
12
+ categories: $('#day_total').data('dates')
13
+ },
14
+ yAxis: {
15
+ min: 0,
16
+ title: {
17
+ text: 'Megabytes'
18
+ }
19
+ },
20
+ tooltip: {
21
+ headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
22
+ pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
23
+ '<td style="padding:0"><b>{point.y:.1f} MBs</b></td></tr>',
24
+ footerFormat: '</table>',
25
+ shared: true,
26
+ useHTML: true
27
+ },
28
+ plotOptions: {
29
+ column: {
30
+ pointPadding: 0.2,
31
+ borderWidth: 0
32
+ }
33
+ },
34
+ series: [{
35
+ name: 'Total Bandwidth',
36
+ data: $('#day_total').data('total')
37
+ }]
38
+ });
39
+ });
40
+ </script>
41
+
42
+ <div id="day_total" data-total='<%= @total %>' data-dates='<%= @dates %>'></div>
@@ -0,0 +1,2 @@
1
+ <div id='chart'></div>
2
+ <%= render_chart(@chart, 'chart') %>
@@ -0,0 +1,19 @@
1
+ <div class="modal-header">
2
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
3
+ <h4 class="modal-title">Hourly</h4>
4
+ </div>
5
+
6
+ <table id="hourly" class="table table-condensed">
7
+ <tr>
8
+ <th class="col-sm-1">Hour:</th>
9
+ <th class="col-sm-1">rx</th>
10
+ <th class="col-sm-1">tx:</th>
11
+ </tr>
12
+ <% @hour.each do |x|%>
13
+ <tr>
14
+ <td class="active"><%= x[:date]%>
15
+ <td class="active"><%= x[:rx]%>
16
+ <td class="active"><%= x[:tx]%>
17
+ </tr>
18
+ <%end%>
19
+ </table>
@@ -0,0 +1,71 @@
1
+ <script>
2
+
3
+ $(document).ready(function(){
4
+ $('#live').load('/live_traffic');
5
+ $('#total').load('/day_total');
6
+ $('#detail').load('/day_detail');
7
+ });
8
+ </script>
9
+
10
+
11
+ <script>
12
+ $(document).ready(function(){
13
+ $('.top').click(function(){
14
+ $("#myModal").modal({
15
+ keyboad: true,
16
+ remote: true
17
+ });
18
+ });
19
+
20
+ $('.hourly').click(function(){
21
+ $("#myModal").modal({
22
+ keyboad: true,
23
+ remote: true
24
+ });
25
+ });
26
+
27
+ $('.monthly').click(function(){
28
+ $("#myModal").modal({
29
+ keyboad: true,
30
+ remote: true
31
+ });
32
+ });
33
+ </script>
34
+
35
+ <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
36
+ <div class="container">
37
+ <div class="navbar-header">
38
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
39
+ <span class="sr-only">Toggle navigation</span>
40
+ <span class="icon-bar"></span>
41
+ <span class="icon-bar"></span>
42
+ <span class="icon-bar"></span>
43
+ </button>
44
+ <a class="navbar-brand" href="/">rVnstat</a>
45
+ </div>
46
+ <div class="collapse navbar-collapse">
47
+ <ul class="nav navbar-nav">
48
+ <li><a data-toggle="modal" class="top" href="/top_ten" data-target="#myModal">Top Ten</a></li>
49
+ <li><a data-toggle="modal" class="hourly" href="/hourly" data-target="#myModal">Hourly</a></li>
50
+ <li><a data-toggle="modal" class="monthly" href="/monthly" data-target="#myModal">Monthly</a></li>
51
+ </ul>
52
+ </div><!--/.nav-collapse -->
53
+ </div>
54
+ </div>
55
+ <div id="lt-container" class="col-xs-12">
56
+ <div id="live" class="col-xs-6 col-xs-offset-3"></div>
57
+ </div>
58
+ <div id="total" class="col-xs-6"></div>
59
+ <div id="detail" class="col-xs-6"></div>
60
+
61
+ <div id="myModal" class="modal fade">
62
+ <div class="modal-dialog">
63
+ <div class="modal-content"></div>
64
+ </div>
65
+ </div>
66
+
67
+ <script>
68
+ $('#myModal').on('hidden.bs.modal', function () {
69
+ $(this).removeData('bs.modal');
70
+ });
71
+ </script>
@@ -0,0 +1,28 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ <meta name="description" content="">
8
+ <meta name="author" content="">
9
+
10
+ <title>rVnstat</title>
11
+
12
+ <!-- Bootstrap core CSS -->
13
+ <link href="dist/css/bootstrap.min.css" rel="stylesheet">
14
+ <link href="dist/css/custom.css" rel="stylesheet">
15
+ <link rel="stylesheet" href="css/bootstrap.css">
16
+ <!-- Custom styles for this template -->
17
+ <script src="js/jquery-1.11.0.min.js"></script>
18
+ <script src="js/highcharts.js"></script>
19
+ <script src="js/exporting.js"></script>
20
+ <script src="js/bootstrap.min.js"></script>
21
+
22
+ </head>
23
+
24
+ <body>
25
+ <%= yield %>
26
+ </body>
27
+ </html>
28
+
@@ -0,0 +1,57 @@
1
+ <script>
2
+ var chart; // global
3
+ function requestData() {
4
+ $.ajax({
5
+ url: 'live',
6
+ success: function(point) {
7
+ var series = chart.series[0],
8
+ shift = series.data.length > 20; // shift if the series is
9
+ // longer than 20
10
+
11
+ // add the point
12
+ chart.series[0].addPoint(point, true, shift);
13
+
14
+ // call it again after one second
15
+ setTimeout(requestData, 1000);
16
+ },
17
+ cache: false
18
+ });
19
+ }
20
+
21
+ $(document).ready(function() {
22
+ chart = new Highcharts.Chart({
23
+ chart: {
24
+ renderTo: 'live_traffic',
25
+ defaultSeriesType: 'spline',
26
+ backgroundColor: '#eee',
27
+ events: {
28
+ load: requestData
29
+ }
30
+ },
31
+ title: {
32
+ text: 'Live Public Traffic'
33
+ },
34
+ xAxis: {
35
+ type: 'datetime',
36
+ tickPixelInterval: 150,
37
+ maxZoom: 20 * 1000
38
+ },
39
+ yAxis: {
40
+ minPadding: 0.2,
41
+ maxPadding: 0.2,
42
+ title: {
43
+ text: 'Megabits/Sec',
44
+ margin: 20
45
+ }
46
+ },
47
+ tooltip: {
48
+ valueSuffix: 'Mbs'
49
+ },
50
+ series: [{
51
+ name: 'eth0',
52
+ data: []
53
+ }]
54
+ });
55
+ });
56
+ </script>
57
+ <div id="live_traffic" style="min-width: 310px; height: 400px; margin: 0 auto"</div>
@@ -0,0 +1,21 @@
1
+ <div class="modal-header">
2
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
3
+ <h4 class="modal-title">Monthly</h4>
4
+ </div>
5
+
6
+ <table id="monthly" class="table table-condensed">
7
+ <tr>
8
+ <th class="col-sm-1">Month:</th>
9
+ <th class="col-sm-1">rx</th>
10
+ <th class="col-sm-1">tx:</th>
11
+ <th class="col-sm-1">total:</th>
12
+ </tr>
13
+ <% @top.each do |x|%>
14
+ <tr>
15
+ <td class="active"><%= x[:date]%>
16
+ <td class="active"><%= x[:rx]%>
17
+ <td class="active"><%= x[:tx]%>
18
+ <td class="active"><%= x[:total]%>
19
+ </tr>
20
+ <%end%>
21
+ </table>
@@ -0,0 +1,21 @@
1
+ <div class="modal-header">
2
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
3
+ <h4 class="modal-title">Top 10</h4>
4
+ </div>
5
+
6
+ <table id="top10" class="table table-condensed">
7
+ <tr>
8
+ <th class="col-sm-1">Day:</th>
9
+ <th class="col-sm-1">rx</th>
10
+ <th class="col-sm-1">tx:</th>
11
+ <th class="col-sm-1">total:</th>
12
+ </tr>
13
+ <% @top.each do |x|%>
14
+ <tr>
15
+ <td class="active"><%= x[:date]%>
16
+ <td class="active"><%= x[:rx]%>
17
+ <td class="active"><%= x[:tx]%>
18
+ <td class="active"><%= x[:total]%>
19
+ </tr>
20
+ <%end%>
21
+ </table>
metadata ADDED
@@ -0,0 +1,385 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rvnstat
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.4
5
+ platform: ruby
6
+ authors:
7
+ - Doug Bishop
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-02-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: unicorn
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: sinatra
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: vidibus-sysinfo
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: Sinatra GUI for vnstat
84
+ email:
85
+ - doug@dougbishop.org
86
+ executables:
87
+ - ._rvnstat
88
+ - rvnstat
89
+ extensions: []
90
+ extra_rdoc_files: []
91
+ files:
92
+ - ._README.md
93
+ - ._ss.png
94
+ - .gitignore
95
+ - Gemfile
96
+ - LICENSE.txt
97
+ - README.md
98
+ - Rakefile
99
+ - bin/._rvnstat
100
+ - bin/rvnstat
101
+ - config.ru
102
+ - config.yml
103
+ - lib/._app.rb
104
+ - lib/._config.rb
105
+ - lib/._require.rb
106
+ - lib/._rvnstat.rb
107
+ - lib/._vnstat.rb
108
+ - lib/app.rb
109
+ - lib/config.rb
110
+ - lib/require.rb
111
+ - lib/rvnstat.rb
112
+ - lib/rvnstat/._version.rb
113
+ - lib/rvnstat/version.rb
114
+ - lib/vnstat.rb
115
+ - public/CNAME
116
+ - public/CONTRIBUTING.md
117
+ - public/Gruntfile.js
118
+ - public/LICENSE
119
+ - public/README.md
120
+ - public/_config.yml
121
+ - public/bower.json
122
+ - public/browserstack.json
123
+ - public/composer.json
124
+ - public/dist/css/._custom.css
125
+ - public/dist/css/bootstrap-theme.css
126
+ - public/dist/css/bootstrap-theme.css.map
127
+ - public/dist/css/bootstrap-theme.min.css
128
+ - public/dist/css/bootstrap.css
129
+ - public/dist/css/bootstrap.css.map
130
+ - public/dist/css/bootstrap.min.css
131
+ - public/dist/css/custom.css
132
+ - public/dist/fonts/glyphicons-halflings-regular.eot
133
+ - public/dist/fonts/glyphicons-halflings-regular.svg
134
+ - public/dist/fonts/glyphicons-halflings-regular.ttf
135
+ - public/dist/fonts/glyphicons-halflings-regular.woff
136
+ - public/dist/js/bootstrap.js
137
+ - public/dist/js/bootstrap.min.js
138
+ - public/docs/LICENSE
139
+ - public/docs/_data/glyphicons.yml
140
+ - public/docs/_data/showcase.yml
141
+ - public/docs/_includes/ads.html
142
+ - public/docs/_includes/customizer-variables.html
143
+ - public/docs/_includes/footer.html
144
+ - public/docs/_includes/header.html
145
+ - public/docs/_includes/nav-about.html
146
+ - public/docs/_includes/nav-components.html
147
+ - public/docs/_includes/nav-css.html
148
+ - public/docs/_includes/nav-customize.html
149
+ - public/docs/_includes/nav-getting-started.html
150
+ - public/docs/_includes/nav-javascript.html
151
+ - public/docs/_includes/nav-main.html
152
+ - public/docs/_includes/nav-migration.html
153
+ - public/docs/_includes/social-buttons.html
154
+ - public/docs/_layouts/default.html
155
+ - public/docs/_layouts/home.html
156
+ - public/docs/about.html
157
+ - public/docs/assets/css/docs.css
158
+ - public/docs/assets/css/docs.min.css
159
+ - public/docs/assets/css/pygments-manni.css
160
+ - public/docs/assets/ico/apple-touch-icon-144-precomposed.png
161
+ - public/docs/assets/ico/favicon.ico
162
+ - public/docs/assets/img/components.png
163
+ - public/docs/assets/img/devices.png
164
+ - public/docs/assets/img/sass-less.png
165
+ - public/docs/assets/js/application.js
166
+ - public/docs/assets/js/customize.min.js
167
+ - public/docs/assets/js/customizer.js
168
+ - public/docs/assets/js/docs.min.js
169
+ - public/docs/assets/js/ie8-responsive-file-warning.js
170
+ - public/docs/assets/js/raw-files.min.js
171
+ - public/docs/assets/js/vendor/blob.js
172
+ - public/docs/assets/js/vendor/filesaver.js
173
+ - public/docs/assets/js/vendor/holder.js
174
+ - public/docs/assets/js/vendor/jszip.js
175
+ - public/docs/assets/js/vendor/less.min.js
176
+ - public/docs/assets/js/vendor/uglify.min.js
177
+ - public/docs/components.html
178
+ - public/docs/css.html
179
+ - public/docs/customize.html
180
+ - public/docs/customizer-nav.jade
181
+ - public/docs/customizer-variables.jade
182
+ - public/docs/dist/css/bootstrap-theme.css.map
183
+ - public/docs/dist/css/bootstrap-theme.min.css
184
+ - public/docs/dist/css/bootstrap.css.map
185
+ - public/docs/dist/css/bootstrap.min.css
186
+ - public/docs/dist/fonts/glyphicons-halflings-regular.eot
187
+ - public/docs/dist/fonts/glyphicons-halflings-regular.svg
188
+ - public/docs/dist/fonts/glyphicons-halflings-regular.ttf
189
+ - public/docs/dist/fonts/glyphicons-halflings-regular.woff
190
+ - public/docs/dist/js/bootstrap.min.js
191
+ - public/docs/examples/blog/blog.css
192
+ - public/docs/examples/blog/index.html
193
+ - public/docs/examples/carousel/carousel.css
194
+ - public/docs/examples/carousel/index.html
195
+ - public/docs/examples/cover/cover.css
196
+ - public/docs/examples/cover/index.html
197
+ - public/docs/examples/dashboard/dashboard.css
198
+ - public/docs/examples/dashboard/index.html
199
+ - public/docs/examples/grid/grid.css
200
+ - public/docs/examples/grid/index.html
201
+ - public/docs/examples/jumbotron-narrow/index.html
202
+ - public/docs/examples/jumbotron-narrow/jumbotron-narrow.css
203
+ - public/docs/examples/jumbotron/index.html
204
+ - public/docs/examples/jumbotron/jumbotron.css
205
+ - public/docs/examples/justified-nav/index.html
206
+ - public/docs/examples/justified-nav/justified-nav.css
207
+ - public/docs/examples/navbar-fixed-top/index.html
208
+ - public/docs/examples/navbar-fixed-top/navbar-fixed-top.css
209
+ - public/docs/examples/navbar-static-top/index.html
210
+ - public/docs/examples/navbar-static-top/navbar-static-top.css
211
+ - public/docs/examples/navbar/index.html
212
+ - public/docs/examples/navbar/navbar.css
213
+ - public/docs/examples/non-responsive/index.html
214
+ - public/docs/examples/non-responsive/non-responsive.css
215
+ - public/docs/examples/offcanvas/index.html
216
+ - public/docs/examples/offcanvas/offcanvas.css
217
+ - public/docs/examples/offcanvas/offcanvas.js
218
+ - public/docs/examples/screenshots/blog.jpg
219
+ - public/docs/examples/screenshots/carousel.jpg
220
+ - public/docs/examples/screenshots/cover.jpg
221
+ - public/docs/examples/screenshots/dashboard.jpg
222
+ - public/docs/examples/screenshots/grid.jpg
223
+ - public/docs/examples/screenshots/jumbotron-narrow.jpg
224
+ - public/docs/examples/screenshots/jumbotron.jpg
225
+ - public/docs/examples/screenshots/justified-nav.jpg
226
+ - public/docs/examples/screenshots/navbar-fixed.jpg
227
+ - public/docs/examples/screenshots/navbar-static.jpg
228
+ - public/docs/examples/screenshots/navbar.jpg
229
+ - public/docs/examples/screenshots/non-responsive.jpg
230
+ - public/docs/examples/screenshots/offcanvas.jpg
231
+ - public/docs/examples/screenshots/sign-in.jpg
232
+ - public/docs/examples/screenshots/starter-template.jpg
233
+ - public/docs/examples/screenshots/sticky-footer-navbar.jpg
234
+ - public/docs/examples/screenshots/sticky-footer.jpg
235
+ - public/docs/examples/screenshots/theme.jpg
236
+ - public/docs/examples/signin/index.html
237
+ - public/docs/examples/signin/signin.css
238
+ - public/docs/examples/starter-template/index.html
239
+ - public/docs/examples/starter-template/starter-template.css
240
+ - public/docs/examples/sticky-footer-navbar/index.html
241
+ - public/docs/examples/sticky-footer-navbar/sticky-footer-navbar.css
242
+ - public/docs/examples/sticky-footer/index.html
243
+ - public/docs/examples/sticky-footer/sticky-footer.css
244
+ - public/docs/examples/theme/index.html
245
+ - public/docs/examples/theme/theme.css
246
+ - public/docs/getting-started.html
247
+ - public/docs/grunt/bs-glyphicons-data-generator.js
248
+ - public/docs/grunt/bs-lessdoc-parser.js
249
+ - public/docs/grunt/bs-raw-files-generator.js
250
+ - public/docs/index.html
251
+ - public/docs/javascript.html
252
+ - public/docs/migration.html
253
+ - public/fonts/glyphicons-halflings-regular.eot
254
+ - public/fonts/glyphicons-halflings-regular.svg
255
+ - public/fonts/glyphicons-halflings-regular.ttf
256
+ - public/fonts/glyphicons-halflings-regular.woff
257
+ - public/js/._exporting.js
258
+ - public/js/._highcharts-all.js
259
+ - public/js/._jquery-min.js
260
+ - public/js/.jscs.json
261
+ - public/js/.jshintrc
262
+ - public/js/affix.js
263
+ - public/js/alert.js
264
+ - public/js/bootstrap.min.js
265
+ - public/js/button.js
266
+ - public/js/carousel.js
267
+ - public/js/collapse.js
268
+ - public/js/dropdown.js
269
+ - public/js/highcharts.js
270
+ - public/js/jquery-1.11.0.min.js
271
+ - public/js/modal.js
272
+ - public/js/popover.js
273
+ - public/js/scrollspy.js
274
+ - public/js/tab.js
275
+ - public/js/tests/index.html
276
+ - public/js/tests/unit/affix.js
277
+ - public/js/tests/unit/alert.js
278
+ - public/js/tests/unit/button.js
279
+ - public/js/tests/unit/carousel.js
280
+ - public/js/tests/unit/collapse.js
281
+ - public/js/tests/unit/dropdown.js
282
+ - public/js/tests/unit/modal.js
283
+ - public/js/tests/unit/phantom.js
284
+ - public/js/tests/unit/popover.js
285
+ - public/js/tests/unit/scrollspy.js
286
+ - public/js/tests/unit/tab.js
287
+ - public/js/tests/unit/tooltip.js
288
+ - public/js/tests/vendor/jquery.js
289
+ - public/js/tests/vendor/qunit.css
290
+ - public/js/tests/vendor/qunit.js
291
+ - public/js/tooltip.js
292
+ - public/js/transition.js
293
+ - public/less/.csscomb.json
294
+ - public/less/.csslintrc
295
+ - public/less/alerts.less
296
+ - public/less/badges.less
297
+ - public/less/bootstrap.less
298
+ - public/less/breadcrumbs.less
299
+ - public/less/button-groups.less
300
+ - public/less/buttons.less
301
+ - public/less/carousel.less
302
+ - public/less/close.less
303
+ - public/less/code.less
304
+ - public/less/component-animations.less
305
+ - public/less/dropdowns.less
306
+ - public/less/forms.less
307
+ - public/less/glyphicons.less
308
+ - public/less/grid.less
309
+ - public/less/input-groups.less
310
+ - public/less/jumbotron.less
311
+ - public/less/labels.less
312
+ - public/less/list-group.less
313
+ - public/less/media.less
314
+ - public/less/mixins.less
315
+ - public/less/modals.less
316
+ - public/less/navbar.less
317
+ - public/less/navs.less
318
+ - public/less/normalize.less
319
+ - public/less/pager.less
320
+ - public/less/pagination.less
321
+ - public/less/panels.less
322
+ - public/less/popovers.less
323
+ - public/less/print.less
324
+ - public/less/progress-bars.less
325
+ - public/less/responsive-utilities.less
326
+ - public/less/scaffolding.less
327
+ - public/less/tables.less
328
+ - public/less/theme.less
329
+ - public/less/thumbnails.less
330
+ - public/less/tooltip.less
331
+ - public/less/type.less
332
+ - public/less/utilities.less
333
+ - public/less/variables.less
334
+ - public/less/wells.less
335
+ - public/package.json
336
+ - public/test-infra/README.md
337
+ - public/test-infra/npm-shrinkwrap.canonical.json
338
+ - public/test-infra/requirements.txt
339
+ - public/test-infra/s3_cache.py
340
+ - public/test-infra/sauce_browsers.yml
341
+ - public/test-infra/shrinkwrap.js
342
+ - public/test-infra/uncached-npm-install.sh
343
+ - rvnstat.gemspec
344
+ - rvnstat.yml
345
+ - ss.png
346
+ - untitled.txt
347
+ - views/._hourly.erb
348
+ - views/._index.erb
349
+ - views/._live_traffic.erb
350
+ - views/._monthly.erb
351
+ - views/._top_ten.erb
352
+ - views/day_detail.erb
353
+ - views/day_total.erb
354
+ - views/graph_test.erb
355
+ - views/hourly.erb
356
+ - views/index.erb
357
+ - views/layout.erb
358
+ - views/live_traffic.erb
359
+ - views/monthly.erb
360
+ - views/top_ten.erb
361
+ homepage: https://github.com/freshfrmthehood/rVnstat
362
+ licenses:
363
+ - GPL
364
+ metadata: {}
365
+ post_install_message:
366
+ rdoc_options: []
367
+ require_paths:
368
+ - lib
369
+ required_ruby_version: !ruby/object:Gem::Requirement
370
+ requirements:
371
+ - - '>='
372
+ - !ruby/object:Gem::Version
373
+ version: '0'
374
+ required_rubygems_version: !ruby/object:Gem::Requirement
375
+ requirements:
376
+ - - '>='
377
+ - !ruby/object:Gem::Version
378
+ version: '0'
379
+ requirements: []
380
+ rubyforge_project:
381
+ rubygems_version: 2.2.1
382
+ signing_key:
383
+ specification_version: 4
384
+ summary: Sinatra + ruby + vnstat = coolness
385
+ test_files: []