diff --git a/copy.sh b/copy.sh index 9a6b1d9..829ffb4 100755 --- a/copy.sh +++ b/copy.sh @@ -1,8 +1,7 @@ #!/bin/bash for i in ./*.sh; do shfmt -w "${i}" - shellcheck -o all -e SC2312 -f diff "${i}" | patch -p1 - shellcheck -o all -e SC2312 "${i}" + shellcheck -o all -f diff "${i}" | patch -p1 i_tmp="${i##./}" find /etc/cron.* -iname "${i_tmp%.sh}" | while read -r j; do echo "${j}" diff --git a/friendica-compress-storage.sh b/friendica-compress-storage.sh index b9bf8ce..86cb88f 100755 --- a/friendica-compress-storage.sh +++ b/friendica-compress-storage.sh @@ -5,39 +5,50 @@ IFS=" folder=/var/www/friendica storagefolder=storage -loop_1() { +loop_1(){ t=$(file "${p}") - if [[ "${t}" =~ JPEG ]]; then + if [[ "${t}" =~ JPEG ]] + then nice -n 10 jpegoptim -m 76 "${p}" #&> /dev/null - elif [[ "${t}" =~ GIF ]]; then + elif [[ "${t}" =~ GIF ]] + then nice -n 10 gifsicle --batch -O3 --lossy=80 --colors=255 "${p}" #&> /dev/null #Specific compression for large GIF files - while [[ $(stat -c%s "${p}" || 0) -ge 512000 ]]; do + while [[ $(stat -c%s "${p}" || 0) -ge 512000 ]] + do nice -n 10 gifsicle "${p}" $(seq -f "#%g" 0 2 99) -O3 --lossy=80 --colors=255 -o "${p}" #&> /dev/null done - elif [[ "${t}" =~ PNG ]]; then + elif [[ "${t}" =~ PNG ]] + then nice -n 10 oxipng -o max "${p}" #&> /dev/null - elif [[ "${p}" =~ Web/P ]]; then - #If file is not animated - if grep -v -q -e "ANIM" -e "ANMF" "${p}"; then - nice -n 10 cwebp -mt -af -quiet "${p}" -o /tmp/temp.webp #&> /dev/null - if [[ -f /tmp/temp.webp ]]; then - size_new=$(stat -c%s "/tmp/temp.webp" || 0) - size_original=$(stat -c%s "${p}") - if [[ "${size_original}" -gt "${size_new}" ]]; then - mv /tmp/temp.webp "${p}" #&> /dev/null - else - rm /tmp/temp.webp #&> /dev/null - fi - fi - fi - fi + elif [[ "${p}" =~ Web/P ]] + then + #If file is not animated + if [[ $(grep -v -q -e "ANIM" -e "ANMF" "${p}") ]] + then + nice -n 10 cwebp -mt -af -quiet "${p}" -o /tmp/temp.webp #&> /dev/null + if [[ -f /tmp/temp.webp ]] + then + size_new=$(stat -c%s "/tmp/temp.webp" || 0 ) + size_original=$(stat -c%s "${p}") + if [[ "${size_original}" -gt "${size_new}" ]] + then + mv /tmp/temp.webp "${p}" #&> /dev/null + else + rm /tmp/temp.webp #&> /dev/null + fi + fi + fi + fi } -find "${folder}/${storagefolder}" -depth -mindepth 2 -type f -size +50k -not -iname "index.html" | ( - while read -r p; do +c=0 +find "${folder}/${storagefolder}" -depth -mindepth 2 -type f -size +300k -not -iname "index.html" | ( + while read -r p + do loop_1 "${p}" & - until [[ $(jobs -r -p | wc -l) -lt $(($(getconf _NPROCESSORS_ONLN) / 2)) ]]; do + until [[ $(jobs -r -p | wc -l) -lt $(( $(getconf _NPROCESSORS_ONLN) / 2 )) ]] + do wait -n done done diff --git a/friendica-delete-old-users.sh b/friendica-delete-old-users.sh index e03a1d7..5bd94da 100755 --- a/friendica-delete-old-users.sh +++ b/friendica-delete-old-users.sh @@ -1,5 +1,6 @@ #!/bin/bash db="friendica" +idsdownfile="/tmp/idsdown.txt" url=friendica.example.net avatarfolder=/var/www/friendica/avatar avatarfolderescaped=${avatarfolder////\\/} @@ -10,7 +11,7 @@ loop() { #Find the pictures in the avatar folders and delete them "${dbengine}" "${db}" -N -B -q -e "select \`photo\`, \`thumb\`, \`micro\` from \`contact\` where \`id\` = ${lineb}" | while read -r photo thumb micro; do #If stored in avatar folder - if ! grep -v -q "${url}/avatar" <(echo "${photo}"); then + if [[ -z $(echo "${photo}" | grep "${url}/avatar") ]]; then phototrimmed=$(echo "${photo}" | sed -e "s/https:\/\/${url}\/avatar/${avatarfolderescaped}/g" -e "s/\?ts.*//g") rm -rfv "${phototrimmed}" thumbtrimmed=$(echo "${thumb}" | sed -e "s/https:\/\/${url}\/avatar/${avatarfolderescaped}/g" -e "s/\?ts.*//g") diff --git a/friendica-find-missing-servers.sh b/friendica-find-missing-servers.sh index 048740e..a23c64f 100755 --- a/friendica-find-missing-servers.sh +++ b/friendica-find-missing-servers.sh @@ -25,7 +25,7 @@ loop_3() { #Find the pictures in the avatar folders and delete them "${dbengine}" "${db}" -N -B -q -e "select \`photo\`, \`thumb\`, \`micro\` from \`contact\` where \`id\` = ${lineb}" | while read -r photo thumb micro; do #If stored in avatar folder - if grep -v -q "${url}/avatar" <(echo "${photo}"); then + if $(echo "${photo}" | grep -q "${url}/avatar"); then #isavatar=$(grep -q "${url}/avatar" <<< "${photo}") #if [[ -z "${isavatar}" ]] phototrimmed=$(echo "${photo}" | sed -e "s/https:\/\/${url}\/avatar/${avatarfolderescaped}/g" -e "s/\?ts.*//g") echo "${phototrimmed}" diff --git a/friendica-remove-invalid-photos.sh b/friendica-remove-invalid-photos.sh index 76ca3d0..6d6f7a7 100755 --- a/friendica-remove-invalid-photos.sh +++ b/friendica-remove-invalid-photos.sh @@ -42,6 +42,7 @@ until [[ $((nt + limit)) -gt ${dbcount} ]]; do batch=$(("${batch}" + 1)) #Read lastid outside of the loop with a temporary file if [[ -f /tmp/lastid && -s /tmp/lastid ]]; then + count=0 while read -r n_i nt_i lastid_i; do if [[ -s "${n_i}" ]]; then n="${n_i}" @@ -115,11 +116,9 @@ until [[ $((nt + limit)) -gt ${dbcount} ]]; do fi fi error_found=1 - k_photo_delta="${photo//.*?ts=//}" - #k_photo_delta=$(echo "${photo}" | sed -e "s/.*?ts=//g") + k_photo_delta=$(echo "${photo}" | sed -e "s/.*?ts=//g") else - #k_photo_original_time=$(echo "${photo}" | sed -e "s/.*?ts=//g") - k_photo_original_time="${photo//.*?ts=//}" + k_photo_original_time=$(echo "${photo}" | sed -e "s/.*?ts=//g") k_photo_found_time=$(stat -c%W "${k_photo}") k_photo_delta=$((k_photo_found_time - k_photo_original_time)) fi diff --git a/friendica-remove-old-photos-parallel.sh b/friendica-remove-old-photos-parallel.sh index 7e0272a..517be4f 100755 --- a/friendica-remove-old-photos-parallel.sh +++ b/friendica-remove-old-photos-parallel.sh @@ -8,7 +8,6 @@ folder=/var/www/friendica folderavatar=/var/www/friendica/avatar loop() { #Parse each file in folder - folderescaped=${folder////\\/} ky=$(echo "${y}" | sed -e "s/${folderescaped}/https:\/\/${url}/g" -e "s/-[0-9]*\..*\$//g") f=$(sudo mariadb "${db}" -N -B -q -e "select photo from contact where photo like '${ky}%' limit 1") if [[ $? -eq 0 && -z ${f} && -f ${y} ]]; then @@ -24,7 +23,7 @@ loop() { date #Go to the Friendica installation cd "${folderavatar}" || exit -#let "indexlength=37+${#url}" +let "indexlength=37+${#url}" ((indexlength = 49 + ${#url})) sudo mariadb "${db}" -e "alter table contact add index if not exists photo_index (photo(${indexlength}))" n=0 @@ -34,7 +33,7 @@ sudo find "${folderavatar}" -depth -mindepth 1 -maxdepth 1 -type d | while read #If the directory still exists if [[ -d "${x}" ]]; then folderescaped=${folder////\\/} - #kx=$(echo "${x}" | sed -e "s/${folderescaped}/https:\/\/${url}/g" -e "s/-[0-9]*\..*\$//g") + kx=$(echo "${x}" | sed -e "s/${folderescaped}/https:\/\/${url}/g" -e "s/-[0-9]*\..*\$//g") if [[ -d ${x} ]]; then m=0 while read -r y; do