Folloren updated datestring on website, this fixes (#2)

Folloren has a new structure for the new year! They changed it from
`(\d.\d)` to `(\d. [a-z])`.
This commit is contained in:
2025-01-12 23:39:20 +01:00
committed by GitHub
parent 8a07a70238
commit 42d4cb2f14
2 changed files with 26 additions and 11 deletions

View File

@@ -85,8 +85,8 @@ function getTimeForLocation(text, location) {
*/
function getDatesForLocation(text, location) {
const regexpDatesString = new RegExp(
`${location}.*<br>((\\d+.\\d+).*)</p>`,
"i"
`${location}.*<br>((\\d+. [a-z&#8211; ]+).*)</p>`,
"gmi"
);
let datesStringMatches = text.match(regexpDatesString);
@@ -97,7 +97,7 @@ function getDatesForLocation(text, location) {
// TODO make regex stop at first capture
const datesString = datesStringMatches?.[0]?.split("</p>")?.[0];
const regexpDates = /(\d+\.\d+)+/g;
const regexpDates = /(\d+. [a-z]+)+/g;
const dates = String(datesString)?.match(regexpDates);
if (dates == null || dates?.length === 0)

View File

@@ -8,6 +8,20 @@ These are the available arguments:
print Prints results
help Prints this message`;
const monthStrings = [
"jan",
"feb",
"mars",
"apr",
"mai",
"juni",
"juli",
"sept",
"okt",
"nov",
"des",
];
/**
* Converts string DD.MM to JS date object.
* @param {string} dateString
@@ -15,15 +29,16 @@ These are the available arguments:
*/
function websiteDateToTime(dateString) {
const date = new Date();
const dayAndMonthString = dateString?.match(/(\d+).(\d+)/);
const dayAndMonthString = dateString?.match(/(\d+)(. )([a-z]+)/);
if (dayAndMonthString == null || dayAndMonthString.length < 3)
if (dayAndMonthString == null || dayAndMonthString.length < 4)
throw new Error("Unable to created string from unparsable date.");
const day = Number(dayAndMonthString[1]);
const month = Number(dayAndMonthString[2]);
const monthIndex = monthStrings.findIndex(m => m === dayAndMonthString[3])
const month = Number(monthIndex);
date.setMonth(Number(month - 1));
date.setMonth(Number(month));
date.setDate(Number(day));
return date;
@@ -58,11 +73,11 @@ function timeToWebsiteDate(date) {
*/
function validateArguments(place, lookAhead) {
const placeUndefined = place === undefined;
const help = (place === "-h" || place === "--help")
const numberIsNotNumber = isNaN(Number(lookAhead))
const validation = [placeUndefined, help, numberIsNotNumber]
const help = place === "-h" || place === "--help";
const numberIsNotNumber = isNaN(Number(lookAhead));
const validation = [placeUndefined, help, numberIsNotNumber];
if (!validation.every(v => v === false)) {
if (!validation.every((v) => v === false)) {
console.log(HELP_TEXT);
process.exit(0);
}