Sha256: d71257b5067c713633e76ee0a4c352cec394519654f6a9b2f522af2e08e7eeeb

Contents?: true

Size: 1.75 KB

Versions: 4

Compression:

Stored size: 1.75 KB

Contents

require 'fileutils'
require 'mimer_plus'

module SContainer
  class Subtitle
    attr_accessor :details, :downloads, :cds, :title, :movie_title, :url
  
    def initialize(args)
      args.keys.each { |name| instance_variable_set "@" + name.to_s, args[name] }
    end
  
    def url
      if @language == :english
        "http://eng.undertexter.se/subtitle.php?id=#{id}"
      else
        "http://undertexter.se/laddatext.php?id=#{id}"
      end
    end
  
    # Downloading the file and saves it disk
    def download!(args = {})
      if args[:to].nil?
        dir = "/tmp"
        file_name = "#{dir}/#{generate_file_name}"
      else
        dir = generate_custom_file_path(args)
        file_name = "#{dir}/#{generate_file_name}"
      end
    
      data = RestClient.get(self.url, :timeout => 10)
      file = File.new(file_name, 'w')
      file.write(data)
      file.close
    
      type = Mimer.identify(file_name)
    
      if type.zip?
        file_ending = ".zip"
      elsif type.rar?
        file_ending = ".rar"
      else
        file_ending = ""
      end
    
      new_file_name = "#{dir}/#{title.gsub(/\s+/, '.')}#{file_ending}"
    
      # Changing the name on the file
      FileUtils.mv(file_name, new_file_name)
    
      # I like return :)
      return new_file_name
    end
  
    private
      def id
        @details.match(/^http:\/\/www\.undertexter\.se\/(\d+)\/$/)[1]
      end
    
      def generate_file_name
        (0...30).map{65.+(rand(25)).chr}.join.downcase
      end
    
      def generate_custom_file_path(args)
        # If the path is relative
        args[:to] = File.expand_path(args[:to]) unless args[:to].match(/^\//)

        # Makes sure that every directory structure looks the same
        Dir.new(args[:to]).path
      end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
undertexter-0.1.12 lib/subtitle.rb
undertexter-0.1.11 lib/subtitle.rb
undertexter-0.1.10 lib/subtitle.rb
undertexter-0.1.9 lib/subtitle.rb