Hallo liebe Gemeinde.
Ich habe folgendes Problem.
Ich habe ein Programm welches Links ausliest und diese dann im Firefox öffnet.
Hier ne kurze Beschreibung wie das abläuft:
1. Ich trage die Links in eine Textdatei ein damit das Prog weiß wie die zu öffnenden Links aussehen müssen.
2. Ich rufe über das Firefoxaddon simplemail meine Emails ab.
3. Ich starte das Programm und es öffnet mir alle Links.
Soweit ist das ja schonmal toll. Allerdings würde ich mir wünschen das das Prog die Links alphabetisch sortiert aufruft.
Und nun die Frage ob jemand von euch mir das Prog umschreiben würde.
Ich kann mir nicht vorstellen das das sonderlich viel Aufwand ist aber ich selbst habe halt leider keine Ahnung davon.
Danke schonmal im vorraus.
Wenn ihr noch was braucht dann sagt es einfach.
MfG
matze
| Code: |
package de.PaidMailClicker.api;
import java.awt.Desktop;
import java.awt.HeadlessException;
import java.io.*;
import java.util.*;
import javax.swing.JFileChooser;
public class PaidMailClickerCore
{
public PaidMailClickerCore()
{
simpleMailPath = null;
fireFoxPath = null;
pauseAtLine = 25;
paidMailerIdentifierURLs = new ArrayList();
URLs = new ArrayList();
}
private String getSimpleMailPath()
throws HeadlessException, IOException
{
File config = new File("config.txt");
fr = new FileReader(config);
br = new BufferedReader(fr);
Collection configLines = new ArrayList();
for(boolean lineIsEmpty = false; !lineIsEmpty;)
{
String string = br.readLine();
if(string != null)
configLines.add(string);
else
lineIsEmpty = true;
}
fr.close();
for(Iterator it = configLines.iterator(); it.hasNext();)
{
String configLine = (String)it.next();
if(!configLine.startsWith("*"))
if(configLine.contains("SimpleMailPath#"))
{
int length = configLine.length();
int index = configLine.indexOf("#");
simpleMailPath = configLine.substring(index + 2, length);
} else
if(configLine.contains("paidmailerURL#"))
{
int length = configLine.length();
int index = configLine.indexOf("#");
paidMailerIdentifierURLs.add(configLine.substring(index + 2, length));
} else
if(configLine.contains("FirefoxPath#"))
{
int length = configLine.length();
int index = configLine.indexOf("#");
fireFoxPath = configLine.substring(index + 2, length);
} else
if(configLine.contains("pauseAtLine#"))
{
int length = configLine.length();
int index = configLine.indexOf("#");
pauseAtLine = Integer.parseInt(configLine.substring(index + 2, length));
}
}
if(simpleMailPath != null)
return simpleMailPath;
jfc.setFileSelectionMode(1);
jfc.setDialogTitle("Bitte w\344hle Sie das Verzeichnis von SimpleMail aus");
File directory = null;
if(jfc.showOpenDialog(null) == 0)
{
directory = jfc.getSelectedFile();
System.out.println(directory.getAbsolutePath());
}
simpleMailPath = directory.getAbsolutePath();
return simpleMailPath;
}
public void start()
throws HeadlessException, IOException
{
File file = new File((new StringBuilder(String.valueOf(getSimpleMailPath()))).append("\\attachments").toString());
File files[] = file.listFiles();
System.out.println("Verzeichnisse auslesen");
for(int i = 0; i < files.length; i++)
System.out.println(files[i].getAbsolutePath());
Collection filesCollection = new ArrayList();
for(int i = 0; i <= files.length - 1; i++)
{
String path = (new StringBuilder(String.valueOf(files[i].getAbsolutePath()))).append("\\message.txt").toString();
File f = new File(path);
filesCollection.add(f);
}
URLs = getURLsFromFiles(filesCollection, paidMailerIdentifierURLs);
System.out.println("Gefundene URLs");
for(Iterator it = URLs.iterator(); it.hasNext(); System.out.println(it.next()));
export(cleanURLs(URLs));
}
public void export(Collection URLs)
throws IOException
{
File clicker = new File("clicker.bat");
fw = new FileWriter(clicker);
bw = new BufferedWriter(fw);
int index = 0;
for(Iterator it = URLs.iterator(); it.hasNext();)
{
String url = (String)it.next();
bw.append((new StringBuilder("\"")).append(fireFoxPath).append("\" ").toString());
bw.append((new StringBuilder("\"")).append(url).append("\"").toString());
bw.append("\r\n");
if(index == pauseAtLine)
{
bw.append("Pause\r\n");
index = 0;
}
index++;
}
bw.close();
fw.close();
Desktop.getDesktop().open(clicker);
System.out.println((new StringBuilder("SimpleMailPfad :")).append(simpleMailPath).append("\n").append("Firefox Pfad: ").append(fireFoxPath).append("\n").append("cmd /c ").append(clicker.getAbsolutePath()).toString());
}
public Collection getURLsFromFiles(Collection files, Collection paidMailerIdentifierURLs)
throws IOException
{
Collection URLs = new ArrayList();
for(Iterator it = files.iterator(); it.hasNext(); fr.close())
{
File file = (File)it.next();
fr = new FileReader(file);
br = new BufferedReader(fr);
for(boolean lineIsEmpty = false; !lineIsEmpty;)
{
String string = br.readLine();
if(string != null)
{
for(Iterator iter = paidMailerIdentifierURLs.iterator(); iter.hasNext();)
{
String paidMailIdentifierURL = (String)iter.next();
if(string.contains(paidMailIdentifierURL))
URLs.add(string);
}
} else
{
lineIsEmpty = true;
}
}
}
return URLs;
}
public Collection cleanURLs(Collection URLs)
{
Collection cleanedURLs = new ArrayList();
for(Iterator it = URLs.iterator(); it.hasNext();)
{
String url = (String)it.next();
if(url.contains("<a href="))
{
if(url.contains("\""))
{
url = url.substring(url.indexOf("\"") + 1);
url = url.substring(0, url.indexOf("\""));
} else
if(url.contains("'"))
{
url = url.substring(url.indexOf("'") + 1);
url = url.substring(0, url.indexOf("'"));
} else
{
int start = url.indexOf("=") + 1;
int end = url.indexOf(">");
if(end < start)
System.out.println((new StringBuilder("Die b\366\366\366\366\366se url")).append(url).toString());
else
url = url.substring(start, end);
}
cleanedURLs.add(url);
} else
{
cleanedURLs.add(url);
}
}
System.out.println("Cleaned URLs");
for(Iterator it = cleanedURLs.iterator(); it.hasNext(); System.out.println(it.next()));
return cleanedURLs;
}
public static void main(String args[])
throws HeadlessException, IOException
{
PaidMailClickerCore core = new PaidMailClickerCore();
core.start();
}
private String simpleMailPath;
private String fireFoxPath;
int pauseAtLine;
private Collection paidMailerIdentifierURLs;
private Collection URLs;
private static JFileChooser jfc = new JFileChooser();
private FileReader fr;
private BufferedReader br;
private FileWriter fw;
private BufferedWriter bw;
}
|