package org.techbooster.app.abc.loaders; import android.content.Context; import com.android.volley.VolleyError; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import org.techbooster.app.abc.consts.UrlConsts; import org.techbooster.app.abc.models.BazaarEntry; import org.techbooster.app.abc.tools.VolleyManager; import java.util.ArrayList; import java.util.List; public class BazaarEntryLoader { public interface Listener { public void onSuccess(List<BazaarEntry> entries); public void onError(VolleyError error); } private VolleyManager mVolleyManager; public BazaarEntryLoader(Context context) { mVolleyManager = VolleyManager.getInstance(context); } public void getEntries(final Listener listener) { mVolleyManager.get(UrlConsts.BAZAAR_ENTRY_URL, new VolleyManager.ResponseListener() { @Override public void onResponse(String body) { List<BazaarEntry> entries = new ArrayList<BazaarEntry>(); Document document = Jsoup.parse(body); Elements elements = document.select("table"); for(Element element : elements){ BazaarEntry entry = new BazaarEntry(); Elements trs = element.select("tr"); if(trs.size() >= 3){ entry.setName(trs.get(0).text()); entry.setTitle(trs.get(1).text()); Element summary = trs.get(2); entry.setSummary(summary.text()); Elements a = summary.select("a"); if(!a.isEmpty()){ entry.setUrl(a.attr("href")); } } entries.add(entry); } listener.onSuccess(entries); } @Override public void onError(VolleyError error) { listener.onError(error); } }); } }