adops_report_scrapper 0.1.19 → 0.1.20

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 040bb4999a389ac0c4062bab0f3ea24ba1c4b7ee
4
- data.tar.gz: abac49b6458516b4ae88288f2d25aa109b00274f
3
+ metadata.gz: 54ac8cdf2da487d3e2724718e72c3d27ca1139ce
4
+ data.tar.gz: d699316c998e1441290026fc8e689a67f5f16b64
5
5
  SHA512:
6
- metadata.gz: 462a18889cee5235262fc44abb68fa2872eaf082b2b1f525d94994ade3c0f5041cb808ae97593c7d4011a8062e6e800c7bc2edc23a65b658544ea1dc6d1cf562
7
- data.tar.gz: e4e03bf4f83411837ef3d81e948a4f34c1f3a02167685d21502d09aeed701f7631d131f7eb1c34945ee52d71d0ccbf1be9ce9d6308f66ccb70e1065a024fa466
6
+ metadata.gz: 07190bedabc4eced4195404044b7e40d6795e58f9948ef9df8156995fce278367dfdae3e20aa29f514630ddb24cfe0e8a07614ddcfc5d9cd608e36ca9769aae2
7
+ data.tar.gz: f539866ab7a944d64d6ddde8406f3da7825e4462dcdf0ef32bed1e88d645b6a4840a9d8990cffe0871170e93012c73d5a71b50a042042afd38ed1f102bbba53c
data/CHANGELOG ADDED
@@ -0,0 +1,7 @@
1
+ # CHANGELOG
2
+
3
+ ## 0.1.20
4
+ deprecate triplelift
5
+ deprecate adforge
6
+ implement rhythmone
7
+ implement adtomation
data/Rakefile CHANGED
@@ -7,7 +7,7 @@ require 'adops_report_scrapper'
7
7
  require 'byebug'
8
8
 
9
9
  desc 'Collect all data'
10
- task :all => [:openx, :tremor, :brightroll, :yellowhammer, :adaptv, :fourninefive, :adx, :revcontent, :gcs, :browsi, :netseer, :sonobi, :nativo, :adsupply, :marfeel, :adsense, :criteo, :triplelift, :conversant, :liveintent, :adiply, :contentad, :facebookaudience, :adtechus] do # openx is the most unstable one, run it first
10
+ task :all => [:openx, :tremor, :brightroll, :yellowhammer, :adaptv, :fourninefive, :adx, :revcontent, :gcs, :browsi, :netseer, :sonobi, :nativo, :adsupply, :marfeel, :adsense, :criteo, :triplelift, :conversant, :liveintent, :adiply, :contentad, :facebookaudience, :adtechus, :adtomation, :rhythmone] do # openx is the most unstable one, run it first
11
11
  puts '========== You are all set'
12
12
  end
13
13
 
@@ -136,6 +136,16 @@ task :divisiond do
136
136
  save_as_csv :divisiond, :zedo
137
137
  end
138
138
 
139
+ desc 'Collect adtomation data'
140
+ task :adtomation do
141
+ save_as_csv :adtomation, :adtomation
142
+ end
143
+
144
+ desc 'Collect rhythmone data'
145
+ task :rhythmone do
146
+ save_as_csv :rhythmone, :rhythmone
147
+ end
148
+
139
149
  def date
140
150
  @date ||= ENV['date'].nil? ? Date.today - 1 : Date.today - ENV['date'].to_i
141
151
  end
@@ -22,7 +22,10 @@ class AdopsReportScrapper::AdforgeClient < AdopsReportScrapper::BaseClient
22
22
  end
23
23
 
24
24
  def request_report
25
- @client.find(:xpath, '//option[text()="Yesterday"]').select_option
25
+ @client.within_frame @client.find(:tag, :iframe) do
26
+ @client.find(:xpath, '//option[text()="Yesterday"]').select_option
27
+ @client.click_button 'Submit'
28
+ end
26
29
  sleep 5
27
30
  end
28
31
 
