Mercurial > hgrepos > hgweb.cgi > s4
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 |