bebou

Le site web bebou.netlib.re - retour accueil

git clone git://bebou.netlib.re/bebou

Log | Files | Refs |

commit c11402f3471d3625c340cf3d57df1cdfad49a682
parent cdfe053b85d90bd5f355d8c94c2312a43feed26d
Auteurice: Arthur Pons <arthur.pons@unistra.fr>
Date:   Wed, 28 May 2025 06:28:58 +0200

Ajout des CGI scrabble et qr

Diffstat:
Acontents/cgi-bin/qr.cgi | 41+++++++++++++++++++++++++++++++++++++++++
Acontents/cgi-bin/scrabble.cgi | 55+++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 96 insertions(+), 0 deletions(-)

diff --git a/contents/cgi-bin/qr.cgi b/contents/cgi-bin/qr.cgi @@ -0,0 +1,41 @@ +#! /bin/sh + +printf "Content-Type: text/html\r\n" +printf "\r\n" + +if echo "$QUERY_STRING" | grep -q "text=" ;then + base64="$(qrencode "${QUERY_STRING##'text='}" -s 15 -l H -o - | base64)" + res="<img src='data:image/png;base64,$base64'>" +fi + +<<. cat +<!DOCTYPE html> +<html lang="fr"> +<head> + <meta charset="utf-8"> + <meta name="color-scheme" content="light dark"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>Vérificateur Scrabble</title> + <link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>🔤</text></svg>"> + <style> + * { box-sizing: border-box } + html { font: 1rem sans-serif } + body { height: 100vh; margin: 0; padding: 1rem; display: grid; place-items: center } + input { font: inherit; padding: .5em } + form { margin-inline: auto; width: fit-content; min-height: 6rem } + form > * { display: inline-block; margin-bottom: .5em } + </style> +</head> +<body> + <form> + <label for="text">Texte</label><br> + <input type="text" name="text" id="text" placeholder="Votre texte…" value="$text" required> + <input type="submit" value="Encoder"><br> + <output name="resultat" for="text">$res</output> + </form> +</body> +</html> +. + +rm ../a.png + diff --git a/contents/cgi-bin/scrabble.cgi b/contents/cgi-bin/scrabble.cgi @@ -0,0 +1,55 @@ +#! /bin/sh + +printf "Content-Type: text/html\r\n" +printf "\r\n" + +if echo "$QUERY_STRING" | grep -q "mot=" ;then + mot="$(echo "${QUERY_STRING##'mot='}" | + sed 's,%\([0-9A-F][0-9A-F]\),\\\\\x\1,g' | + xargs printf "%b\n" | + sed 'y/éàùèçîïöëê/eaueciioee/;s/œ/oe/')" + + if [ -n "$mot" ]; then + zgrep -iq "^$mot$" ../scrabble/mots-valides-scrabble.gz \ + && res="✅ Valide" \ + || res="❌ Pas valide" + fi +fi + +if echo "$HTTP_ACCEPT" | grep -q "text/plain";then + echo "$res" +else + <<-. cat + <!DOCTYPE html> + <html lang="fr"> + <head> + <meta charset="utf-8"> + <meta name="color-scheme" content="light dark"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>Vérificateur Scrabble</title> + <link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>🔤</text></svg>"> + <style> + * { box-sizing: border-box } + html { font: 1rem sans-serif } + body { height: 100vh; margin: 0; padding: 1rem; display: grid; place-items: center } + input { font: inherit; padding: .5em } + form { margin-inline: auto; width: fit-content; min-height: 6rem } + form > * { display: inline-block; margin-bottom: .5em } + li { list-style-type: none } + </style> + </head> + <body> + <form> + <label for="mot">Mot</label><br> + <input type="text" name="mot" id="mot" minlength="2" maxlength="15" placeholder="Votre mot…" value="$mot" required> + <input type="submit" value="Vérifier"><br> + <output name="resultat" for="mot">$res</output><br> + </form> + <ul> + <li><a href="/scrabble/mots-valides-scrabble.gz">Liste complète des mots valides (1,2Mo)</a></li> + <li><a href="http://arthur.bebou.netlib.re/scrabble-valide">Article sur le sujet</a></li> + </ul> + </body> + </html> + . +fi