Browse Source

Profession stats

master
aeris 9 months ago
parent
commit
ef92ac0ec5
1 changed files with 38 additions and 0 deletions
  1. +38
    -0
      professions.rb

+ 38
- 0
professions.rb View File

@@ -0,0 +1,38 @@
#!/usr/bin/env ruby
require 'amazing_print'
require 'date'
require 'zlib'
require 'oj'
require_relative 'config.rb'

reports = ARCDPS_BOSSES.fetch(:raids).collect do |boss|
Dir["html/*_#{boss}_*.json.gz"].collect do |file|
name = File.basename file
date, boss, *_ = name.split '_'
date = date.sub '-', ''
date = DateTime.parse date
[file, date, boss]
end.group_by { |_, date, boss| [date.to_date, boss] }
.to_h
.transform_values { |v| v.sort { |a, b| a[1] <=> b[1] }.first }
.collect { |_, v| v.first }
end.flatten(1)

count = reports.count
puts "#{count} reports"

reports = reports.collect do |file|
json = File.open file do |fid|
json = Zlib::GzipReader.new fid
Oj.load json.read
end
json.fetch('players').collect { |p| p.fetch('profession') }
end.flatten(1)

count = reports.count
reports = reports.inject(Hash.new 0) { |h, e| h[e] += 1; h }
.sort { |a, b| b.last <=> a.last }
.to_h
.transform_values { |c| "#{c} (#{(c.to_f/count*100).round(2)}%)" }

ap reports

Loading…
Cancel
Save