Created
October 30, 2016 12:43
-
-
Save Artefact2/2a9c541bd21fb8bdba50a4359a8386ba to your computer and use it in GitHub Desktop.
DNA to list of required skills
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* Author: Romain Dal Maso <[email protected]> | |
* | |
* This program is free software. It comes without any warranty, to the | |
* extent permitted by applicable law. You can redistribute it and/or | |
* modify it under the terms of the Do What The Fuck You Want To Public | |
* License, Version 2, as published by Sam Hocevar. See | |
* http://sam.zoy.org/wtfpl/COPYING for more details. */ | |
if($argc !== 2) { | |
fprintf(STDERR, "Usage: %s <dna-string>\n", $argv[0]); | |
die(1); | |
} | |
$dna = $argv[1]; | |
/* XXX: cache this, obviously */ | |
$csvattribs = explode("\n", shell_exec('curl -s "https://www.fuzzwork.co.uk/dump/latest/dgmTypeAttributes.csv.bz2" | bunzip2')); | |
$rs = [ | |
182 => 277, /* RequiredSkill1 => RequiredSkill1Level */ | |
183 => 278, /* etc… */ | |
184 => 279, | |
1285 => 1286, | |
1289 => 1287, | |
1290 => 1288, | |
]; | |
$iattr = array_flip(array_merge(array_keys($rs), array_values($rs))); | |
$attribs = []; | |
foreach($csvattribs as $row) { | |
if($row === '') continue; | |
list($typeid, $attributeid, $valint, $valfloat) = explode(",", $row); | |
if(isset($iattr[$attributeid])) { | |
$val = ($valint === 'None') ? floatval($valfloat) : intval($valint); | |
if(!$val) continue; | |
$attribs[$typeid][$attributeid] = $val; | |
} | |
} | |
$requirements = []; | |
foreach(explode(':', $dna) as $dnap) { | |
if($dnap === '') continue; | |
$typeid = explode(';', $dnap, 2)[0]; | |
foreach($rs as $s => $sl) { | |
if(!isset($attribs[$typeid][$s])) continue; | |
$s = $attribs[$typeid][$s]; | |
$sl = $attribs[$typeid][$sl]; | |
$l = $requirements[$s] ?? 0; | |
$requirements[$s] = max($l, $sl); | |
} | |
} | |
echo json_encode($requirements, JSON_PRETTY_PRINT)."\n"; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment