62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
# File 'lib/pindo/command/jps/download.rb', line 62
def run
PgyerHelper.share_instace.setForeLogin(beforeLogin:@args_login_flag)
app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:@args_proj_name)
if app_info_obj.nil?
raise Informative, "#{proj_name} 错误, 请输入正确的App代号名称, jps网站没有该App"
end
version_item_obj = PgyerHelper.share_instace.get_versioon_history_item(app_info_obj:app_info_obj, list_select_flat:@args_list_flag)
if version_item_obj.nil?
raise Informative, "没有找到上传记录"
end
download_url = version_item_obj["cdnUrl"]
base_name = [app_info_obj["projectName"], version_item_obj["projectVersion"], version_item_obj["incId"]].join("_")
base_name = base_name + File.extname(download_url)
base_name = base_name.strip.gsub(/[\s]/, '').downcase
file_name = File.join(Dir.pwd, base_name)
puts "文件名: #{file_name}"
puts "下载中..."
Funlog.instance.fancyinfo_start("开始下载...")
total_num = 0
total_size = ''
char_in = '>'
char_out = '_'
download_message = ''
URI.open(download_url, :content_length_proc => lambda { |total|
total_num = total
total_size = sprintf("%.2f", 1.00 * total_num / 1024 /1024 )
}, :progress_proc => lambda { |index_num|
progress_str = sprintf("%.2f", 100.0 * index_num / total_num )
total_size = sprintf("%.2f", 1.00 * total_num / 1024 /1024 )
index = 40.0 * index_num / total_num
download_message = "已下载:#{progress_str}\%【" + (char_in * (index/1).floor).ljust(40.0, char_out) + "】Total: #{total_size} M"
Funlog.instance.fancyinfo_update(download_message)
}) do |file|
File.binwrite(file_name, file.read)
end
Funlog.instance.fancyinfo_success(download_message)
Funlog.instance.fancyinfo_success("#{file_name} 下载完成!")
end
|