Add new dictcurl script. - annna - Annna the nice friendly bot.
(HTM) git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/annna/
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Tags
(DIR) README
---
(DIR) commit f1861dec786ba6af58ab4d9db17c63d388d65a60
(DIR) parent 1c9816b1574f11d4be5e92a7475acc79ca160d17
(HTM) Author: Annna Robert-Houdin <annna@bitreich.org>
Date: Wed, 3 Jan 2024 21:10:35 +0100
Add new dictcurl script.
Thanks eidolon for the hint!
Diffstat:
M annna-message-common | 43 ++++++++++++-------------------
A dictcurl | 22 ++++++++++++++++++++++
2 files changed, 38 insertions(+), 27 deletions(-)
---
(DIR) diff --git a/annna-message-common b/annna-message-common
@@ -308,7 +308,7 @@ case "${text}" in
"${ircuser}, how can I phlog on bitreich?")
annna-say -s "${server}" -c "${channel}" "${user}, please read: gophers://bitreich.org/0/usr/20h/phlog/2017-08-26T20-04-02-482296.md and gophers://bitreich.org/0/usr/20h/phlog/2017-08-26T20-27-40-281825.md"
;;
-"${ircuser}, what is my type?")
+"${ircuser}, what's my type?")
{
cd /br/gopher
usertype="$(find memecache/type-?.png -type f \
@@ -325,36 +325,25 @@ case "${text}" in
;;
esac
+ dictserver="dict.org"
case "${word}" in
- "love")
- puri="$(clippy-say "Baby don't hurt me no more!")"
+ dict.org*)
+ dictserver="dict.org"
+ word="$(printf "%s\n" "${word}" | cut -c 9-)"
;;
- "my future")
- puri="$(clippy-say "Did you mean _what's my horoscope?_?")"
+ parazy.de*)
+ dictserver="parazy.de"
+ word="$(printf "%s\n" "${word}" | cut -c 10-)"
;;
- "my horoscope")
- puri="$(clippy-say "Did you mean _what's my future?_?")"
- ;;
- "up")
- puri="$(clippy-say "Did you mean _what's up?_?")"
- ;;
- *)
- puri=""
- dresult="$(printf '%s\n' "define * $word" QUIT | nc parazyd.org 2628)"
-
- if printf '%s\n' "$dresult" | grep -q '^150'
- then
- n="$(printf '%s\n' "$dresult" | grep -c '^151')"
- nmessage="$n definition(s) found."
- paste="$(printf '%s\n' "$dresult" | /br/bin/bitreich-paste)"
- puri="$nmessage $paste"
- elif printf '%s\n' "$dresult" | grep -q '^552'
- then
- puri="No match found."
- else
- puri="Server destroyed. Nothing to see here."
- fi
esac
+
+ dresult="$(dictcurl "${dictserver}" "" "${word}")"
+ if [ -z "${dresult}" ];
+ then
+ puri="No match found."
+ else
+ puri="$(printf "%s\n" "${dresult}" | /br/bin/bitreich-paste)"
+ fi
annna-say -s "${server}" -c "${channel}" "${puri}"
;;
"${ircuser}, cowsay "*)
(DIR) diff --git a/dictcurl b/dictcurl
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+if [ $# -lt 3 ];
+then
+ printf "usage: %s server[:port] db query\n" "$(basename "$0")" >&2
+ exit 1
+fi
+
+server="${1}"
+db="${2}"
+query="${3:?}"
+
+curl -s "dict://${server}/d:${query}${db:+:$db}" \
+| awk '/^552 / {
+ print "No match for word." > "/dev/stderr"
+ exit 1
+ }
+ /^151 /,/^\./ {
+ sub(/^151 |^\./, "")
+ print
+ }
+'