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
import { Hono } from "npm:hono";
import Parser from "npm:rss-parser";
const app = new Hono();
app.get("/", (c) => {
return c.json({
type: "list",
list: {
items: [
{
title: "Search Front Page",
actions: [
{
type: "push",
push: {
page: "/frontpage",
},
},
],
},
],
},
});
});
app.get("/frontpage", async (c) => {
const feed = await new Parser().parseURL(
`https://hnrss.org/frontpage?description=0&count=25`,
);
return c.json({
type: "list",
list: {
items: feed.items?.map((item) => ({
title: item.title || "",
actions: [
{
type: "open",
open: {
url: item.link || "",
},
},
{
type: "copy",
copy: {
text: item.link || "",
},
},
],
})),
},
});
});
export default app.fetch;