ppc 1.3.0 → 1.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -1
  3. data/LICENSE +334 -17
  4. data/README.md +75 -3
  5. data/lib/ppc.rb +3 -1
  6. data/lib/ppc/api.rb +137 -2
  7. data/lib/ppc/api/baidu.rb +20 -99
  8. data/lib/ppc/api/baidu/account.rb +21 -21
  9. data/lib/ppc/api/baidu/bulk.rb +39 -3
  10. data/lib/ppc/api/baidu/creative.rb +33 -33
  11. data/lib/ppc/api/baidu/group.rb +14 -14
  12. data/lib/ppc/api/baidu/keyword.rb +57 -46
  13. data/lib/ppc/api/baidu/phone_new_creative.rb +51 -0
  14. data/lib/ppc/api/baidu/plan.rb +34 -31
  15. data/lib/ppc/api/baidu/rank.rb +23 -0
  16. data/lib/ppc/api/baidu/report.rb +100 -81
  17. data/lib/ppc/api/qihu.rb +150 -0
  18. data/lib/ppc/api/qihu/account.rb +86 -0
  19. data/lib/ppc/api/qihu/bulk.rb +35 -0
  20. data/lib/ppc/api/qihu/creative.rb +108 -0
  21. data/lib/ppc/api/qihu/group.rb +96 -0
  22. data/lib/ppc/api/qihu/keyword.rb +113 -0
  23. data/lib/ppc/api/qihu/plan.rb +64 -0
  24. data/lib/ppc/api/qihu/rank.rb +25 -0
  25. data/lib/ppc/api/qihu/report.rb +159 -0
  26. data/lib/ppc/api/qihu/sublink.rb +71 -0
  27. data/lib/ppc/api/shenma.rb +64 -0
  28. data/lib/ppc/api/shenma/report.rb +135 -0
  29. data/lib/ppc/api/sm.rb +50 -0
  30. data/lib/ppc/api/sm/account.rb +44 -0
  31. data/lib/ppc/api/sm/bulk.rb +69 -0
  32. data/lib/ppc/api/sm/creative.rb +86 -0
  33. data/lib/ppc/api/sm/group.rb +94 -0
  34. data/lib/ppc/api/sm/keyword.rb +132 -0
  35. data/lib/ppc/api/sm/phone_new_creative.rb +51 -0
  36. data/lib/ppc/api/sm/plan.rb +63 -0
  37. data/lib/ppc/api/sm/report.rb +136 -0
  38. data/lib/ppc/api/sogou.rb +118 -0
  39. data/lib/ppc/api/sogou/account.rb +42 -0
  40. data/lib/ppc/api/sogou/bulk.rb +69 -0
  41. data/lib/ppc/api/sogou/creative.rb +117 -0
  42. data/lib/ppc/api/sogou/group.rb +123 -0
  43. data/lib/ppc/api/sogou/keyword.rb +188 -0
  44. data/lib/ppc/api/sogou/plan.rb +66 -0
  45. data/lib/ppc/api/sogou/report.rb +129 -0
  46. data/lib/ppc/ext.rb +17 -0
  47. data/lib/ppc/operation.rb +50 -36
  48. data/lib/ppc/operation/account.rb +19 -7
  49. data/lib/ppc/operation/creative.rb +7 -7
  50. data/lib/ppc/operation/group.rb +2 -2
  51. data/lib/ppc/operation/keyword.rb +11 -8
  52. data/lib/ppc/operation/report.rb +23 -0
  53. data/ppc.gemspec +14 -4
  54. data/spec/baidu/api_baidu_account_spec.rb +16 -0
  55. data/spec/baidu/api_baidu_creative_spec.rb +73 -0
  56. data/spec/{api_baidu_group_spec.rb → baidu/api_baidu_group_spec.rb} +12 -17
  57. data/spec/baidu/api_baidu_keyword_spec.rb +61 -0
  58. data/spec/baidu/api_baidu_phone_spec.rb +22 -0
  59. data/spec/{api_baidu_plan_spec.rb → baidu/api_baidu_plan_spec.rb} +11 -10
  60. data/spec/baidu/api_baidu_report_spec.rb +44 -0
  61. data/spec/{api_baidu_spec.rb → baidu/api_baidu_spec.rb} +10 -15
  62. data/spec/operation/operation_baidu_report_spec.rb +17 -0
  63. data/spec/operation/operation_baidu_spec.rb +126 -0
  64. data/spec/operation/operation_qihu_report_spec.rb +18 -0
  65. data/spec/operation/operation_qihu_spec.rb +94 -0
  66. data/spec/operation/operation_sm_report_spec.rb +21 -0
  67. data/spec/operation/operation_sogou_report_spec.rb +17 -0
  68. data/spec/operation/operation_sogou_spec.rb +88 -0
  69. data/spec/{operation_spec_helper.rb → operation/operation_spec_helper.rb} +3 -5
  70. data/spec/qihu/api_qihu_account_spec.rb +29 -0
  71. data/spec/qihu/api_qihu_creative_spec.rb +48 -0
  72. data/spec/qihu/api_qihu_group_spec.rb +40 -0
  73. data/spec/qihu/api_qihu_keyword_spec.rb +50 -0
  74. data/spec/qihu/api_qihu_plan_spec.rb +39 -0
  75. data/spec/qihu/api_qihu_report_spec.rb +54 -0
  76. data/spec/qihu/api_qihu_sublink_spec.rb +36 -0
  77. data/spec/sm/api_sm_account_spec.rb +8 -0
  78. data/spec/sm/api_sm_creative_spec.rb +52 -0
  79. data/spec/sm/api_sm_group_spec.rb +75 -0
  80. data/spec/sm/api_sm_keyword_spec.rb +59 -0
  81. data/spec/sm/api_sm_plan_spec.rb +39 -0
  82. data/spec/sm/api_sm_report_spec.rb +30 -0
  83. data/spec/sogou/api_sogou_account_spec.rb +17 -0
  84. data/spec/sogou/api_sogou_creative_spec.rb +51 -0
  85. data/spec/sogou/api_sogou_group_spec.rb +50 -0
  86. data/spec/sogou/api_sogou_keyword_spec.rb +54 -0
  87. data/spec/sogou/api_sogou_plan_spec.rb +43 -0
  88. data/spec/sogou/api_sogou_report_spec.rb +51 -0
  89. data/spec/spec_helper.rb +49 -10
  90. metadata +140 -46
  91. data/lib/ppc/baidu.rb +0 -152
  92. data/lib/ppc/baidu/account.rb +0 -88
  93. data/lib/ppc/baidu/bulk.rb +0 -52
  94. data/lib/ppc/baidu/group.rb +0 -99
  95. data/lib/ppc/baidu/key.rb +0 -38
  96. data/lib/ppc/baidu/plan.rb +0 -85
  97. data/lib/ppc/baidu/report.rb +0 -82
  98. data/spec/api_baidu_account_spec.rb +0 -18
  99. data/spec/api_baidu_creative_spec.rb +0 -71
  100. data/spec/api_baidu_keyword_spec.rb +0 -64
  101. data/spec/api_baidu_report_spec.rb +0 -32
  102. data/spec/baidu_account_spec.rb +0 -32
  103. data/spec/baidu_bulk_spec.rb +0 -21
  104. data/spec/baidu_group_spec.rb +0 -56
  105. data/spec/baidu_plan_spec.rb +0 -129
  106. data/spec/baidu_report_spec.rb +0 -24
  107. data/spec/operation_spec.rb +0 -87
