Class: WebAnalyticsDiscovery::YandexMetrika
- Inherits:
-
Object
- Object
- WebAnalyticsDiscovery::YandexMetrika
show all
- Includes:
- GrabberUtils
- Defined in:
- lib/web_analytics_discovery/grabber/yandexmetrika.rb
Constant Summary
GrabberUtils::AVG_DAYS_IN_MONTH, GrabberUtils::CACHE_DIR, GrabberUtils::USER_AGENT
Instance Method Summary
collapse
#download, #download_file, #mangle_url
Instance Method Details
#do_list(list) ⇒ Object
44
45
46
47
48
49
50
51
52
|
# File 'lib/web_analytics_discovery/grabber/yandexmetrika.rb', line 44
def do_list(list)
els = list.split(/,/).map { |x| x.to_i }
els.shift
sum = els.inject { |a, b| a + b }
return sum / els.size
end
|
#find_id ⇒ Object
15
16
17
18
19
20
21
22
|
# File 'lib/web_analytics_discovery/grabber/yandexmetrika.rb', line 15
def find_id
case @page
when /yaCounter(\d+) = new Ya\.Metrika\(\{id:(\d+)/
$1
else
nil
end
end
|
#run(url) ⇒ Object
10
11
12
13
|
# File 'lib/web_analytics_discovery/grabber/yandexmetrika.rb', line 10
def run(url)
@page = download(url)
run_id(find_id)
end
|
#run_id(id) ⇒ Object
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/web_analytics_discovery/grabber/yandexmetrika.rb', line 24
def run_id(id)
return nil unless id
r = {:id => id}
json = download("http://bs.yandex.ru/informer/#{id}/json")
r[:pv_day] = do_list($1) if json =~ /pageviews:\[([0-9,]+)\]/
r[:visits_day] = do_list($1) if json =~ /visits:\[([0-9,]+)\]/
r[:visitors_day] = do_list($1) if json =~ /uniques:\[([0-9,]+)\]/
r[:pv_week] = r[:pv_day] * 7 if r[:pv_day]
r[:pv_mon] = (r[:pv_day] * AVG_DAYS_IN_MONTH).to_i if r[:pv_day]
return r
end
|