rail_stat_generator 0.1.1 → 0.1.3

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.
@@ -16,29 +16,28 @@
16
16
  <%% if @paths.size > 0 %>
17
17
  <table class="list" width='100%'>
18
18
  <tr>
19
- <th>D/T</th>
19
+ <th>Timestamp</th>
20
20
  <th>Path</th>
21
21
  <th>Addr.</th>
22
22
  <th>Browser</th>
23
23
  <th>Platform</th>
24
24
  </tr>
25
- <%% initListClass
26
- for i in 0..@paths.size-1
27
- row = @paths[i]
28
- if not(row.marked?)
29
- row.mark
30
- domain, refferer = "-", '' %>
31
- <tr class='<%%=popListClass%>'>
32
- <td width='60px'><div class='cutField'><%%=get_time(row.dt)%></div></td>
25
+ <%% for i in 0..@paths.size-1
26
+ row = @paths[i]
27
+ if not(row.marked?)
28
+ row.mark
29
+ domain, refferer = "-", '' -%>
30
+ <tr class='<%%= alternator %>'>
31
+ <td width='60px'><div class='cutField'><%%=get_time(row.created_at)%></div></td>
33
32
  <td width='200px'><div class='cutField'>
34
- <%% last_access_time = row.dt
33
+ <%% last_access_time = row.created_at
35
34
  # work through loop backwards so we get the *first* page time wise
36
35
  (@paths.size-1).downto(i+1) { |j|
37
- if not(@paths[j].marked?) and row.remote_ip == @paths[j].remote_ip and (last_access_time - 900 <= @paths[j].dt)
36
+ if not(@paths[j].marked?) and row.remote_ip == @paths[j].remote_ip and (last_access_time - 900 <= @paths[j].created_at)
38
37
  domain, refferer = @paths[j].domain, @paths[j].referer if domain == "-" and @paths[j].domain and not(@paths[j].domain == SITE_NAME)%>
39
38
  <%%=get_path_image(@paths[j].resource, @ordered_resources)%>
40
39
  <%% @paths[j].mark
41
- last_access_time = @paths[j].dt
40
+ last_access_time = @paths[j].created_at
42
41
  end
43
42
  }
44
43
  # add last page %>
@@ -67,9 +66,8 @@
67
66
  <%% if @orarr.size > 0 %>
68
67
  <table class="list">
69
68
  <tr><th colspan="2">Resource</th><th>Hits statistics</th></tr>
70
- <%% initListClass
71
- for resource in @orarr %>
72
- <tr class="<%%=popListClass%>">
69
+ <%% for resource in @orarr -%>
70
+ <tr class="<%%= alternator %>">
73
71
  <td><%%=get_path_image(resource['resource'], @ordered_resources)%></td>
74
72
  <td><a href='<%%=resource['resource']%>'><%%=h resource['resource'] %></a></td>
75
73
  <td><%%=resource['requests']%></td></tr>
@@ -3,22 +3,38 @@
3
3
  <h2>Operating systems</h2>
4
4
  <div id="path_stats_pl">
5
5
  <table class="list">
6
- <tr><th>OS</th><th>%</th></tr>
7
- <%% initListClass
8
- for pl in @platforms %>
9
- <tr class="<%%=popListClass%>"><td><%%=pl['platform']%></td><td><%%=pl['percent']%>%</td></tr>
10
- <%% end %>
6
+ <tr>
7
+ <th>OS</th>
8
+ <th>Percentage</th>
9
+ <th>Hit Count</th>
10
+ </tr>
11
+ <%% for platform in @platforms %>
12
+ <tr class='<%%= alternator %>'>
13
+ <td><%%= platform.platform %></td>
14
+ <td><%%= sprintf("%000.2f", (platform.total.to_f/@total_hits)*100) %>%</td>
15
+ <td><%%= platform.total %></td>
16
+ </tr>
17
+ <%% end %>
11
18
  </table>
12
19
  </div>
13
20
 
14
21
  <h2>Browsers usage</h2>
15
22
  <div id="path_stats_br">
16
23
  <table class="list">
