cobweb 0.0.38 → 0.0.39
Sign up to get free protection for your applications and to get access to all the features.
- data/README.textile +1 -1
- data/lib/cobweb.rb +3 -1
- data/lib/cobweb_crawler.rb +98 -100
- data/lib/crawl_job.rb +3 -4
- data/lib/server.rb +98 -0
- data/lib/stats.rb +141 -64
- data/public/css/accordion.css +45 -0
- data/public/css/custom.css +13 -0
- data/public/css/datatable.css +189 -0
- data/public/css/datepicker.css +171 -0
- data/public/css/form-buttons.css +180 -0
- data/public/css/forms.css +489 -0
- data/public/css/jquery.fancybox-1.3.4.css +282 -0
- data/public/css/jquery.treeview.css +103 -0
- data/public/css/link-buttons.css +187 -0
- data/public/css/login.css +110 -0
- data/public/css/menu.css +156 -0
- data/public/css/messages.css +58 -0
- data/public/css/modalbox.css +63 -0
- data/public/css/statics.css +57 -0
- data/public/css/style.css +497 -0
- data/public/css/style_text.css +128 -0
- data/public/css/tabs.css +58 -0
- data/public/css/wysiwyg-editor.css +18 -0
- data/public/css/wysiwyg.css +149 -0
- data/public/css/wysiwyg.modal.css +69 -0
- data/public/gfx/back-menu.gif +0 -0
- data/public/gfx/back-submenu.gif +0 -0
- data/public/gfx/background.gif +0 -0
- data/public/gfx/box-hide.png +0 -0
- data/public/gfx/box-search.png +0 -0
- data/public/gfx/box-title.gif +0 -0
- data/public/gfx/code.gif +0 -0
- data/public/gfx/datepicker-arrows.gif +0 -0
- data/public/gfx/fancybox/blank.gif +0 -0
- data/public/gfx/fancybox/fancy_close.png +0 -0
- data/public/gfx/fancybox/fancy_loading.png +0 -0
- data/public/gfx/fancybox/fancy_nav_left.png +0 -0
- data/public/gfx/fancybox/fancy_nav_right.png +0 -0
- data/public/gfx/fancybox/fancy_title_left.png +0 -0
- data/public/gfx/fancybox/fancy_title_main.png +0 -0
- data/public/gfx/fancybox/fancy_title_over.png +0 -0
- data/public/gfx/fancybox/fancy_title_right.png +0 -0
- data/public/gfx/fancybox/fancybox-x.png +0 -0
- data/public/gfx/fancybox/fancybox.png +0 -0
- data/public/gfx/forms/date-next.gif +0 -0
- data/public/gfx/forms/date-prev.gif +0 -0
- data/public/gfx/forms/forms-checkbox.gif +0 -0
- data/public/gfx/forms/forms-date.gif +0 -0
- data/public/gfx/forms/forms-file.gif +0 -0
- data/public/gfx/forms/forms-input-big.gif +0 -0
- data/public/gfx/forms/forms-input-medium.gif +0 -0
- data/public/gfx/forms/forms-input-small.gif +0 -0
- data/public/gfx/forms/forms-input-xl.gif +0 -0
- data/public/gfx/forms/forms-radio.gif +0 -0
- data/public/gfx/forms/forms-selectbox-small.gif +0 -0
- data/public/gfx/forms/forms-selectbox.gif +0 -0
- data/public/gfx/forms/forms-textarea-big.gif +0 -0
- data/public/gfx/forms/forms-textarea-medium.gif +0 -0
- data/public/gfx/forms/forms-textarea-small.gif +0 -0
- data/public/gfx/forms/forms-textarea-xl.gif +0 -0
- data/public/gfx/icon-delete.png +0 -0
- data/public/gfx/icon-edit.png +0 -0
- data/public/gfx/icon-home.gif +0 -0
- data/public/gfx/img-delete.png +0 -0
- data/public/gfx/img-hover.png +0 -0
- data/public/gfx/img-zoom.png +0 -0
- data/public/gfx/jquery.wysiwyg.gif +0 -0
- data/public/gfx/label-icons.gif +0 -0
- data/public/gfx/label.gif +0 -0
- data/public/gfx/li-down.gif +0 -0
- data/public/gfx/li.gif +0 -0
- data/public/gfx/link-button-big.gif +0 -0
- data/public/gfx/link-button-medium.gif +0 -0
- data/public/gfx/link-button.gif +0 -0
- data/public/gfx/loading-2.gif +0 -0
- data/public/gfx/loading.gif +0 -0
- data/public/gfx/logo.png +0 -0
- data/public/gfx/modal-title.gif +0 -0
- data/public/gfx/photos/00.jpg +0 -0
- data/public/gfx/photos/01.jpg +0 -0
- data/public/gfx/photos/01xl.jpg +0 -0
- data/public/gfx/photos/02.jpg +0 -0
- data/public/gfx/photos/02xl.jpg +0 -0
- data/public/gfx/photos/03.jpg +0 -0
- data/public/gfx/photos/03xl.jpg +0 -0
- data/public/gfx/photos/04.jpg +0 -0
- data/public/gfx/photos/04xl.jpg +0 -0
- data/public/gfx/photos/05.jpg +0 -0
- data/public/gfx/photos/05xl.jpg +0 -0
- data/public/gfx/photos/06.jpg +0 -0
- data/public/gfx/photos/06xl.jpg +0 -0
- data/public/gfx/photos/07.jpg +0 -0
- data/public/gfx/photos/07xl.jpg +0 -0
- data/public/gfx/photos/08.jpg +0 -0
- data/public/gfx/photos/08xl.jpg +0 -0
- data/public/gfx/photos/09.jpg +0 -0
- data/public/gfx/photos/09xl.jpg +0 -0
- data/public/gfx/photos/10.jpg +0 -0
- data/public/gfx/photos/10xl.jpg +0 -0
- data/public/gfx/photos/11.jpg +0 -0
- data/public/gfx/photos/11xl.jpg +0 -0
- data/public/gfx/photos/12.jpg +0 -0
- data/public/gfx/photos/12xl.jpg +0 -0
- data/public/gfx/photos/13.jpg +0 -0
- data/public/gfx/photos/13xl.jpg +0 -0
- data/public/gfx/photos/14.jpg +0 -0
- data/public/gfx/photos/14xl.jpg +0 -0
- data/public/gfx/photos/15.jpg +0 -0
- data/public/gfx/photos/15xl.jpg +0 -0
- data/public/gfx/search-button.gif +0 -0
- data/public/gfx/search-input.gif +0 -0
- data/public/gfx/slider-button.gif +0 -0
- data/public/gfx/system-messages.gif +0 -0
- data/public/gfx/table-asc-arrow.gif +0 -0
- data/public/gfx/table-desc-arrow.gif +0 -0
- data/public/gfx/table-first.gif +0 -0
- data/public/gfx/table-last.gif +0 -0
- data/public/gfx/table-next.gif +0 -0
- data/public/gfx/table-number.gif +0 -0
- data/public/gfx/table-prev.gif +0 -0
- data/public/gfx/table-rows.gif +0 -0
- data/public/gfx/table-search.gif +0 -0
- data/public/gfx/table-thead.gif +0 -0
- data/public/gfx/tooltip.gif +0 -0
- data/public/gfx/treeview/ajax-loader.gif +0 -0
- data/public/gfx/treeview/file.gif +0 -0
- data/public/gfx/treeview/folder-closed.gif +0 -0
- data/public/gfx/treeview/folder.gif +0 -0
- data/public/gfx/treeview/minus.gif +0 -0
- data/public/gfx/treeview/plus.gif +0 -0
- data/public/gfx/treeview/treeview-default-line.gif +0 -0
- data/public/gfx/treeview/treeview-default.gif +0 -0
- data/public/js/controls/wysiwyg.image.js +284 -0
- data/public/js/controls/wysiwyg.link.js +210 -0
- data/public/js/controls/wysiwyg.table.js +151 -0
- data/public/js/customInput.jquery.js +68 -0
- data/public/js/excanvas.min.js +1 -0
- data/public/js/hoverIntent.js +84 -0
- data/public/js/inline.js +392 -0
- data/public/js/jquery-1.7.1.min.js +4 -0
- data/public/js/jquery-ui-select.js +522 -0
- data/public/js/jquery-ui-timepicker-addon.js +1299 -0
- data/public/js/jquery-ui.js +791 -0
- data/public/js/jquery.dataTables.js +7440 -0
- data/public/js/jquery.fancybox-1.3.4.js +1156 -0
- data/public/js/jquery.filestyle.mini.js +2 -0
- data/public/js/jquery.flot.js +2600 -0
- data/public/js/jquery.flot.resize.min.js +60 -0
- data/public/js/jquery.graphtable-0.2.js +179 -0
- data/public/js/jquery.tipsy.js +104 -0
- data/public/js/jquery.treeview.js +256 -0
- data/public/js/jquery.wysiwyg.js +2454 -0
- data/public/js/plugins/wysiwyg.rmFormat.js +348 -0
- data/public/js/superfish.js +121 -0
- data/public/js/supersubs.js +90 -0
- data/views/home.haml +54 -0
- data/views/layout.haml +89 -0
- data/views/statistics.haml +251 -71
- metadata +175 -22
@@ -0,0 +1,90 @@
|
|
1
|
+
|
2
|
+
/*
|
3
|
+
* Supersubs v0.2b - jQuery plugin
|
4
|
+
* Copyright (c) 2008 Joel Birch
|
5
|
+
*
|
6
|
+
* Dual licensed under the MIT and GPL licenses:
|
7
|
+
* http://www.opensource.org/licenses/mit-license.php
|
8
|
+
* http://www.gnu.org/licenses/gpl.html
|
9
|
+
*
|
10
|
+
*
|
11
|
+
* This plugin automatically adjusts submenu widths of suckerfish-style menus to that of
|
12
|
+
* their longest list item children. If you use this, please expect bugs and report them
|
13
|
+
* to the jQuery Google Group with the word 'Superfish' in the subject line.
|
14
|
+
*
|
15
|
+
*/
|
16
|
+
|
17
|
+
;(function($){ // $ will refer to jQuery within this closure
|
18
|
+
|
19
|
+
$.fn.supersubs = function(options){
|
20
|
+
var opts = $.extend({}, $.fn.supersubs.defaults, options);
|
21
|
+
// return original object to support chaining
|
22
|
+
return this.each(function() {
|
23
|
+
// cache selections
|
24
|
+
var $$ = $(this);
|
25
|
+
// support metadata
|
26
|
+
var o = $.meta ? $.extend({}, opts, $$.data()) : opts;
|
27
|
+
// get the font size of menu.
|
28
|
+
// .css('fontSize') returns various results cross-browser, so measure an em dash instead
|
29
|
+
var fontsize = $('<li id="menu-fontsize">—</li>').css({
|
30
|
+
'padding' : 0,
|
31
|
+
'position' : 'absolute',
|
32
|
+
'top' : '-999em',
|
33
|
+
'width' : 'auto'
|
34
|
+
}).appendTo($$).width(); //clientWidth is faster, but was incorrect here
|
35
|
+
// remove em dash
|
36
|
+
$('#menu-fontsize').remove();
|
37
|
+
// cache all ul elements
|
38
|
+
$ULs = $$.find('ul');
|
39
|
+
// loop through each ul in menu
|
40
|
+
$ULs.each(function(i) {
|
41
|
+
// cache this ul
|
42
|
+
var $ul = $ULs.eq(i);
|
43
|
+
// get all (li) children of this ul
|
44
|
+
var $LIs = $ul.children();
|
45
|
+
// get all anchor grand-children
|
46
|
+
var $As = $LIs.children('a');
|
47
|
+
// force content to one line and save current float property
|
48
|
+
var liFloat = $LIs.css('white-space','nowrap').css('float');
|
49
|
+
// remove width restrictions and floats so elements remain vertically stacked
|
50
|
+
var emWidth = $ul.add($LIs).add($As).css({
|
51
|
+
'float' : 'none',
|
52
|
+
'width' : 'auto'
|
53
|
+
})
|
54
|
+
// this ul will now be shrink-wrapped to longest li due to position:absolute
|
55
|
+
// so save its width as ems. Clientwidth is 2 times faster than .width() - thanks Dan Switzer
|
56
|
+
.end().end()[0].clientWidth / fontsize;
|
57
|
+
// add more width to ensure lines don't turn over at certain sizes in various browsers
|
58
|
+
emWidth += o.extraWidth;
|
59
|
+
// restrict to at least minWidth and at most maxWidth
|
60
|
+
if (emWidth > o.maxWidth) { emWidth = o.maxWidth; }
|
61
|
+
else if (emWidth < o.minWidth) { emWidth = o.minWidth; }
|
62
|
+
emWidth += 'em';
|
63
|
+
// set ul to width in ems
|
64
|
+
$ul.css('width',emWidth);
|
65
|
+
// restore li floats to avoid IE bugs
|
66
|
+
// set li width to full width of this ul
|
67
|
+
// revert white-space to normal
|
68
|
+
$LIs.css({
|
69
|
+
'float' : liFloat,
|
70
|
+
'width' : '100%',
|
71
|
+
'white-space' : 'normal'
|
72
|
+
})
|
73
|
+
// update offset position of descendant ul to reflect new width of parent
|
74
|
+
.each(function(){
|
75
|
+
var $childUl = $('>ul',this);
|
76
|
+
var offsetDirection = $childUl.css('left')!==undefined ? 'left' : 'right';
|
77
|
+
$childUl.css(offsetDirection,emWidth);
|
78
|
+
});
|
79
|
+
});
|
80
|
+
|
81
|
+
});
|
82
|
+
};
|
83
|
+
// expose defaults
|
84
|
+
$.fn.supersubs.defaults = {
|
85
|
+
minWidth : 9, // requires em unit.
|
86
|
+
maxWidth : 25, // requires em unit.
|
87
|
+
extraWidth : 0 // extra width can ensure lines don't sometimes turn over due to slight browser differences in how they round-off values
|
88
|
+
};
|
89
|
+
|
90
|
+
})(jQuery); // plugin code ends
|
data/views/home.haml
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
.section
|
2
|
+
.full
|
3
|
+
.box
|
4
|
+
.title
|
5
|
+
%h2 Cobweb Statistics
|
6
|
+
%span.hide
|
7
|
+
.content
|
8
|
+
.caption Totals for the last 30 mins
|
9
|
+
%table.statics{:style => "width : 100%;"}
|
10
|
+
%thead
|
11
|
+
%tr
|
12
|
+
%th
|
13
|
+
- counter = 0
|
14
|
+
- @crawls.each do |crawl|
|
15
|
+
%th{:style => "color : #{@colors[counter]};"}= crawl[:crawl_details][:base_url]
|
16
|
+
- counter = counter += 1
|
17
|
+
- counter = 0 if counter > (@colors.length-1)
|
18
|
+
|
19
|
+
%tbody
|
20
|
+
- (1..30).each do |minutes|
|
21
|
+
- date = (DateTime.now - (minutes/1440.0)).strftime("%Y-%m-%d %H:%M").to_sym
|
22
|
+
%tr
|
23
|
+
%th= minutes
|
24
|
+
- @crawls.each do |crawl|
|
25
|
+
- if crawl[:minute_totals][date].nil?
|
26
|
+
%td
|
27
|
+
- else
|
28
|
+
%td= crawl[:minute_totals][date]
|
29
|
+
.section
|
30
|
+
.full
|
31
|
+
.box
|
32
|
+
.title
|
33
|
+
%h2 Running Crawls
|
34
|
+
%span.hide
|
35
|
+
.content
|
36
|
+
- if @crawls.empty?
|
37
|
+
No crawls running just now
|
38
|
+
- else
|
39
|
+
%table.all{:border => "0", :cellpadding => "0", :cellspacing => "0"}
|
40
|
+
%thead
|
41
|
+
%tr
|
42
|
+
%th Base URL
|
43
|
+
%th Total Pages
|
44
|
+
%th Total Assets
|
45
|
+
%th Queued Objects
|
46
|
+
%tbody
|
47
|
+
- @crawls.each do |crawl|
|
48
|
+
%tr
|
49
|
+
%td
|
50
|
+
%a{:href => "/statistics/#{crawl[:crawl_details][:crawl_id]}"}= crawl[:crawl_details][:base_url]
|
51
|
+
%td= crawl[:statistics][:page_count]
|
52
|
+
%td= crawl[:statistics][:asset_count]
|
53
|
+
%td= crawl[:statistics][:queue_counter]
|
54
|
+
|
data/views/layout.haml
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
!!!
|
2
|
+
%html{:lang => "en", "xml:lang" => "en", :xmlns => "http://www.w3.org/1999/xhtml"}
|
3
|
+
%head
|
4
|
+
%meta{:content => "text/html;charset=utf-8", "http-equiv" => "Content-Type"}/
|
5
|
+
%title Cobweb Statistics
|
6
|
+
:css
|
7
|
+
@import url("/css/style.css");
|
8
|
+
@import url('/css/style_text.css');
|
9
|
+
@import url('/css/form-buttons.css');
|
10
|
+
@import url('/css/link-buttons.css');
|
11
|
+
@import url('/css/menu.css');
|
12
|
+
@import url('/css/statics.css');
|
13
|
+
@import url('/css/messages.css');
|
14
|
+
@import url('/css/datatable.css');
|
15
|
+
@import url('/css/accordion.css');
|
16
|
+
@import url('/css/tabs.css');
|
17
|
+
@import url('/css/forms.css');
|
18
|
+
@import url('/css/datepicker.css');
|
19
|
+
@import url('/css/modalbox.css');
|
20
|
+
@import url('/css/jquery.fancybox-1.3.4.css');
|
21
|
+
@import url('/css/jquery.treeview.css');
|
22
|
+
@import url('/css/wysiwyg.css');
|
23
|
+
@import url('/css/wysiwyg.modal.css');
|
24
|
+
@import url('/css/wysiwyg-editor.css');
|
25
|
+
@import url("/css/custom.css");
|
26
|
+
%script{:src => "/js/jquery-1.7.1.min.js", :type => "text/javascript"}
|
27
|
+
%body
|
28
|
+
.container
|
29
|
+
.logo-labels
|
30
|
+
%h1
|
31
|
+
%a{:href => "#"} CleanDream
|
32
|
+
%ul.hidden
|
33
|
+
%li
|
34
|
+
%a{:href => "#"}
|
35
|
+
%span Settings
|
36
|
+
%li.usermessage
|
37
|
+
%a{:href => "#"}
|
38
|
+
%span 1 new message
|
39
|
+
%li.logout
|
40
|
+
%a{:href => "#"}
|
41
|
+
%span Logout
|
42
|
+
.menu-search
|
43
|
+
%ul
|
44
|
+
%li.current
|
45
|
+
%a{:href => "/"} Dashboard
|
46
|
+
%li.current
|
47
|
+
%a{:href => "https://github.com/stewartmckee/cobweb/blob/master/README.textile"} Readme
|
48
|
+
%li.current
|
49
|
+
%a{:href => "http://travis-ci.org/#!/stewartmckee/cobweb"} Test Results
|
50
|
+
.breadcrumbs.hidden
|
51
|
+
%ul
|
52
|
+
%li.home
|
53
|
+
%a{:href => "#"}
|
54
|
+
%li.break »
|
55
|
+
%li
|
56
|
+
%a{:href => "#"} Menu item
|
57
|
+
%li.break »
|
58
|
+
%li
|
59
|
+
%a{:href => "#"} Menu item
|
60
|
+
= yield
|
61
|
+
|
62
|
+
.footer
|
63
|
+
.split
|
64
|
+
© Copyright
|
65
|
+
%a{:href => "http://www.activeinformationdesign.com"} activeinformationdesign.com
|
66
|
+
.split.right
|
67
|
+
Powered by
|
68
|
+
%a{:href => "http://github.com/stewartmckee/cobweb", :target => "_blank"} Cobweb
|
69
|
+
%script{:src => "/js/superfish.js", :type => "text/javascript"}
|
70
|
+
%script{:src => "/js/supersubs.js", :type => "text/javascript"}
|
71
|
+
%script{:src => "/js/hoverIntent.js", :type => "text/javascript"}
|
72
|
+
%script{:src => "/js/jquery.flot.js", :type => "text/javascript"}
|
73
|
+
%script{:src => "/js/jquery.graphtable-0.2.js", :type => "text/javascript"}
|
74
|
+
%script{:src => "/js/jquery.flot.resize.min.js", :type => "text/javascript"}
|
75
|
+
%script{:src => "/js/jquery-ui.js", :type => "text/javascript"}
|
76
|
+
%script{:src => "/js/jquery-ui-select.js", :type => "text/javascript"}
|
77
|
+
%script{:src => "/js/customInput.jquery.js", :type => "text/javascript"}
|
78
|
+
%script{:src => "/js/jquery.dataTables.js", :type => "text/javascript"}
|
79
|
+
%script{:src => "/js/jquery.fancybox-1.3.4.js", :type => "text/javascript"}
|
80
|
+
%script{:src => "/js/jquery.filestyle.mini.js", :type => "text/javascript"}
|
81
|
+
%script{:src => "/js/jquery-ui-timepicker-addon.js", :type => "text/javascript"}
|
82
|
+
%script{:src => "/js/jquery.treeview.js", :type => "text/javascript"}
|
83
|
+
%script{:src => "/js/jquery.tipsy.js", :type => "text/javascript"}
|
84
|
+
%script{:src => "/js/jquery.wysiwyg.js", :type => "text/javascript"}
|
85
|
+
%script{:src => "/js/plugins/wysiwyg.rmFormat.js", :type => "text/javascript"}
|
86
|
+
%script{:src => "/js/controls/wysiwyg.image.js", :type => "text/javascript"}
|
87
|
+
%script{:src => "/js/controls/wysiwyg.link.js", :type => "text/javascript"}
|
88
|
+
%script{:src => "/js/controls/wysiwyg.table.js", :type => "text/javascript"}
|
89
|
+
%script{:src => "/js/inline.js", :type => "text/javascript"}
|
data/views/statistics.haml
CHANGED
@@ -1,71 +1,251 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
%
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
%
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
%
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
1
|
+
|
2
|
+
.section
|
3
|
+
.big
|
4
|
+
.box
|
5
|
+
.title
|
6
|
+
%h2 Status
|
7
|
+
%span.hide
|
8
|
+
.content
|
9
|
+
= @crawl[:statistics][:current_status]
|
10
|
+
.small
|
11
|
+
.box
|
12
|
+
.title
|
13
|
+
%h2 Queues
|
14
|
+
%span.hide
|
15
|
+
.content
|
16
|
+
%table
|
17
|
+
%thead
|
18
|
+
%tr
|
19
|
+
%th Crawled
|
20
|
+
%th Queued
|
21
|
+
%tbody
|
22
|
+
%tr
|
23
|
+
%td= @crawl[:statistics][:crawl_counter]
|
24
|
+
%td= @crawl[:statistics][:queue_counter]
|
25
|
+
|
26
|
+
.section
|
27
|
+
.big
|
28
|
+
.box
|
29
|
+
.title
|
30
|
+
%h2 Pages and Assets
|
31
|
+
%span.hide
|
32
|
+
.content
|
33
|
+
.caption Counts of assets and pages that have been crawled
|
34
|
+
%table.statics{:style => "width : 100%;"}
|
35
|
+
%thead
|
36
|
+
%tr
|
37
|
+
%th
|
38
|
+
%th{:style => "color: #00366f;"} Pages
|
39
|
+
%th{:style => "color: #006ba0;"} Assets
|
40
|
+
|
41
|
+
%tbody
|
42
|
+
- (1..30).each do |minutes|
|
43
|
+
- date = (DateTime.now - (minutes/1440.0)).strftime("%Y-%m-%d %H:%M").to_sym
|
44
|
+
%tr
|
45
|
+
%th= minutes
|
46
|
+
%td= @crawl[:pages_count][date]
|
47
|
+
%td= @crawl[:assets_count][date]
|
48
|
+
.small
|
49
|
+
.box
|
50
|
+
.title
|
51
|
+
%h2 Totals
|
52
|
+
%span.hide
|
53
|
+
.content
|
54
|
+
.caption Totals for crawl
|
55
|
+
%table{:style => "width : 100%;"}
|
56
|
+
%thead
|
57
|
+
%tr
|
58
|
+
%th
|
59
|
+
%th{:style => "color: #00366f;"} Pages
|
60
|
+
%th{:style => "color: #006ba0;"} Assets
|
61
|
+
|
62
|
+
%tbody
|
63
|
+
%tr
|
64
|
+
%th Count
|
65
|
+
%td= @crawl[:statistics][:page_count]
|
66
|
+
%td= @crawl[:statistics][:asset_count]
|
67
|
+
%tr
|
68
|
+
%th Size
|
69
|
+
%td= @crawl[:statistics][:page_size].to_i.to_human
|
70
|
+
%td= @crawl[:statistics][:asset_size].to_i.to_human
|
71
|
+
|
72
|
+
|
73
|
+
.section
|
74
|
+
.medium
|
75
|
+
.box
|
76
|
+
.title
|
77
|
+
%h2 Status counts
|
78
|
+
%span.hide
|
79
|
+
.content
|
80
|
+
.caption Status codes returned per minute
|
81
|
+
%table.statics{:style => "width : 100%;"}
|
82
|
+
%thead
|
83
|
+
%tr
|
84
|
+
%th
|
85
|
+
%th{:style => "color: #00366f;"} 200
|
86
|
+
%th{:style => "color: #006ba0;"} 400
|
87
|
+
%th{:style => "color: #0486D6;"} 500
|
88
|
+
|
89
|
+
%tbody
|
90
|
+
- (1..30).each do |minutes|
|
91
|
+
- date = (DateTime.now - (minutes/1440.0)).strftime("%Y-%m-%d %H:%M").to_sym
|
92
|
+
%tr
|
93
|
+
%th= minutes
|
94
|
+
%td= @crawl[:status_200_count][date]
|
95
|
+
%td= @crawl[:status_400_count][date]
|
96
|
+
%td= @crawl[:status_500_count][date]
|
97
|
+
|
98
|
+
|
99
|
+
.medium
|
100
|
+
.box
|
101
|
+
.title
|
102
|
+
%h2 Mime counts
|
103
|
+
%span.hide
|
104
|
+
.content
|
105
|
+
.caption Mime types processed per minute
|
106
|
+
%table.statics{:style => "width : 100%;"}
|
107
|
+
%thead
|
108
|
+
%tr
|
109
|
+
%th
|
110
|
+
%th{:style => "color: #00366f;"} Text
|
111
|
+
%th{:style => "color: #006ba0;"} Image
|
112
|
+
%th{:style => "color: #0486D6;"} Application
|
113
|
+
|
114
|
+
%tbody
|
115
|
+
- (1..30).each do |minutes|
|
116
|
+
- date = (DateTime.now - (minutes/1440.0)).strftime("%Y-%m-%d %H:%M").to_sym
|
117
|
+
%tr
|
118
|
+
%th= minutes
|
119
|
+
%td= @crawl[:mime_text_count][date]
|
120
|
+
%td= @crawl[:mime_image_count][date]
|
121
|
+
%td= @crawl[:mime_application_count][date]
|
122
|
+
|
123
|
+
|
124
|
+
.section
|
125
|
+
.medium
|
126
|
+
.box
|
127
|
+
.title
|
128
|
+
%h2 Status counts
|
129
|
+
%span.hide
|
130
|
+
.content
|
131
|
+
.caption Total status codes returned
|
132
|
+
%table{:style => "width : 100%;"}
|
133
|
+
%thead
|
134
|
+
%tr
|
135
|
+
%th Status code
|
136
|
+
%th Count
|
137
|
+
|
138
|
+
%tbody
|
139
|
+
- @crawl[:statistics][:status_counts].keys.each do |status|
|
140
|
+
- unless status.nil? || status == ""
|
141
|
+
%tr
|
142
|
+
%td= status
|
143
|
+
%td= @crawl[:statistics][:status_counts][status]
|
144
|
+
|
145
|
+
.medium
|
146
|
+
.box
|
147
|
+
.title
|
148
|
+
%h2 Mime type counts
|
149
|
+
%span.hide
|
150
|
+
.content
|
151
|
+
.caption Total mime-types returned
|
152
|
+
%table{:style => "width : 100%;"}
|
153
|
+
%thead
|
154
|
+
%tr
|
155
|
+
%th Mime-type
|
156
|
+
%th Count
|
157
|
+
|
158
|
+
%tbody
|
159
|
+
- @crawl[:statistics][:mime_counts].keys.each do |mime_type|
|
160
|
+
%tr
|
161
|
+
%td= mime_type
|
162
|
+
%td= @crawl[:statistics][:mime_counts][mime_type]
|
163
|
+
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
|
168
|
+
.section
|
169
|
+
.small
|
170
|
+
.box
|
171
|
+
.title
|
172
|
+
%h2 Counts
|
173
|
+
%span.hide
|
174
|
+
.content
|
175
|
+
%table
|
176
|
+
%thead
|
177
|
+
%tr
|
178
|
+
%th Page Count
|
179
|
+
%th Asset Count
|
180
|
+
%th Redirect Count
|
181
|
+
%tbody
|
182
|
+
%tr
|
183
|
+
%td= @crawl[:statistics][:page_count]
|
184
|
+
%td= @crawl[:statistics][:asset_count]
|
185
|
+
%td= @crawl[:statistics][:total_redirects]
|
186
|
+
|
187
|
+
.small
|
188
|
+
.box
|
189
|
+
.title
|
190
|
+
%h2 Total Sizes
|
191
|
+
%span.hide
|
192
|
+
.content
|
193
|
+
%table
|
194
|
+
%thead
|
195
|
+
%tr
|
196
|
+
%th Total Page Size
|
197
|
+
%th Total Asset Size
|
198
|
+
%tbody
|
199
|
+
%tr
|
200
|
+
%td= @crawl[:statistics][:page_size].to_i.to_human
|
201
|
+
%td= @crawl[:statistics][:asset_size].to_i.to_human
|
202
|
+
|
203
|
+
|
204
|
+
.section
|
205
|
+
.medium
|
206
|
+
.box
|
207
|
+
.title
|
208
|
+
%h2 Response Times
|
209
|
+
%span.hide
|
210
|
+
.content
|
211
|
+
%table
|
212
|
+
%thead
|
213
|
+
%tr
|
214
|
+
%th
|
215
|
+
%th{:colspan => 2} milliseconds
|
216
|
+
%tbody
|
217
|
+
%tr
|
218
|
+
%th Average
|
219
|
+
%td= @crawl[:statistics][:average_response_time]
|
220
|
+
%tr
|
221
|
+
%th Maximum
|
222
|
+
%td= @crawl[:statistics][:maximum_response_time]
|
223
|
+
%tr
|
224
|
+
%th Minimum
|
225
|
+
%td= @crawl[:statistics][:minimum_response_time]
|
226
|
+
|
227
|
+
.medium
|
228
|
+
.box
|
229
|
+
.title
|
230
|
+
%h2 Content Sizes
|
231
|
+
%span.hide
|
232
|
+
.content
|
233
|
+
%table
|
234
|
+
%thead
|
235
|
+
%tr
|
236
|
+
%th
|
237
|
+
%th{:colspan => 2} Content Sizes
|
238
|
+
%tbody
|
239
|
+
%tr
|
240
|
+
%th Average
|
241
|
+
%td= @crawl[:statistics][:average_length].to_i.to_human
|
242
|
+
%tr
|
243
|
+
%th Maximum
|
244
|
+
%td= @crawl[:statistics][:maximum_length].to_i.to_human
|
245
|
+
%tr
|
246
|
+
%th Minimum
|
247
|
+
%td= @crawl[:statistics][:minimum_length].to_i.to_human
|
248
|
+
%tr
|
249
|
+
%th Total
|
250
|
+
%td= @crawl[:statistics][:total_length].to_i.to_human
|
251
|
+
|