@@ -0,0 +1,30 @@
1
+ describe ::PPC::API::Sm::Report do
2
+ auth = $sm_auth
3
+ date = "20150407"
4
+
5
+ task_id = nil
6
+ it 'can get professional report id' do
7
+ param = { type: 'account', level:'account',range:'account',unit:'day', device:'all', startDate: date, endDate: date}
8
+ response = ::PPC::API::Sm::Report::get_id( auth, param )
9
+ task_id = response[:result]
10
+ expect(task_id).not_to be_nil
11
+ end
12
+
13
+ it 'can get professional report status' do
14
+ response = ::PPC::API::Sm::Report::get_state( auth, task_id )
15
+ status = response[:result]
16
+ expect(status).not_to be_nil
17
+ end
18
+
19
+ fileId = nil
20
+ it 'can get professional report download fileId' do
21
+ response = ::PPC::API::Sm::Report::get_fileId( auth, task_id )
22
+ fileId = response[:result]
23
+ expect(fileId).not_to be_nil
24
+ end
25
+
26
+ it 'can get the file' do
27
+ response = ::PPC::API::Sm::Report::get_file(auth, fileId)
28
+ warn response.force_encoding("GB2312").encode("UTF-8")
29
+ end
30
+ end
@@ -0,0 +1,17 @@
1
+ describe ::PPC::API::Sogou::Account do
2
+ auth = $sogou_auth
3
+
4
+ it 'can get account info' do
5
+ result = ::PPC::API::Sogou::Account::info( auth )
6
+ is_success( result )
7
+ expect(result[:result][:id].to_i).to be > 0
8
+ end
9
+
10
+ it 'can update account' do
11
+ update = {budget:0}
12
+ result = ::PPC::API::Sogou::Account::update( auth, update )
13
+ is_success( result )
14
+ expect(result[:result][:id].to_i).to be > 0
15
+ end
16
+
17
+ end
@@ -0,0 +1,51 @@
1
+ # -*- coding:utf-8 -*-
2
+ describe ::PPC::API::Sogou::Creative do
3
+ '''
4
+ sogou的创意服务在add的时候需要审核因此自动测试不能一次通过,
5
+ 会出现Creative is pending的error.不过手动测试方法没问题了。
6
+ '''
7
+ auth = $sogou_auth
8
+
9
+ # prepare for test param
10
+ ::PPC::API::Sogou.debug_off
11
+ test_group_id = ::PPC::API::Sogou::Group::ids( auth )[:result][0][:group_ids][0]
12
+ test_creative_id = []
13
+ #::PPC::API::Sogou.debug_on
14
+
15
+ it 'can search Creative by group id' do
16
+ response = ::PPC::API::Sogou::Creative::search_by_group_id( auth, test_group_id )
17
+ is_success( response )
18
+ expect(response[:result]).not_to be_nil
19
+ end
20
+
21
+ it 'can add Creative' do
22
+ Creative = { group_id: test_group_id, title: 'testCreative0',
23
+ description1:"this is a test", description2: "this is another test",
24
+ pc_destination:$domain, pc_display:$domain }
25
+ response = ::PPC::API::Sogou::Creative::add( auth, Creative )
26
+ is_success( response )
27
+ expect(response[:result]).not_to be_nil
28
+ test_creative_id << response[:result][0][:id]
29
+ end
30
+
31
+ it 'can get status' do
32
+ response = ::PPC::API::Sogou::Creative::status( auth, test_creative_id)
33
+ is_success(response)
34
+ expect(response[:result]).not_to be_nil
35
+ expect(response[:result][0].keys).to eq [:cpc_grp_id, :title, :description1, :description2, :visit_url, :show_url, :pause, :opt, :id, :status]
36
+ end
37
+
38
+ it 'can update Creative' do
39
+ update = { id: test_creative_id[0], description1: 'sogou_expiediction', pause: true}
40
+ response = ::PPC::API::Sogou::Creative::update( auth, update )
41
+ is_success( response )
42
+ expect(response[:result]).not_to be_nil
43
+ p response
44
+ end
45
+
46
+ it 'can delete Creative' do
47
+ response = ::PPC::API::Sogou::Creative::delete( auth, test_creative_id )
48
+ is_success( response )
49
+ end
50
+
51
+ end
@@ -0,0 +1,50 @@
1
+ describe ::PPC::API::Sogou::Group do
2
+ auth = $sogou_auth
3
+
4
+ test_plan_id = ::PPC::API::Sogou::Plan.ids(auth)[:result][0]
5
+ test_group_id = []
6
+
7
+ it 'can get all group' do
8
+ response = ::PPC::API::Sogou::Group::ids( auth )
9
+ is_success( response )
10
+ expect(response[:result]).not_to be_nil
11
+ end
12
+
13
+ it 'can add group' do
14
+ group = { name: 'test_group', plan_id:test_plan_id, price:500 }
15
+ response = ::PPC::API::Sogou::Group::add( auth, group )
16
+ is_success( response )
17
+ test_group_id << response[:result][0][:id]
18
+ end
19
+
20
+ it 'can update group' do
21
+ group = { id: test_group_id[0], price:600 }
22
+ response = ::PPC::API::Sogou::Group::update( auth, group )
23
+ is_success( response )
24
+ expect(response[:result]).not_to be_nil
25
+ end
26
+
27
+ it 'can search group by group id' do
28
+ response = ::PPC::API::Sogou::Group::get( auth, test_group_id )
29
+ is_success( response )
30
+ expect(response[:result]).not_to be_nil
31
+ end
32
+
33
+ it 'can search group id by plan id' do
34
+ response = ::PPC::API::Sogou::Group::search_id_by_plan_id( auth, test_plan_id )
35
+ is_success( response )
36
+ expect(response[:result]).not_to be_nil
37
+ end
38
+
39
+ it 'search by plan id' do
40
+ response = ::PPC::API::Sogou::Group::search_by_plan_id( auth, test_plan_id )
41
+ is_success( response )
42
+ expect(response[:result]).not_to be_nil
43
+ end
44
+
45
+ it 'can delete group' do
46
+ response = ::PPC::API::Sogou::Group::delete( auth, test_group_id )
47
+ is_success( response )
48
+ end
49
+
50
+ end
@@ -0,0 +1,54 @@
1
+ # -*- coding:utf-8 -*-
2
+ describe ::PPC::API::Sogou::Keyword do
3
+ '''
4
+ sogou的关键词服务在add的时候需要审核因此不能一次通过,
5
+ 会出现keyword is pending的error.不过手动测试方法没问题了。
6
+ '''
7
+ auth = $sogou_auth
8
+
9
+ ::PPC::API::Sogou.debug_off
10
+ test_group_id = ::PPC::API::Sogou::Group::ids( auth )[:result][0][:group_ids][0]
11
+ test_keyword_id = []
12
+ #::PPC::API::Sogou.debug_on
13
+
14
+ it 'can search keyword by group id' do
15
+ response = ::PPC::API::Sogou::Keyword::search_by_group_id( auth, test_group_id )
16
+ is_success( response )
17
+ expect(response[:result]).not_to be_nil
18
+ end
19
+
20
+ it 'can add keyword' do
21
+ keyword = { group_id: test_group_id, keyword: 'testkeyword123', match_type:'exact' }
22
+ response = ::PPC::API::Sogou::Keyword::add( auth, keyword )
23
+ is_success( response )
24
+ expect(response[:result]).not_to be_nil
25
+ test_keyword_id << response[:result][0][:id]
26
+ end
27
+
28
+ it 'can get status' do
29
+ response = ::PPC::API::Sogou::Keyword::status( auth, test_keyword_id )
30
+ is_success(response)
31
+ expect(response[:result][0].keys).to eq [:id,:status]
32
+ expect(response[:result]).not_to be_nil
33
+ end
34
+
35
+ it 'can get quality' do
36
+ response = ::PPC::API::Sogou::Keyword::quality( auth, test_keyword_id)
37
+ is_success(response)
38
+ expect(response[:result][0].keys).to eq [:id,:quality]
39
+ expect(response[:result]).not_to be_nil
40
+ end
41
+
42
+ it 'can update keyword' do
43
+ update = { id: test_keyword_id[0], pause: true}
44
+ response = ::PPC::API::Sogou::Keyword::update( auth, update )
45
+ is_success( response )
46
+ expect(response[:result]).not_to be_nil
47
+ end
48
+
49
+ it 'can delete keyword' do
50
+ response = ::PPC::API::Sogou::Keyword::delete( auth, test_keyword_id )
51
+ is_success( response )
52
+ end
53
+
54
+ end
@@ -0,0 +1,43 @@
1
+ describe ::PPC::API::Sogou::Plan do
2
+ auth = $sogou_auth
3
+
4
+ test_plan_id = []
5
+
6
+ it "can get all plans" do
7
+ response = ::PPC::API::Sogou::Plan::all( auth )
8
+ is_success( response )
9
+ expect(response[:result]).not_to be_nil
10
+ end
11
+
12
+ it "can get all plan id" do
13
+ response = ::PPC::API::Sogou::Plan::ids( auth )
14
+ is_success( response )
15
+ expect(response[:result]).not_to be_nil
16
+ end
17
+
18
+ it "can add plan" do
19
+ test_plan = { name: "test_elong", negative: ["test"] }
20
+ response = ::PPC::API::Sogou::Plan::add( auth, test_plan )
21
+ is_success( response )
22
+ test_plan_id << response[:result][0][:id]
23
+ end
24
+
25
+ it "can get plan by id" do
26
+ response = ::PPC::API::Sogou::Plan::get( auth, test_plan_id )
27
+ is_success( response )
28
+ expect(response[:result]).not_to be_nil
29
+ end
30
+
31
+ it 'can update plan' do
32
+ update = { id: test_plan_id[0], name:"test_plan_update"}
33
+ response = ::PPC::API::Sogou::Plan::update( auth, update )
34
+ is_success( response )
35
+ expect(response[:result]).not_to be_nil
36
+ end
37
+
38
+ it "can delete plan" do
39
+ response = ::PPC::API::Sogou::Plan::delete( auth, test_plan_id )
40
+ is_success( response )
41
+ end
42
+
43
+ end
@@ -0,0 +1,51 @@
1
+ describe ::PPC::API::Sogou::Report do
2
+ auth = $sogou_auth
3
+
4
+ param = {}
5
+ param[:type] = 'keyword'
6
+ param[:fields] = %w(impression click cpc cost ctr)
7
+ param[:endDate] = ( Time.now-2*3600*24).to_s[0..9].split('-').join
8
+ param[:startDate] =( Time.now-7*3600*24).to_s[0..9].split('-').join
9
+
10
+
11
+ test_report_id = []
12
+ it "can get report id" do
13
+ response = ::PPC::API::Sogou::Report.get_id( auth, param )
14
+ is_success( response )
15
+ test_report_id << response[:result]
16
+ end
17
+
18
+ it "can get report state" do
19
+ response = ::PPC::API::Sogou::Report.get_state( auth, test_report_id[0] )
20
+ is_success( response )
21
+ end
22
+
23
+ it "can get report url" do
24
+ response = ::PPC::API::Sogou::Report.get_url( auth, test_report_id[0] )
25
+ is_success( response )
26
+ end
27
+
28
+ it "can download one report" do
29
+ report = ::PPC::API::Sogou::Report.download_report( auth, param )
30
+ end
31
+
32
+ end
33
+
34
+ describe "::PPC::API::Sogou::Report Operation interface " do
35
+ auth = $sogou_auth
36
+
37
+ subject{
38
+ ::PPC::API::Sogou::Report
39
+ }
40
+ # opetation report test
41
+ it 'can get report' do
42
+ endDate = ( Time.now-2*3600*24).to_s[0..9].split('-').join
43
+ startDate =( Time.now-27*3600*24).to_s[0..9].split('-').join
44
+
45
+ param = {startDate:startDate, endDate:endDate}
46
+ subject.query_report( auth, param )
47
+ subject.keyword_report( auth, param )
48
+ subject.creative_report( auth,param )
49
+ end
50
+
51
+ end
data/spec/spec_helper.rb CHANGED
@@ -81,17 +81,56 @@ end
81
81
 
