baidu-tuiguang 0.1.1 → 0.1.2
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 +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
|