17
- <tr><th>Browser</th><th>Version</th><th>%</th></tr>
18
- <%% initListClass
19
- for br in @browsers %>
20
- <tr class="<%%=popListClass%>"><td><%%=br['browser']%></td><td><%%=br['version']%></td><td><%%=br['percent']%>%</td></tr>
21
- <%% end %>
24
+ <tr>
25
+ <th>Browser</th>
26
+ <th>Version</th>
27
+ <th>Percentage</th>
28
+ <th>Hit Count</th>
29
+ </tr>
30
+ <%% for browser in @browsers %>
31
+ <tr class='<%%= alternator %>'>
32
+ <td><%%= browser.browser %></td>
33
+ <td><%%= browser.version %></td>
34
+ <td><%%= sprintf("%000.2f",(browser.total.to_f/@total_hits)*100) %>%</td>
35
+ <td><%%= browser.total %></td>
36
+ </tr>
37
+ <%% end %>
22
38
  </table>
23
39
  </div>
24
40
  </div>
@@ -3,10 +3,17 @@
3
3
  <h2>Repeat referrers</h2>
4
4
  <div id="path_stats_refsd">
5
5
  <table class="list">
6
- <tr><th>Domains</th><th>Hits</th></tr>
7
- <%% initListClass
8
- for row in @refs %>
9
- <tr class="<%%=popListClass%>"><td><a href='<%%=row['referer']%>' title='<%%=row['resource']%>'><%%=row['domain']%></a></td><td><%%=row['total']%></td></tr>
6
+ <tr>
7
+ <th>Domains</th>
8
+ <th>Referred to Resource</th>
9
+ <th>Hits</th>
10
+ </tr>
11
+ <%% for row in @refs %>
12
+ <tr class="<%%= alternator %>">
13
+ <td><a href='<%%= row['referer'] %>' title='<%%= row['resource'] %>'><%%=row['domain']%></a></td>
14
+ <td><%%= row['resource'] %></td>
15
+ <td><%%= row['total'] %></td>
16
+ </tr>
10
17
  <%% end %>
11
18
  </table>
12
19
  </div>
@@ -14,11 +21,16 @@
14
21
  <h2>Search strings</h2>
15
22
  <div id="path_stats_refst">
16
23
  <table class="list">
17
- <tr><th>Search strings</th><th>Hits</th></tr>
18
- <%% initListClass
19
- for row in @searchterms %>
20
- <tr class="<%%=popListClass%>"><td><%%=h row['searchterms']%></td><td><%%=row['count']%></td></tr>
21
- <%% end %>
24
+ <tr>
25
+ <th>Search strings</th>
26
+ <th>Hits</th>
27
+ </tr>
28
+ <%% for row in @searchterms %>
29
+ <tr class="<%%= alternator %>">
30
+ <td><%%=h row['searchterms'] %></td>
31
+ <td><%%= row['count'] %></td>
32
+ </tr>
33
+ <%% end %>
22
34
  </table>
23
35
  </div>
24
36
  </div>
