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