Class: JVCVideo

Inherits:
Object
  • Object
show all
Defined in:
lib/JVCVideo.rb

Instance Method Summary collapse

Constructor Details

#initialize(url, output, logger, no_download) ⇒ JVCVideo

Returns a new instance of JVCVideo.



6
7
8
9
10
11
12
# File 'lib/JVCVideo.rb', line 6

def initialize(url, output, logger, no_download)
  @no_download = no_download
  @logger = logger
  @logger.info("Initializing URL Builder.".colorize(:green))
  @url_parts = url.split(".")
  @output = output
end

Instance Method Details

#get1080Object



33
34
35
36
37
# File 'lib/JVCVideo.rb', line 33

def get1080
  url = "http://video1080.jeuxvideo.#{@url_parts[2]}.mp4"
  @logger.info("Final url: #{url}".colorize(:green))
  save_video(url) unless @no_download
end

#get272Object



53
54
55
56
57
58
# File 'lib/JVCVideo.rb', line 53

def get272
  url = "http://video.jeuxvideo.#{@url_parts[2]}.mp4"
  url.gsub!('1080p', 'low')
  @logger.info("Final url: #{url}".colorize(:green))
  save_video(url) unless @no_download
end

#get400Object



46
47
48
49
50
51
# File 'lib/JVCVideo.rb', line 46

def get400
  url = "http://videohq.jeuxvideo.#{@url_parts[2]}.mp4"
  url.gsub!('1080p', 'high')
  logger.info("Final url: #{url}".colorize(:green))
  save_video(url) unless @no_download
end

#get720Object



39
40
41
42
43
44
# File 'lib/JVCVideo.rb', line 39

def get720
  url = "http://video720.jeuxvideo.#{@url_parts[2]}.mp4"
  url.gsub!('1080p', '720p')
  @logger.info("Final url: #{url}".colorize(:green))
  save_video(url) unless @no_download
end

#save_video(url) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/JVCVideo.rb', line 14

def save_video(url)
  filename = URI(url).path.split('/').last

  if ::File.exist?(::File.join(@output, filename))
    @logger.warn("File already exist.. Adding random number in path".colorize(:yellow))
    fullpath = ::File.join(@output, "#{rand(5000).to_s}-#{filename}")
  else
    fullpath = ::File.join(@output, filename)
  end

  @logger.info("Saving #{filename} to #{fullpath}...".colorize(:green))

  open(fullpath, 'wb') do |file|
    file.print open(url).read
  end

  @logger.info('Done!'.colorize(:green))
end