package plugins; import com.gargoylesoftware.htmlunit.WebClient; import com.gargoylesoftware.htmlunit.html.*; import java.io.IOException; public class ShmupClient { private WebClient webClient; public ShmupClient() { webClient = new WebClient(); } public String getLoginById(Long id) { try { authenticate("anzymus", "xedy4bsa"); HtmlPage page = webClient.getPage("http://forum.shmup.com/memberlist.php?mode=viewprofile&u=" + id); String textContent = page.getBody().getTextContent(); return this.parse(textContent); } catch (IOException e) { throw new IllegalStateException(e); } } private void authenticate(String login, String password) throws IOException { HtmlPage loginPage = webClient.getPage("http://forum.shmup.com"); HtmlForm loginForm = fillForm(loginPage, login, password); submitForm(loginForm); } private HtmlForm fillForm(HtmlPage loginPage, String login, String password) { HtmlForm loginForm = loginPage.getForms().get(0); HtmlPasswordInput passwordTextfield = loginForm.getInputByName("password"); passwordTextfield.setValueAttribute(password); HtmlTextInput loginTextfield = loginForm.getInputByName("username"); loginTextfield.setValueAttribute(login); return loginForm; } private String submitForm(HtmlForm loginForm) throws IOException { HtmlSubmitInput submitButton = loginForm.getInputByName("login"); HtmlPage resultPage = submitButton.click(); return resultPage.asText(); } String parse(String page) { return page.split("Nom d’utilisateur:")[1].split("\n")[0]; } }