## 2017-12-20 parseHomepageFromEcoop

```javascript
/*globals that $morph _ */ 

Array.from(that.querySelectorAll("img")).map(ea => 
  ea.parentElement && ea.parentElement.parentElement && ea.parentElement.parentElement.remove() )
Array.from(that.querySelectorAll("p")).forEach(ea => ea.style.border = "1px solid gray")

function yearToTable(year) {
  return Array.from($morph("COP" + year).querySelectorAll("p")).map(ea => {
    var links = ea.querySelectorAll("a")
    return {
      name: links[0] && links[0].textContent,
      href: links[0] && links[0].href,
      affiliation: links[1] && links[1].textContent,
      year: year
    } 
  })
}

var all = yearToTable(2015).concat(yearToTable(2016)).concat(yearToTable(2017)) 
_.sortBy(all, ea => ea.name)


async function parseHomepageFromEcoop(url) {
  var t = await fetch(url).then(ea => ea.text())
  var div = document.createElement("div")
  div.innerHTML = t
  var result = new Object()
  Array.from(div.querySelectorAll("p")).forEach(ea => {
    var label = ea.querySelector("strong")
    if (label) {
      result[label.textContent.replace(/:/,"")] = ea.textContent.replace(label.textContent,"").replace(/^ ?/, "")
    }
  })
  return result
}

(async () => {
  for (let ea of all) {
    if (ea.href) {
      var details = await parseHomepageFromEcoop(ea.href)
      ea.website = details["Personal website"]
      ea.affiliation2 = details["Affiliation"]
      ea.interests = details["Research interests"]
      ea.country = details["Country"]
      lively.notify("found " + details["Name"])
    }
  }
})()

$morph('COPTable').setFromJSO(
  _.sortBy(Object.values(_.groupBy(all, ea => ea.name)).map(ea => {
    return {
    name: ea[0].name,
    website: _.last(ea).website,  
    country: _.last(ea).country,  
    affiliation: _.last(ea).affiliation,
    years: ea.map(ea => ea.year)
  }}), ea => ea.name))  



parseHomepageFromEcoop("https://2015.ecoop.org/profile/carlfriedrichbolz")


```


<lively-table tabindex="0" id="COPTable"><table><tbody><tr><th style="width: 40px">name</th><th style="width: 40px" class="" contenteditable="false">website</th><th style="width: 40px">country</th><td>affiliation</td><td>years</td></tr>
<tr><td class="">Atsushi Igarashi</td><td class="">http://www.fos.kuis.kyoto-u.ac.jp/~igarashi/</td><td>Japan</td><td>Kyoto University</td><td>2015,2016</td></tr>
<tr><td>Carl Friedrich Bolz-Tereick</td><td class="">http://cfbolz.de</td><td></td><td>King's College
London</td><td>2015</td></tr>
<tr><td>Coen De Roover</td><td>http://soft.vub.ac.be/~cderoove/</td><td>Belgium</td><td>Vrije
Universiteit Brussel</td><td>2015,2016</td></tr><tr><td>Dave Clarke</td><td></td><td class=""></td><td>Uppsala Univ.
 Sweden and KU Leuvern</td><td>2016,2017</td></tr><tr><td>David H. Lorenz</td><td class="">http://www.cs.technion.ac.il/people/dhlorenz/</td><td></td><td>Open University
