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 |