位置:首页 > 下载工具 > 高速iDuel卡图下载工具
高速iDuel卡图下载工具

高速iDuel卡图下载工具

6828人下载  |  
9.5
  • 安全认证
  • 绿色无毒
  • 无广告
安全下载 普通下载

若使用应用宝app下载目标软件,下载更安全

您可能还喜欢 “ 好玩的日系动漫风格游戏排行榜

iDuel自带的卡图下载工具慢到不能忍...于是自己写了个
高速iDuel卡图下载工具只有一个功能 就是下载/更新卡图
下载速度应该能占满带宽

高速iDuel卡图下载工具_wishdown.com
 

需要放到 OCG联网决斗模拟软件(iDuel) 目录下。

实现代码:#encoding: UTF-8
if !File.file? 'data/allcards.dll'
puts "请放到iDuel目录下运行"
exit
end

cards = IO.readLINEs('data/allcards.dll').size / 2
puts "卡片总计 #{cards} 张"

if File.file? 'data/config.ini'
require 'inifile'
config = IniFile.new IO.read('data/config.ini', mode: 'rb:BOM|UTF-16LE:UTF-8')
path = config['Config'] && config['Config']['CardImagePath']
end

if !path or !File.directory? path
require 'win32/registry'
path = Win32::Registry::HKEY_CURRENT_USER.open('Software\OCGSOFT\Cards') { |reg| reg['Path'] } rescue ''
path.force_encoding(Encoding::GBK).encode!(Encoding::UTF_8)
end

if !path or !File.directory? path
Dir.mkdir 'data' unless File.directory? 'data'
path = 'data/image'
end

puts "本地卡图路径 #{path}"
Dir.mkdir path unless File.directory? path

def batch_download(main_url, files, content_type=nil)
connections = {}
count = {total: files.size, error: 0}
[10*100, files.size].min.times { do_download(main_url, files, content_type, count, connections) }
end

def do_download(main_url, files, content_type, count, connections)
if connections.size < 10
connection = EventMachine::HttpRequest.new(main_url)
connections[connection] = 0
else
connection = connections.min_by { |key, value| value }
if connection[1] >= 100
return
else
connection = connection[0]
end
end
remote_path, local_path = files.shift
connections[connection] += 1
connection.get(path: remote_path, keepalive: connections[connection] != 100).callback { |http|
puts File.basename local_path
count[:error] = 0
count[:total] -= 1
if http.response_header['CONNECTION'] != 'keep-alive'
connection.close
connections.delete(connection)
do_download(main_url, files, content_type, count, connections) while !files.empty? and (connections.size < 10 or connections.values.min < 100)
end

if http.response_header.status == 200 and (!content_type or http.response_header['CONTENT_TYPE'] == content_type)
IO.binwrite local_path, http.response
else
puts http.response_header.http_status
end

if count[:total].zero?
connections.each_key { |connection| connection.close }
connections.clear
puts 'all done'
EM.stop
end
}.errback { |http|
puts http.error
connection.close
connections.delete(connection)
files[remote_path] = local_path
count[:error] += 1
if count[:error] <= 10*100
do_download(main_url, files, content_type, count, connections) while !files.empty? and (connections.size < 10 or connections.values.min < 100)
else
connections.each_key { |connection| connection.close }
connections.clear
puts 'network error'
EM.stop
end
}
end

cards_to_download = (1..cards).to_a - Dir.glob(File.expand_path '*.jpg', path).collect { |file| File.basename(file, '.jpg').to_i }


puts "需要下载 #{cards_to_download.size} 张"

exit if cards_to_download.empty?

#monkey patch for exerb & addressable
if defined? ExerbRuntime
require 'stringio'
module Addressable
module IDNA
module File
class <<self
def join(*args)
end
def expand_path(*args)
end
def dirname(*args)
end
def open(*args)
result = ExerbRuntime.open('unicode.data')
if block_given?
begin
yield result
ensure
result.close
end
end
end
end
end
end
end
end

require 'em-http-request'
EventMachine.run do
http = EventMachine::HttpRequest.new('http://p.ocgsoft.cn/:osid.jpg').get redirects: 10
http.callback { |http|
main_url = http.last_effective_url
puts "获取卡图下载地址: #{main_url}"
files = {}
cards_to_download.each { |card_id| files[main_url.path.gsub(':osid', card_id.to_s)] = File.join(path, card_id.to_s + '.jpg') }
batch_download(main_url.to_s, files, 'image/jpeg')
}
end

所属类别:下载工具 语言类型:简体/繁体 应用大小:4.2 MB 更新时间:2013-11-01 运行环境:WinXP/Win7/Winall 官网链接:Home Page
更多>

相关礼包

更多>

同类佳作

更多>

近期新游

更多>

精选专题

更多>

话题问答

更多>

火爆专区

  • 倩女幽魂手游专区
    倩女幽魂手游专区 5033在看

    倩女幽魂手游专区

    倩女幽魂手游是网易雷火工作室出品的即时制角色扮演游戏。玩家在游戏里不断地进行战斗,各种精彩的系统任务让你畅爽玩,加入帮会师徒,带领你的师兄弟一起来战斗吧!下面是心愿游戏小编给大家整理带来的倩女幽魂手游攻略、礼包码、手游下载等等!
  • 忘川风华录专区
    忘川风华录专区 2069在看

    忘川风华录专区

    忘川风华录是一款非常好玩特别有趣的武侠类型的RPG动作竞技手游,游戏的整体氛围都充满着淳朴的国风古韵气息,顶尖的艺术刻画手法,为这个世界带来了一场精致幻想的梦境视觉感受!心愿游戏小编此次为大家准备了忘川风华录专区,里面包含了忘川风华录下载、攻略、合集等等相关栏目。更多精彩,尽在心愿游戏网!
  • 江湖悠悠专区
    江湖悠悠专区 5943在看

    江湖悠悠专区

    《江湖悠悠》是一款创新型佛系放置的养成游戏。这款游戏并不会占据你过多时间,但如果你能随着音乐静下来,你会更好的感受到这个江湖世界的温度,你会发现他不同于你别处所见,他有自己的性格。心愿游戏小编此次为大家准备了江湖悠悠专区,里面包含了江湖悠悠下载、攻略、合集等等相关栏目。更多精彩,尽在心愿游戏网!
更多>

最新资讯

请输入您的预约手机号码

已经有10498人预约