class Kmc::DownloadUrl
Public Instance Methods
box?()
click to toggle source
# File lib/kmc/download_url.rb, line 27 def box? url =~ /app\.box\.com/ end
curseforge?()
click to toggle source
# File lib/kmc/download_url.rb, line 35 def curseforge? url =~ /curseforge/ end
dropbox?()
click to toggle source
# File lib/kmc/download_url.rb, line 31 def dropbox? url =~ /dropbox\.com/ end
has_known_resolver?()
click to toggle source
# File lib/kmc/download_url.rb, line 19 def has_known_resolver? mediafire? || box? || dropbox? || curseforge? end
mediafire?()
click to toggle source
# File lib/kmc/download_url.rb, line 23 def mediafire? url =~ /mediafire/ end
resolve_download_url()
click to toggle source
# File lib/kmc/download_url.rb, line 5 def resolve_download_url if mediafire? extract_mediafire_url elsif box? extract_box_url elsif dropbox? extract_dropbox_url elsif curseforge? extract_curseforge_url else url end end
Private Instance Methods
box_intermediate_url(shared_name, file_id)
click to toggle source
# File lib/kmc/download_url.rb, line 62 def box_intermediate_url(shared_name, file_id) base = "https://app.box.com/index.php?rm=box_download_shared_file" shared_name_part = "&shared_name=#{shared_name}" file_id_part = "&file_id=#{file_id}" base + shared_name_part + file_id_part end
extract_box_url()
click to toggle source
# File lib/kmc/download_url.rb, line 53 def extract_box_url raw_html = HTTParty.get(url) shared_name = url.split("/").last file_id = raw_html.scan(/itemTypedID: \"(f_\d+)\"/)[0][0] box_intermediate_url(shared_name, file_id) end
extract_curseforge_url()
click to toggle source
# File lib/kmc/download_url.rb, line 49 def extract_curseforge_url rendered_html("#{url}/files/latest").strip end
extract_dropbox_url()
click to toggle source
# File lib/kmc/download_url.rb, line 45 def extract_dropbox_url rendered_page.css('#default_content_download_button').first['href'] end
extract_mediafire_url()
click to toggle source
# File lib/kmc/download_url.rb, line 41 def extract_mediafire_url rendered_page.css('.download_link a').first['href'] end
rendered_html(url)
click to toggle source
# File lib/kmc/download_url.rb, line 74 def rendered_html(url) Dir.chdir(File.dirname(__FILE__)) do `phantomjs page_fetcher.js #{url}` end end
rendered_page(url = self.url)
click to toggle source
# File lib/kmc/download_url.rb, line 70 def rendered_page(url = self.url) Nokogiri::HTML(rendered_html(url)) end