spansh road to riches to edtools

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/5.3.0/papaparse.min.js"></script>
<label>
Paste https://spansh.co.uk/riches/ csv
<textarea id="input"></textarea>
</label>
<hr>

<label>
https://edtools.cc/expl.php equivalent
<textarea id="output" rows="15"></textarea>
</label>

JavaScript

var input = document.getElementById("input");
var output = document.getElementById("output");

function setOutput(t) {
  output.value = t;
}

function parseSubType(subtype, terraformable) {
  let result = terraformable ? 'T' : '';

  switch (subtype) {
    case 'Earth-like world':
      return 'ELW';
    case 'High metal content world':
      return 'HMC';
    case 'Water world':
      return result + 'WW';
    default:
      return result + subtype;
  }

}

function handleInput() {
  var csv = Papa.parse(input.value.trim(), {
    header: true
  })
  if (csv.errors.length !== 0) {
    setOutput('Error parsing csv\n' + JSON.stringify(csv.errors));
    return;
  }
  let result = "  #   Jump System/Planets\n" +
    "--- ------ ---------------\n";
  for (const [k, row] of Object.entries(csv.data)) {
    result += `  ${parseInt(k)+1}  30.00  ${row["System Name"]}\n`;
    result += `	           ${row["Body Name"].replace(row["System Name"] + ' ', "")} (${row["Distance To Arrival"]}) ${parseSubType(row["Body Subtype"], row["Is Terraformable"])}\n`
  }
  setOutput(result);
}

input.addEventListener('input', handleInput);
input.addEventListener('change', handleInput);