Compare commits

...

2 Commits

3 changed files with 39 additions and 8 deletions

View File

@ -13,7 +13,6 @@ FIFO="$(tmpfifo $1)"
echo "$FIFO"
INPUT=1
until [ "$INPUT" = "" ] ; do
read INPUT
while read INPUT ; do
if [ "$INPUT" != "" ] ; then echo $INPUT >> "$FIFO" ; fi
done

View File

@ -3,10 +3,12 @@
Newline='
'
AUTO_ICON="$HOME/.cache/.poezio-notify-autogen.png"
findicon () {
if [ "$1" != "" ] ; then
ICON_DIR="$HOME/.cache/poezio/avatars"
if [ "$(ls $ICON_DIR | grep $1)" != "" ] ; then
if [ "$(ls $ICON_DIR | grep ^$1$)" != "" ] ; then
echo "$ICON_DIR/$1/$(ls -t $ICON_DIR/$1 | tail -n 1)"
fi
fi
@ -20,7 +22,7 @@ while read -r INPUT ; do
JID="$(echo $INPUT | sed -e 's/^==> //' -e 's/.<==$//' -e 's/\t/\\t/g' -e 's/\a/\\a/g' -e 's/.*\///')"
JID_ICON="$(findicon $JID)"
MY_NICK="$(grep -a You.*joined\ the\ room "$HOME/.local/share/poezio/logs/$JID" | tail -n 1 | sed -e 's/^[^(]*(//' -e 's/)[^)]*$//')"
if [ "$MY_NICK" != "" ] ; then echo "My nick in $JID is: $MY_NICK" ; fi
# if [ "$MY_NICK" != "" ] ; then echo "My nick in $JID is: $MY_NICK" ; fi
elif [ "$INPUT" != "" ] ; then
if [ "$JID" = "" ] ; then JID="Unknown\ Room" ; fi
if [ "$(echo $INPUT | sed -e '/^[^M][^A-Z]/d')" = "" ] ; then
@ -43,26 +45,36 @@ while read -r INPUT ; do
elif [ "$(echo $CONTENT | sed '/^<---/d')" = "" ] ; then
HEADER="$HEADER - Leave in $JID"
CONTENT="$(echo $CONTENT | sed 's/^.....//')"
else
HEADER="$HEADER - Status Update"
CONTENT="$(echo $INPUT | sed 's/^[^ ]*.[^ ]*.[^ ]*.//')"
NICK="$(echo $CONTENT | sed -e 's/[ ].*//')"
fi
elif [ "$(echo $INPUT | sed -e '/^[M][R]/d')" = "" ] ; then
NICK="$(echo $INPUT | sed -e 's/^[^<]*<//' -e 's/>.*$//' )"
NICK_ICON="$(findicon $NICK_ICON)"
HEADER="$NICK in $JID"
CONTENT="$(echo $INPUT | sed 's/^[^ ]*.[^ ]*.[^ ]*.//')"
else
HEADER="Poezio"
CONTENT="$(echo $INPUT | sed 's/^[^ ]*.[^ ]*.[^ ]*.//')"
fi
NICK_ICON="$(findicon $NICK)"
NICK_JID="$(grep -a "$NICK.*joined\ the\ room" "$HOME/.local/share/poezio/logs/$JID" | tail -n 1 | sed -e 's/^[^(]*(//' -e 's/)[^)]*$//' -e 's/\/.*//')"
NICK_ICON="$(findicon $NICK_JID)"
if [ "$NICK_ICON" = "" ] ; then NICK_ICON="$(findicon $NICK_JID)" ; fi
if [ "$NICK_ICON" != "" ] ; then
ICON="$NICK_ICON"
elif [ "$JID_ICON" != "" ] ; then
ICON="$JID_ICON"
elif [ "$(echo $JID | sed '/@/d' )" != "" ] ; then
ICON="$(texttoicon '🖧' $AUTO_ICON)"
elif [ "$JID" != "" ] ; then
ICON="$(texttoicon @$JID $AUTO_ICON)"
elif [ "$NICK" != "" ] ; then
ICON="$(texttoicon $NICK $AUTO_ICON)"
else
ICON="$HOME/.local/share/.poezio-icon.png"
ICON="$(texttoicon '' $AUTO_ICON)"
fi
if [ "$JID" != "$MY_JID" ] && [ "$NICK" != "$MY_NICK" ] && [ "$CONTENT" != "" ] ; then
if [ "$JID" != "$MY_JID" ] && (( [ "$NICK" != "$MY_NICK" ] || [ "$NICK" = "" ] )) && [ "$CONTENT" != "" ] ; then
CONTENT="$(echo $CONTENT | sed -e 's/-/\\-/g' -e 's/&/\&amp;/g' -e 's/</\&lt;/g' -e 's/>/\&gt;/g')"
notify-send -a "Poezio" -i "$ICON" "$HEADER" "$CONTENT"
unset NOCONT

20
primitives/texttoicon Executable file
View File

@ -0,0 +1,20 @@
#!/bin/sh
# Generates a notification icon with ImageMagick 6.
BACKGROUND_COLOR="#0c1111"
FOREGROUND_COLOR="#425D4F"
if [ ! -d "$2" ] ; then
DESTINATION="$HOME/.cache/.texttoicon.png"
else
DESTINATION="$2"
fi
CONTENT="$(echo "$1" | sed 's/^\(.\{3\}\).*/\1/')"
if [ "$CONTENT" = "" ] ; then CONTENT="🚽" ; fi
convert -size 128x128 xc:"$BACKGROUND_COLOR" -fill xc:"$FOREGROUND_COLOR" -stroke xc:"$FOREGROUND_COLOR" \
-font Symbola -pointsize 64 -gravity center \
-draw "text 0,0 \"$CONTENT\"" "$DESTINATION"
echo "$DESTINATION"