Sha256: b2e2394f237e4d898d14fcce5d3f4e28e6ac41072580cf950157f3abc8ef0553

Contents?: true

Size: 1.38 KB

Versions: 4

Compression:

Stored size: 1.38 KB

Contents

module Saber
  module Task
    # Usage
    #
    #   Task["upload"].invoke(:upload, ["site", "Hello.epub"])
    #
    class Upload < Base
      desc "upload", "upload"
      # @param [String] tracker_name
      # @param [String] file
      def upload(tracker_name, format, *files)
        filemap = {}    # {file => torrent_file}

        files.each{|file|
          torrent_file = [
            "#{file}.#{format}.torrent", 
            "#{tracker_name}/#{file}.#{format}.torrent", 
            "#{file}.torrent", 
            "#{tracker_name}/#{file}.torrent"
          ].find {|v| Pa.exists?(v)}

          torrent_file ||= Pa.directory?(file) ? "#{file}.torrent" : "#{file}.#{format}.torrent"
          filemap[file] = torrent_file
        }

        # make torrent if torrent_file not exists.
        filemap.each { |file, torrent_file|
          if not Pa.exists?(torrent_file)

            if not Pa.exists?(file)
              Saber.ui.error "SKIP: Can't find torrent_file nor file -- #{file}" 
              filemap.delete(file)
              next
            end

            Saber.ui.say "Can't find torrent_file, begin to make it. -- #{torrent_file}"
            Task["make"].invoke(:make, [tracker_name, file])
          end
        }

        tracker = Tracker2[tracker_name].new(options)
        #tracker.login
        tracker.upload(format, filemap, {add: options["add"]})
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
saber-1.2.3 lib/saber/task/upload.rb
saber-1.2.2 lib/saber/task/upload.rb
saber-1.2.1 lib/saber/task/upload.rb
saber-1.2.0 lib/saber/task/upload.rb