tazirc annotate tazirc-lb @ rev 16

Make pot & make msgmerge
author Paul Issott <paul@slitaz.org>
date Sun Apr 24 15:12:05 2016 +0100 (2016-04-24)
parents 3b881ac93484
children
rev   line source
pankso@3 1 #!/bin/sh
pankso@3 2 #
pankso@3 3 # TazIRC-lb - SliTaz IRC Log Bot : Keep it very small!
pankso@3 4 #
pankso@3 5 # Copyright 2014 (C) SliTaz GNU/Linux - BSD License
pankso@3 6 # Author: Christophe Lincoln <pankso@slitaz.org>
pankso@3 7 #
pankso@3 8 . /lib/libtaz.sh
pankso@3 9
pankso@3 10 # Internationalization
pankso@3 11 TEXTDOMAIN='tazirc'
pankso@3 12 export TEXTDOMAIN
pankso@3 13
pankso@3 14 # Help and usage
pankso@3 15 if [ ! "$1" ] || [ ! "$2" ]; then
pankso@3 16 cat << EOT
pankso@3 17
pankso@3 18 $(boldify "$(gettext 'Usage:')") $(basename $0) [host] [chan] [--option]"
pankso@3 19
pankso@3 20 $(boldify "$(gettext 'Options:')")
pankso@3 21 --nick= $(gettext "Set the Bot IRC nickname")
pankso@3 22 --mode= $(gettext "Use specified mode. Default: +i")
pankso@3 23 --port= $(gettext "Use specified port. Default: 6667")
paul@12 24 --dest= $(gettext "Log files destination path")
pankso@3 25
pankso@3 26 EOT
pankso@3 27 exit 0
pankso@3 28 fi
pankso@3 29
pankso@3 30 # Cmdline --options= are parsed by libtaz.sh
pankso@3 31 [ "$nick" ] || nick="TazIRC-lb"
pankso@3 32 [ "$mode" ] || mode="+i"
pankso@3 33 [ "$port" ] || port="6667"
pankso@3 34 [ "$dest" ] || dest="$(pwd)"
pankso@3 35 host="$1"
pankso@3 36 chan="$2"
pankso@3 37 send="$dest/$host/$chan/send.txt"
pankso@3 38
pankso@3 39 # Clean up on exit
pankso@3 40 trap "echo 'Exiting...' && rm -f $send" SIGINT INT TERM
pankso@3 41 mkdir -p $(dirname $send)
pankso@3 42
pankso@3 43 # Introduce me!
pankso@3 44 clear && boldify "$(gettext 'Connecting to:') $host #${chan}"
pankso@3 45 cat > ${send} << EOT
pankso@3 46 NICK $nick
pankso@3 47 USER $nick $mode * :$0
pankso@3 48 JOIN #$chan
pankso@3 49 EOT
pankso@3 50
pankso@3 51 # Connect and handle server messages
pankso@3 52 tail -f ${send} | busybox nc ${host} ${port} | while read MESSAGE
pankso@3 53 do
pankso@3 54 # New log file for each day
pankso@3 55 logs="$dest/$host/$chan/$(date -u '+%F').log"
pankso@3 56 case "$MESSAGE" in
pankso@3 57 *NICK*) ;;
pankso@3 58 *PRIVMSG*)
pankso@3 59 # Display and log channel messages
pankso@3 60 user=$(echo "${MESSAGE%!*}" | sed s'/://')
pankso@3 61 text=$(echo "${MESSAGE#* :}")
pankso@3 62 echo "[$(date -u '+%R')] $user: $text"
pankso@3 63 echo "$(date -u '+%R')|$user|$text" >> ${logs} ;;
pankso@3 64 PING*)
pankso@3 65 # Responding to ping
pankso@3 66 echo "PONG${MESSAGE#PING}" >> ${send} ;;
pankso@3 67 *MODE*)
pankso@3 68 echo "${MESSAGE#* }" ;;
pankso@3 69 *)
pankso@3 70 echo "${MESSAGE#* :}" ;;
pankso@3 71 esac
pankso@3 72 done
pankso@3 73
pankso@3 74 exit 0