Skip to content

Commit

Permalink
Close #11, rimprove logging
Browse files Browse the repository at this point in the history
  • Loading branch information
TetraTsunami committed Jul 12, 2024
1 parent 1d417e9 commit e910b37
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 12 deletions.
File renamed without changes.
13 changes: 8 additions & 5 deletions src/background/index.chrome.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import { DOMParser } from 'linkedom';
import { installedHandler } from './background';
import { parseAndReply } from './parsing';
import { installedHandler } from './common';
import { parseAndReply } from './parser';
import { resolveURL } from './services';

const scrapeHandler = async ({ url }, res: (response?: any) => void) => {
let oldUrl = url
let newUrl = ""
try {
let oldUrl = url
let newUrl = ""
let doc: Document
while (oldUrl !== newUrl) {
oldUrl = newUrl
oldUrl = newUrl || oldUrl
const resp = await fetch(oldUrl)
const html = await resp.text()
// @ts-expect-error - linkedom's document is FAKE and missing lots of properties, but we don't care because we don't use them :)
Expand All @@ -18,6 +18,7 @@ const scrapeHandler = async ({ url }, res: (response?: any) => void) => {
}
await parseAndReply(doc, newUrl, res)
} catch (err) {
console.error(err)
res({ error: err.message })
}
}
Expand All @@ -34,6 +35,7 @@ const parseHTMLHandler = async ({ html, url }, res: (response?: any) => void) =>
await parseAndReply(doc, url, res)
}
} catch (err) {
console.error(err)
res({ error: err.message })
}
}
Expand All @@ -54,6 +56,7 @@ const messageHandler = (req: any, sender, res: (response?: any) => void) => {
return;
}
} catch (err) {
console.error(err)
res({ error: err.message })
}
return true
Expand Down
13 changes: 8 additions & 5 deletions src/background/index.firefox.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
import { installedHandler } from "./background";
import { parseAndReply } from "./parsing";
import { installedHandler } from "./common";
import { parseAndReply } from "./parser";
import { resolveURL } from "./services";

const scrapeHandler = async ({ url }, res: (response?: any) => void) => {
let oldUrl = url
let newUrl = ""
try {
let oldUrl = url
let newUrl = ""
let doc: Document
while (oldUrl !== newUrl) {
oldUrl = newUrl
oldUrl = newUrl || oldUrl
const resp = await fetch(oldUrl)
const html = await resp.text()
doc = new DOMParser().parseFromString(html, "text/html")
newUrl = await resolveURL(doc, oldUrl) || oldUrl
}
await parseAndReply(doc, newUrl, res)
} catch (err) {
console.error(err)
res({ error: err.message })
}
}
Expand All @@ -30,6 +31,7 @@ const parseHTMLHandler = async ({ html, url }, res: (response?: any) => void) =>
await parseAndReply(doc, url, res)
}
} catch (err) {
console.error(err)
res({ error: err.message })
}
}
Expand All @@ -50,6 +52,7 @@ const messageHandler = (req: any, sender, res: (response?: any) => void) => {
res({ error: "Unknown request" })
}
} catch (err) {
console.error(err)
res({ error: err.message })
}
return true
Expand Down
2 changes: 1 addition & 1 deletion src/background/parsing.ts → src/background/parser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const parseHTMLMeta = (doc: Document, url: string) => {
let imageUrl = (doc.querySelector('meta[property="og:image"]') as HTMLMetaElement)?.content ||
(doc.querySelector('meta[property="og:image:url"]') as HTMLMetaElement)?.content ||
(doc.querySelector('img') as HTMLImageElement)?.src;
if (!imageUrl.startsWith("http")) {
if (imageUrl && !imageUrl.startsWith("http")) {
imageUrl = new URL(imageUrl, url).href;
}
return {
Expand Down
2 changes: 1 addition & 1 deletion src/contents/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ const ContentPopup = () => {
target: "background",
url
})
if (tagData.error) throw new Error(tagData.error)
if (tagData.error) throw new Error(`Backend error -- ${tagData.error}`)
// It is not worth showing just a title.
if (!tagData.description && !tagData.body && !tagData.image) {
throw new Error("No data found")
Expand Down

0 comments on commit e910b37

Please sign in to comment.