@@ -1,43 +1,44 @@
1
- CREATE TABLE rail_stats (
2
- id int(11) unsigned NOT NULL auto_increment,
3
- remote_ip varchar(15) default '',
4
- country varchar(50) default '',
5
- language VARCHAR(5) default '',
6
- domain varchar(250) default '',
7
- subdomain varchar(250) default '',
8
- referer varchar(255) default '',
9
- resource varchar(255) default '',
10
- user_agent varchar(255) default '',
11
- platform varchar(50) default '',
12
- browser varchar(50) default '',
13
- version varchar(15) default '',
14
- dt int(10) unsigned default '0',
15
- screen_size varchar(10) default null,
16
- colors varchar(10) default null,
17
- java varchar(10) default null,
18
- java_enabled varchar(10) default null,
19
- flash varchar(10) default null,
20
- UNIQUE KEY id (id),
21
- INDEX(subdomain)
22
- ) TYPE=MyISAM;
23
-
24
- CREATE TABLE search_terms (
25
- id int(11) unsigned NOT NULL auto_increment,
26
- subdomain varchar(250) default '',
27
- searchterms varchar(255) NOT NULL default '',
28
- count int(10) unsigned NOT NULL default '0',
29
- domain varchar(250),
30
- PRIMARY KEY (id),
31
- INDEX(subdomain)
32
- ) TYPE=MyISAM;
33
-
34
- CREATE TABLE iptocs (
35
- id int(11) unsigned NOT NULL auto_increment,
36
- ip_from int(10) unsigned zerofill not null,
37
- ip_to int(10) unsigned zerofill not null,
38
- country_code2 char(2) not null,
39
- country_code3 char(3) not null,
40
- country_name varchar(50) not null,
41
- PRIMARY KEY (id),
42
- unique index(ip_from, ip_to)
43
- );
1
+ CREATE TABLE rail_stats (
2
+ id int(11) unsigned NOT NULL auto_increment,
3
+ remote_ip varchar(15) default '',
4
+ country varchar(50) default '',
5
+ language VARCHAR(5) default '',
6
+ domain varchar(250) default '',
7
+ subdomain varchar(250) default '',
8
+ referer varchar(255) default '',
9
+ resource varchar(255) default '',
10
+ user_agent varchar(255) default '',
11
+ platform varchar(50) default '',
12
+ browser varchar(50) default '',
13
+ version varchar(15) default '',
14
+ created_at datetime,
15
+ created_on date,
16
+ screen_size varchar(10) default null,
17
+ colors varchar(10) default null,
18
+ java varchar(10) default null,
19
+ java_enabled varchar(10) default null,
20
+ flash varchar(10) default null,
21
+ UNIQUE KEY id (id),
22
+ INDEX(subdomain)
23
+ ) TYPE=MyISAM;
24
+
25
+ CREATE TABLE search_terms (
26
+ id int(11) unsigned NOT NULL auto_increment,
27
+ subdomain varchar(250) default '',
28
+ searchterms varchar(255) NOT NULL default '',
29
+ count int(10) unsigned NOT NULL default '0',
30
+ domain varchar(250),
31
+ PRIMARY KEY (id),
32
+ INDEX(subdomain)
33
+ ) TYPE=MyISAM;
34
+
35
+ CREATE TABLE iptocs (
36
+ id int(11) unsigned NOT NULL auto_increment,
37
+ ip_from int(10) unsigned zerofill not null,
38
+ ip_to int(10) unsigned zerofill not null,
39
+ country_code2 char(2) not null,
40
+ country_code3 char(3) not null,
41
+ country_name varchar(50) not null,
42
+ PRIMARY KEY (id),
43
+ unique index(ip_from, ip_to)
44
+ );
@@ -1,47 +1,48 @@
1
- DROP TABLE rail_stats, search_terms, iptocs CASCADE;
2
- CREATE TABLE rail_stats (
3
- id SERIAL,
4
- remote_ip VARCHAR(15) default '',
5
- country VARCHAR(50) default '',
6
- language VARCHAR(5) default '',
7
- domain VARCHAR(250) default '',
8
- subdomain VARCHAR(250) default '',
9
- referer VARCHAR(255) default '',
10
- resource VARCHAR(255) default '',
11
- user_agent VARCHAR(255) default '',
12
- platform VARCHAR(50) default '',
13
- browser VARCHAR(50) default '',
14
- version VARCHAR(15) default '',
15
- dt INT4 default '0',
16
- screen_size VARCHAR(10) default null,
17
- colors VARCHAR(10) default null,
18
- java VARCHAR(10) default null,
19
- java_enabled VARCHAR(10) default null,
20
- flash VARCHAR(10) default null,
21
-
22
- CONSTRAINT pk_rail_stats_id PRIMARY KEY(id)
23
- );
24
- CREATE UNIQUE INDEX rail_stats_subdomain_idx ON rail_stats(subdomain);
25
-
26
- CREATE TABLE search_terms (
27
- id SERIAL,
28
- subdomain VARCHAR(250) default '',
29
- searchterms VARCHAR(255) NOT NULL default '',
30
- count INT4 NOT NULL default '0',
31
- domain VARCHAR(250),
32
-
33
- CONSTRAINT pk_search_terms_id PRIMARY KEY(id)
34
- );
35
- CREATE UNIQUE INDEX search_terms_subdomain_idx ON search_terms(subdomain);
36
-
37
- CREATE TABLE iptocs (
38
- id SERIAL,
39
- ip_from INT8 NOT NULL default '0',
40
- ip_to INT8 NOT NULL default '0',
41
- country_code2 CHAR(2) NOT NULL,
42
- country_code3 CHAR(3) NOT NULL,
43
- country_name VARCHAR(50) NOT NULL,
44
-
45
- CONSTRAINT pk_iptocs_id PRIMARY KEY(id)
46
- );
1
+ DROP TABLE rail_stats, search_terms, iptocs CASCADE;
2
+ CREATE TABLE rail_stats (
3
+ id SERIAL,
4
+ remote_ip VARCHAR(15) default '',
5
+ country VARCHAR(50) default '',
6
+ language VARCHAR(5) default '',
7
+ domain VARCHAR(250) default '',
8
+ subdomain VARCHAR(250) default '',
9
+ referer VARCHAR(255) default '',
10
+ resource VARCHAR(255) default '',
11
+ user_agent VARCHAR(255) default '',
12
+ platform VARCHAR(50) default '',
13
+ browser VARCHAR(50) default '',
14
+ version VARCHAR(15) default '',
15
+ created_at TIMESTAMP,
16
+ created_on DATE,
17
+ screen_size VARCHAR(10) default null,
18
+ colors VARCHAR(10) default null,
19
+ java VARCHAR(10) default null,
20
+ java_enabled VARCHAR(10) default null,
21
+ flash VARCHAR(10) default null,
22
+
23
+ CONSTRAINT pk_rail_stats_id PRIMARY KEY(id)
24
+ );
25
+ CREATE UNIQUE INDEX rail_stats_subdomain_idx ON rail_stats(subdomain);
26
+
27
+ CREATE TABLE search_terms (
28
+ id SERIAL,
29
+ subdomain VARCHAR(250) default '',
30
+ searchterms VARCHAR(255) NOT NULL default '',
31
+ count INT4 NOT NULL default '0',
32
+ domain VARCHAR(250),
33
+
34
+ CONSTRAINT pk_search_terms_id PRIMARY KEY(id)
35
+ );
36
+ CREATE UNIQUE INDEX search_terms_subdomain_idx ON search_terms(subdomain);
37
+
38
+ CREATE TABLE iptocs (
39
+ id SERIAL,
40
+ ip_from INT8 NOT NULL default '0',
41
+ ip_to INT8 NOT NULL default '0',
42
+ country_code2 CHAR(2) NOT NULL,
43
+ country_code3 CHAR(3) NOT NULL,
44
+ country_name VARCHAR(50) NOT NULL,
45
+
46
+ CONSTRAINT pk_iptocs_id PRIMARY KEY(id)
47
+ );
47
48
  CREATE UNIQUE INDEX iptocs_ip_from_ip_to_idx ON iptocs(ip_from, ip_to);
