Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require "httparty"
- require "json"
- require 'fileutils'
- $WCLogsKey="ec2448bf160a7b23b16c2f0b4561c6ea"
- $NHBosses = [1849, 1865, 1867, 1872, 1866, 1842, 1871, 1886, 1863, 1862]
- class Guild
- attr_reader :realm
- attr_reader :world_rank
- attr_reader :realm_rank
- def initialize(name,realm,region)
- @name = name
- @realm = realm
- @region = region
- load_jsons
- end
- def inst_file_path; Dir.pwd << "/data/" << "#{@name}-#{@realm}-#{@region}".gsub!(/ /, "_").downcase! << "/" end
- def load_jsons
- @trydata = {reports: {}, }
- Dir.foreach(inst_file_path) {|v| if (v and v.include? ".json")
- file = File.read(inst_file_path + v)
- @trydata[:reports][v.gsub(/.json/,"").to_sym] = JSON.parse(file)
- end
- }
- puts @trydata
- end
- def get_wp_rank
- rspns = HTTParty.get("http://www.wowprogress.com/guild/#{@region}/" << format_realm(@realm,"wp") << "/" << format_gname(@name,"wp") << "/json_rank", verify: false)
- rspns_hash = JSON.parse(rspns)
- @world_rank = rspns_hash["world_rank"]
- @realm_rank = rspns_hash["realm_rank"]
- end
- def get_wcl_report_list
- @report_list = HTTParty.get("http://www.warcraftlogs.com/v1/reports/guild/" << format_gname(@name,"wcl") << "/" << format_realm(@realm,"wcl") <<"/#{@region}?api_key=#$WCLogsKey", verify: false)
- parse_report_list("nh").each{|v| parse_report_for_bosses(v["id"]) unless File.file?(inst_file_path << v["id"] << ".json")}
- end
- def parse_report_list(str)
- case str
- when "nh"
- nh_reports = @report_list.select{|k,v| k["zone"] == 11}
- return nh_reports
- when "tos"
- end
- end
- def parse_report_for_bosses(rid)
- rspns = HTTParty.get("http://www.warcraftlogs.com/v1/report/fights/"<< rid << "?translate=true&api_key=#$WCLogsKey", verify: false)
- fights_table ||= rspns["fights"]
- fights_table.select!{|v| v["difficulty"]} # ==5 for mythic
- save_hash = {fights: fights_table, start: rspns["start"], end: rspns["end"]}
- save_json(@name,@realm,@region,rid,save_hash)
- end
- end
- def format_realm(s,site)
- case site.downcase
- when "wcl"
- return s.gsub(/ /, "-")
- when "wp"
- return s.gsub(/ /, "-")
- end
- end
- def format_gname(s,site)
- case site.downcase
- when "wcl"
- return s.gsub(/ /, "%20")
- when "wp"
- return s.gsub(/ /, "+")
- end
- end
- def create_file(path, extension)
- dir = File.dirname(path)
- unless File.directory?(dir)
- FileUtils.mkdir_p(dir)
- end
- path << ".#{extension}"
- File.new(path, 'w')
- end
- def save_json(name,realm,region,filename,thash)
- create_file(Dir.pwd << "/data/" << "#{name}-#{realm}-#{region}".gsub!(/ /, "_").downcase! << "/#{filename}", "json")
- File.open(Dir.pwd << "/data/" << "#{name}-#{realm}-#{region}".gsub!(/ /, "_").downcase! << "/#{filename}.json","w") do |f|
- f.write(JSON.pretty_generate(thash))
- end
- end
- guilds = {dmtn: Guild.new("Deadly Momentum","twisting nether","eu")}
- guilds[:dmtn].get_wcl_report_list
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement