#!/usr/bin/env pike

int main(int argc, array argv) {
  string spells = Stdio.read_file("MagicComm/CCSpellIDs.lua");
  array(int) spellids = ({});
  int spellid;
  constant url = "http://www.wowhead.com/spell=%d"; 
  sscanf(spells, "%*s]]%s-- Spell durations in seconds", spells);
  write("comm.spellIdToDuration = {\n");
  mapping output = ([]);

  while(sscanf(spells, "%*s[%d]%s", spellid, spells) > 1) {
    //  spellids += ({spellid});
    //    write("Found spell ID %d\n", spellid);
    werror("Getting data for spell id %d...\n", spellid);
    string spelldata = Protocols.HTTP.get_url_data(sprintf(url, spellid));
    if(!spelldata) {
      werror("  UNKNOWN SPELL %d\n", spellid);
      continue;
    }
    int duration;
    //    werror("%O\n", array_sscanf(spelldata, "%sDuration<%s><%s>%d second"));
    //    exit(1);
    string scale;

    if(sscanf(spelldata, "%*sDuration<%*s><%*s>%d %s<", duration, scale) == 5) {
      if(scale[..2] == "min") {
	duration = duration * 60;
      }
      output[spellid] = duration;
    } else {
      werror("  Didn't find duration...\n");
    }
    
  }
  foreach(sort(indices(output)), int spellid) {
    write("   [%d] = %d, \n", spellid, output[spellid]);
  }
  write("}\n");
}