@@ -27,10 +27,14 @@ module PathTracker
27
27
 
28
28
  sniff_keywords(domain, subdomain, referer);
29
29
 
30
- @client_country = Iptoc.find_by_ip_address(@request.env['REMOTE_ADDR'])
30
+ if @request.env['REMOTE_ADDR'] == "127.0.0.1"
31
+ client_country = "localhost"
32
+ else
33
+ client_country = Iptoc.find_by_ip_address(@request.env['REMOTE_ADDR'])
34
+ end
31
35
 
32
36
  RailStat.create("remote_ip" => env['REMOTE_ADDR'],
33
- "country" => ((@client_country.nil? or @client_country.country_name.nil?) ? '' : @client_country.country_name),
37
+ "country" => client_country,
34
38
  "language" => determine_lang(env['HTTP_ACCEPT_LANGUAGE']),
35
39
  "domain" => domain,
36
40
  "subdomain" => subdomain,
@@ -40,7 +44,6 @@ module PathTracker
40
44
  "platform" => br['platform'],
41
45
  "browser" => br['browser'],
42
46
  "version" => br['version'],
43
- "dt" => Time.now,
44
47
  "screen_size" => size,
45
48
  "colors" => colors,
46
49
  "java" => java,
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.10
3
3
  specification_version: 1
4
4
  name: rail_stat_generator
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.1.1
7
- date: 2005-08-17
6
+ version: 0.1.3
7
+ date: 2005-08-24
8
8
  summary: RailStat is a real-time web site statistics package which uses Ruby on Rails web application framework.
9
9
  require_paths:
10
10
  - lib
@@ -30,6 +30,7 @@ platform: ruby
30
30
  authors:
31
31
  - Luben Manolov
32
32
  - Nick Penkov
33
+ - Jeff Casimir
33
34
  files:
34
35
  - templates/db
35
36
  - templates/app