#!/bin/sh
#
##echo "################################################"
##echo "# SMI to SRT convertor shell program ver 1.2 "
##echo "# Created date: 2013.05.29 "
##echo "# Creator info: http://www.nkpark.pe.kr "
##echo "################################################"
if [ "$#" -ne 2 ]
then
echo "Usage) $0 smi_file srt_file"
echo ""
exit
fi
echo "[`date '+%Y-%m-%d %H:%M:%S'`] Started"
smi_file=$1
srt_file=$2
start_active_toggle=0
tag_active_toggle=0
file_active_toggle=0
copy_active_toggle=0
main_content=
tag_content=
my_time_result=
srt_i=1
i=1
time_calc()
{
my_time_parsed=$1
time_remain=${my_time_parsed}
time_1=00`expr ${time_remain} / 3600000`
str_st=`expr ${#time_1} - 1`
time_1=`expr substr "${time_1}" ${str_st} 2`
time_remain=`expr ${time_remain} % 3600000`
time_2=00`expr ${time_remain} / 60000`
str_st=`expr ${#time_2} - 1`
time_2=`expr substr "${time_2}" ${str_st} 2`
time_remain=`expr ${time_remain} % 60000`
time_3=00`expr ${time_remain} / 1000`
str_st=`expr ${#time_3} - 1`
time_3=`expr substr "${time_3}" ${str_st} 2`
time_4=`expr ${time_remain} % 1000`
time_result="${time_1}:${time_2}:${time_3},${time_4}"
##echo ${time_result}
}
tag_content_calc()
{
my_tag_content=$1
##
ű׺ÎÅÍ ÀÛ¾÷½ÃÀÛÀε¥, űװ¡ ¾ø´Â °æ¿ìÀÇ Ã³¸®¸¦ À§Çؼ ÅÂ±× ºÎÅÍ ÀÛ¾÷½ÃÀÛ
my_check=`echo "${my_tag_content}" | grep -i ""`
time_calc "${time_parsed}"
if [ ${start_active_toggle} -eq 0 ]
then
my_time_from="${time_result}"
my_time_to="${time_result}"
my_time_result="${my_time_from} --> ${my_time_to}"
start_active_toggle=1
else
my_time_from="${my_time_to}"
my_time_to="${time_result}"
my_time_result="${my_time_from} --> ${my_time_to}"
my_check=`echo "${my_all_content}" | grep -i " " | wc -l`
if [ "${my_all_content}" != "" ] && [ ${my_check} -ne 1 ]
then
if [ ${file_active_toggle} -eq 0 ]
then
echo "" > "${srt_file}"
file_active_toggle=1
fi
##if [ ${copy_active_toggle} -eq 0 ]
##then
## copyrights head
## copy_active_toggle=1
##fi
echo "${srt_i}" >> ${srt_file}
echo "${my_time_result}" >> ${srt_file}
echo "${my_all_content}" >> ${srt_file}
echo "" >> ${srt_file}
srt_i=`expr ${srt_i} + 1`
fi
my_all_content=
fi
##echo ${my_time_result}
fi
##
ű״ \n(Çà¹Ù²Þ)À¸·Î ġȯ
my_check=`echo "${my_tag_content}" | grep -i "
" | wc -l`
if [ ${my_check} -eq 1 ]
then
##main_content="${main_content}\n"
##main_content=`echo "${main_content}" | tr '
' '\n' | tr '
' '\n' | tr '
' '\n' | tr '
' '\n'`
main_content=`echo "${main_content}" | sed 's/
/\n/g' | sed 's/
/\n/g' | sed 's/
/\n/g' | sed 's/
/\n/g'`
fi
##echo "${my_tag_content}"
}
main_content_calc()
{
my_main_content=$1
if [ ${start_active_toggle} -eq 1 ]
then
##my_main_content=`echo "${my_main_content}" | tr -d '\f\r\n'`
my_main_content=`echo "${my_main_content}" | sed 's/\f//g' | sed 's/\r//g' | sed 's/\n//g' | sed 's/^M//g'`
my_all_content="${my_all_content}${my_main_content}"
fi
}
copyrights()
{
cr_flag=$1
if [ "${cr_flag}" == "head" ]
then
cr_time_from="00:00:00,500"
cr_time_to=${my_time_from}
else
time_calc `expr ${my_time_parsed} + 10000`
##cr_time_from=${my_time_to}
cr_time_from=${time_result}
time_calc `expr ${my_time_parsed} + 5000`
cr_time_to=${time_result}
fi
cr_time_result="${cr_time_from} --> ${cr_time_to}"
echo "${srt_i}" >> ${srt_file}
echo "${cr_time_result}" >> ${srt_file}
echo "ÀÌ SRT ÀÚ¸·Àº ¹Ú³²±Ô°¡ ¸¸µç ÇÁ·Î±×·¥À¸·Î º¯È¯ÇÔ" >> ${srt_file}
echo "http://www.nkpark.pe.kr" >> ${srt_file}
echo "" >> ${srt_file}
srt_i=`expr ${srt_i} + 1`
}
nkline=`cat "${smi_file}" | wc -l`
while [ ${i} -le ${nkline} ]
do
read line_input
li_len=`expr length "${line_input}"`
c=1
while [ ${c} -le ${li_len} ]
do
char_parsed=`expr substr "${line_input}" ${c} 1`
case ${char_parsed} in
\<)
if [ `expr length "${main_content}"` -gt 0 ]
then
##echo $main_content
main_content_calc "${main_content}"
main_content=
fi
tag_active_toggle=1
;;
\>)
tag_content="${tag_content}${char_parsed}"
if [ `expr length "${tag_content}"` -gt 0 ]
then
##echo $tag_content
tag_content_calc "${tag_content}"
tag_content=
fi
tag_active_toggle=0
;;
*)
if [ ${tag_active_toggle} -eq 0 ]
then
main_content="${main_content}${char_parsed}"
fi
;;
esac
if [ ${tag_active_toggle} -eq 1 ]
then
tag_content="${tag_content}${char_parsed}"
fi
c=`expr ${c} + 1`
done
i=`expr ${i} + 1`
done < "${smi_file}"
if [ ${start_active_toggle} -eq 1 ]
then
copyrights tail
fi
if [ -f ${srt_file} ]
then
chmod 666 ${srt_file}
fi
echo "[`date '+%Y-%m-%d %H:%M:%S'`] Finished"