aboutsummaryrefslogtreecommitdiff
path: root/content/parse-rss-with-lua.md
diff options
context:
space:
mode:
authorMitja Felicijan <m@mitjafelicijan.com>2023-07-08 23:25:41 +0200
committerMitja Felicijan <m@mitjafelicijan.com>2023-07-08 23:25:41 +0200
commitcd6644ea4ddc78597934ab0ef5ba50e3c3daa927 (patch)
tree03de331a8db6386dfd6fa75155bfbcea6b4feaf3 /content/parse-rss-with-lua.md
parent84ed124529ffeee1590295b8de3a8faf51848680 (diff)
downloadmitjafelicijan.com-cd6644ea4ddc78597934ab0ef5ba50e3c3daa927.tar.gz
Moved to a simpler SSG
Diffstat (limited to 'content/parse-rss-with-lua.md')
-rw-r--r--content/parse-rss-with-lua.md41
1 files changed, 41 insertions, 0 deletions
diff --git a/content/parse-rss-with-lua.md b/content/parse-rss-with-lua.md
new file mode 100644
index 0000000..c2cdcbc
--- /dev/null
+++ b/content/parse-rss-with-lua.md
@@ -0,0 +1,41 @@
1---
2title: Parse RSS feeds with Lua
3url: parse-rss-with-lua.html
4date: 2023-05-23T12:00:00+02:00
5type: note
6draft: false
7tags: [lua, rss]
8---
9
10Example of parsing RSS feeds with Lua. Before running the script install:
11
12- feedparser with `luarocks install feedparser`
13- luasocket with `luarocks install luasocket`
14
15```lua
16local http = require("socket.http")
17local feedparser = require("feedparser")
18
19local feed_url = "https://mitjafelicijan.com/feed.rss"
20
21local response, status, _ = http.request(feed_url)
22if status == 200 then
23 local parsed = feedparser.parse(response)
24
25 -- Print out feed details.
26 print("> Title ", parsed.feed.title)
27 print("> Author ", parsed.feed.author)
28 print("> ID ", parsed.feed.id)
29 print("> Entries ", #parsed.entries)
30
31 for _, item in ipairs(parsed.entries) do
32 print("GUID ", item.guid)
33 print("Title ", item.title)
34 print("Link ", item.link)
35 print("Summary ", item.summary)
36 end
37else
38 print("! Request failed. Status:", status)
39end
40```
41