82
82
  require 'ppc'
83
83
 
84
- $baidu_domain = ''
85
- $baidu_username = ''
86
- $baidu_password = ''
87
- $baidu_token = ''
88
- $qihu_username = ''
89
- $qihu_password = ''
90
- $qihu_token = ''
91
- $sogou_username = ''
92
- $sogou_password = ''
93
- $sogou_token = ''
84
+ baidu_username = ''
85
+ baidu_password = ''
86
+ baidu_token = ''
94
87
 
88
+ qihu_username = ''
89
+ qihu_password = ''
90
+ qihu_token = ''
91
+ qihu_api_key = ''
92
+ qihu_api_secret = ''
93
+
94
+ sogou_username = ''
95
+ sogou_password = ''
96
+ sogou_token = ''
97
+
98
+ sm_username = ''
99
+ sm_password = ''
100
+ sm_token = ''
101
+ sm_target = ''
102
+
103
+ $domain = ''
104
+ $baidu_auth = {
105
+ username: baidu_username,
106
+ password: baidu_password,
107
+ token: baidu_token,
108
+ se: 'baidu'
109
+ }
110
+
111
+ $qihu_auth = {
112
+ username: qihu_username,
113
+ password: qihu_password,
114
+ token: qihu_token,
115
+ api_key: qihu_api_key,
116
+ api_secret: qihu_api_secret,
117
+ se: 'qihu'
118
+ }
119
+
120
+ $sogou_auth = {
121
+ username: sogou_username,
122
+ password: sogou_password,
123
+ token: sogou_token,
124
+ se: 'sogou'
125
+ }
126
+
127
+ $sm_auth = {
128
+ username: sm_username,
129
+ password: sm_password,
130
+ token: sm_token,
131
+ target: sm_target,
132
+ se: 'sm'
133
+ }
95
134
  def is_success( result )
