1
0
Fork 0

Compare commits

...

4 Commits

Author SHA1 Message Date
clerie b426fb304e Version 0.2 2020-09-16 13:18:17 +02:00
clerie 69da0d3652 Cleanup trains names before generating links 2020-09-16 13:17:49 +02:00
clerie 373e56eb68 Observe only if there are any results 2020-09-16 13:03:05 +02:00
clerie a9d7a3bcc0 Cleaning up code 2020-09-16 12:47:22 +02:00
2 changed files with 26 additions and 15 deletions

View File

@ -6,28 +6,34 @@ function getMediaURL(path) {
path = "media/" + path;
return chrome.runtime.getURL(path) || browser.runtime.getURL(path);
}
/**
* Return train name in format "PRODUCT TRAIN_NUMER"
* i.e. "ICE 112", "RE 12734"
* Sometimes train name is in format "PRODUCT LINE_NUMER (TRAIN_NUMER)"
* i.e. "STB 12 (62371)"
* this will be cleaned up
*/
function bahnParseTrainName(dirty_train_name) {
var name_list = dirty_train_name.split(" ");
// Train name in format "STB 12 (23561)"
if(name_list.length == 3 && name_list[2].charAt(0) == '(' && name_list[2].charAt(name_list[2].length-1) == ')') {
return name_list[0] + " " + name_list[2].substring(1, name_list[2].length-1);
}
log("Bahn Insight loaded");
var target = document.getElementById('resultsOverview');
log("target");
console.log(target);
return dirty_train_name;
}
var observer = new MutationObserver((mutations, observer) => {
mutations.forEach((mutation) => {
if (mutation.type === 'childList') {
// Changed object
var target = mutation.target;
if (target.tagName === 'TD') {
var timetable = target.querySelector("td div.detailContainer table.result tbody");
var products = timetable.querySelectorAll("tr.first td.products");
products.forEach((product) => {
var train_name = product.querySelector("span a").innerText;
var train_name = bahnParseTrainName(product.querySelector("span a").innerText);
product.innerHTML = product.innerHTML + ' <a href="https://marudor.de/details/' + train_name + '" target="_blank"><img src="' + getMediaURL("marudor.svg") + '" style="height: 2em; vertical-align:middle;"></a>';
log("added to");
console.log(product);
});
var stations = timetable.querySelectorAll("tr td.station");
stations.forEach((station) => {
@ -40,7 +46,12 @@ var observer = new MutationObserver((mutations, observer) => {
});
});
observer.observe(target, {
subtree: true,
childList: true
});
var target = document.getElementById('resultsOverview');
if(typeof target !== 'undefined') {
observer.observe(target, {
subtree: true,
childList: true
});
}

View File

@ -2,7 +2,7 @@
"manifest_version": 2,
"name": "Bahn Insight",
"version": "0.1",
"version": "0.2",
"description": "Extends the booking portal of bahn.de with linking to useful information.",
"homepage_url": "https://git.clerie.de/clerie/bahn-insight/",