adops_report_scrapper 0.1.53 → 0.1.54

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 53dcb8d2f6564cdbe088c2328fbc083fd9569943
4
- data.tar.gz: ad1d6f7925db7a8c1bcec00125d1fb982d802da8
3
+ metadata.gz: 62e2e15976fbf0aa7daa0441d9de058516ef430d
4
+ data.tar.gz: 825e99eaa51a577e9e37e0e7560c832330bbedb3
5
5
  SHA512:
6
- metadata.gz: 09ebadfdde3371c20e7f6d2b7af9a3c399f3d5cf77016fd890a12d406602c16ca765a8d9e03471b1dbbe4b63f8d6c35ac12cc36b20f457d77d6085f5d463ea99
7
- data.tar.gz: 129d3e422282c08c39c7854619372228e281f85514a0e418b43cf4245e0704ef6020b26e583dd763932250c8390cd776cfa8dca9e65d95bba20de4310148311c
6
+ metadata.gz: 8b57d8303592a99ed2ab8209aaa8a67b444972535962b1e11d04d17f74c2c52d4210b6f3ef4a4046927b1391fc19a577d84bee06b498761618a6595c25f9d947
7
+ data.tar.gz: 5053cc3043db4986253bc622235ae25efa042685f3fffd4a0ad976fb467a76f6ff149787ccd669c8a4650ba352d4cd9448fcfac2f04ca570fcb9be109056b021
data/CHANGELOG CHANGED
@@ -1,5 +1,8 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.1.54
4
+ implement brightcom
5
+
3
6
  ## 0.1.53
4
7
  implement positivemobile
5
8
 
data/Rakefile CHANGED
@@ -171,6 +171,11 @@ task :positivemobile do
171
171
  save_as_csv :positivemobile, :positivemobile
172
172
  end
173
173
 
174
+ desc 'Collect brightcom data'
175
+ task :brightcom do
176
+ save_as_csv :brightcom, :brightcom
177
+ end
178
+
174
179
  def date
175
180
  @date ||= ENV['date'].nil? ? Date.today - 1 : Date.today - ENV['date'].to_i
176
181
  end
@@ -45,3 +45,4 @@ require 'adops_report_scrapper/rubicon_client'
45
45
  require 'adops_report_scrapper/undertone_client'
46
46
  require 'adops_report_scrapper/imonomy_client'
47
47
  require 'adops_report_scrapper/positivemobile_client'
48
+ require 'adops_report_scrapper/brightcom_client'
@@ -0,0 +1,52 @@
1
+ require 'date'
2
+ require_relative 'base_client'
3
+
4
+ class AdopsReportScrapper::BrightcomClient < AdopsReportScrapper::BaseClient
5
+ private
6
+
7
+ def login
8
+ @client.visit 'https://compass.brightcom.com/'
9
+ @client.fill_in 'Username', :with => @login
10
+ @client.fill_in 'Password', :with => @secret
11
+ @client.click_button 'Login'
12
+ sleep 15
13
+ begin
14
+ @client.find :xpath, '//*[text()="Reports "]'
15
+ rescue Exception => e
16
+ raise e, 'Brightcom login error'
17
+ end
18
+ end
19
+
20
+ def scrap
21
+ request_report
22
+ extract_data_from_report
23
+ end
24
+
25
+ def request_report
26
+ @client.visit 'https://compass.brightcom.com/onetag/reportsext/display'
27
+ sleep 5
28
+
29
+ group_by_dest_elem = @client.find(:css, '#group_by_dest')
30
+ @client.find(:xpath, '//div[text()="Tags" and @data-order="1"]').drag_to(group_by_dest_elem)
31
+ @client.find(:xpath, '//div[text()="Country" and @data-order="2"]').drag_to(group_by_dest_elem)
32
+
33
+ metrics_source_elem = @client.find(:css, '#metrics_source')
34
+ metrics_dest_elem = @client.find(:css, '#metrics_dest')
35
+ @client.find(:xpath, '//div[text()="Received IMPS" and @data-order="0"]').drag_to(metrics_dest_elem)
36
+ @client.find(:xpath, '//div[text()="Clicks" and @data-order="3"]').drag_to(metrics_dest_elem)
37
+ @client.find(:xpath, '//div[text()="Conversion Rate" and @data-order="6"]').drag_to(metrics_source_elem)
38
+ @client.find(:xpath, '//div[text()="Revenue eCPM" and @data-order="8"]').drag_to(metrics_source_elem)
39
+
40
+ @client.click_button 'Run Report'
41
+ sleep 15
42
+ end
43
+
44
+ def extract_data_from_report
45
+ rows = @client.find_all(:xpath, '//table[@role="grid"]/tbody/tr')
46
+ rows = rows.to_a
47
+ header = @client.find :xpath, '//table[@role="grid"]/thead/tr'
48
+ n_header = header.find_css('td,th').map { |td| td.visible_text }
49
+ @data = [n_header]
50
+ @data += rows.map { |tr| tr.find_css('td,th').map { |td| td.visible_text } }
51
+ end
52
+ end
@@ -20,8 +20,6 @@ class AdopsReportScrapper::PositivemobileClient < AdopsReportScrapper::BaseClien
20
20
  rescue Exception => e
21
21
  raise e, 'Positivemobile login error'
22
22
  end
23
-
24
-
25
23
  cookies = @client.driver.cookies
26
24
  @client = HTTPClient.new
27
25
  @client.cookie_manager.cookies = cookies.values.map do |cookie|
@@ -39,9 +37,9 @@ class AdopsReportScrapper::PositivemobileClient < AdopsReportScrapper::BaseClien
39
37
  date_str = @date.strftime('%Y-%m-%d')
40
38
 
41
39
  header = {
42
- Accept: 'Accept:application/json, text/plain, */*',
40
+ Accept: 'application/json, text/plain, */*',
43
41
  Origin: 'https://rapidv.positivemobile.com',
44
- Referer: ':https//rapidv.positivemobile.com/reports',
42
+ Referer: 'https//rapidv.positivemobile.com/reports',
45
43
  'User-Agent': 'Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1',
46
44
  'Content-Type': 'application/json',
47
45
  }
@@ -1,3 +1,3 @@
1
1
  module AdopsReportScrapper
2
- VERSION = "0.1.53"
2
+ VERSION = "0.1.54"
3
3
  end
data/secret.sample.yml CHANGED
@@ -114,3 +114,6 @@ imonomy:
114
114
  positivemobile:
115
115
  login: ------
116
116
  secret: ------
117
+ brightcom:
118
+ login: ------
119
+ secret: ------
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adops_report_scrapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.53
4
+ version: 0.1.54
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stayman Hou
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-02-07 00:00:00.000000000 Z
11
+ date: 2017-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient
@@ -226,6 +226,7 @@ files:
226
226
  - lib/adops_report_scrapper/adtomation_client.rb
227
227
  - lib/adops_report_scrapper/adx_client.rb
228
228
  - lib/adops_report_scrapper/base_client.rb
229
+ - lib/adops_report_scrapper/brightcom_client.rb
229
230
  - lib/adops_report_scrapper/brightroll_client.rb
230
231
  - lib/adops_report_scrapper/browsi_client.rb
231
232
  - lib/adops_report_scrapper/contentad_client.rb