96
135
  expect( result[:succ] ).to eq true
97
136
  end
metadata CHANGED
@@ -1,37 +1,63 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ppc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chienli Ma, 刘梦晨, 刘明
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-05 00:00:00.000000000 Z
11
+ date: 2015-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: httparty
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.6'
20
- type: :development
19
+ version: '0.13'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.13.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '0.13'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.13.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: savon
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '3.0'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 3.0.0
43
+ type: :runtime
21
44
  prerelease: false
22
45
  version_requirements: !ruby/object:Gem::Requirement
23
46
  requirements:
24
47
  - - "~>"
25
48
  - !ruby/object:Gem::Version
26
- version: '1.6'
49
+ version: '3.0'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 3.0.0
27
53
  - !ruby/object:Gem::Dependency
28
- name: rake
54
+ name: awesome_print
29
55
  requirement: !ruby/object:Gem::Requirement
30
56
  requirements:
31
57
  - - ">="
32
58
  - !ruby/object:Gem::Version
33
59
  version: '0'
34
- type: :development
60
+ type: :runtime
35
61
  prerelease: false
36
62
  version_requirements: !ruby/object:Gem::Requirement
37
63
  requirements:
@@ -57,40 +83,87 @@ files:
57
83
  - lib/ppc/api/baidu/creative.rb
