parent
40f8b52ce8
commit
a45038a1e7
@ -0,0 +1,43 @@
|
|||||||
|
namespace :homework do
|
||||||
|
def tran_base64_decode64 str
|
||||||
|
if str.blank?
|
||||||
|
str
|
||||||
|
else
|
||||||
|
s_size = str.size % 4
|
||||||
|
if s_size != 0
|
||||||
|
str += "=" * (4 - s_size)
|
||||||
|
end
|
||||||
|
Base64.decode64(str.tr("-_", "+/")).force_encoding("utf-8")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
task :gitfiledown => :environment do
|
||||||
|
begin
|
||||||
|
puts ENV['args']
|
||||||
|
system("tmp/homework_file") if File.exist?("tmp/homework_file")
|
||||||
|
homework_common = HomeworkCommon.find(ENV['args'])
|
||||||
|
student_works = homework_common.student_works
|
||||||
|
student_works.each do |sw|
|
||||||
|
username = sw.user.try(:show_real_name)
|
||||||
|
myshixun = sw.try(:myshixun)
|
||||||
|
puts myshixun.try(:gpid)
|
||||||
|
if myshixun.try(:gpid)
|
||||||
|
content = g.files(myshixun.gpid, "PL/PL.cpp", "master").try(:content)
|
||||||
|
tran_content = tran_base64_decode64(content)
|
||||||
|
path = "tmp/homework_file/#{username}"
|
||||||
|
FileUtils.mkdir_p(path) unless File.exist?(path)
|
||||||
|
system("cd #{path}; touch PL.cpp")
|
||||||
|
aFile = File.new("#{path}/PL.cpp", "r+")
|
||||||
|
if aFile
|
||||||
|
aFile.syswrite(tran_content)
|
||||||
|
else
|
||||||
|
puts "Unable to open file!"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
rescue Exception => e
|
||||||
|
Rails.logger.error(e.message)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
Loading…
Reference in new issue