/*
* Projet : Trustopics
* Version : 0.2.1
* Fichier : WebConnect.java
*/
import java.util.Vector;
public class WebConnect {
private WebParser glb_webFiles;
public WebConnect() {
}
public String[] GetCategories() throws TrustException {
Vector lcl_vecteur = new Vector();
TrustDatas lcl_trustDatas = new TrustDatas();
WebParser lcl_webFiles = new WebParser();
int lcl_indice = 0;
boolean lcl_result;
String lcl_newUrl;
if (lcl_webFiles.LoadPage(lcl_trustDatas.GetDatCategorie(0)))
throw new TrustException("Problème de lecture de la page des catégories.");
while(true) {
lcl_indice ++;
lcl_newUrl = lcl_webFiles.SetParameter(lcl_trustDatas.GetDatCategorie(1),lcl_trustDatas.GetKeyCategorie(),String.valueOf(lcl_indice));
lcl_result = lcl_webFiles.SeekPatternLine(lcl_newUrl,lcl_trustDatas.GetDatCategorie(2));
if (lcl_result) {
break;
}
lcl_vecteur.add(lcl_webFiles.GetPattern());
}
if (lcl_vecteur.size() == 0)
throw new TrustException("Aucune catégorie trouvée.");
return(CopyVectorToTable(lcl_vecteur));
}
public void GetTopicsFile(int prm_categories,int prm_page) throws TrustException {
glb_webFiles = new WebParser();
TrustDatas lcl_trustDatas = new TrustDatas();
String lcl_urlPage;
lcl_urlPage = glb_webFiles.SetParameter(lcl_trustDatas.GetTopicsFile(),lcl_trustDatas.GetKeyCategorie(),String.valueOf(prm_categories));
if (glb_webFiles.LoadPage(glb_webFiles.SetParameter(lcl_urlPage,lcl_trustDatas.GetKeyPage(),String.valueOf(prm_page))))
throw new TrustException("Problème de lecture d'une page de topics (cat=" + prm_categories + ";page=" + prm_page + ").");
}
public String[] GetTopicsMessages() throws TrustException {
Vector lcl_vecteur = new Vector();
TrustDatas lcl_trustDatas = new TrustDatas();
String lcl_lineKeysReplace;
if (glb_webFiles.SeekUrlLines(lcl_trustDatas.GetDatTopic(1),lcl_trustDatas.UrlKeys(lcl_trustDatas.GetDatTopic(1))))
throw new TrustException("Aucune ligne de type URL n'a été trouvée.");
for (int i = 0 ; i < glb_webFiles.GetResultsPage().size() ; i++) {
lcl_lineKeysReplace = glb_webFiles.ReplaceKeys(lcl_trustDatas.GetDatTopic(1),glb_webFiles.GetResultLine(i),lcl_trustDatas.UrlKeys(lcl_trustDatas.GetDatTopic(1)));
if (glb_webFiles.SeekPattern(glb_webFiles.GetResultLine(i),lcl_lineKeysReplace,lcl_trustDatas.GetDatTopic(2)))
throw new TrustException("Un message de la liste des résultats n'a pas été trouvé.");
lcl_vecteur.add(glb_webFiles.GetPattern());
}
if (lcl_vecteur.size() == 0)
throw new TrustException("Aucun message n'a été trouvé.");
return(CopyVectorToTable(lcl_vecteur));
}
public String[] GetTopicsValues() throws TrustException {
Vector lcl_vecteur = new Vector();
TrustDatas lcl_trustDatas = new TrustDatas();
String lcl_topicValue;
if (glb_webFiles.SeekUrlLines(lcl_trustDatas.GetDatTopic(1),lcl_trustDatas.UrlKeys(lcl_trustDatas.GetDatTopic(1))))
throw new TrustException("Aucune ligne de type URL n'a été trouvée.");
for (int i = 0 ; i < glb_webFiles.GetResultsPage().size() ; i++) {
lcl_topicValue = glb_webFiles.GetParameter(glb_webFiles.GetResultLine(i),lcl_trustDatas.GetKeyTopic());
lcl_vecteur.add(lcl_topicValue);
}
if (lcl_vecteur.size() == 0)
throw new TrustException("Aucun numéro de topic n'a été trouvé.");
return(CopyVectorToTable(lcl_vecteur));
}
public String[] GetTopicsAnswers() throws TrustException {
Vector lcl_vecteur = new Vector();
TrustDatas lcl_trustDatas = new TrustDatas();
int lcl_indice,j;
boolean lcl_result;
if (glb_webFiles.SeekUrlLines(lcl_trustDatas.GetDatTopic(1),lcl_trustDatas.UrlKeys(lcl_trustDatas.GetDatTopic(1))))
throw new TrustException("Aucune ligne de type URL n'a été trouvée.");
for (int i = 0 ; i < glb_webFiles.GetIndicesResultsPage().size() ; i++) {
lcl_indice = Integer.valueOf(glb_webFiles.GetIndicesResultLine(i)).intValue();
for (j = lcl_indice ; j < glb_webFiles.GetPage().size() ; j++ ) {
lcl_result = glb_webFiles.SeekPattern(glb_webFiles.GetPageLine(j),lcl_trustDatas.GetDatAnswer(1),lcl_trustDatas.GetDatAnswer(2));
if (!lcl_result) {
lcl_vecteur.add(glb_webFiles.GetPattern());
break;
}
}
if (j == glb_webFiles.GetPage().size())
throw new TrustException("Un nombre de réponse de la liste des résultats n'a pas été trouvé.");
}
if (lcl_vecteur.size() == 0)
throw new TrustException("Aucun nombre de réponse n'a été trouvé.");
return(CopyVectorToTable(lcl_vecteur));
}
public String[] GetTopicsViews() throws TrustException {
Vector lcl_vecteur = new Vector();
TrustDatas lcl_trustDatas = new TrustDatas();
int lcl_indice,j;
boolean lcl_result1,lcl_result2;
if (glb_webFiles.SeekUrlLines(lcl_trustDatas.GetDatTopic(1),lcl_trustDatas.UrlKeys(lcl_trustDatas.GetDatTopic(1))))
throw new TrustException("Aucune ligne de type URL n'a été trouvée.");
for (int i = 0 ; i < glb_webFiles.GetIndicesResultsPage().size() ; i++) {
lcl_indice = Integer.valueOf(glb_webFiles.GetIndicesResultLine(i)).intValue();
for (j = lcl_indice ; j < glb_webFiles.GetPage().size() ; j++ ) {
lcl_result1 = glb_webFiles.SeekPattern(glb_webFiles.GetPageLine(j),lcl_trustDatas.GetDatAnswer(1),lcl_trustDatas.GetDatAnswer(2));
lcl_result2 = glb_webFiles.SeekPattern(glb_webFiles.GetPageLine(j+1),lcl_trustDatas.GetDatView(1),lcl_trustDatas.GetDatView(2));
if (!lcl_result1 && !lcl_result2) {
lcl_vecteur.add(glb_webFiles.GetPattern());
break;
}
}
if (j == glb_webFiles.GetPage().size())
throw new TrustException("Un nombre de vue de la liste des résultats n'a pas été trouvé.");
}
if (lcl_vecteur.size() == 0)
throw new TrustException("Aucun nombre de vue n'a été trouvé.");
return(CopyVectorToTable(lcl_vecteur));
}
public String[] GetTopicsAuthors() throws TrustException {
Vector lcl_vecteur = new Vector();
TrustDatas lcl_trustDatas = new TrustDatas();
int lcl_indice,j;
boolean lcl_result;
if (glb_webFiles.SeekUrlLines(lcl_trustDatas.GetDatTopic(1),lcl_trustDatas.UrlKeys(lcl_trustDatas.GetDatTopic(1))))
throw new TrustException("Aucune ligne de type URL n'a été trouvée.");
for (int i = 0 ; i < glb_webFiles.GetIndicesResultsPage().size() ; i++) {
lcl_indice = Integer.valueOf(glb_webFiles.GetIndicesResultLine(i)).intValue();
for (j = lcl_indice ; j < glb_webFiles.GetPage().size() ; j++ ) {
lcl_result = glb_webFiles.SeekPattern(glb_webFiles.GetPageLine(j),lcl_trustDatas.GetDatTopicAuthor(1),lcl_trustDatas.GetDatTopicAuthor(2));
if (!lcl_result) {
lcl_vecteur.add(glb_webFiles.GetPattern());
break;
}
}
if (j == glb_webFiles.GetPage().size())
throw new TrustException("Un auteur de topic de la liste des résultats n'a pas été trouvé.");
}
if (lcl_vecteur.size() == 0)
throw new TrustException("Aucun auteur de topic n'a été trouvé.");
return(CopyVectorToTable(lcl_vecteur));
}
public String[] GetTopicsAnswersAuthors() throws TrustException {
Vector lcl_vecteur = new Vector();
TrustDatas lcl_trustDatas = new TrustDatas();
String lcl_lineKeysReplace;
int lcl_testValue;
boolean lcl_testValueOk;
if (glb_webFiles.SeekUrlLines(lcl_trustDatas.GetDatAnswerAuthor(1),lcl_trustDatas.UrlKeys(lcl_trustDatas.GetDatAnswerAuthor(1))))
throw new TrustException("Aucune ligne de type URL n'a été trouvée.");
for (int i = 0 ; i < glb_webFiles.GetResultsPage().size() ; i++) {
lcl_lineKeysReplace = glb_webFiles.ReplaceKeys(lcl_trustDatas.GetDatAnswerAuthor(1),glb_webFiles.GetResultLine(i),lcl_trustDatas.UrlKeys(lcl_trustDatas.GetDatAnswerAuthor(1)));
if (glb_webFiles.SeekPattern(glb_webFiles.GetResultLine(i),lcl_lineKeysReplace,lcl_trustDatas.GetDatAnswerAuthor(2)))
throw new TrustException("Un auteur du dernier message de la liste des résultats n'a pas été trouvé.");
lcl_testValueOk = false;
try { lcl_testValue = Integer.valueOf(glb_webFiles.GetPattern()).intValue(); }
catch(NumberFormatException err) { lcl_testValueOk = true; }
if (lcl_testValueOk == true) lcl_vecteur.add(glb_webFiles.GetPattern());
}
if (lcl_vecteur.size() == 0)
throw new TrustException("Aucun auteur du dernier message n'a été trouvé.");
return(CopyVectorToTable(lcl_vecteur));
}
private String[] CopyVectorToTable(Vector prm_vecteur) {
String lcl_table[] = new String[prm_vecteur.size()];
for (int i = 0 ; i < prm_vecteur.size() ; i++) {
lcl_table[i] = (String)prm_vecteur.elementAt(i);
}
return(lcl_table);
}
}