58
84
  - lib/ppc/api/baidu/group.rb
59
85
  - lib/ppc/api/baidu/keyword.rb
86
+ - lib/ppc/api/baidu/phone_new_creative.rb
60
87
  - lib/ppc/api/baidu/plan.rb
88
+ - lib/ppc/api/baidu/rank.rb
61
89
  - lib/ppc/api/baidu/report.rb
62
- - lib/ppc/baidu.rb
63
- - lib/ppc/baidu/account.rb
64
- - lib/ppc/baidu/bulk.rb
65
- - lib/ppc/baidu/group.rb
66
- - lib/ppc/baidu/key.rb
67
- - lib/ppc/baidu/plan.rb
68
- - lib/ppc/baidu/report.rb
90
+ - lib/ppc/api/qihu.rb
91
+ - lib/ppc/api/qihu/account.rb
92
+ - lib/ppc/api/qihu/bulk.rb
93
+ - lib/ppc/api/qihu/creative.rb
94
+ - lib/ppc/api/qihu/group.rb
95
+ - lib/ppc/api/qihu/keyword.rb
96
+ - lib/ppc/api/qihu/plan.rb
97
+ - lib/ppc/api/qihu/rank.rb
98
+ - lib/ppc/api/qihu/report.rb
99
+ - lib/ppc/api/qihu/sublink.rb
100
+ - lib/ppc/api/shenma.rb
101
+ - lib/ppc/api/shenma/report.rb
102
+ - lib/ppc/api/sm.rb
103
+ - lib/ppc/api/sm/account.rb
104
+ - lib/ppc/api/sm/bulk.rb
105
+ - lib/ppc/api/sm/creative.rb
106
+ - lib/ppc/api/sm/group.rb
107
+ - lib/ppc/api/sm/keyword.rb
108
+ - lib/ppc/api/sm/phone_new_creative.rb
109
+ - lib/ppc/api/sm/plan.rb
110
+ - lib/ppc/api/sm/report.rb
111
+ - lib/ppc/api/sogou.rb
112
+ - lib/ppc/api/sogou/account.rb
113
+ - lib/ppc/api/sogou/bulk.rb
114
+ - lib/ppc/api/sogou/creative.rb
115
+ - lib/ppc/api/sogou/group.rb
116
+ - lib/ppc/api/sogou/keyword.rb
117
+ - lib/ppc/api/sogou/plan.rb
118
+ - lib/ppc/api/sogou/report.rb
119
+ - lib/ppc/ext.rb
69
120
  - lib/ppc/operation.rb
