#!/bin/bash
export PATH="/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin"


############################################################################
### ADD TO log4j.xml this:
############################################################################
#         <appender name="MEDIASERVING" class="org.apache.log4j.RollingFileAppender">
#                <param name="Threshold" value="DEBUG"/>
#                <param name="Append" value="false" />
#                <param name="File" value="${serviio.home}/log/serviio-media.log" />
#                <param name="MaxFileSize" value="20MB" />
#                <param name="MaxBackupIndex" value="10" />
#                <param name="Encoding" value="UTF-8" />
#                <layout class="org.apache.log4j.PatternLayout">
#                        <param name="ConversionPattern" value="%d{ISO8601} %-5p [%c{1}] %m%n"/>
#                </layout>
#        </appender>
#
# and
#   <logger name="org.serviio.delivery.resource.VideoDeliveryEngine" additivity="false">
#      <level value="DEBUG"/>
#      <appender-ref ref="MEDIASERVING"/>
#   </logger>
############################################################################

#@@@ EDIT to your install dir:
sLOG=/usr/local/serviio/log/serviio-media.log
#--- EDIT END.

DEV=""
PROFILE=""
ITEM=""
EVENTMEDIA=""
TIME=""

egrep " DEBUG \[VideoDeliveryEngine\] Delivering "[item,file] $sLOG 2> /dev/null | while read line
do
  if [[ ! -n "$DEV" && "${line}" == *" DEBUG [VideoDeliveryEngine] Delivering item "*" for client 'Identifier="* ]]; then
    AUX=${line%DEBUG \[VideoDeliveryEngine\]*}; TIME=${AUX/,*}
    AUX=${line#*Identifier=}; DEV=${AUX/, *}
    AUX=${line#*, Profile=}; PROFILE=${AUX/\'*}
    AUX=${line#* DEBUG \[VideoDeliveryEngine\] Delivering item \'}; ITEM=${AUX/\' for client *}
    [ "$DEV" == "$pDEV" -a "$ITEM" == "$pITEM" ] && DEV=""; ## omit matching
  elif [[ -n "$DEV" && "${line}" == *" DEBUG [VideoDeliveryEngine] Delivering file "* ]]; then
    AUX=${line#* DEBUG \[VideoDeliveryEngine\] Delivering file \'}; EVENTMEDIA=${AUX/\' *}

    echo "[$TIME] Client $DEV connected and playing ${EVENTMEDIA} (${PROFILE}/item:${ITEM})"
    pDEV=$DEV; pITEM=$ITEM; DEV=""; ## To avoid repeated lines for the same playing
  fi
done

exit 0
