package it.fdev.scraper.esse3;
import it.fdev.unisaconnect.data.Pagamenti;
import it.fdev.unisaconnect.data.Pagamenti.Pagamento;
import it.fdev.unisaconnect.data.SharedPrefDataManager;
import it.fdev.utils.Utils;
import java.io.IOException;
import java.util.ArrayList;
import org.jsoup.HttpStatusException;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import android.R.integer;
import android.content.Context;
import android.util.Log;
public class Esse3PagamentiScraper extends Esse3BasicScraper {
public final String pagamentiURL = "https://esse3web.unisa.it/unisa/auth/studente/Tasse/ListaFatture.do";
public Esse3PagamentiScraper(Context context, SharedPrefDataManager dataManager, String base64login, String broadcastID) {
super(context, dataManager, base64login, broadcastID);
}
@Override
public LoadStates startScraper() {
try {
Pagamenti pagamenti = scraperStepPagamenti();
if (pagamenti != null) {
mDataManager.setPagamenti(pagamenti);
// dataManager.saveData();
}
return LoadStates.FINISHED;
// return LoadStates.NO_DATA;
} catch (HttpStatusException e) {
Log.d(Utils.TAG, "Damn");
Log.w(Utils.TAG, "ERROR ", e);
int code = e.getStatusCode();
if (code == 401)
return LoadStates.WRONG_DATA;
else
return LoadStates.UNKNOWN_PROBLEM;
} catch (Exception e) {
Log.d(Utils.TAG, "Damn1");
Log.w(Utils.TAG, "ERROR ", e);
return LoadStates.UNKNOWN_PROBLEM;
}
}
private Pagamenti scraperStepPagamenti() throws HttpStatusException, IOException, InterruptedException {
Document document = scraperGetUrl(pagamentiURL);
if (document == null) {
return null;
}
ArrayList<Pagamento> pagamentiList = new ArrayList<Pagamento>();
Elements pnpElement = document.getElementsMatchingOwnText("Pagamento non pervenuto");
if (pnpElement.size() < 1) {
return null;
}
Element row = pnpElement.first().parent();
while (row != null && !"tr".equalsIgnoreCase(row.tagName())) {
row = row.parent();
}
if (row == null) {
return null;
}
Pagamento pagamento = null;
row = row.nextElementSibling();
while (row != null && ! row.classNames().contains("tplTitolo")) {
Elements cells = row.getElementsByTag("td");
if (cells.size() == 7) {
String pagamentoScadenza = cells.get(4).text();
String pagamentoCausale = cells.get(3).text();
String pagamentoImporto = cells.get(5).text();
pagamento = new Pagamento(pagamentoCausale.trim(), pagamentoImporto.trim(), pagamentoScadenza.trim());
pagamentiList.add(pagamento);
} else if (cells.size() == 1 && pagamento != null) {
String pagamentoCausale = cells.get(0).text();
pagamento.addCausale(pagamentoCausale.trim());
}
row = row.nextElementSibling();
}
return new Pagamenti(pagamentiList);
}
}