70
121
  - lib/ppc/operation/account.rb
71
122
  - lib/ppc/operation/creative.rb
72
123
  - lib/ppc/operation/group.rb
73
124
  - lib/ppc/operation/keyword.rb
74
125
  - lib/ppc/operation/plan.rb
126
+ - lib/ppc/operation/report.rb
75
127
  - ppc.gemspec
76
- - spec/api_baidu_account_spec.rb
77
- - spec/api_baidu_creative_spec.rb
78
- - spec/api_baidu_group_spec.rb
79
- - spec/api_baidu_keyword_spec.rb
80
- - spec/api_baidu_plan_spec.rb
81
- - spec/api_baidu_report_spec.rb
82
- - spec/api_baidu_spec.rb
83
- - spec/baidu_account_spec.rb
84
- - spec/baidu_bulk_spec.rb
85
- - spec/baidu_group_spec.rb
86
- - spec/baidu_plan_spec.rb
87
- - spec/baidu_report_spec.rb
88
- - spec/operation_spec.rb
89
- - spec/operation_spec_helper.rb
128
+ - spec/baidu/api_baidu_account_spec.rb
129
+ - spec/baidu/api_baidu_creative_spec.rb
130
+ - spec/baidu/api_baidu_group_spec.rb
131
+ - spec/baidu/api_baidu_keyword_spec.rb
132
+ - spec/baidu/api_baidu_phone_spec.rb
133
+ - spec/baidu/api_baidu_plan_spec.rb
134
+ - spec/baidu/api_baidu_report_spec.rb
135
+ - spec/baidu/api_baidu_spec.rb
136
+ - spec/operation/operation_baidu_report_spec.rb
137
+ - spec/operation/operation_baidu_spec.rb
138
+ - spec/operation/operation_qihu_report_spec.rb
139
+ - spec/operation/operation_qihu_spec.rb
140
+ - spec/operation/operation_sm_report_spec.rb
141
+ - spec/operation/operation_sogou_report_spec.rb
142
+ - spec/operation/operation_sogou_spec.rb
143
+ - spec/operation/operation_spec_helper.rb
144
+ - spec/qihu/api_qihu_account_spec.rb
145
+ - spec/qihu/api_qihu_creative_spec.rb
146
+ - spec/qihu/api_qihu_group_spec.rb
147
+ - spec/qihu/api_qihu_keyword_spec.rb
148
+ - spec/qihu/api_qihu_plan_spec.rb
149
+ - spec/qihu/api_qihu_report_spec.rb
150
+ - spec/qihu/api_qihu_sublink_spec.rb
151
+ - spec/sm/api_sm_account_spec.rb
152
+ - spec/sm/api_sm_creative_spec.rb
153
+ - spec/sm/api_sm_group_spec.rb
154
+ - spec/sm/api_sm_keyword_spec.rb
155
+ - spec/sm/api_sm_plan_spec.rb
156
+ - spec/sm/api_sm_report_spec.rb
157
+ - spec/sogou/api_sogou_account_spec.rb
158
+ - spec/sogou/api_sogou_creative_spec.rb
159
+ - spec/sogou/api_sogou_group_spec.rb
160
+ - spec/sogou/api_sogou_keyword_spec.rb
161
+ - spec/sogou/api_sogou_plan_spec.rb
162
+ - spec/sogou/api_sogou_report_spec.rb
90
163
  - spec/spec_helper.rb
