Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 51 additions & 30 deletions js/finanzennet.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
const DEFAULT_START_DATE = '2020-01-01';

var ArrayList = java.util.ArrayList;
let logger = Packages.de.willuhn.logging.Logger;

var fetcher;
var wc;
Expand All @@ -30,6 +31,10 @@ function getURL() {
return "http://www.finanzen.net";
}

function getAktienSucheUrl(search) {
return "http://www.finanzen.net/suchergebnis.asp?frmAktiensucheTextfeld=" + search;
}

function getName() {
return "Finanzen.net";
}
Expand All @@ -48,18 +53,17 @@ function prepare(

wc = fetcher.getWebClient(true);
wc.getOptions().setThrowExceptionOnFailingStatusCode(false);
Packages.de.willuhn.logging.Logger.debug("load http://www.finanzen.net/suchergebnis.asp?frmAktiensucheTextfeld=" + search);
page = wc.getPage(
"http://www.finanzen.net/suchergebnis.asp?frmAktiensucheTextfeld=" + search
);
const url = getAktienSucheUrl(search);
logger.debug("load " + url);
page = wc.getPage(url);

try {
Packages.de.willuhn.logging.Logger.debug("suche Link Kurse");
logger.debug("suche Link Kurse");
links = page.getAnchorByText("Kurse");
page = links.click();
Packages.de.willuhn.logging.Logger.debug("suche Select historic-prices-stock-market");
logger.debug("suche Select historic-prices-stock-market");
boerseSelect = page.getElementById("historic-prices-stock-market");
Packages.de.willuhn.logging.Logger.debug("suche Button request-historic-price");
logger.debug("suche Button request-historic-price");
searchButton = page.getElementById("request-historic-price");

input = page.getElementById("fromDate");
Expand All @@ -72,41 +76,59 @@ function prepare(
input = page.getElementById("toDate");
input.setValue(input.getMax());
} catch (e) {
logger.debug("versuche Alternative aufgrund " + e);
try {
Packages.de.willuhn.logging.Logger.debug("suche Link historische Kurse");
logger.debug("suche Link historische Kurse");
links = page.getAnchorByText("Historische Kurse");
page = links.click();
} catch (error) {
logger.debug("versuche Alternative aufgrund " + error);
try {
Packages.de.willuhn.logging.Logger.debug("suche Link Kurse & Realtime");
logger.debug("suche Link Kurse & Realtime");
links = page.getAnchorByText("Kurse & Realtime");
page = links.click();
Packages.de.willuhn.logging.Logger.debug("suche Link historische Kurse");
logger.debug("suche Link historische Kurse");
links = page.getAnchorByText("Historische Kurse");
page = links.click();
} catch (error2) {
logger.debug("versuche Alternative aufgrund " + error2);
// navigate to historic rates for "Zertifikate"
Packages.de.willuhn.logging.Logger.debug("suche Link Historisch");
logger.debug("suche Link Historisch");
links = page.getAnchorByText("Historisch");
page = links.click();
}
}
try {
Packages.de.willuhn.logging.Logger.debug("suche Select strBoerse");
boerseSelect = page.getElementByName("strBoerse");
Packages.de.willuhn.logging.Logger.debug("suche search-Button");
searchButton = boerseSelect.getFirstByXPath("../../div/button");
try {
logger.debug("suche Select strBoerse");
boerseSelect = page.getElementByName("strBoerse");

input = page.getElementByName("dtDate1");
input.setValue(input.getMin());
input = page.getElementByName("dtDate1");
input.setValue(input.getMin());

input = page.getElementByName("dtDate2");
input.setValue(input.getMax());
input = page.getElementByName("dtDate2");
input.setValue(input.getMax());
}
catch (error2) {
logger.debug("versuche Alternative aufgrund " + error2);
logger.debug("suche Select exchange");
boerseSelect = page.getElementByName("exchange");

input = page.getElementByName("date-from");
input.setValue(input.getMin());

input = page.getElementByName("date-to");
input.setValue(input.getMax());
}

logger.debug("suche search-Button");
searchButton = boerseSelect.getFirstByXPath("../../div/button");
} catch (error) {
logger.debug("versuche Alternative aufgrund " + error);
// retrieve historic rates for "Zertifikate"
Packages.de.willuhn.logging.Logger.debug("suche Select historic-prices-stock-market");
logger.debug("suche Select historic-prices-stock-market");
boerseSelect = page.getElementById("historic-prices-stock-market");
Packages.de.willuhn.logging.Logger.debug("suche search-Button");
logger.debug("suche search-Button");
searchButton = page.getElementById("request-historic-price");

input = page.getElementById("derivative-historical-start-date");
Expand All @@ -119,7 +141,7 @@ function prepare(

var liste = new ArrayList();
if (!page) {
Packages.de.willuhn.logging.Logger.error("Konnte Kurse Link nicht finden");
logger.error("Konnte Kurse Link nicht finden");
} else {
// Handelsplätze extrahieren

Expand All @@ -132,7 +154,7 @@ function prepare(
liste.add(cfg);
}


logger.debug("extrahierte Handelsplätze: " + liste);
return liste;
}

Expand All @@ -153,20 +175,21 @@ function process(config) {
}

if (!boerseSelect) {
Packages.de.willuhn.logging.Logger.error("Börsenauswahl nicht gefunden");
logger.error("Börsenauswahl nicht gefunden");
} else {
option = boerseSelect.getOptionByValue(boerse);
boerseSelect.setSelectedAttribute(option, true);
}

logger.debug("frage Kurse ab...")
page = searchButton.click();
wc.waitForBackgroundJavaScript(10000);
tab = Packages.jsq.tools.HtmlUnitTools.getTableByPartContent(page, "Datum");
if (!tab) {
Packages.de.willuhn.logging.Logger.error("Börsenauswahl nicht gefunden");
logger.error("Börsenauswahl nicht gefunden");
} else {
list = Packages.jsq.tools.HtmlUnitTools.analyse(tab);
Packages.de.willuhn.logging.Logger.info(list.size() + " Kurse gefunden");
logger.info(list.size() + " Kurse gefunden");
for (i = 0; i < list.size(); i++) {
try {
hashmap = list.get(i);
Expand Down Expand Up @@ -208,7 +231,7 @@ function process(config) {
dc.put("currency", currency);
res.add(dc);
} catch (error) {
Packages.de.willuhn.logging.Logger.error("Fehler beim Kurse auslesen: " + error + "\n" + hashmap);
logger.error("Fehler beim Kurse auslesen: " + error + "\n" + hashmap);
}
}
}
Expand All @@ -219,7 +242,5 @@ function search(fetch, search) {
fetcher = fetch;

wc = fetcher.getWebClient(true);
page = wc.getPage(
"http://www.finanzen.net/suchergebnis.asp?frmAktiensucheTextfeld=" + search
);
page = wc.getPage(getAktienSucheUrl(search));
}