package main;
import java.util.ArrayList;
import dbdao.DBaseManager;
import items.*;
import htmldao.*;
public class UpdateRanking
{
private ArrayList<String> lTablas;
private ArrayList<String> lSQL;
private ArrayList<HTML> lHTML;
private RankingList lRI;
private boolean test;
public UpdateRanking(boolean isReal)
{
test = isReal;
lTablas = new ArrayList<String>();
lTablas.add("moviles");
lTablas.add("smartphone");
lTablas.add("tablets");
lTablas.add("ebook");
lTablas.add("tv");
lTablas.add("portatiles");
lTablas.add("ordenadores");
lTablas.add("impresoras");
lTablas.add("reflex");
lTablas.add("fotos");
lTablas.add("micro");
lTablas.add("frigo");
lTablas.add("lavadoras");
lTablas.add("lavavajillas");
initRanking();
}
public UpdateRanking( ArrayList<String>lTablas , boolean isReal )
{
test = isReal;
this.lTablas = lTablas;
initRanking();
}
private void initRanking()
{
try
{
lHTML = new ArrayList<HTML>();
for( int i=0 ; i<lTablas.size() ; i++ )
{
ArrayList<HTMLtag> alht = new ArrayList<HTMLtag>();
alht.add(new HTMLtag("td","id"));
alht.add(new HTMLtag("td","nota"));
lHTML.add(new HTML("http://localhost/ranking/ranking.php?tabla="+lTablas.get(i),alht));
}
}
catch( Exception e )
{
e.printStackTrace();
}
lRI = new RankingList();
for( int i=0 ; i<lHTML.size() ; i++ )
{
try
{
ArrayList<TagElement> alte = lHTML.get(i).getLElements();
for( int j=0 ; j<alte.get(1).size() ; )
if( alte.get(1).get(j).indexOf('*')>-1 )
{
alte.get(0).remove(j);
alte.get(1).remove(j);
}
else
{
lRI.add(new RankingItem( Integer.parseInt(alte.get(0).get(j)) , Float.parseFloat(alte.get(1).get(j)) , lTablas.get(i) ));
j++;
}
}
catch( Exception e )
{
System.out.println("Pete para la url: " + lHTML.get(i).getURL());
e.printStackTrace();
}
}
lSQL = new ArrayList<String>();
for( int i=0 ; i<lRI.size() ; i++ )
{
lSQL.add(lRI.get(i).getSQL(i));
}
updateDB();
}
private void updateDB()
{
if( !test ) //PRUEBA: mostrar las sentencias SQL
for( int i=0 ; i<lSQL.size() ; i++ )
System.out.println(lSQL.get(i));
else
new DBaseManager().updateElements(lSQL);
}
}