91
- homepage: http://github.com/seoaqua/ppc
164
+ homepage: https://github.com/warriors-of-the-night/ppc
92
165
  licenses:
93
- - MIT
166
+ - GNU
94
167
  metadata: {}
95
168
  post_install_message:
96
169
  rdoc_options: []
@@ -108,23 +181,44 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
181
  version: '0'
109
182
  requirements: []
110
183
  rubyforge_project:
111
- rubygems_version: 2.4.4
184
+ rubygems_version: 2.4.8
112
185
  signing_key:
113
186
  specification_version: 4
114
187
  summary: ppc api for baidu qihu sogou
115
188
  test_files:
116
- - spec/api_baidu_account_spec.rb
117
- - spec/api_baidu_creative_spec.rb
118
- - spec/api_baidu_group_spec.rb
119
- - spec/api_baidu_keyword_spec.rb
120
- - spec/api_baidu_plan_spec.rb
121
- - spec/api_baidu_report_spec.rb
122
- - spec/api_baidu_spec.rb
123
- - spec/baidu_account_spec.rb
124
- - spec/baidu_bulk_spec.rb
125
- - spec/baidu_group_spec.rb
126
- - spec/baidu_plan_spec.rb
127
- - spec/baidu_report_spec.rb
128
- - spec/operation_spec.rb
129
- - spec/operation_spec_helper.rb
189
+ - spec/baidu/api_baidu_account_spec.rb
190
+ - spec/baidu/api_baidu_creative_spec.rb
191
+ - spec/baidu/api_baidu_group_spec.rb
192
+ - spec/baidu/api_baidu_keyword_spec.rb
193
+ - spec/baidu/api_baidu_phone_spec.rb
194
+ - spec/baidu/api_baidu_plan_spec.rb
195
+ - spec/baidu/api_baidu_report_spec.rb
196
+ - spec/baidu/api_baidu_spec.rb
197
+ - spec/operation/operation_baidu_report_spec.rb
198
+ - spec/operation/operation_baidu_spec.rb
199
+ - spec/operation/operation_qihu_report_spec.rb
200
+ - spec/operation/operation_qihu_spec.rb
201
+ - spec/operation/operation_sm_report_spec.rb
202
+ - spec/operation/operation_sogou_report_spec.rb
203
+ - spec/operation/operation_sogou_spec.rb
204
+ - spec/operation/operation_spec_helper.rb
205
+ - spec/qihu/api_qihu_account_spec.rb
206
+ - spec/qihu/api_qihu_creative_spec.rb
207
+ - spec/qihu/api_qihu_group_spec.rb
208
+ - spec/qihu/api_qihu_keyword_spec.rb
209
+ - spec/qihu/api_qihu_plan_spec.rb
210
+ - spec/qihu/api_qihu_report_spec.rb
211
+ - spec/qihu/api_qihu_sublink_spec.rb
212
+ - spec/sm/api_sm_account_spec.rb
213
+ - spec/sm/api_sm_creative_spec.rb
214
+ - spec/sm/api_sm_group_spec.rb
215
+ - spec/sm/api_sm_keyword_spec.rb
216
+ - spec/sm/api_sm_plan_spec.rb
217
+ - spec/sm/api_sm_report_spec.rb
218
+ - spec/sogou/api_sogou_account_spec.rb
219
+ - spec/sogou/api_sogou_creative_spec.rb
220
+ - spec/sogou/api_sogou_group_spec.rb
221
+ - spec/sogou/api_sogou_keyword_spec.rb
222
+ - spec/sogou/api_sogou_plan_spec.rb
223
+ - spec/sogou/api_sogou_report_spec.rb
130
224
  - spec/spec_helper.rb