fir-cli 2.0.16 → 2.0.17
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/README.md +1 -0
- data/fir-cli.gemspec +1 -0
- data/lib/fir/patches/progress.rb +42 -0
- data/lib/fir/patches.rb +1 -0
- data/lib/fir/util/ali_uploader.rb +39 -10
- data/lib/fir/version.rb +1 -1
- metadata +12 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 27a5c2fe69e1713db4099ac901228f33d23ac94ac92018fdf6b6ee6f71bc1061
|
4
|
+
data.tar.gz: d9280aa40366d505c9735c614bd7d0051446fbffd173c76e9338fcccea077e86
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a09911d9e1fd3dbfc62f41c37ad196b5f76864a101569e2b3184fe5ee57c0702fbae59bff20e22b1ac01a25f2d0a002d30ee2d91941f853521bda5572af310f
|
7
|
+
data.tar.gz: c5ecf24fa4c7bb4afdd82a256bf2a878788f3e96e0aac0058dea9c2dd10b04bd439aff1710ae760769a7a38d67bf901d196d445fb1bf3d9557f3d5146ed00de0
|
data/README.md
CHANGED
@@ -18,6 +18,7 @@ fir.im-cli 可以通过指令查看, 上传, iOS/Android 应用.
|
|
18
18
|
- 现也有一个go 版本的 go-fir-cli 供大家使用, 无需安装依赖, 可以直接使用. 具体请访问 [https://github.com/PGYER/go-fir-cli](https://github.com/PGYER/go-fir-cli). 注意! 该版本功能并不与fir-cli 完全重合.
|
19
19
|
|
20
20
|
# 最近更新
|
21
|
+
- (2.0.17) 增加了上传百分比显示
|
21
22
|
- (2.0.16) 更新了 thor
|
22
23
|
- (2.0.15) 更换了 API 域名
|
23
24
|
- (2.0.14) 第三方通知加入了 app 类型, 第三方报错将忽略异常继续运行
|
data/fir-cli.gemspec
CHANGED
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'tempfile'
|
3
|
+
require 'securerandom'
|
4
|
+
|
5
|
+
class Net::HTTP::UploadProgress
|
6
|
+
attr_reader :upload_size
|
7
|
+
|
8
|
+
def initialize(req, &block)
|
9
|
+
@req = req
|
10
|
+
@callback = block
|
11
|
+
@upload_size = 0
|
12
|
+
if req.body_stream
|
13
|
+
@io = req.body_stream
|
14
|
+
req.body_stream = self
|
15
|
+
elsif req.instance_variable_get(:@body_data)
|
16
|
+
raise NotImplementedError if req.chunked?
|
17
|
+
raise NotImplementedError if /\Amultipart\/form-data\z/i !~ req.content_type
|
18
|
+
opt = req.instance_variable_get(:@form_option).dup
|
19
|
+
opt[:boundary] ||= SecureRandom.urlsafe_base64(40)
|
20
|
+
req.set_content_type(req.content_type, boundary: opt[:boundary])
|
21
|
+
file = Tempfile.new('multipart')
|
22
|
+
file.binmode
|
23
|
+
req.send(:encode_multipart_form_data, file, req.instance_variable_get(:@body_data), opt)
|
24
|
+
file.rewind
|
25
|
+
req.content_length = file.size
|
26
|
+
@io = file
|
27
|
+
req.body_stream = self
|
28
|
+
else
|
29
|
+
raise NotImplementedError
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def readpartial(maxlen, outbuf)
|
34
|
+
begin
|
35
|
+
str = @io.readpartial(maxlen, outbuf)
|
36
|
+
ensure
|
37
|
+
@callback.call(self) unless @upload_size.zero?
|
38
|
+
end
|
39
|
+
@upload_size += str.length
|
40
|
+
str
|
41
|
+
end
|
42
|
+
end
|
data/lib/fir/patches.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative './app_uploader'
|
4
|
-
|
4
|
+
|
5
5
|
|
6
6
|
module FIR
|
7
7
|
class AliUploader < AppUploader
|
@@ -16,7 +16,7 @@ module FIR
|
|
16
16
|
icon_info = uploading_icon_info
|
17
17
|
|
18
18
|
logger.debug "icon_url = #{icon_url}, icon_info = #{icon_info}"
|
19
|
-
put_file(icon_url, uploading_icon_info, uploading_info[:cert][:icon][:custom_headers])
|
19
|
+
put_file(icon_url, uploading_icon_info, uploading_info[:cert][:icon][:custom_headers], false)
|
20
20
|
callback_to_api(callback_url, callback_icon_information)
|
21
21
|
end
|
22
22
|
rescue StandardError => e
|
@@ -50,14 +50,43 @@ module FIR
|
|
50
50
|
|
51
51
|
protected
|
52
52
|
|
53
|
-
def put_file(url, file, headers)
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
53
|
+
def put_file(url, file, headers, need_progress = true)
|
54
|
+
|
55
|
+
uri = URI(url)
|
56
|
+
hostname = uri.hostname
|
57
|
+
|
58
|
+
|
59
|
+
File.open(file_path, 'rb') do |io|
|
60
|
+
t = Time.now
|
61
|
+
http = Net::HTTP.new(hostname, 443)
|
62
|
+
http.use_ssl = true
|
63
|
+
req = Net::HTTP::Put.new(uri.request_uri, headers)
|
64
|
+
req.content_length = io.size
|
65
|
+
req.body_stream = io
|
66
|
+
Net::HTTP::UploadProgress.new(req) do |progress|
|
67
|
+
if need_progress
|
68
|
+
if progress.upload_size == io.size
|
69
|
+
puts "upload finished"
|
70
|
+
else
|
71
|
+
if Time.now - t > 0.5
|
72
|
+
puts "progress: #{ ((progress.upload_size / io.size.to_f) * 100).round(2) }%"
|
73
|
+
t = Time.now
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
res = http.request(req)
|
79
|
+
end
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
# RestClient::Request.execute(
|
84
|
+
# method: 'PUT',
|
85
|
+
# url: url,
|
86
|
+
# payload: file,
|
87
|
+
# headers: headers,
|
88
|
+
# timeout: 300
|
89
|
+
# )
|
61
90
|
end
|
62
91
|
|
63
92
|
def callback_url
|
data/lib/fir/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fir-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- NaixSpirit
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2023-01-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -224,6 +224,7 @@ files:
|
|
224
224
|
- lib/fir/patches/instance_variables.rb
|
225
225
|
- lib/fir/patches/native_patch.rb
|
226
226
|
- lib/fir/patches/os_patch.rb
|
227
|
+
- lib/fir/patches/progress.rb
|
227
228
|
- lib/fir/patches/try.rb
|
228
229
|
- lib/fir/util.rb
|
229
230
|
- lib/fir/util/ali_uploader.rb
|
@@ -271,14 +272,14 @@ metadata: {}
|
|
271
272
|
post_install_message: "\n ______________ ________ ____\n /
|
272
273
|
____/ _/ __ \\ / ____/ / / _/\n / /_ / // /_/ /_____/ / / / /
|
273
274
|
/\n / __/ _/ // _, _/_____/ /___/ /____/ /\n /_/ /___/_/ |_| \\____/_____/___/\n\n
|
274
|
-
\ ## 更新记录\n - (2.0.
|
275
|
-
|
276
|
-
|
277
|
-
\ - (2.0.
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
request\n "
|
275
|
+
\ ## 更新记录\n - (2.0.17) 增加了上传百分比显示\n - (2.0.16) 更新了 thor\n - (2.0.15) 修改了API域名\n
|
276
|
+
\ - (2.0.14) 第三方通知加入了 app 类型, 第三方报错将不再直接报出异常\n - (2.0.13) 修复了无法跳过企业微信通知逻辑的bug\n
|
277
|
+
\ - (2.0.12) 修复因为钉钉机器人不再支持base64导致无法显示二维码,另外开始支持钉钉加签方式的鉴权, 参数为 --dingtalk_secret\n
|
278
|
+
\ - (2.0.11) 兼容了 ruby 3.0 版本, 增加了环境变量FEISHU_TIMEOUT,可以多给飞书一些超时时间\n - (2.0.10) 飞书支持了
|
279
|
+
V2 版本的机器人推送\n - (2.0.9) publish 支持了 企业微信通知 可以使用 --wxwork_access_token 或 --wxwork_webhook,
|
280
|
+
增加了回调超时时间至20秒\n - (2.0.8) publish 支持 飞书通知, 可使用 `feishu_access_token` 和 `feishu_custom_message`,
|
281
|
+
详情见 `fir publish --help`\n - (2.0.7) 修复了提示 token 有问题的错误\n - [fir-cli](https://github.com/firhq/fir-cli)
|
282
|
+
已经开源\n - 欢迎 fork, issue 和 pull request\n "
|
282
283
|
rdoc_options: []
|
283
284
|
require_paths:
|
284
285
|
- lib
|
@@ -293,7 +294,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
293
294
|
- !ruby/object:Gem::Version
|
294
295
|
version: '0'
|
295
296
|
requirements: []
|
296
|
-
rubygems_version: 3.
|
297
|
+
rubygems_version: 3.2.15
|
297
298
|
signing_key:
|
298
299
|
specification_version: 4
|
299
300
|
summary: fir.im command tool
|