-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathcontentReader.js
More file actions
103 lines (86 loc) · 2 KB
/
Copy pathcontentReader.js
File metadata and controls
103 lines (86 loc) · 2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
import {
getAllSettings,
getFeedWithURL,
saveFeed,
} from "./common/dataStorage.js";
const Menu = {
view: (vnode) => {
return m("nav", [
m(
"ul",
m(
"li",
m("div.box", [
m("img", {
src: "../icons/cat_reading512c.png",
class: "cat-icon",
}),
m(
"h3",
{ style: { display: "inline" } },
`${feed.title}: ${item.title}` || "BlogCat Content Viewer",
),
]),
),
),
]);
},
};
const ContentDisplay = {
view: (vnode) => {
console.log(item.content);
if (item.content?.type === "xhtml" || item.content?.type === "html") {
return m("iframe", m.trust(item.content));
}
if (item.contentType === "xhtml" || item.contentType === "html") {
return m("iframe", {
srcdoc: item.content,
});
}
},
};
const ContentReader = {
view: (vnode) => {
return [m(Menu), m(ContentDisplay)];
},
};
/*
== Initialise ===========================================================================================================
*/
let feed;
let item;
let error = {};
let currentTime = false;
const handleUncaughtException = (message, source, lineno, colno, error) => {
console.log("error happened!", message);
error = {
message,
source,
lineno,
colno,
error,
};
window.location = `/error.html?url=${feed.url}&error=${
JSON.stringify(error)
}`;
return true;
};
window.onerror = handleUncaughtException;
const search = new URLSearchParams(location.search);
if (search.has("feed")) {
let url = search.get("feed");
feed = await getFeedWithURL(url);
}
if (search.has("id")) {
let id = search.get("id");
console.log("looking for episode id", id);
item = feed.data.items.find(
(i) => i.id == id,
);
}
console.log(item);
let settings = await getAllSettings();
const appRoot = document.getElementById("app");
m.route(appRoot, "/content", {
"/content": ContentReader,
});