class Gamerom::RepoAdapters::Coolrom
Coolrom
- An adapter for the CoolROM repository website
Constants
- PLATFORM
Public Class Methods
extract_games(platform) { |map { |game_link| game(game_link, region) }| ... }
click to toggle source
# File lib/gamerom/repo_adapters/coolrom.rb, line 47 def self.extract_games(platform) sections.each_with_index do |section, index| page = nokogiri_get("https://coolrom.com.au/roms/#{platform}/#{section}/") regions = page.css('input.region').map { |i| i['name'] } regions.each do |region| game_links = page.css("div.#{region} a") yield game_links.map { |game_link| game(game_link, region) }, index end end end
game(game_link, region)
click to toggle source
# File lib/gamerom/repo_adapters/coolrom.rb, line 58 def self.game(game_link, region) { id: game_link['href'].split('/')[3].to_i, name: game_link.text, region: region, } end
install(game) { |filename| ... }
click to toggle source
# File lib/gamerom/repo_adapters/coolrom.rb, line 66 def self.install(game) agent = Mechanize.new agent.pluggable_parser.default = Mechanize::Download agent.user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36' response = nil agent.progressbar do response = agent.get("https://coolrom.com.au/downloader.php?id=#{game.id}") end return unless response.code.to_i == 200 filename = response.filename FileUtils.mkdir_p(game.filepath) response.save!("#{game.filepath}/#{filename}") yield [filename] end
platforms()
click to toggle source
# File lib/gamerom/repo_adapters/coolrom.rb, line 39 def self.platforms PLATFORM end
sections()
click to toggle source
# File lib/gamerom/repo_adapters/coolrom.rb, line 43 def self.sections ('a'..'z').to_a.unshift('0') end