X-Git-Url: http://git.plutz.net/?a=blobdiff_plain;f=actions%2Fmultitag.sh;h=3c9848e8cf938b8365560f24313fdb274f48151a;hb=9554fea689ec1519a572888aae9dc37ae140cd57;hp=db106f512406defd685eb73f89cacd5b2fdbe957;hpb=8d127fe6a7ae92a34d8885a945a36dca1b47211e;p=serve0 diff --git a/actions/multitag.sh b/actions/multitag.sh index db106f5..3c9848e 100755 --- a/actions/multitag.sh +++ b/actions/multitag.sh @@ -1,9 +1,25 @@ #!/bin/zsh +# Copyright 2014 - 2016 Paul Hänsch +# +# This file is part of Serve0 +# +# Serve0 is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Serve0 is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with Serve0 If not, see . -filter="${_GET[f]}" -search="${_GET[s]}" -order=$(echo "${_GET[o]}" |egrep '^(Name|Date|Length)$') -page=$(echo "${_GET[pn]}" |egrep '^[0-9]+$') +filter="${_POST[f]}" +search="${_POST[s]}" +order=$(validate "${_POST[o]}" 'Name|Date|Length' Name) +page=$(validate "${_POST[pn]}" '[0-9]+' 1) addtag(){ meta="$1" @@ -25,17 +41,18 @@ $description EOF } -cgi_post n='' while [ -n "${_POST[tagsel$n]}" ]; do tagsel="${_POST[tagsel$n]}" ( t='' while [ -n "${_POST[ctag$t]}" ]; do - echo "${_POST[ctag$t]}" + htmlsafe "${_POST[ctag$t]}" + printf \\n [ -z "$t" ] && t=0 || t=$(($t + 1)) done - echo "${_POST[tags]}" - ) |sed -r 's:\t| :_:g;s:^!|\r|\$|\^::g;s:\\:\\\\:g;s//\>\;/g' \ + htmlsafe "${_POST[tags]}" + printf \\n + ) | sed -r 's:\t: :g;s:^!|[\r\$\^\|]::g;' \ | while read tag; do addtag "${_DATA}/meta/$tagsel.meta" "$tag" done @@ -44,7 +61,8 @@ while [ -n "${_POST[tagsel$n]}" ]; do [ -z "$n" ] && n=0 || n=$(($n + 1)) done -rm "${_DATA}"/cache/*[0-9]\?* 2>/dev/null -[ -n "${_POST[tags]}" ] && rm "${_DATA}"/cache/taglist 2>/dev/null +rm "${_DATA}"/cache/\?* 2>/dev/null +[ -n "${_POST[tags]}" ] && rm "${_DATA}"/cache/taglist_set "${_DATA}"/cache/taglist_filter 2>/dev/null -echo -n "Location: ?o=$order&s=$search&f=$filter&pn=$page\n\n" +#redirect "?o=$order&s=$search&f=$filter&pn=$page" +redirect "${_POST[page]}"