Add an edition CGI (extract articles based on a certain day) - 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
---
(DIR) changeset 8921750c245138a30b4e41d79ac2ca05e6500c76
(DIR) parent 57112e2a27fe6d67a2a57db055467df4fa4de6e9
(HTM) Author: Leonardo Taccari <iamleot@gmail.com>
Date: Sat, 8 Dec 2018 23:09:54
Add an edition CGI (extract articles based on a certain day)
Diffstat:
ilmanifesto/edition.dcgi | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 44 insertions(+), 0 deletions(-)
---
diff -r 57112e2a27fe -r 8921750c2451 ilmanifesto/edition.dcgi
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ilmanifesto/edition.dcgi Sat Dec 08 23:09:54 2018 +0100
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+. ../common/config.sh
+
+ARTICLE_CGI="${CGI_BASEDIR}/ilmanifesto/article.cgi"
+
+edition="$2"
+
+echo ""
+echo "il manifesto - ${edition}"
+echo ""
+
+curl -A Googlebot-News -Lgs -- "https://ilmanifesto.it/edizione/il-manifesto-del-${edition}/" |
+awk -v cgi="${ARTICLE_CGI}" '
+/<article class="edition-toc__item"/ {
+ # Extract all article information to generate the menu
+ n = split($0, a, /<\/article>/)
+ n -= 1 # Remove stray </div>
+
+ for (i = 1; i <= n; i++) {
+ match(a[i], /href="[^"]+" title=/)
+ href = substr(a[i], RSTART + 6, RLENGTH - 14)
+ match(a[i], /title="[^"]+"/)
+ title = substr(a[i], RSTART + 7, RLENGTH - 8)
+ match(a[i], /<p class="autore">.*<\/p><p>/)
+ author = substr(a[i], RSTART + 18, RLENGTH - 25)
+ match(a[i], /<p>.*<\/p>$/)
+ description = substr(a[i], RSTART + 3, RLENGTH - 7)
+
+ if (href && title) {
+ if (author) {
+ entry = title ", " author
+ } else {
+ entry = title
+ }
+ printf("[0|%s|%s?%s|server|port]\n", entry, cgi, href)
+ if (description) {
+ printf("t%s\n", description)
+ }
+ printf("\n")
+ }
+ }
+}
+'