and Technion IIT</td><td>2015</td></tr><tr><td>Didier Verna</td><td>http://www.lrde.epita.fr/~didier/</td><td>France</td><td>EPITA / LRDE</td><td>2016</td></tr><tr><td>Friedrich Steimann</td><td>http://www.fernuni-hagen.de/ps/team/friedrich.steimann.shtml</td><td></td><td>Fernuniversität</td><td>2015</td></tr><tr><td>Gorel Hedin</td><td>http://cs.lth.se/gorel_hedin</td><td>Sweden</td><td>Lund University</td><td>2016</td></tr><tr><td>Guido Salvaneschi</td><td class="table-selected start-selection" contenteditable="true">http://www.guidosalvaneschi.com/</td><td></td><td>TU Darmstadt</td><td>2015,2016,2017</td></tr><tr><td>Harold Ossher</td><td></td><td>United States</td><td>IBM Thomas J.
 Watson Research Center</td><td>2015,2016,2017</td></tr><tr><td>Harumi Watanabe</td><td class=""></td><td>Japan</td><td>Tokai University</td><td>2017</td></tr><tr><td>Hidehiko Masuhara</td><td>http://prg.is.titech.ac.jp/people/masuhara/</td><td></td><td>Tokyo Institute
of Technology</td><td>2015,2016</td></tr><tr><td class="">Jens Lincke</td><td></td><td></td><td>Hasso Plattner
 Institute</td><td>2015,2016,2017</td></tr><tr><td class="">Kim Mens</td><td>http://www.uclouvain.be/kim.mens</td><td>Belgium</td><td>Université Catholique de Louvain,
Belgium</td><td>2016</td></tr><tr><td>Lionel Seinturier</td><td></td><td></td><td>University of
 Lille, Lille, France</td><td>2017</td></tr><tr><td>Mario Südholt</td><td class="">http://www.emn.fr/z-info/sudholt/</td><td></td><td>IMT Atlantique,
 Nantes, France</td><td>2016,2017</td></tr><tr><td>Matteo Pradella</td><td></td><td></td><td>Politecnico di
 Milano, Italy</td><td>2017</td></tr><tr><td>Matthias Springer</td><td>http://m-sp.org</td><td>Germany</td><td>Tokyo Institute
 of Technology</td><td>2017</td></tr><tr><td>Naoyasu Ubayashi</td><td>http://posl.ait.kyushu-u.ac.jp/~ubayashi/</td><td></td><td>Kyushu University</td><td>2015</td></tr><tr><td>Nicolás Cardozo</td><td class="">https://profesores.virtual.uniandes.edu.co/ncardozo/</td><td>Colombia</td><td>Universidad de
 los Andes</td><td>2015,2017</td></tr><tr><td>Pierpaolo Degano</td><td>http://www.di.unipi.it/~degano/</td><td></td><td>University of
Pisa</td><td>2016</td></tr><tr><td>Robert Hirschfeld</td><td>http://www.hirschfeld.org/</td><td>Germany</td><td>HPI</td><td>2015,2016</td></tr><tr><td>Rocco De Nicola</td><td>http://cse.lab.imtlucca.it/~denicola/</td><td></td><td>IMT Institute for
Advanced Studies Lucca, Italy</td><td>2016</td></tr><tr><td>Somayeh Malakuti</td><td>www.somayehmalakuti.com</td><td></td><td>Technical
University of Dresden</td><td>2015</td></tr><tr><td class="">Stefan Marr</td><td>http://stefan-marr.de/research/</td><td>Austria</td><td>Johannes Kepler
 University Linz</td><td>2017</td></tr><tr><td class="">Tetsuo Kamina</td><td>http://www.fse.cs.ritsumei.ac.jp/~kamina/</td><td>Japan</td><td>Ritsumeikan
 University</td><td>2015,2016,2017</td></tr><tr><td class="">Thomas Springer</td><td></td><td class=""></td><td></td><td>2017</td></tr><tr><td>Tijs van der Storm</td><td>http://www.cwi.nl</td><td>Netherlands</td><td>CWI &amp;
 University of Groningen</td><td>2017</td></tr><tr><td>Tomoyuki Aotani</td><td>https://taotani.wordpress.com/</td><td class=""></td><td>Tokyo Institute
 of Technology</td><td>2015,2016,2017</td></tr><tr><td>Walter Cazzola</td><td>http://cazzola.di.unimi.it/</td><td class="">Italy</td><td>Università degli
 Studi di Milano</td><td>2017</td></tr></tbody></table></lively-table>