@@ -0,0 +1,50 @@
1
+ require 'date'
2
+ require_relative 'base_client'
3
+
4
+ class AdopsReportScrapper::AdtomationClient < AdopsReportScrapper::BaseClient
5
+ private
6
+
7
+ def login
8
+ @client.visit 'http://console.adtomation.com/'
9
+ @client.fill_in 'Username', :with => @login
10
+ @client.fill_in 'Password', :with => @secret
11
+ @client.click_button 'Sign In'
12
+
13
+ begin
14
+ @client.find :xpath, '//*[text()="Reporting"]'
15
+ rescue Exception => e
16
+ raise e, 'Adtomation 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.click_link 'Your Reports'
27
+ @client.find(:xpath, '//*[../../../../../td[text()="report created by adops report scrapper"] and contains(text(),"Run")]').click
28
+ sleep 5
29
+ wait_for_loading
30
+ end
31
+
32
+ def extract_data_from_report
33
+ rows = @client.find_all :xpath, '//table/*/tr'
34
+ rows = rows.to_a
35
+ rows.pop
36
+ @data = rows.map { |tr| tr.find_css('td,th').map { |td| td.visible_text } }
37
+ end
38
+
39
+ def wait_for_loading
40
+ 30.times do |_i| # wait 5 min
41
+ begin
42
+ @client.find(:xpath, '//*[text()="Loading..."]')
43
+ rescue Exception => e
44
+ break
45
+ end
46
+ sleep 10
47
+ end
48
+ sleep 2
49
+ end
50
+ end
@@ -0,0 +1,55 @@
1
+ require 'date'
2
+ require_relative 'base_client'
3
+
4
+ class AdopsReportScrapper::RhythmoneClient < AdopsReportScrapper::BaseClient
5
+ private
6
+
7
+ def login
8
+ @client.visit 'https://portal.rhythmone.com/login'
9
+ sleep 1
10
+ @client.fill_in 'email', :with => @login
11
+ @client.fill_in 'password', :with => @secret
12
+ @client.click_button 'Sign in'
13
+
14
+ begin
15
+ @client.find :xpath, '//*[contains(text(),"REPORTING")]'
16
+ rescue Exception => e
17
+ raise e, 'Rhythmone login error'
18
+ end
19
+ end
20
+
21
+ def scrap
22
+ request_report
23
+ extract_data_from_report
24
+ end
25
+
26
+ def request_report
27
+ @client.find(:xpath, '//*[contains(text(),"REPORTING")]').click
28
+ wait_for_loading
29
+ @client.find(:xpath, '//option[contains(text(),"Yesterday")]').select_option
30
+ sleep 1
31
+ @client.find(:xpath, '//select[@ng-model="filter.group1"]').find(:xpath, 'option[contains(text(),"Placement")]').select_option
32
+ wait_for_loading
33
+ @client.click_button 'Generate report'
34
+ sleep 1
35
+ wait_for_loading
36
+ end
37
+
38
+ def extract_data_from_report
39
+ rows = @client.find_all :xpath, '//table/*/tr'
40
+ rows = rows.to_a
41
+ @data = rows.map { |tr| tr.find_css('td,th').map { |td| td.visible_text } }
42
+ end
43
+
44
+ def wait_for_loading
45
+ 30.times do |_i| # wait 5 min
46
+ begin
47
+ @client.find(:xpath, '//overlay-spinner/div')
48
+ rescue Exception => e
49
+ break
50
+ end
51
+ sleep 10
52
+ end
53
+ sleep 2
54
+ end
55
+ end
@@ -1,3 +1,3 @@
1
1
  module AdopsReportScrapper
2
- VERSION = "0.1.19"
2
+ VERSION = "0.1.20"
3
3
  end
@@ -14,7 +14,7 @@ module AdopsReportScrapper
14
14
  end
15
15
 
16
16
  require 'adops_report_scrapper/adaptv_client'
17
- require 'adops_report_scrapper/adforge_client'
17
+ # require 'adops_report_scrapper/adforge_client'
18
18
  require 'adops_report_scrapper/adiply_client'
19
19
  require 'adops_report_scrapper/adsense_client'
20
20
  require 'adops_report_scrapper/adsupply_client'
@@ -35,6 +35,8 @@ require 'adops_report_scrapper/revcontent_client'
35
35
  require 'adops_report_scrapper/sonobi_client'
36
36
  require 'adops_report_scrapper/springserve_client'
37
37
  require 'adops_report_scrapper/tremor_client'
38
- require 'adops_report_scrapper/triplelift_client'
38
+ # require 'adops_report_scrapper/triplelift_client'
39
39
  require 'adops_report_scrapper/adtechus_client'
40
40
  require 'adops_report_scrapper/zedo_client'
41
+ require 'adops_report_scrapper/adtomation_client'
42
+ require 'adops_report_scrapper/rhythmone_client'
data/secret.sample.yml CHANGED
@@ -87,3 +87,9 @@ divisiond:
87
87
  secret: ------
88
88
  options:
89
89
  network_id: ------
90
+ adtomation:
91
+ login: ------
92
+ secret: ------
93
+ rhythmone:
94
+ login: ------
95
+ 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.19
4
+ version: 0.1.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stayman Hou
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-10-06 00:00:00.000000000 Z
11
+ date: 2016-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient
@@ -207,6 +207,7 @@ files:
207
207
  - ".gitignore"
208
208
  - ".rspec"
209
209
  - ".travis.yml"
210
+ - CHANGELOG
210
211
  - CODE_OF_CONDUCT.md
211
212
  - Gemfile
212
213
  - LICENSE.txt
@@ -222,6 +223,7 @@ files:
222
223
  - lib/adops_report_scrapper/adsense_client.rb
223
224
  - lib/adops_report_scrapper/adsupply_client.rb
224
225
  - lib/adops_report_scrapper/adtechus_client.rb
226
+ - lib/adops_report_scrapper/adtomation_client.rb
225
227
  - lib/adops_report_scrapper/adx_client.rb
226
228
  - lib/adops_report_scrapper/base_client.rb
227
229
  - lib/adops_report_scrapper/brightroll_client.rb
@@ -237,6 +239,7 @@ files:
237
239
  - lib/adops_report_scrapper/netseer_client.rb
238
240
  - lib/adops_report_scrapper/openx_client.rb
239
241
  - lib/adops_report_scrapper/revcontent_client.rb
242
+ - lib/adops_report_scrapper/rhythmone_client.rb
240
243
  - lib/adops_report_scrapper/sonobi_client.rb
241
244
  - lib/adops_report_scrapper/springserve_client.rb
242
245
  - lib/adops_report_scrapper/tremor_client.rb