X-Git-Url: http://git.plutz.net/?a=blobdiff_plain;f=actions%2Fmeta.sh;h=ab46894708aa192a655a95af982f8f9f3f9402de;hb=d716f2ce1fe64cf87f777490315bc51906001c72;hp=034befabe19d2ee374f38094af9481b2aecef1d2;hpb=75c1d67f9a00ed278ce1f6fddda83e1010e52adc;p=serve0 diff --git a/actions/meta.sh b/actions/meta.sh index 034befa..ab46894 100755 --- a/actions/meta.sh +++ b/actions/meta.sh @@ -1,4 +1,20 @@ #!/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 . cgi_refdata @@ -9,21 +25,17 @@ filter="${_GET[f]}" page="${_GET[pn]}" file="${_DATA}/meta/$info.meta" -cgi_post length="${_POST[length]}" width="${_POST[width]}" height="${_POST[height]}" trash="${_POST[trash]}" cancel="${_POST[cancel]}" tagacc="${_POST[tag]}" -tags="$(echo "${_POST[tags]}" \ - | sed -r 's:\t| :_:g;s:^!|\r|\$|\^::g;s:\\:\\\\:g;s//\>\;/g' -)" -description="$(echo -e "${_POST[description]}" \ - |sed 's/\r//g;s/\\/\\\\/g;s//\>\;/g' -)" +tags="$(htmlsafe "${_POST[tags]}" |sed -r 's:\t: :g;s:^!|[\r\$\^\|]::g;' |tr '\n' '|')" +description="$(htmlsafe "${_POST[description]}")" + n=0; while [ -n "${_POST[tag$n]}" ]; do - tagacc="${_POST[tag$n]}|$tagacc" + tagacc="$(htmlsafe ${_POST[tag$n]} |sed -r '2,$d;s:\t| :_:g;s:^!|\r|\$|\^::g;')|$tagacc" n=$(($n + 1)) done @@ -33,13 +45,14 @@ done rm "${_DATA}/cache/$info.cache" 2>/dev/null rm ${_DATA}/cache/\?* 2>/dev/null else - echo -e "$length\t$width\t$height\t$info" > "$file" - echo -e "${tagacc}|${tags}" |tr '\n' '|' >> "$file" - echo >>"$file" - echo -e "${description}" >> "$file" + cat >$file </dev/null - rm ${_DATA}/cache/*[0-9]\?* 2>/dev/null - rm ${_DATA}/cache/taglist 2>/dev/null + rm ${_DATA}/cache/\?* 2>/dev/null + rm ${_DATA}/cache/taglist_set ${_DATA}/cache/taglist_filter 2>/dev/null fi -echo -n "Location: ?i=&pn=${page}&s=${search}&f=${filter}&o=${order}#$info\n\n" +redirect "${_POST[referrer]:-?i=&pn=${page}&s=${search}&f=${filter}&o=${order}#${info}}"