pindo 4.6.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/bin/pindo +35 -0
- data/lib/pindo/base/aeshelper.rb +31 -0
- data/lib/pindo/base/deviceinfo.rb +90 -0
- data/lib/pindo/base/executable.rb +224 -0
- data/lib/pindo/base/githelper.rb +489 -0
- data/lib/pindo/base/hashhelper.rb +134 -0
- data/lib/pindo/base/plaininformative.rb +15 -0
- data/lib/pindo/base/plistbuddyexecutable.rb +121 -0
- data/lib/pindo/base/standarderror.rb +14 -0
- data/lib/pindo/client/applovinclient.rb +156 -0
- data/lib/pindo/client/aws3sclient.rb +183 -0
- data/lib/pindo/client/bossclient.rb +229 -0
- data/lib/pindo/client/bossconfigclient.rb +175 -0
- data/lib/pindo/client/giteeclient.rb +65 -0
- data/lib/pindo/client/httpclient.rb +40 -0
- data/lib/pindo/client/pgyerclient.rb +439 -0
- data/lib/pindo/client/tgateclient.rb +103 -0
- data/lib/pindo/command.rb +101 -0
- data/lib/pindo/config/pindoconfig.rb +439 -0
- data/lib/pindo/config/pindouserlocalconfig.rb +81 -0
- data/lib/pindo/deploy/Fastfile +233 -0
- data/lib/pindo/deploy/build.rb +167 -0
- data/lib/pindo/deploy/bundleid.rb +245 -0
- data/lib/pindo/deploy/cert.rb +508 -0
- data/lib/pindo/deploy/check.rb +79 -0
- data/lib/pindo/deploy/configproj.rb +89 -0
- data/lib/pindo/deploy/confusecode.rb +248 -0
- data/lib/pindo/deploy/confuseproj.rb +112 -0
- data/lib/pindo/deploy/fabric.rb +58 -0
- data/lib/pindo/deploy/getitcinfo.rb +248 -0
- data/lib/pindo/deploy/iap.rb +796 -0
- data/lib/pindo/deploy/initconfig.rb +128 -0
- data/lib/pindo/deploy/itcapp.rb +147 -0
- data/lib/pindo/deploy/itcinfo.rb +369 -0
- data/lib/pindo/deploy/pem.rb +55 -0
- data/lib/pindo/deploy/pullconfig.rb +46 -0
- data/lib/pindo/deploy/pushconfig.rb +83 -0
- data/lib/pindo/deploy/quswark.rb +146 -0
- data/lib/pindo/deploy/quswauth.rb +67 -0
- data/lib/pindo/deploy/reportbug.rb +135 -0
- data/lib/pindo/deploy/resign.rb +338 -0
- data/lib/pindo/deploy/tag.rb +108 -0
- data/lib/pindo/deploy/updateconfig.rb +129 -0
- data/lib/pindo/deploy/uploadipa.rb +63 -0
- data/lib/pindo/deploy.rb +44 -0
- data/lib/pindo/dev/autobuild.rb +204 -0
- data/lib/pindo/dev/autoresign.rb +186 -0
- data/lib/pindo/dev/confusecode.rb +127 -0
- data/lib/pindo/dev/confuseproj.rb +111 -0
- data/lib/pindo/dev/createbuild.rb +159 -0
- data/lib/pindo/dev/debug.rb +141 -0
- data/lib/pindo/dev/pub.rb +171 -0
- data/lib/pindo/dev/renewcert.rb +142 -0
- data/lib/pindo/dev.rb +23 -0
- data/lib/pindo/env/dreamstudio.rb +53 -0
- data/lib/pindo/env/flutter.rb +59 -0
- data/lib/pindo/env/flutter.sh +116 -0
- data/lib/pindo/env/quarkenv.rb +58 -0
- data/lib/pindo/env/swarkenv.rb +62 -0
- data/lib/pindo/env/workhard.rb +56 -0
- data/lib/pindo/env.rb +17 -0
- data/lib/pindo/ipa/autoresign.rb +188 -0
- data/lib/pindo/ipa/import.rb +261 -0
- data/lib/pindo/ipa/output.rb +396 -0
- data/lib/pindo/ipa.rb +22 -0
- data/lib/pindo/lib/forcepush.rb +159 -0
- data/lib/pindo/lib/lint.rb +115 -0
- data/lib/pindo/lib/push.rb +143 -0
- data/lib/pindo/lib/update.rb +75 -0
- data/lib/pindo/lib.rb +18 -0
- data/lib/pindo/module/appselect.rb +200 -0
- data/lib/pindo/module/appstore_in_app_purchase.rb +1803 -0
- data/lib/pindo/module/appstore_metadata_connect_api_helper.rb +12 -0
- data/lib/pindo/module/appstore_metadata_fastlane_helper.rb +922 -0
- data/lib/pindo/module/buildconfighelper.rb +13 -0
- data/lib/pindo/module/buildhelper.rb +76 -0
- data/lib/pindo/module/commonconfuseproj.rb +271 -0
- data/lib/pindo/module/config_project.sh +143 -0
- data/lib/pindo/module/configprojhelper.rb +631 -0
- data/lib/pindo/module/iap_tier.json +813 -0
- data/lib/pindo/module/icon_contents.json +116 -0
- data/lib/pindo/module/imessage_icon.json +91 -0
- data/lib/pindo/module/imgset_contents.json +21 -0
- data/lib/pindo/module/launchimg_contents.json +21 -0
- data/lib/pindo/module/pemcreate.rb +63 -0
- data/lib/pindo/module/pgyerhelper.rb +339 -0
- data/lib/pindo/module/xcodebuildpre.rb +258 -0
- data/lib/pindo/module/xcodehelper.rb +521 -0
- data/lib/pindo/options/appconfigoptions.rb +23 -0
- data/lib/pindo/options/deployoptions.rb +363 -0
- data/lib/pindo/pgyer/apptest.rb +104 -0
- data/lib/pindo/pgyer/comment.rb +95 -0
- data/lib/pindo/pgyer/download.rb +105 -0
- data/lib/pindo/pgyer/login.rb +61 -0
- data/lib/pindo/pgyer/upload.rb +234 -0
- data/lib/pindo/pgyer.rb +17 -0
- data/lib/pindo/repo/clone.rb +78 -0
- data/lib/pindo/repo/create.rb +55 -0
- data/lib/pindo/repo/login.rb +64 -0
- data/lib/pindo/repo/search.rb +60 -0
- data/lib/pindo/repo.rb +16 -0
- data/lib/pindo/setup.rb +60 -0
- data/lib/pindo/upgrade.rb +56 -0
- data/lib/pindo/utils/applovin.rb +213 -0
- data/lib/pindo/utils/boss.rb +209 -0
- data/lib/pindo/utils/clearcert.rb +60 -0
- data/lib/pindo/utils/device.rb +279 -0
- data/lib/pindo/utils/icon.rb +91 -0
- data/lib/pindo/utils/icon.sh +133 -0
- data/lib/pindo/utils/podindex.rb +56 -0
- data/lib/pindo/utils/podindex.sh +30 -0
- data/lib/pindo/utils/renewproj.rb +146 -0
- data/lib/pindo/utils/tgate.rb +159 -0
- data/lib/pindo/utils/xcassets.rb +46 -0
- data/lib/pindo/utils/xcassets.sh +88 -0
- data/lib/pindo/utils.rb +29 -0
- data/lib/pindo/version.rb +110 -0
- data/lib/pindo.rb +34 -0
- metadata +364 -0
@@ -0,0 +1,175 @@
|
|
1
|
+
|
2
|
+
require 'uri'
|
3
|
+
require 'json'
|
4
|
+
require 'faraday'
|
5
|
+
require 'pindo/base/aeshelper'
|
6
|
+
require 'pindo/base/deviceinfo'
|
7
|
+
require 'faraday-cookie_jar'
|
8
|
+
|
9
|
+
module Pindo
|
10
|
+
|
11
|
+
|
12
|
+
class BossConfigClient
|
13
|
+
|
14
|
+
|
15
|
+
attr_accessor :requests_config
|
16
|
+
attr_accessor :app_type
|
17
|
+
attr_accessor :base_url
|
18
|
+
|
19
|
+
|
20
|
+
def initialize(app_type:"FunnyApp", is_dev:true)
|
21
|
+
|
22
|
+
#
|
23
|
+
@app_type = app_type
|
24
|
+
@is_dev = is_dev
|
25
|
+
|
26
|
+
begin
|
27
|
+
|
28
|
+
boss_config_file = File.join(File::expand_path(Pindoconfig.instance.pindo_common_configdir), "bossconfig_client_config.json")
|
29
|
+
@boss_config_json = JSON.parse(File.read(boss_config_file))
|
30
|
+
|
31
|
+
@base_url_config = @boss_config_json["base_url_config"]
|
32
|
+
@requests_config = @boss_config_json["boss_req_config"]
|
33
|
+
|
34
|
+
rescue => error
|
35
|
+
puts error
|
36
|
+
raise Informative, "加载bossconfig 配置文件失败, 需要执行 pindo setup 或者pindo env dreamstudio"
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
begin
|
42
|
+
@base_url = @base_url_config[@app_type]
|
43
|
+
puts "@base_url #{@base_url}"
|
44
|
+
rescue => error
|
45
|
+
raise Informative, "App Type #{@app_type} 错误!!! 没有配置该类型的Boss域名"
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
def do_login()
|
51
|
+
|
52
|
+
# username = ask('请输入Boss网站的用户名:')
|
53
|
+
# password = ask('请输入Boss网站的密码:')
|
54
|
+
username = "shuangquan"
|
55
|
+
password = "HIsdfUHfwdh"
|
56
|
+
|
57
|
+
do_login_req(username:username, password:password)
|
58
|
+
end
|
59
|
+
|
60
|
+
def parse_cookie(raw_cookie)
|
61
|
+
|
62
|
+
cookies = Hash.new([])
|
63
|
+
return cookies unless raw_cookie
|
64
|
+
raw_cookie.split(/[;]\s?/).each do |pairs|
|
65
|
+
key, values = pairs.split('=',2)
|
66
|
+
next unless key && values
|
67
|
+
|
68
|
+
if key.include?("httponly, ")
|
69
|
+
key = key.gsub(/httponly, /, '');
|
70
|
+
end
|
71
|
+
cookies[key] = values
|
72
|
+
end
|
73
|
+
cookies
|
74
|
+
end
|
75
|
+
|
76
|
+
def do_login_req(username:nil, password:nil)
|
77
|
+
|
78
|
+
login_path = @requests_config["do_login"]["path"]
|
79
|
+
|
80
|
+
login_url = @base_url + login_path
|
81
|
+
puts "login_url: #{login_url}"
|
82
|
+
body_params = {
|
83
|
+
username:username,
|
84
|
+
password:password,
|
85
|
+
phone_code:nil
|
86
|
+
}
|
87
|
+
|
88
|
+
# send_phone_code(username:username)
|
89
|
+
|
90
|
+
|
91
|
+
phone_code = ask('请输入Boss网站的手机验证码:') || nil
|
92
|
+
puts "Phone Code #{phone_code}"
|
93
|
+
|
94
|
+
body_params[:phone_code] = phone_code
|
95
|
+
|
96
|
+
|
97
|
+
# con = Faraday.new
|
98
|
+
# res = con.post do |req|
|
99
|
+
# req.url login_url
|
100
|
+
# req.headers['Content-Type'] = 'application/json'
|
101
|
+
# req.body = body_params.to_json
|
102
|
+
# end
|
103
|
+
|
104
|
+
conn = Faraday.new(:url => @base_url) do |builder|
|
105
|
+
builder.use :cookie_jar
|
106
|
+
builder.adapter Faraday.default_adapter
|
107
|
+
end
|
108
|
+
|
109
|
+
res = conn.post do |req|
|
110
|
+
req.url login_path
|
111
|
+
req.headers['Content-Type'] = 'application/json'
|
112
|
+
req.body = body_params.to_json
|
113
|
+
end
|
114
|
+
|
115
|
+
|
116
|
+
result_data = nil
|
117
|
+
|
118
|
+
if !res.body.nil?
|
119
|
+
result_data = JSON.parse(res.body)
|
120
|
+
|
121
|
+
|
122
|
+
if result_data["err"].nil
|
123
|
+
|
124
|
+
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
if !res.body.nil?
|
129
|
+
result_data = JSON.parse(res.body)
|
130
|
+
end
|
131
|
+
puts JSON.pretty_generate(result_data)
|
132
|
+
|
133
|
+
|
134
|
+
# all_cookies = res['set-cookie']
|
135
|
+
all_cookies = File.read("/Users/wade/Desktop/cookie.txt")
|
136
|
+
puts "111"
|
137
|
+
puts all_cookies
|
138
|
+
cookies_array = parse_cookie(all_cookies)
|
139
|
+
puts JSON.pretty_generate(cookies_array)
|
140
|
+
|
141
|
+
|
142
|
+
end
|
143
|
+
|
144
|
+
|
145
|
+
def send_phone_code(username:nil)
|
146
|
+
|
147
|
+
boss_url = @base_url + @requests_config["send_phone_code"]["path"]
|
148
|
+
|
149
|
+
body_params = {
|
150
|
+
username:username
|
151
|
+
}
|
152
|
+
# puts JSON.pretty_generate(body_params)
|
153
|
+
|
154
|
+
con = Faraday.new
|
155
|
+
res = con.post do |req|
|
156
|
+
req.url boss_url
|
157
|
+
req.headers['Content-Type'] = 'application/json'
|
158
|
+
req.body = body_params.to_json
|
159
|
+
end
|
160
|
+
|
161
|
+
result_data = nil
|
162
|
+
if !res.body.nil?
|
163
|
+
result_data = JSON.parse(res.body)
|
164
|
+
end
|
165
|
+
|
166
|
+
puts JSON.pretty_generate(result_data)
|
167
|
+
return result_data
|
168
|
+
|
169
|
+
end
|
170
|
+
|
171
|
+
|
172
|
+
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require 'faraday'
|
3
|
+
|
4
|
+
module Pindo
|
5
|
+
class GiteeClient
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
attr_accessor :base_url
|
10
|
+
attr_accessor :access_token
|
11
|
+
|
12
|
+
def initialize(access_token:nil)
|
13
|
+
@base_url = "https://gitee.com"
|
14
|
+
@access_token = access_token
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
def gitee_create_repo(owner:nil, repo_name:nil, public_type:0)
|
20
|
+
|
21
|
+
|
22
|
+
body_params = {
|
23
|
+
access_token:access_token,
|
24
|
+
name:repo_name,
|
25
|
+
path:repo_name,
|
26
|
+
org:owner,
|
27
|
+
public:public_type,
|
28
|
+
# private:true,
|
29
|
+
has_issues:true,
|
30
|
+
has_wiki:true,
|
31
|
+
auto_init:false,
|
32
|
+
gitignore_template:"C",
|
33
|
+
license_template:"AGPL-3.0"
|
34
|
+
|
35
|
+
}
|
36
|
+
puts body_params
|
37
|
+
# repao_name_str = %Q{"name": "#{repo_name}",}
|
38
|
+
# body_str = '{ "access_token": "' + access_token + '",' + repao_name_str + '"has_issues": true, "has_wiki": true, "private": "true", "auto_init":false, "gitignore_template":"C", "license_template":"AGPL-3.0"' + '}'
|
39
|
+
body_str = body_params.to_json
|
40
|
+
url = @base_url + "/api/v5/orgs/#{owner}/repos"
|
41
|
+
|
42
|
+
puts body_str
|
43
|
+
|
44
|
+
con = Faraday.new
|
45
|
+
res = con.post do |req|
|
46
|
+
req.url url
|
47
|
+
req.headers['Content-Type'] = 'application/json'
|
48
|
+
req.body = body_str
|
49
|
+
end
|
50
|
+
|
51
|
+
puts res.body
|
52
|
+
|
53
|
+
# puts res.body
|
54
|
+
if res.body['error'].nil?
|
55
|
+
puts "Create success !!!"
|
56
|
+
return true
|
57
|
+
else
|
58
|
+
puts res.body['error']
|
59
|
+
return false
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
@@ -0,0 +1,40 @@
|
|
1
|
+
|
2
|
+
require 'uri'
|
3
|
+
require 'json'
|
4
|
+
require 'faraday'
|
5
|
+
require 'pindo/base/aeshelper'
|
6
|
+
|
7
|
+
module Pindo
|
8
|
+
|
9
|
+
|
10
|
+
class HttpClient
|
11
|
+
|
12
|
+
|
13
|
+
attr_accessor :use_local_wechat_url
|
14
|
+
attr_accessor :token
|
15
|
+
attr_accessor :baseurl
|
16
|
+
attr_accessor :request_config
|
17
|
+
|
18
|
+
def self.create_instance_with_proxy()
|
19
|
+
|
20
|
+
# puts body_params.to_json
|
21
|
+
proxy_options = {
|
22
|
+
uri: ENV['http_proxy'] || ENV['https_proxy'],
|
23
|
+
user: ENV['HTTP_PROXY_USER'],
|
24
|
+
password: ENV['HTTP_PROXY_PASSWORD']
|
25
|
+
}
|
26
|
+
|
27
|
+
con = Faraday.new
|
28
|
+
con.proxy = proxy_options.compact if proxy_options[:uri]
|
29
|
+
con
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.create_instance()
|
33
|
+
|
34
|
+
con = Faraday.new
|
35
|
+
con
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
@@ -0,0 +1,439 @@
|
|
1
|
+
|
2
|
+
require 'uri'
|
3
|
+
require 'pindo/base/aeshelper'
|
4
|
+
require 'pindo/config/pindouserlocalconfig'
|
5
|
+
require 'pindo/client/httpclient'
|
6
|
+
|
7
|
+
|
8
|
+
module Pindo
|
9
|
+
|
10
|
+
|
11
|
+
class PgyerClient
|
12
|
+
|
13
|
+
|
14
|
+
attr_accessor :use_local_wechat_url
|
15
|
+
attr_accessor :token
|
16
|
+
attr_accessor :baseurl
|
17
|
+
attr_accessor :request_config
|
18
|
+
|
19
|
+
def initialize()
|
20
|
+
|
21
|
+
begin
|
22
|
+
|
23
|
+
@pgyer_token_file = File.join(File::expand_path(Pindoconfig.instance.pindo_dir), ".pgyer_token")
|
24
|
+
config_file = File.join(File::expand_path(Pindoconfig.instance.pindo_common_configdir), "pgyer_client_config.json")
|
25
|
+
config_json = JSON.parse(File.read(config_file))
|
26
|
+
|
27
|
+
@use_local_wechat_url = config_json["use_local_wechat_url"]
|
28
|
+
@baseurl = config_json["pgyerapps_base_url"]
|
29
|
+
@request_config = config_json["pgyerapps_req_config"]
|
30
|
+
@pgyer_aes_key = config_json["pgyerapps_aes_key"]
|
31
|
+
|
32
|
+
rescue => error
|
33
|
+
raise Informative, "加载pgyer配置文件失败, 需要执行 pindo setup 或者pindo env dreamstudio"
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
def get_faraday_instance
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
def do_login(force_login:false)
|
44
|
+
|
45
|
+
login_success = false
|
46
|
+
|
47
|
+
@token = load_token()
|
48
|
+
if !@token.nil? && !@token["token"].nil? && !force_login
|
49
|
+
login_success = true
|
50
|
+
|
51
|
+
puts "用户#{@token["username"]}登录pgyer成功!!!"
|
52
|
+
puts
|
53
|
+
|
54
|
+
else
|
55
|
+
username = nil
|
56
|
+
if !@token.nil? && !@token["username"].nil?
|
57
|
+
username = @token["username"]
|
58
|
+
checksum_password = nil
|
59
|
+
if !@token["password"].nil?
|
60
|
+
checksum_password = @token["password"]
|
61
|
+
end
|
62
|
+
end
|
63
|
+
token = do_login_req(username:username, checksum_password:checksum_password)
|
64
|
+
if !token.nil? && !token["token"].nil?
|
65
|
+
@token = token
|
66
|
+
login_success = true
|
67
|
+
end
|
68
|
+
end
|
69
|
+
return login_success
|
70
|
+
end
|
71
|
+
|
72
|
+
def do_login_req(username:nil, checksum_password:nil)
|
73
|
+
puts "do logn pgyer --- "
|
74
|
+
|
75
|
+
|
76
|
+
login_name = username
|
77
|
+
if login_name.nil?
|
78
|
+
login_name = ask('请输入pgger网站的usernmae:') || nil
|
79
|
+
end
|
80
|
+
|
81
|
+
puts "usernmae: #{login_name} "
|
82
|
+
|
83
|
+
result_data = do_send_code(username:login_name)
|
84
|
+
|
85
|
+
puts "验证码: #{result_data["msg"]}"
|
86
|
+
|
87
|
+
|
88
|
+
checksum_pass = checksum_password
|
89
|
+
if checksum_pass.nil?
|
90
|
+
login_passwork = ask('请输入pgger网站的密码:') || nil
|
91
|
+
checksum_pass = Digest::MD5.hexdigest(login_passwork)
|
92
|
+
end
|
93
|
+
|
94
|
+
# puts "passwork: #{checksum_pass}"
|
95
|
+
|
96
|
+
boss_url = @baseurl + @request_config["do_login"]
|
97
|
+
body_params = {
|
98
|
+
username:login_name,
|
99
|
+
phoneCode:result_data["msg"],
|
100
|
+
password:checksum_pass
|
101
|
+
}
|
102
|
+
|
103
|
+
# puts JSON.pretty_generate(body_params)
|
104
|
+
|
105
|
+
login_response_data = nil
|
106
|
+
|
107
|
+
begin
|
108
|
+
|
109
|
+
con = HttpClient.create_instance_with_proxy
|
110
|
+
res = con.post do |req|
|
111
|
+
req.url boss_url
|
112
|
+
req.headers['Content-Type'] = 'application/json'
|
113
|
+
req.body = body_params.to_json
|
114
|
+
end
|
115
|
+
|
116
|
+
|
117
|
+
if !res.body.nil?
|
118
|
+
login_response_data = JSON.parse(res.body)
|
119
|
+
end
|
120
|
+
|
121
|
+
rescue => error
|
122
|
+
puts "登录失败,请重试!!!"
|
123
|
+
end
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
# puts JSON.pretty_generate(login_response_data)
|
128
|
+
|
129
|
+
if !login_response_data.nil? && !login_response_data["code"].nil? && login_response_data["code"].to_s.eql?("200")
|
130
|
+
puts "登录成功!!!"
|
131
|
+
|
132
|
+
token = {}
|
133
|
+
token= login_response_data["data"]
|
134
|
+
token["password"] = checksum_pass
|
135
|
+
# puts JSON.pretty_generate(token)
|
136
|
+
store_token(token:token)
|
137
|
+
else
|
138
|
+
if File.exist?(@pgyer_token_file)
|
139
|
+
FileUtils.rm_rf(@pgyer_token_file)
|
140
|
+
end
|
141
|
+
puts "登录失败,请重试!!!"
|
142
|
+
end
|
143
|
+
|
144
|
+
return token
|
145
|
+
|
146
|
+
end
|
147
|
+
|
148
|
+
def load_token()
|
149
|
+
|
150
|
+
@token = nil
|
151
|
+
if File.exist?(@pgyer_token_file)
|
152
|
+
begin
|
153
|
+
data = File.read(@pgyer_token_file)
|
154
|
+
|
155
|
+
data_string = AESHelper::aes_128_ecb_decrypt(@pgyer_aes_key, data)
|
156
|
+
temp_token = data_string
|
157
|
+
temp_token = JSON.parse(data_string)
|
158
|
+
if !temp_token.nil? && !temp_token["token"].nil? && !temp_token["username"].nil?
|
159
|
+
@token = temp_token
|
160
|
+
# puts "加载pgyer token 成功!!! "
|
161
|
+
end
|
162
|
+
rescue => error
|
163
|
+
puts error
|
164
|
+
# puts "加载pgyer token 失败!!! "
|
165
|
+
if File.exist?(@pgyer_token_file)
|
166
|
+
FileUtils.rm_rf(@pgyer_token_file)
|
167
|
+
end
|
168
|
+
@token = nil
|
169
|
+
end
|
170
|
+
else
|
171
|
+
# puts "load pgyer token ---- fail !!! "
|
172
|
+
end
|
173
|
+
|
174
|
+
return @token
|
175
|
+
end
|
176
|
+
|
177
|
+
def store_token(token:nil)
|
178
|
+
|
179
|
+
begin
|
180
|
+
@token = token
|
181
|
+
|
182
|
+
data_string = AESHelper::aes_128_ecb_encrypt(@pgyer_aes_key, @token.to_json)
|
183
|
+
File.open(@pgyer_token_file, "w") do |f|
|
184
|
+
f.write(data_string)
|
185
|
+
end
|
186
|
+
puts "store pgyer token---- sucess !!!"
|
187
|
+
rescue => error
|
188
|
+
puts
|
189
|
+
puts "store pgyer token---- sucess !!!"
|
190
|
+
puts error
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
def do_send_code(username:nil)
|
195
|
+
|
196
|
+
|
197
|
+
boss_url = @baseurl + @request_config["do_send_code"]
|
198
|
+
|
199
|
+
body_params = {
|
200
|
+
username:username
|
201
|
+
}
|
202
|
+
# puts JSON.pretty_generate(body_params)
|
203
|
+
|
204
|
+
con = HttpClient.create_instance_with_proxy
|
205
|
+
res = con.post do |req|
|
206
|
+
req.url boss_url
|
207
|
+
req.headers['Content-Type'] = 'application/json'
|
208
|
+
req.body = body_params.to_json
|
209
|
+
end
|
210
|
+
|
211
|
+
result_date = nil
|
212
|
+
if !res.body.nil?
|
213
|
+
result_date = JSON.parse(res.body)
|
214
|
+
end
|
215
|
+
|
216
|
+
# puts JSON.pretty_generate(result_date)
|
217
|
+
|
218
|
+
if !result_date.nil? && !result_date["code"].nil? && result_date["code"].to_s.eql?("200")
|
219
|
+
|
220
|
+
|
221
|
+
res = con.post do |req|
|
222
|
+
req.url boss_url
|
223
|
+
req.headers['Content-Type'] = 'application/json'
|
224
|
+
req.body = body_params.to_json
|
225
|
+
end
|
226
|
+
|
227
|
+
if !res.body.nil?
|
228
|
+
result_date = JSON.parse(res.body)
|
229
|
+
end
|
230
|
+
|
231
|
+
end
|
232
|
+
|
233
|
+
|
234
|
+
# puts JSON.pretty_generate(result_date)
|
235
|
+
|
236
|
+
return result_date
|
237
|
+
|
238
|
+
end
|
239
|
+
|
240
|
+
|
241
|
+
|
242
|
+
def get_app_list_req(params:nil)
|
243
|
+
|
244
|
+
|
245
|
+
boss_url = @baseurl + @request_config["get_app_list"]
|
246
|
+
|
247
|
+
# puts boss_url
|
248
|
+
get_params = {
|
249
|
+
orderByColumn:"app_name",
|
250
|
+
sort:"ASC",
|
251
|
+
pageNo:1,
|
252
|
+
pageSize:1000,
|
253
|
+
}
|
254
|
+
|
255
|
+
params.each { |key,value| get_params[key] = value }
|
256
|
+
|
257
|
+
|
258
|
+
con = HttpClient.create_instance_with_proxy
|
259
|
+
res = con.get do |req|
|
260
|
+
req.url boss_url
|
261
|
+
req.headers['Content-Type'] = 'application/json'
|
262
|
+
req.headers['token'] = @token["token"]
|
263
|
+
req.params = get_params
|
264
|
+
end
|
265
|
+
|
266
|
+
result_date = nil
|
267
|
+
if !res.body.nil?
|
268
|
+
result_date = JSON.parse(res.body)
|
269
|
+
|
270
|
+
if !result_date["code"].nil? && result_date["code"].to_s.eql?("401")
|
271
|
+
do_login(force_login:true)
|
272
|
+
end
|
273
|
+
end
|
274
|
+
|
275
|
+
|
276
|
+
# puts JSON.pretty_generate(result_date)
|
277
|
+
|
278
|
+
return result_date
|
279
|
+
|
280
|
+
end
|
281
|
+
|
282
|
+
def do_request(method, params)
|
283
|
+
|
284
|
+
|
285
|
+
end
|
286
|
+
|
287
|
+
def update_app_info_req(params:nil)
|
288
|
+
|
289
|
+
boss_url = @baseurl + @request_config["update_app_info"]
|
290
|
+
# puts boss_url
|
291
|
+
body_params = {
|
292
|
+
|
293
|
+
}
|
294
|
+
|
295
|
+
if params.nil?
|
296
|
+
return
|
297
|
+
end
|
298
|
+
params.each { |key,value| body_params[key] = value }
|
299
|
+
|
300
|
+
|
301
|
+
con = HttpClient.create_instance_with_proxy
|
302
|
+
res = con.post do |req|
|
303
|
+
req.url boss_url
|
304
|
+
req.headers['Content-Type'] = 'application/json'
|
305
|
+
req.headers['token'] = @token["token"]
|
306
|
+
req.body = body_params.to_json
|
307
|
+
end
|
308
|
+
# puts JSON.pretty_generate(body_params)
|
309
|
+
|
310
|
+
result_date = nil
|
311
|
+
if !res.body.nil?
|
312
|
+
result_date = JSON.parse(res.body)
|
313
|
+
end
|
314
|
+
|
315
|
+
|
316
|
+
# puts JSON.pretty_generate(result_date)
|
317
|
+
|
318
|
+
return result_date
|
319
|
+
|
320
|
+
end
|
321
|
+
|
322
|
+
|
323
|
+
|
324
|
+
# def post_app_update_binary(appId:nil, key_id:nil, description:nil)
|
325
|
+
def post_app_update_binary(appId:nil, params:nil)
|
326
|
+
|
327
|
+
|
328
|
+
boss_url = @baseurl + @request_config["upload_app_binary"]
|
329
|
+
|
330
|
+
# puts boss_url
|
331
|
+
body_params = {
|
332
|
+
appId:appId,
|
333
|
+
description:"",
|
334
|
+
s3Url:"",
|
335
|
+
attachFileUrls:[],
|
336
|
+
}
|
337
|
+
|
338
|
+
# puts body_params.to_json
|
339
|
+
#
|
340
|
+
|
341
|
+
params.each { |key,value| body_params[key] = value }
|
342
|
+
# puts body_params.to_json
|
343
|
+
|
344
|
+
# puts JSON.pretty_generate(body_params)
|
345
|
+
# puts "111"
|
346
|
+
con = HttpClient.create_instance_with_proxy
|
347
|
+
res = con.post do |req|
|
348
|
+
req.url boss_url
|
349
|
+
req.headers['Content-Type'] = 'application/json'
|
350
|
+
req.headers['token'] = @token["token"]
|
351
|
+
req.body = body_params.to_json
|
352
|
+
end
|
353
|
+
|
354
|
+
|
355
|
+
result_date = nil
|
356
|
+
if !res.body.nil?
|
357
|
+
result_date = JSON.parse(res.body)
|
358
|
+
end
|
359
|
+
|
360
|
+
|
361
|
+
# puts JSON.pretty_generate(result_date)
|
362
|
+
|
363
|
+
return result_date
|
364
|
+
|
365
|
+
end
|
366
|
+
|
367
|
+
def get_app_version_list_req(appId:nil, params:nil)
|
368
|
+
|
369
|
+
params = {} if params.nil?
|
370
|
+
boss_url = @baseurl + @request_config["get_app_version_list"]
|
371
|
+
|
372
|
+
get_params = {
|
373
|
+
appId:appId,
|
374
|
+
pageNo:1,
|
375
|
+
pageSize:20,
|
376
|
+
}
|
377
|
+
|
378
|
+
params.each { |key,value| get_params[key] = value }
|
379
|
+
|
380
|
+
|
381
|
+
con = HttpClient.create_instance_with_proxy
|
382
|
+
res = con.get do |req|
|
383
|
+
req.url boss_url
|
384
|
+
req.headers['Content-Type'] = 'application/json'
|
385
|
+
req.headers['token'] = @token["token"]
|
386
|
+
req.params = get_params
|
387
|
+
end
|
388
|
+
|
389
|
+
result_date = nil
|
390
|
+
if !res.body.nil?
|
391
|
+
result_date = JSON.parse(res.body)
|
392
|
+
end
|
393
|
+
|
394
|
+
|
395
|
+
# puts JSON.pretty_generate(result_date)
|
396
|
+
|
397
|
+
return result_date
|
398
|
+
|
399
|
+
end
|
400
|
+
|
401
|
+
|
402
|
+
def post_update_upload_comment(appId:nil, id:nil, comment:nil)
|
403
|
+
|
404
|
+
|
405
|
+
boss_url = @baseurl + @request_config["update_upload_comment"]
|
406
|
+
|
407
|
+
# puts boss_url
|
408
|
+
body_params = {
|
409
|
+
appId:appId,
|
410
|
+
id:id,
|
411
|
+
description:comment || ""
|
412
|
+
}
|
413
|
+
|
414
|
+
|
415
|
+
con = HttpClient.create_instance_with_proxy
|
416
|
+
|
417
|
+
res = con.post do |req|
|
418
|
+
req.url boss_url
|
419
|
+
req.headers['Content-Type'] = 'application/json'
|
420
|
+
req.headers['token'] = @token["token"]
|
421
|
+
req.body = body_params.to_json
|
422
|
+
end
|
423
|
+
|
424
|
+
|
425
|
+
result_date = nil
|
426
|
+
if !res.body.nil?
|
427
|
+
result_date = JSON.parse(res.body)
|
428
|
+
end
|
429
|
+
|
430
|
+
|
431
|
+
# puts JSON.pretty_generate(result_date)
|
432
|
+
|
433
|
+
return result_date
|
434
|
+
|
435
|
+
end
|
436
|
+
|
437
|
+
end
|
438
|
+
end
|
439
|
+
|