From 0c78dc8c041fb56dcc05e8159f8813f7e5baa103 Mon Sep 17 00:00:00 2001 From: Carlos Eduardo Date: Wed, 22 May 2024 22:01:35 -0300 Subject: [PATCH] unify sedmachine and sedmachine.docker --- Dockerfile | 5 ++-- sed.docker | 2 ++ sedmachine.docker | 74 ----------------------------------------------- 3 files changed, 5 insertions(+), 76 deletions(-) create mode 100755 sed.docker delete mode 100755 sedmachine.docker diff --git a/Dockerfile b/Dockerfile index 57af0d9..a012c13 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,7 @@ FROM alpine:latest -COPY ./sedmachine.docker /opt/sedmachine RUN apk --no-cache add curl jq +COPY ./sedmachine /opt/sedmachine +COPY ./sed.docker /opt/sed-wrapper RUN install -D /dev/null /var/cache/sm_offset -CMD ["sh","-c","while :; do /opt/sedmachine; done"] +CMD ["sh","-c","while :; do SED=/opt/sed-wrapper /opt/sedmachine; done"] diff --git a/sed.docker b/sed.docker new file mode 100755 index 0000000..5cb1af5 --- /dev/null +++ b/sed.docker @@ -0,0 +1,2 @@ +#!/bin/busybox sh +ulimit -u1 -n1 && exec sed "$@" diff --git a/sedmachine.docker b/sedmachine.docker deleted file mode 100755 index f431e87..0000000 --- a/sedmachine.docker +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/busybox sh -# If using outside of alpine, be sure to change `ulimit` command accordingly. - -telegram() { - # Build url - _url="https://api.telegram.org/bot$TOKEN/$1" - shift - - if ! RESP=$(curl -s "$@" "$_url" | jq -e "if .ok then .result else .description end"); then - printf >&2 'Error: %s\n' "$(m -r .)" - return 1 - fi -} - -# Too lazy to type -m() { - printf "%s" "$RESP" | jq "$@" -} - -read -r OFFSET < /var/cache/sm_offset -: "${OFFSET:=0}" -TIMEOUT=900 - -# El evento loopio - -telegram getUpdates -m "$TIMEOUT" -d timeout="$TIMEOUT" -d offset="$OFFSET" || exit 1 - -OFFSET=$(m -e '.[-1].update_id') || exit 1 - -# cursed_multiplexing.sh -ARGS="$(m -r '[ .[] | .message? | - .reply_to_message.message_id, - .reply_to_message.chat.id, - ( .reply_to_message | - if .text then - .text - else - if .caption then - .caption - else - "" - end - end ), - .from.username, - .chat.id, - .text, - .message_id -] | @sh')" -eval set -- "$ARGS" - -esed() ( - ulimit -u1 -n1 && - exec sed "$@" -) - -while [ "${7+g}" = g ]; do - REPLY_ID=$1; REPLY_CHAT_ID=$2; REPLY_TEXT=$3 - CHANGER=$4; CHAT_ID=$5; TEXT=$6; ID=$7 - if [ "$REPLY_ID" != null ] && [ "${TEXT#[sy][[:punct:]]}" != "$TEXT" ]; then - CHANGED=$(printf '%s\n' "$REPLY_TEXT" | esed -Ee "$TEXT" 2>&1) || { - REPLY_CHAT_ID="$CHAT_ID" - REPLY_ID="$ID" - } - [ "$CHANGED" ] || CHANGED='[empty message]' - telegram sendMessage \ - --data-urlencode chat_id="$REPLY_CHAT_ID" \ - --data-urlencode reply_to_message_id="$REPLY_ID" \ - --data-urlencode text="$CHANGED" >/dev/null 2>&1 - printf >&2 '%s changed %s to %s\n' "$CHANGER" "$REPLY_TEXT" "$CHANGED" - fi - shift 7 -done - -echo $((OFFSET+1)) > /var/cache/sm_offset