baidu-tuiguang 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/baidu/tuiguang.rb +43 -16
- data/lib/baidu/tuiguang/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8f7cfd9e817799bddadf9fc3a85c0f777e091b5e
|
4
|
+
data.tar.gz: dfcb1d19776ae3245cdd277c26b2d4b2a08bde59
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 828310e8a8303e2a4ef6f63fb68218939dc7844221367020912e63a0a30fecef30d5bb5e7ad7addcbf6308daaebc112363122494fd100245f6382416e5bb9f17
|
7
|
+
data.tar.gz: a38160ed804790fce2e22f6414fa9138d1d1ab4741f10ac9564f0914032cf7ecd6cb760f595a53b3a5cd516afbb73990cae16d7e80dbc386f50967496daa3ce5
|
data/lib/baidu/tuiguang.rb
CHANGED
@@ -9,17 +9,22 @@ require 'date'
|
|
9
9
|
module Baidu
|
10
10
|
module Tuiguang
|
11
11
|
class Action
|
12
|
-
attr_reader :
|
13
|
-
attr_reader :
|
14
|
-
attr_reader :
|
12
|
+
attr_reader :url
|
13
|
+
attr_reader :params
|
14
|
+
attr_reader :res
|
15
15
|
|
16
16
|
def initialize(cookies)
|
17
17
|
@cookies = cookies
|
18
18
|
end
|
19
19
|
|
20
|
+
def basic_info
|
21
|
+
data = request("path": 'GET/authInfo', "params": {})
|
22
|
+
{'username' => data['username']}
|
23
|
+
end
|
24
|
+
|
20
25
|
def plans(page = 1, page_size = 20)
|
21
26
|
today = Time.now.to_date
|
22
|
-
data = request(path: 'vega/GET/mtllist/plan', params: {"fields": ["planid", "pausestat", "planname", "shows", "clks", "paysum", "trans", "avgprice", "plandynamicideastat", "acctdynamicideastat", "mPriceFactor", "planstat", "remarketingstat", "deviceprefer", "wregion", "qrstat1", "phonetrans", "allipblackcnt", "clkrate", "wbudget", "plancyc", "showprob", "allnegativecnt", "showpay", "adtype", "acctdynamictagsublinkstat", "acctdynamictitlestat", "acctdynamichotredirectstat", "plandynamictagsublinkstat", "plandynamictitlestat", "plandynamichotredirectstat", "plandynamictitlelist", "plandynamictitleabstract", "acctdynamictitlelist", "acctdynamictitleabstract", "acctscenarizedstatus", "planscenarizedphrasestatus", "atstatus", "atbid", "atbudget", "bidprefer", "pcpricefactor", "inpeople", "remarketingPauseStat", "robotAPlanState"], "levelCond": {"userid":
|
27
|
+
data = request(path: 'vega/GET/mtllist/plan', params: {"fields": ["planid", "pausestat", "planname", "shows", "clks", "paysum", "trans", "avgprice", "plandynamicideastat", "acctdynamicideastat", "mPriceFactor", "planstat", "remarketingstat", "deviceprefer", "wregion", "qrstat1", "phonetrans", "allipblackcnt", "clkrate", "wbudget", "plancyc", "showprob", "allnegativecnt", "showpay", "adtype", "acctdynamictagsublinkstat", "acctdynamictitlestat", "acctdynamichotredirectstat", "plandynamictagsublinkstat", "plandynamictitlestat", "plandynamichotredirectstat", "plandynamictitlelist", "plandynamictitleabstract", "acctdynamictitlelist", "acctdynamictitleabstract", "acctscenarizedstatus", "planscenarizedphrasestatus", "atstatus", "atbid", "atbudget", "bidprefer", "pcpricefactor", "inpeople", "remarketingPauseStat", "robotAPlanState"], "levelCond": {"userid": cookies_params['__cas__id__3']}, "pageNo": page, "pageSize": page_size, "startTime": today, "endTime": today})
|
23
28
|
result = {'data' => [], 'count' => data['totalCount']}
|
24
29
|
data['listData'].each do |item|
|
25
30
|
result['data'] << {
|
@@ -91,23 +96,39 @@ module Baidu
|
|
91
96
|
end
|
92
97
|
|
93
98
|
def keyword_pause(keyword_id)
|
94
|
-
|
99
|
+
keyword_pause_and_enable(keyword_id)
|
95
100
|
end
|
96
101
|
|
97
102
|
def keyword_enable(keyword_id)
|
98
|
-
|
103
|
+
keyword_pause_and_enable(keyword_id, false)
|
104
|
+
end
|
105
|
+
|
106
|
+
def keywords_pause(keyword_ids = [])
|
107
|
+
keywords_pause_and_enable(keyword_ids)
|
108
|
+
end
|
109
|
+
|
110
|
+
def keywords_enable(keyword_ids = [])
|
111
|
+
keywords_pause_and_enable(keyword_ids, false)
|
112
|
+
end
|
113
|
+
|
114
|
+
def keyword_pause_and_enable(keyword_id, pause = true)
|
115
|
+
request("path": 'vega/MOD/keyword', "params": {"winfoid": [keyword_id.to_i], "items": {"pausestat": pause ? 1 : 0}})
|
116
|
+
end
|
117
|
+
|
118
|
+
def keywords_pause_and_enable(keyword_ids = [], pause = true)
|
119
|
+
request("path": 'vega/MOD/adkeyword', "params": {"checkAll": false, "mtlCond": {"levelCond": {"userid": cookies_params['__cas__id__3']}}, "mtlIds": keyword_ids.map {|keyword_id| keyword_id.to_s}, "items": {"pausestat": pause}})
|
99
120
|
end
|
100
121
|
|
101
122
|
def request(params = {})
|
102
|
-
@req_params = params
|
103
123
|
params.merge!(
|
104
124
|
"userid": cookies_params['__cas__id__3'],
|
105
|
-
"token": cookies_params['__cas__st__3']
|
106
|
-
"reqid": "",
|
107
|
-
"eventId": ""
|
125
|
+
"token": cookies_params['__cas__st__3']
|
108
126
|
)
|
127
|
+
@params = params
|
109
128
|
params[:"params"] = params[:"params"].to_json
|
110
|
-
url = URI(
|
129
|
+
url = URI('http://fengchao.baidu.com/nirvana/request.ajax')
|
130
|
+
url.query = URI.encode_www_form(path: params[:"path"])
|
131
|
+
@url = url.to_s
|
111
132
|
http = Net::HTTP.new(url.host, url.port)
|
112
133
|
request = Net::HTTP::Post.new(url)
|
113
134
|
request["accept"] = '*/*'
|
@@ -125,13 +146,19 @@ module Baidu
|
|
125
146
|
request.body = URI.encode_www_form(params)
|
126
147
|
response = http.request(request)
|
127
148
|
raise RequestError, "HTTP Response: #{response.code} #{response.message}" unless response.is_a?(Net::HTTPSuccess)
|
128
|
-
@
|
149
|
+
@res = response.read_body
|
129
150
|
if response['Content-Encoding'] && response['Content-Encoding'].include?('gzip')
|
130
|
-
@
|
151
|
+
@res = Zlib::GzipReader.new(StringIO.new(@res)).read
|
131
152
|
end
|
132
|
-
result = JSON.parse(@
|
153
|
+
result = JSON.parse(@res)
|
133
154
|
raise LoginExpired if result['redirect'] && result['redirecturl'] && result['redirecturl'].include?('http://cas.baidu.com')
|
134
|
-
|
155
|
+
unless result['status'].to_i == 200
|
156
|
+
if params[:"path"] == 'vega/MOD/keyword'
|
157
|
+
raise Error.new result['error'].map {|k, v| v['winfoid']['message']}.join('; '), result['status']
|
158
|
+
else
|
159
|
+
raise Error.new result['error'], result['status']
|
160
|
+
end
|
161
|
+
end
|
135
162
|
result['data']
|
136
163
|
end
|
137
164
|
|
@@ -142,7 +169,7 @@ module Baidu
|
|
142
169
|
@cookies.split(%r(; ?)).each do |cooky|
|
143
170
|
items = cooky.split('=', 2)
|
144
171
|
params[items[0]] = items[1]
|
145
|
-
end
|
172
|
+
end unless @cookies.nil?
|
146
173
|
params
|
147
174
|
end
|
148
175
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: baidu-tuiguang
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Xiao Jie
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-04-
|
11
|
+
date: 2017-04-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|