1
0
mirror of https://github.com/comatory/fb2iCal synced 2025-06-05 22:09:25 +02:00

remove URL requirement for DOM parser

This commit is contained in:
Ondřej Synáček
2020-07-16 16:48:05 +02:00
parent 456eaa1fbc
commit 9da4c33ffd
5 changed files with 43 additions and 36 deletions

View File

@@ -38,7 +38,7 @@ const createLocationData = (streetText, areaText) => {
// NOTE: Fallback parser
// Attempt reading event data directly from DOM
const parseUsingDOM = (html, url, { logger }) => {
const parseUsingDOM = (html, { logger }) => {
if (logger) {
logger.log({
message: 'Using fallback DOM parser',
@@ -74,7 +74,6 @@ const parseUsingDOM = (html, url, { logger }) => {
start,
duration,
title,
url,
}
if (!eventData.title || !eventData.start) {

View File

@@ -8,13 +8,18 @@ const retrieveICS = async (URLparameter, { logger }) => {
const url = getNormalizedUrl(URLparameter)
const html = await crawl(url, { logger })
const LDJSONEventData = parseUsingLDJSONData(html, { logger })
const eventData = LDJSONEventData || parseUsingDOM(html, url, { logger })
const rawEventData = LDJSONEventData || parseUsingDOM(html, { logger })
if (!eventData) {
if (!rawEventData) {
throw createParserError()
return
}
const eventData = {
...rawEventData,
url: rawEventData.url || url,
}
const icsContent = await generateICS(eventData)
return icsContent
}