Introduction
Introduction Statistics Contact Development Disclaimer Help
game.cgi - brcon2024-hackathons - Bitreichcon 2024 Hackathons
git clone git://bitreich.org/brcon2024-hackathons git://enlrupgkhuxnvlhsf6lc3fz…
Log
Files
Refs
Tags
Submodules
---
game.cgi (2865B)
---
1 #!/bin/sh
2 if [ -z "${QUERY_STRING}" ];
3 then
4 printf "3Invalid Request\tErr\t%s\t%s\r\n" "${SERVER_NAME}" "${S…
5 exit
6 fi
7
8 id="${QUERY_STRING#*:}"
9 type="${QUERY_STRING%%:*}"
10
11 {
12 case "${type}" in
13 tuid )
14 curl -sgG \
15 --data-urlencode "id=${id}" \
16 --url "https://ifdb.org/viewgame?ifiction"
17 ;;
18 ifid )
19 curl -sgG \
20 --data-urlencode "ifid=${id}" \
21 --url "https://ifdb.org/viewgame?ifiction"
22 ;;
23 * )
24 printf "3Invalid Request\tErr\t%s\t%s\r\n" "${SERVER_NAM…
25 exit 1
26 ;;
27 esac
28 } | \
29 xml2tsv | \
30 awk '
31 function fold(s) {
32 cmd = "fmt -w80"
33 printf("%s", s) | cmd
34 close(cmd);
35 }
36 BEGIN {
37 FS = "\t";
38 }
39 $1 == "/viewgame/errorCode" {
40 exit
41 }
42 $1 == "/ifindex/story/bibliographic/description/br" {
43 bibliographic["description"] = bibliographic["description"] "\n\…
44 }
45 index($1, "/ifindex/story/bibliographic/description") == 1 {
46 bibliographic["description"] = bibliographic["description"] $2;
47 next;
48 }
49 index($1, "/ifindex/story/bibliographic/") == 1 {
50 bibliographic[substr($1, length("/ifindex/story/bibliographic/")…
51 next;
52 }
53 index($1, "/ifindex/story/contact/") == 1 {
54 contact[substr($1, length("/ifindex/story/contact/") + 1)] = $2;
55 next;
56 }
57 $1 == "/ifindex/story/ifdb/downloads/links/link" {
58 links["length"]++;
59 next;
60 }
61 index($1, "/ifindex/story/ifdb/downloads/links/link/") == 1 {
62 links[links["length"], substr($1, length("/ifindex/story/ifdb/do…
63 next;
64 }
65 index($1, "/ifindex/story/ifdb/") == 1 {
66 ifdb[substr($1, length("/ifindex/story/ifdb/") + 1)] = $2;
67 next;
68 }
69 END {
70 printf("%s\n", bibliographic["title"])
71 printf("--------------------------------------------------------…
72 fold(sprintf("Author(s): %s", bibliographic["author"]));
73 if (bibliographic["genre"])
74 printf("Genre: %s\n", bibliographic["genre"]);
75 if (bibliographic["language"])
76 printf("Language: %s\n", bibliographic["language"]);
77 if (bibliographic["firstpublished"])
78 printf("First Publication Date: %s\n", bibliographic["fi…
79 if (bibliographic["forgiveness"])
80 printf("Forgiveness Rating: %s\n", bibliographic["forgiv…
81 if (contact["url"])
82 printf("Website: %s\n", contact["url"]);
83
84 if (ifdb["ratingCountAvg"])
85 printf("Rating: %s stars (based on %s rating%s)\n", ifdb…
86
87 if (bibliographic["description"]) {
88 printf("\nDescription:\n");
89 fold(bibliographic["description"])
90 }
91
92 if (links["length"]) {
93 printf("\nDownloads:\n");
94 for (i = 1; i <= links["length"]; i++) {
95 printf("%s\n", links[i, "title"]);
96 printf("\t%s\n", links[i, "url"]);
97 if (match(links[i, "url"], /^https?:\/\/(www\.)?…
98 printf("\t%s\n", "gopher://gopher.661.or…
99 printf("\n");
100 }
101 }
102 }'
You are viewing proxied material from bitreich.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.