lobsters.dcgi - gophercgis - Collection of gopher CGI/DCGI for geomyidae
(HTM) hg clone https://bitbucket.org/iamleot/gophercgis
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
lobsters.dcgi
---
1 #!/bin/sh
2
3 . ../common/config.sh
4
5 CGI="${CGI_BASEDIR}/lobsters/lobsters.dcgi"
6 COMMENTS_CGI="${CGI_BASEDIR}/lobsters/comments.dcgi"
7
8 #
9 # FIXME: the logic in `newest' and `hottest' for pagination is broken
10 # FIXME: because ${page_n} is not defined... Fix it!
11 #
12 page="$2"
13 case "${page}" in
14 page/[0-9]*) page_n=${page##page/} ;;
15 newest) ;;
16 hottest) ;;
17 *) page="page/1" page_n=1 ;;
18 esac
19
20 echo "t"
21 echo "tLobsters"
22 echo "t"
23
24 curl -Lgs -- "https://lobste.rs/${page}.json" |
25 jq -r '
26 .[] |
27 (if .url != "" then
28 "[h|" + ( .title | gsub("\\|"; "\\|") ) + "|" + "URL:" + .url + "|server|port]"
29 else
30 "[1|" + ( .title | gsub("\\|"; "\\|") ) + "|" + "'"${COMMENTS_CGI}"'?" + .short_id + "|server|port]"
31 end),
32 "tvia " + .submitter_user.username + " " +
33 ( .created_at[0:19] + "Z" | sub("T"; " ") | sub("Z"; "") | sub(":[0-9]+$"; "") ) +
34 " " + ( .tags | join(", ") ) + " " + "(" + ( .score | tostring ) + ")",
35 "[1|Comments: " + ( .comment_count | tostring ) + "|" + "'"${COMMENTS_CGI}"'?" + .short_id + "|server|port]",
36 "t"
37 '
38
39 if [ "${page_n}" -gt 1 ]; then
40 prev_page_n=$((page_n - 1))
41 prev_page="page/${prev_page_n}"
42 echo "[1|<< Page ${prev_page_n}|${CGI}?${prev_page}|server|port]"
43 fi
44
45 if [ "${page_n}" -ge 1 ]; then
46 next_page_n=$((page_n + 1))
47 next_page="page/${next_page_n}"
48 echo "[1|>> Page ${next_page_n}|${CGI}?${next_page}|server|port]"
49 fi