package org.softeg.slartus.forpdaapi.users;/* * Created by slinkin on 10.04.2014. */ import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import org.softeg.slartus.forpdaapi.Forum; import org.softeg.slartus.forpdaapi.IHttpClient; import java.io.IOException; import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; public class UsersApi { /** * Администрация: Админы, суперы,модеры * * @param client * @return * @throws IOException */ public static ArrayList<LeadUser> getLeaders(IHttpClient client) throws IOException { String page = client.performGet("http://4pda.ru/forum/index.php?act=Stats&CODE=leaders"); Document doc = Jsoup.parse(page); ArrayList<LeadUser> res = new ArrayList<>(); Pattern p = Pattern.compile("showuser=(\\d+)", Pattern.CASE_INSENSITIVE); for (Element groupElement : doc.select("div.borderwrap")) { String group = groupElement.select("div.maintitle").first().text().trim(); for (Element trElement : groupElement.select("table.ipbtable").first().select("tr")) { Elements tds = trElement.select("td.row1"); if (tds.size() == 0) continue; Element el = tds.get(0).select("a").first(); Matcher m = p.matcher(el.attr("href")); if (m.find()) { LeadUser user = new LeadUser(m.group(1), el.text()); user.setGroup(group); Elements forumElements = tds.get(1).select("option"); if (forumElements.size() == 0 && "Все форумы".equals(tds.get(1).text())) { user.getForums().add(new Forum("-1", "Все форумы")); } else { for (Element forumEl : forumElements) { if ("-1".equals(forumEl.attr("value"))) continue; user.getForums().add(new Forum(forumEl.attr("value"), forumEl.text())); } } res.add(user); } } } return res; } }