comparison s4-blog.sh @ 488:9f5b08b205bf

Allow numeric argument for day(s)/week(s)/month(s)/year(s)
author HIROSE Yuuji <yuuji@gentei.org>
date Thu, 15 Feb 2018 12:24:39 +0859
parents b17bdc798dc5
children d879d9d1acb7
comparison
equal deleted inserted replaced
487:b17bdc798dc5 488:9f5b08b205bf
784 # Like '#1234', assume as artID 784 # Like '#1234', assume as artID
785 rowid=$((${kwd#\#} + 0)) # Force to be a number 785 rowid=$((${kwd#\#} + 0)) # Force to be a number
786 kc="ar.rowid = $rowid" 786 kc="ar.rowid = $rowid"
787 else 787 else
788 for k in `echo "$kwd" | sed "s/'/''/g"`; do # With wrap quotes 788 for k in `echo "$kwd" | sed "s/'/''/g"`; do # With wrap quotes
789 ctime=""
789 if expr x"$k" : 'x@[><= ]*[1-9][][0-9]*-[][0-9:-]*$' >/dev/null >&2; then 790 if expr x"$k" : 'x@[><= ]*[1-9][][0-9]*-[][0-9:-]*$' >/dev/null >&2; then
790 # '@<2016-10-10' -> ctime < '2016-10-10' 791 # '@<2016-10-10' -> ctime < '2016-10-10'
791 # '@>=2016-10-10' -> ctime >= '2016-10-10' 792 # '@>=2016-10-10' -> ctime >= '2016-10-10'
792 # '@2016-10-10' -> ctime GLOB '@2016-10-10' 793 # '@2016-10-10' -> ctime GLOB '@2016-10-10'
793 k=${k#@} 794 k=${k#@}
798 kc=$kc${kc:+" AND "}"ctime $op '${ctime}'" 799 kc=$kc${kc:+" AND "}"ctime $op '${ctime}'"
799 # Not sure GROUP BY a.blogid is comfortable for searchers...? 800 # Not sure GROUP BY a.blogid is comfortable for searchers...?
800 ##### kwdgrp=" GROUP BY a.blogid" ## Add this to lessen results 801 ##### kwdgrp=" GROUP BY a.blogid" ## Add this to lessen results
801 elif [ x"$k" = x"@today" -o x"$k" = x"@今日" ]; then 802 elif [ x"$k" = x"@today" -o x"$k" = x"@今日" ]; then
802 ctime=`date +%F` 803 ctime=`date +%F`
803 kc=$kc${kc:+" AND "}"ctime GLOB '${ctime}*'" 804 elif n=`expr x"$k" : 'x@\([0-9]*\)days*'` >/dev/null >&2; then
805 ctime=`query "SELECT datetime('now', 'localtime', '-$n days');"`
804 elif [ x"$k" = x"@week" ]; then 806 elif [ x"$k" = x"@week" ]; then
805 ctime=`query "SELECT datetime('now', 'localtime', '-7 days');"` 807 ctime=`query "SELECT datetime('now', 'localtime', '-7 days');"`
806 kc=$kc${kc:+" AND "}"ctime > '${ctime}'" 808 elif n=`expr x"$k" : 'x@\([0-9]*\)weeks*'` >/dev/null >&2; then
809 n=$((n * 7))
810 ctime=`query "SELECT datetime('now', 'localtime', '-$n days');"`
807 elif [ x"$k" = x"@month" ]; then 811 elif [ x"$k" = x"@month" ]; then
808 ctime=`query "SELECT datetime('now', 'localtime', '-1 month');"` 812 ctime=`query "SELECT datetime('now', 'localtime', '-1 month');"`
809 kc=$kc${kc:+" AND "}"ctime > '${ctime}'" 813 elif n=`expr x"$k" : 'x@\([0-9]*\)months*'` >/dev/null >&2; then
814 ctime=`query "SELECT datetime('now', 'localtime', '-$n month');"`
810 elif [ x"$k" = x"@year" ]; then 815 elif [ x"$k" = x"@year" ]; then
811 ctime=`query "SELECT datetime('now', 'localtime', '-1 year');"` 816 ctime=`query "SELECT datetime('now', 'localtime', '-1 year');"`
817 elif n=`expr x"$k" : 'x@\([0-9]*\)years*'` >/dev/null >&2; then
818 ctime=`query "SELECT datetime('now', 'localtime', '-$n year');"`
819 fi
820 if [ -n "$ctime" ]; then
812 kc=$kc${kc:+" AND "}"ctime > '${ctime}'" 821 kc=$kc${kc:+" AND "}"ctime > '${ctime}'"
813 else 822 else
814 kc=$kc${kc:+" AND "}"content LIKE '%$k%'" 823 kc=$kc${kc:+" AND "}"content LIKE '%$k%'"
815 fi 824 fi
816 done 825 done

yatex.org