lib/rmega/nodes/file.rb in rmega-0.1.5 vs lib/rmega/nodes/file.rb in rmega-0.1.6

- old
+ new

@@ -1,39 +1,24 @@ -require 'rmega/downloader' require 'rmega/nodes/node' require 'rmega/nodes/deletable' +require 'rmega/nodes/downloadable' module Rmega module Nodes class File < Node include Deletable + include Downloadable def storage_url @storage_url ||= data['g'] || request(a: 'g', g: 1, n: handle)['g'] end def size data['s'] end - def download(path) - path = ::File.expand_path(path) - path = Dir.exists?(path) ? ::File.join(path, name) : path - - logger.info "Download #{name} (#{size} bytes) => #{path}" - - k = decrypted_file_key - k = [k[0] ^ k[4], k[1] ^ k[5], k[2] ^ k[6], k[3] ^ k[7]] - nonce = decrypted_file_key[4..5] - - donwloader = Downloader.new(base_url: storage_url, filesize: size, local_path: path) - - donwloader.download do |start, buffer| - nonce = [nonce[0], nonce[1], (start/0x1000000000) >> 0, (start/0x10) >> 0] - Crypto::AesCtr.decrypt(k, nonce, buffer)[:data] - end - - path + def filesize + size end end end end