Compare commits
No commits in common. "e438ffc4aa279e5dce5439450b8c8af356b11b42" and "b1fe5f6698f124ba333b008e6465f2a504277e26" have entirely different histories.
e438ffc4aa
...
b1fe5f6698
4 changed files with 160 additions and 376 deletions
|
@ -1,309 +1,110 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
interval=14
|
interval=14
|
||||||
limit=100
|
sudo mariadb friendica --verbose -v -v --show-warnings --execute=\
|
||||||
|
"CREATE TEMPORARY TABLE \`tmp-post-origin-deleted\` (SELECT \`uri-id\`, \`uid\` FROM \`post-user\` WHERE \`gravity\` = 0 AND \
|
||||||
tmp_post_origin_deleted_q="${limit}"
|
\`deleted\` AND \`edited\` < (CURDATE() - INTERVAL "$interval" DAY)); \
|
||||||
until [[ "${tmp_post_origin_deleted_q}" -lt "${limit}" ]]
|
DELETE FROM \`post-origin\` WHERE (\`parent-uri-id\`, \`uid\`) IN (SELECT * FROM \`tmp-post-origin-deleted\`);"
|
||||||
do
|
sudo mariadb friendica --verbose -v -v --show-warnings --execute=\
|
||||||
echo "tmp_post_origin_deleted"
|
"CREATE TEMPORARY TABLE \`tmp-post-user-deleted\` (SELECT \`uri-id\` FROM \`post-user\` WHERE \`gravity\` = 0 AND \
|
||||||
tmp_post_origin_deleted=$(sudo mariadb friendica -N -B -q -e \
|
\`deleted\` AND \`edited\` < (CURDATE() - INTERVAL "$interval" DAY)); \
|
||||||
"SELECT \`uri-id\`, \`uid\` FROM \`post-user\` WHERE \`gravity\` = 0 AND \`deleted\` AND \`edited\` < (CURDATE() - INTERVAL ${interval} DAY) LIMIT ${limit}" \
|
DELETE FROM \`post-user\` WHERE \`uri-id\` IN (SELECT * FROM \`tmp-post-user-deleted\`);"
|
||||||
);
|
sudo mariadb friendica --verbose -v -v --show-warnings --execute=\
|
||||||
tmp_post_origin_deleted_q="${#tmp_post_origin_deleted[@]}"
|
"CREATE TEMPORARY TABLE \`tmp-post-uri-id-not-in-post-user\` (SELECT \`uri-id\` FROM \`post\` \
|
||||||
if [[ "${tmp_post_origin_deleted_q}" -gt 0 ]]
|
WHERE \`uri-id\` NOT IN (SELECT \`uri-id\` FROM \`post-user\`)); \
|
||||||
then
|
DELETE FROM \`post\` WHERE \`uri-id\` IN (SELECT * FROM \`tmp-post-uri-id-not-in-post-user\`);"
|
||||||
echo "${tmp_post_origin_deleted}" | while read -r uri_id uid
|
sudo mariadb friendica --verbose -v -v --show-warnings --execute=\
|
||||||
do
|
"CREATE TEMPORARY TABLE \`tmp-post-content-uri-id-not-in-post-user\` (SELECT \`uri-id\` FROM \`post-content\` \
|
||||||
if [[ -n "${uri_id}" && -n "${uid}" ]]
|
WHERE \`uri-id\` NOT IN (SELECT \`uri-id\` FROM \`post-user\`)); \
|
||||||
then
|
DELETE FROM \`post-content\` WHERE \`uri-id\` IN (SELECT * FROM \`tmp-post-content-uri-id-not-in-post-user\`);"
|
||||||
sudo mariadb friendica -v -v -v --show-warnings -e \
|
sudo mariadb friendica --verbose -v -v --show-warnings --execute=\
|
||||||
"DELETE FROM \`post-origin\` WHERE \`parent-uri-id\` = ${uri_id} AND \`uid\` = ${uid}"
|
"CREATE TEMPORARY TABLE \`tmp-post-thread-uri-id-not-in-post-user\` (SELECT \`uri-id\` FROM \`post-thread\` \
|
||||||
fi
|
WHERE \`uri-id\` NOT IN (SELECT \`uri-id\` FROM \`post-user\`)); \
|
||||||
done
|
DELETE FROM \`post-thread\` WHERE \`uri-id\` IN (SELECT * FROM \`tmp-post-thread-uri-id-not-in-post-user\`);"
|
||||||
fi
|
sudo mariadb friendica --verbose -v -v --show-warnings --execute=\
|
||||||
done
|
"CREATE TEMPORARY TABLE \`tmp-post-user-uri-id-not-in-post\` (SELECT \`uri-id\` FROM \`post-user\` \
|
||||||
|
WHERE \`uri-id\` NOT IN (SELECT \`uri-id\` FROM \`post\`)); \
|
||||||
tmp_post_user_deleted_q="${limit}"
|
DELETE FROM \`post-user\` WHERE \`uri-id\` IN (SELECT \`uri-id\` FROM \`tmp-post-user-uri-id-not-in-post\`);"
|
||||||
until [[ "${tmp_post_user_deleted_q}" -lt "${limit}" ]]
|
sudo mariadb friendica --verbose -v -v --show-warnings --execute=\
|
||||||
do
|
"CREATE TEMPORARY TABLE \`tmp-item-uri-not-in-valid-post-thread\` (SELECT \`id\` FROM \`item-uri\` WHERE \`id\` IN \
|
||||||
echo "tmp_post_user_deleted"
|
(SELECT \`uri-id\` FROM \`post-thread\` WHERE \`received\` < (CURDATE() - INTERVAL $interval DAY) \
|
||||||
tmp_post_user_deleted=$(sudo mariadb friendica -N -B -q -e \
|
AND NOT \`uri-id\` IN (SELECT \`uri-id\` FROM \`post-thread-user\` \
|
||||||
"SELECT \`uri-id\` FROM \`post-user\` WHERE \`gravity\` = 0 AND \`deleted\` AND \`edited\` < (CURDATE() - INTERVAL ${interval} DAY) LIMIT ${limit}" \
|
WHERE (\`mention\` OR \`starred\` OR \`wall\`) AND \`uri-id\` = \`post-thread\`.\`uri-id\`) \
|
||||||
);
|
AND NOT \`uri-id\` IN (SELECT \`uri-id\` FROM \`post-category\` \
|
||||||
tmp_post_user_deleted_q="${#tmp_post_user_deleted[@]}"
|
WHERE \`uri-id\` = \`post-thread\`.\`uri-id\`) \
|
||||||
if [[ "${tmp_post_user_deleted_q}" -gt 0 ]]
|
AND NOT \`uri-id\` IN (SELECT \`uri-id\` FROM \`post-collection\` \
|
||||||
then
|
WHERE \`uri-id\` = \`post-thread\`.\`uri-id\`) \
|
||||||
echo "${tmp_post_user_deleted}" | while read -r uid
|
AND NOT \`uri-id\` IN (SELECT \`uri-id\` FROM \`post-media\` \
|
||||||
do
|
WHERE \`uri-id\` = \`post-thread\`.\`uri-id\`) \
|
||||||
if [[ -n "${uid}" ]]
|
AND NOT \`uri-id\` IN (SELECT \`parent-uri-id\` FROM \`post-user\` INNER JOIN \`contact\` ON \`contact\`.\`id\` = \`contact-id\` AND \`notify_new_posts\` \
|
||||||
then
|
WHERE \`parent-uri-id\` = \`post-thread\`.\`uri-id\`) \
|
||||||
sudo mariadb friendica -v -v -v --show-warnings -e \
|
AND NOT \`uri-id\` IN (SELECT \`parent-uri-id\` FROM \`post-user\` \
|
||||||
"DELETE FROM \`post-user\` WHERE \`uri-id\` = ${uid}"
|
WHERE (\`origin\` OR \`event-id\` != 0 OR \`post-type\` = 128) AND \`parent-uri-id\` = \`post-thread\`.\`uri-id\`) \
|
||||||
fi
|
AND NOT \`uri-id\` IN (SELECT \`uri-id\` FROM \`post-content\` \
|
||||||
done
|
WHERE \`resource-id\` != 0 AND \`uri-id\` = \`post-thread\`.\`uri-id\`)) \
|
||||||
fi
|
); \
|
||||||
done
|
DELETE FROM \`item-uri\` WHERE \`id\` IN (SELECT * FROM \`tmp-item-uri-not-in-valid-post-thread\`) ;"
|
||||||
|
sudo mariadb friendica --verbose -v -v --show-warnings --execute=\
|
||||||
tmp_post_uri_id_not_in_post_user_q="${limit}"
|
"CREATE TEMPORARY TABLE \`tmp-item-uri-not-in-valid-post-user\` (SELECT \`id\` FROM \`item-uri\` WHERE \`id\` IN (SELECT \`uri-id\` FROM \`post-user\` WHERE \`gravity\` = 0 AND \`uid\` = 0 \
|
||||||
until [[ "${tmp_post_uri_id_not_in_post_user_q}" -lt "${limit}" ]]
|
AND \`received\` < (CURDATE() - INTERVAL $interval DAY) \
|
||||||
do
|
AND NOT \`uri-id\` IN ( \
|
||||||
echo "tmp_post_uri_id_not_in_post_user"
|
SELECT \`parent-uri-id\` FROM \`post-user\` AS \`i\` WHERE \`i\`.\`uid\` != 0 AND \`i\`.\`parent-uri-id\` = \`post-user\`.\`uri-id\` \
|
||||||
tmp_post_uri_id_not_in_post_user=$(sudo mariadb friendica -N -B -q -e \
|
) AND NOT \`uri-id\` IN ( \
|
||||||
"SELECT \`uri-id\` FROM \`post\` WHERE \`uri-id\` NOT IN (SELECT \`uri-id\` FROM \`post-user\`) LIMIT ${limit}" \
|
SELECT \`parent-uri-id\` FROM \`post-user\` AS \`i\` WHERE \`i\`.\`uid\` = 0 AND \`i\`.\`parent-uri-id\` = \`post-user\`.\`uri-id\` AND \`i\`.\`received\` > (CURDATE() - INTERVAL $interval DAY) \
|
||||||
);
|
) \
|
||||||
tmp_post_uri_id_not_in_post_user_q="${#tmp_post_uri_id_not_in_post_user[@]}"
|
)); \
|
||||||
if [[ "${tmp_post_uri_id_not_in_post_user_q}" -gt 0 ]]
|
DELETE FROM \`item-uri\` WHERE \`id\` IN (SELECT * FROM \`tmp-item-uri-not-in-valid-post-user\`);"
|
||||||
then
|
sudo mariadb friendica --verbose -v -v --show-warnings --execute=\
|
||||||
echo "${tmp_post_uri_id_not_in_post_user}" | while read -r uri_id
|
"CREATE TEMPORARY TABLE \`tmp-attach-not-in-post-media\` (SELECT \`id\` FROM \`attach\` WHERE \`id\` NOT IN (SELECT \`attach-id\` FROM \`post-media\`)); \
|
||||||
do
|
DELETE FROM \`attach\` WHERE \`id\` IN (SELECT * FROM \`tmp-attach-not-in-post-media\`);"
|
||||||
if [[ -n "${uri_id}" ]]
|
sudo mariadb friendica --verbose -v -v --show-warnings --execute=\
|
||||||
then
|
"CREATE TEMPORARY TABLE \`tmp-item-uri-not-valid\` (SELECT \`id\` FROM \`item-uri\` WHERE (\
|
||||||
sudo mariadb friendica -v -v -v --show-warnings -e \
|
\`id\` < (\
|
||||||
"DELETE FROM \`post\` WHERE \`uri-id\` = ${uri_id}"
|
SELECT \`uri-id\` FROM \`post\` WHERE \`received\` < CURDATE() - INTERVAL 1 DAY ORDER BY \`received\` DESC LIMIT 1 \
|
||||||
fi
|
) AND NOT EXISTS (\
|
||||||
done
|
SELECT \`uri-id\` FROM \`post-user\` WHERE \`uri-id\` = \`item-uri\`.\`id\` \
|
||||||
fi
|
) AND NOT EXISTS (\
|
||||||
done
|
SELECT \`parent-uri-id\` FROM \`post-user\` WHERE \`parent-uri-id\` = \`item-uri\`.\`id\` \
|
||||||
|
) AND NOT EXISTS (\
|
||||||
tmp_post_content_uri_id_not_in_post_user_q="${limit}"
|
SELECT \`thr-parent-id\` FROM \`post-user\` WHERE \`thr-parent-id\` = \`item-uri\`.\`id\` \
|
||||||
until [[ "${tmp_post_content_uri_id_not_in_post_user_q}" -lt "${limit}" ]]
|
) AND NOT EXISTS (\
|
||||||
do
|
SELECT \`external-id\` FROM \`post-user\` WHERE \`external-id\` = \`item-uri\`.\`id\` \
|
||||||
echo "tmp_post_content_uri_id_not_in_post_user"
|
) AND NOT EXISTS (\
|
||||||
tmp_post_content_uri_id_not_in_post_user=$(sudo mariadb friendica -N -B -q -e \
|
SELECT \`replies-id\` FROM \`post-user\` WHERE \`replies-id\` = \`item-uri\`.\`id\` \
|
||||||
"SELECT \`uri-id\` FROM \`post-content\` WHERE \`uri-id\` NOT IN (SELECT \`uri-id\` FROM \`post-user\`) LIMIT ${limit}" \
|
) AND NOT EXISTS (\
|
||||||
);
|
SELECT \`context-id\` FROM \`post-thread\` WHERE \`context-id\` = \`item-uri\`.\`id\` \
|
||||||
tmp_post_content_uri_id_not_in_post_user_q="${#tmp_post_content_uri_id_not_in_post_user[@]}"
|
) AND NOT EXISTS (\
|
||||||
if [[ "${tmp_post_content_uri_id_not_in_post_user_q}" -gt 0 ]]
|
SELECT \`conversation-id\` FROM \`post-thread\` WHERE \`conversation-id\`= \`item-uri\`.\`id\` \
|
||||||
then
|
) AND NOT EXISTS (\
|
||||||
echo "${tmp_post_content_uri_id_not_in_post_user}" | while read -r uri_id
|
SELECT \`uri-id\` FROM \`mail\` WHERE \`uri-id\` = \`item-uri\`.\`id\` \
|
||||||
do
|
) AND NOT EXISTS (\
|
||||||
if [[ -n "${uri_id}" ]]
|
SELECT \`uri-id\` FROM \`event\` WHERE \`uri-id\` = \`item-uri\`.\`id\` \
|
||||||
then
|
) AND NOT EXISTS (\
|
||||||
sudo mariadb friendica -v -v -v --show-warnings -e \
|
SELECT \`uri-id\` FROM \`user-contact\` WHERE \`uri-id\` = \`item-uri\`.\`id\` \
|
||||||
"DELETE FROM \`post-content\` WHERE \`uri-id\` = ${uri_id}"
|
) AND NOT EXISTS (\
|
||||||
fi
|
SELECT \`uri-id\` FROM \`contact\` WHERE \`uri-id\` = \`item-uri\`.\`id\` \
|
||||||
done
|
) AND NOT EXISTS (\
|
||||||
fi
|
SELECT \`uri-id\` FROM \`apcontact\` WHERE \`uri-id\` = \`item-uri\`.\`id\` \
|
||||||
done
|
) AND NOT EXISTS (\
|
||||||
|
SELECT \`uri-id\` FROM \`diaspora-contact\` WHERE \`uri-id\` = \`item-uri\`.\`id\` \
|
||||||
tmp_post_thread_uri_id_not_in_post_user_q="${limit}"
|
) AND NOT EXISTS (\
|
||||||
until [[ "${tmp_post_thread_uri_id_not_in_post_user_q}" -lt "${limit}" ]]
|
SELECT \`uri-id\` FROM \`inbox-status\` WHERE \`uri-id\` = \`item-uri\`.\`id\` \
|
||||||
do
|
) AND NOT EXISTS (\
|
||||||
echo "tmp_post_thread_uri_id_not_in_post_user"
|
SELECT \`uri-id\` FROM \`post-delivery\` WHERE \`uri-id\` = \`item-uri\`.\`id\` \
|
||||||
tmp_post_thread_uri_id_not_in_post_user=$(sudo mariadb friendica -N -B -q -e \
|
) AND NOT EXISTS (\
|
||||||
"SELECT \`uri-id\` FROM \`post-thread\` WHERE \`uri-id\` NOT IN (SELECT \`uri-id\` FROM \`post-user\`) LIMIT ${limit}" \
|
SELECT \`uri-id\` FROM \`post-delivery\` WHERE \`inbox-id\` = \`item-uri\`.\`id\` \
|
||||||
);
|
) AND NOT EXISTS (\
|
||||||
tmp_post_thread_uri_id_not_in_post_user_q="${#tmp_post_thread_uri_id_not_in_post_user[@]}"
|
SELECT \`parent-uri-id\` FROM \`mail\` WHERE \`parent-uri-id\` = \`item-uri\`.\`id\` \
|
||||||
if [[ "${tmp_post_thread_uri_id_not_in_post_user_q}" -gt 0 ]]
|
) AND NOT EXISTS (\
|
||||||
then
|
SELECT \`thr-parent-id\` FROM \`mail\` WHERE \`thr-parent-id\` = \`item-uri\`.\`id\` \
|
||||||
echo "${tmp_post_thread_uri_id_not_in_post_user}" | while read -r uri_id
|
)\
|
||||||
do
|
)); \
|
||||||
if [[ -n "${uri_id}" ]]
|
DELETE FROM \`item-uri\` WHERE \`id\` IN (SELECT * FROM \`tmp-item-uri-not-valid\`);"
|
||||||
then
|
sudo mariadb friendica --verbose -v -v --show-warnings --execute=\
|
||||||
sudo mariadb friendica -v -v -v --show-warnings -e \
|
"CREATE TEMPORARY TABLE \`tmp-item-uri-duplicate\` (SELECT \`id\` FROM \`item-uri\` t1 INNER JOIN \`item-uri\` t2 WHERE t1.\`id\` < t2.\`id\` AND t1.\`uri\` = t2.\`uri\`); \
|
||||||
"DELETE FROM \`post-thread\` WHERE \`uri-id\` = ${uri_id}"
|
DELETE FROM \`item-uri\` WHERE \`id\` IN (SELECT * FROM \`tmp-item-uri-duplicate\`);"
|
||||||
fi
|
sudo mariadb friendica --verbose -v -v --show-warnings --execute=\
|
||||||
done
|
"CREATE TEMPORARY TABLE \`tmp-post-media-duplicate\` (SELECT \`id\` FROM \`post-media\` u1 INNER JOIN \`post-media\` u2 WHERE u1.\`id\` < u2.\`id\` AND u1.\`uri-id\` = u2.\`uri-id\` AND u1.\`url\`= u2.\`url\`); \
|
||||||
fi
|
DELETE FROM \`post-media\` WHERE \`id\` IN (SELECT * FROM \`tmp-post-media-duplicate\`);"
|
||||||
done
|
sudo mariadb friendica --verbose -v -v --show-warnings --execute=\
|
||||||
|
"CREATE TEMPORARY TABLE \`tmp-post-user-duplicate\` (SELECT \`id\` FROM \`post-user\` v1 INNER JOIN \`post-media\` v2 WHERE v1.\`id\` = v2.\`id\` AND v1.\`uri-id\` = v2.\`uri-id\`); \
|
||||||
tmp_post_user_uri_id_not_in_post_q="${limit}"
|
DELETE FROM \`post-user\` WHERE \`id\` IN (SELECT * FROM \`tmp-post-user-duplicate\`;"
|
||||||
until [[ "${tmp_post_user_uri_id_not_in_post_q}" -lt "${limit}" ]]
|
|
||||||
do
|
|
||||||
echo "tmp_post_user_uri_id_not_in_post"
|
|
||||||
tmp_post_user_uri_id_not_in_post=$(sudo mariadb friendica -N -B -q -e \
|
|
||||||
"SELECT \`uri-id\` FROM \`post-user\` WHERE \`uri-id\` NOT IN (SELECT \`uri-id\` FROM \`post\`) LIMIT ${limit}" \
|
|
||||||
);
|
|
||||||
tmp_post_user_uri_id_not_in_post_q="${#tmp_post_user_uri_id_not_in_post[@]}"
|
|
||||||
if [[ "${tmp_post_user_uri_id_not_in_post_q}" -gt 0 ]]
|
|
||||||
then
|
|
||||||
echo "${tmp_post_user_uri_id_not_in_post}" | while read -r uri_id
|
|
||||||
do
|
|
||||||
if [[ -n "${uri_id}" ]]
|
|
||||||
then
|
|
||||||
sudo mariadb friendica -v -v -v --show-warnings -e \
|
|
||||||
"DELETE FROM \`post-user\` WHERE \`uri-id\` = ${uri_id}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
tmp_item_uri_not_in_valid_post_thread_q="${limit}"
|
|
||||||
until [[ "${tmp_item_uri_not_in_valid_post_thread_q}" -lt "${limit}" ]]
|
|
||||||
do
|
|
||||||
echo "tmp_item_uri_not_in_valid_post_thread"
|
|
||||||
tmp_item_uri_not_in_valid_post_thread=$(sudo mariadb friendica -N -B -q -e \
|
|
||||||
"SELECT \`id\` FROM \`item-uri\` WHERE \`id\` IN (SELECT \`uri-id\` FROM \`post-thread\` WHERE \`received\` < (CURDATE() - INTERVAL ${interval} DAY) \
|
|
||||||
AND NOT \`uri-id\` IN (SELECT \`uri-id\` FROM \`post-thread-user\` WHERE (\`mention\` OR \`starred\` OR \`wall\`) \
|
|
||||||
AND \`uri-id\` = \`post-thread\`.\`uri-id\`) \
|
|
||||||
AND NOT \`uri-id\` IN (SELECT \`uri-id\` FROM \`post-category\` WHERE \`uri-id\` = \`post-thread\`.\`uri-id\`) \
|
|
||||||
AND NOT \`uri-id\` IN (SELECT \`uri-id\` FROM \`post-collection\` WHERE \`uri-id\` = \`post-thread\`.\`uri-id\`) \
|
|
||||||
AND NOT \`uri-id\` IN (SELECT \`uri-id\` FROM \`post-media\` WHERE \`uri-id\` = \`post-thread\`.\`uri-id\`) \
|
|
||||||
AND NOT \`uri-id\` IN (SELECT \`parent-uri-id\` FROM \`post-user\` INNER JOIN \`contact\` ON \`contact\`.\`id\` = \`contact-id\` \
|
|
||||||
AND \`notify_new_posts\` WHERE \`parent-uri-id\` = \`post-thread\`.\`uri-id\`) \
|
|
||||||
AND NOT \`uri-id\` IN (SELECT \`parent-uri-id\` FROM \`post-user\` WHERE (\`origin\` OR \`event-id\` != 0 OR \`post-type\` = 128) \
|
|
||||||
AND \`parent-uri-id\` = \`post-thread\`.\`uri-id\`) \
|
|
||||||
AND NOT \`uri-id\` IN (SELECT \`uri-id\` FROM \`post-content\` WHERE \`resource-id\` != 0 AND \`uri-id\` = \`post-thread\`.\`uri-id\`)) \
|
|
||||||
LIMIT ${limit}" \
|
|
||||||
);
|
|
||||||
tmp_item_uri_not_in_valid_post_thread_q="${#tmp_item_uri_not_in_valid_post_thread[@]}"
|
|
||||||
if [[ "${tmp_item_uri_not_in_valid_post_thread_q}" -gt 0 ]]
|
|
||||||
then
|
|
||||||
echo "${tmp_item_uri_not_in_valid_post_thread}" | while read -r id
|
|
||||||
do
|
|
||||||
if [[ -n "${id}" ]]
|
|
||||||
then
|
|
||||||
sudo mariadb friendica -v -v -v --show-warnings -e \
|
|
||||||
"DELETE FROM \`item-uri\` WHERE \`id\` = ${id}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
tmp_item_uri_not_in_valid_post_user_q="${limit}"
|
|
||||||
until [[ "${tmp_item_uri_not_in_valid_post_user_q}" -lt "${limit}" ]]
|
|
||||||
do
|
|
||||||
echo "tmp_item_uri_not_in_valid_post_user"
|
|
||||||
tmp_item_uri_not_in_valid_post_user=$(sudo mariadb friendica -N -B -q -e \
|
|
||||||
"SELECT \`id\` FROM \`item-uri\` WHERE \`id\` IN (SELECT \`uri-id\` FROM \`post-user\` WHERE \`gravity\` = 0 AND \`uid\` = 0 \
|
|
||||||
AND \`received\` < (CURDATE() - INTERVAL ${interval} DAY) AND NOT \`uri-id\` IN ( SELECT \`parent-uri-id\` FROM \`post-user\` AS \`i\` WHERE \`i\`.\`uid\` != 0 \
|
|
||||||
AND \`i\`.\`parent-uri-id\` = \`post-user\`.\`uri-id\` ) AND NOT \`uri-id\` IN ( SELECT \`parent-uri-id\` FROM \`post-user\` AS \`i\` WHERE \`i\`.\`uid\` = 0 \
|
|
||||||
AND \`i\`.\`parent-uri-id\` = \`post-user\`.\`uri-id\` AND \`i\`.\`received\` > (CURDATE() - INTERVAL ${interval} DAY) ) ) LIMIT ${limit}" \
|
|
||||||
);
|
|
||||||
tmp_item_uri_not_in_valid_post_user_q="${#tmp_item_uri_not_in_valid_post_user[@]}"
|
|
||||||
if [[ "${tmp_item_uri_not_in_valid_post_user_q}" -gt 0 ]]
|
|
||||||
then
|
|
||||||
echo "${tmp_item_uri_not_in_valid_post_user}" | while read -r id
|
|
||||||
do
|
|
||||||
if [[ -n "${id}" ]]
|
|
||||||
then
|
|
||||||
sudo mariadb friendica -v -v -v --show-warnings -e \
|
|
||||||
"DELETE FROM \`item-uri\` WHERE \`id\` = ${id}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
tmp_attach_not_in_post_media_q="${limit}"
|
|
||||||
until [[ "${tmp_attach_not_in_post_media_q}" -lt "${limit}" ]]
|
|
||||||
do
|
|
||||||
echo "tmp_attach_not_in_post_media"
|
|
||||||
tmp_attach_not_in_post_media=$(sudo mariadb friendica -N -B -q -e \
|
|
||||||
"SELECT \`id\` FROM \`attach\` WHERE \`id\` NOT IN (SELECT \`attach-id\` FROM \`post-media\`) LIMIT ${limit}" \
|
|
||||||
);
|
|
||||||
tmp_attach_not_in_post_media_q="${#tmp_attach_not_in_post_media[@]}"
|
|
||||||
if [[ "${tmp_attach_not_in_post_media_q}" -gt 0 ]]
|
|
||||||
then
|
|
||||||
echo "${tmp_attach_not_in_post_media}" | while read -r id
|
|
||||||
do
|
|
||||||
if [[ -n "${id}" ]]
|
|
||||||
then
|
|
||||||
sudo mariadb friendica -v -v -v --show-warnings -e \
|
|
||||||
"DELETE FROM \`attach\` WHERE \`id\` = ${id}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
tmp_item_uri_not_valid_q="${limit}"
|
|
||||||
until [[ "${tmp_item_uri_not_valid_q}" -lt "${limit}" ]]
|
|
||||||
do
|
|
||||||
echo "tmp_item_uri_not_valid"
|
|
||||||
tmp_item_uri_not_valid=$(sudo mariadb friendica -N -B -q -e \
|
|
||||||
"SELECT \`id\` FROM \`item-uri\` WHERE ( \`id\` < ( SELECT \`uri-id\` FROM \`post\` WHERE \`received\` < CURDATE() - INTERVAL 1 DAY ORDER BY \`received\` DESC LIMIT 1 ) \
|
|
||||||
AND NOT EXISTS ( SELECT \`uri-id\` FROM \`post-user\` WHERE \`uri-id\` = \`item-uri\`.\`id\` ) \
|
|
||||||
AND NOT EXISTS ( SELECT \`parent-uri-id\` FROM \`post-user\` WHERE \`parent-uri-id\` = \`item-uri\`.\`id\` ) \
|
|
||||||
AND NOT EXISTS ( SELECT \`thr-parent-id\` FROM \`post-user\` WHERE \`thr-parent-id\` = \`item-uri\`.\`id\` ) \
|
|
||||||
AND NOT EXISTS ( SELECT \`external-id\` FROM \`post-user\` WHERE \`external-id\` = \`item-uri\`.\`id\` ) \
|
|
||||||
AND NOT EXISTS ( SELECT \`replies-id\` FROM \`post-user\` WHERE \`replies-id\` = \`item-uri\`.\`id\` ) \
|
|
||||||
AND NOT EXISTS ( SELECT \`context-id\` FROM \`post-thread\` WHERE \`context-id\` = \`item-uri\`.\`id\` ) \
|
|
||||||
AND NOT EXISTS ( SELECT \`conversation-id\` FROM \`post-thread\` WHERE \`conversation-id\`= \`item-uri\`.\`id\` ) \
|
|
||||||
AND NOT EXISTS ( SELECT \`uri-id\` FROM \`mail\` WHERE \`uri-id\` = \`item-uri\`.\`id\` ) \
|
|
||||||
AND NOT EXISTS ( SELECT \`uri-id\` FROM \`event\` WHERE \`uri-id\` = \`item-uri\`.\`id\` ) \
|
|
||||||
AND NOT EXISTS ( SELECT \`uri-id\` FROM \`user-contact\` WHERE \`uri-id\` = \`item-uri\`.\`id\` ) \
|
|
||||||
AND NOT EXISTS ( SELECT \`uri-id\` FROM \`contact\` WHERE \`uri-id\` = \`item-uri\`.\`id\` ) \
|
|
||||||
AND NOT EXISTS ( SELECT \`uri-id\` FROM \`apcontact\` WHERE \`uri-id\` = \`item-uri\`.\`id\` ) \
|
|
||||||
AND NOT EXISTS ( SELECT \`uri-id\` FROM \`diaspora-contact\` WHERE \`uri-id\` = \`item-uri\`.\`id\` ) \
|
|
||||||
AND NOT EXISTS ( SELECT \`uri-id\` FROM \`inbox-status\` WHERE \`uri-id\` = \`item-uri\`.\`id\` ) \
|
|
||||||
AND NOT EXISTS ( SELECT \`uri-id\` FROM \`post-delivery\` WHERE \`uri-id\` = \`item-uri\`.\`id\` ) \
|
|
||||||
AND NOT EXISTS ( SELECT \`uri-id\` FROM \`post-delivery\` WHERE \`inbox-id\` = \`item-uri\`.\`id\` ) \
|
|
||||||
AND NOT EXISTS ( SELECT \`parent-uri-id\` FROM \`mail\` WHERE \`parent-uri-id\` = \`item-uri\`.\`id\` ) \
|
|
||||||
AND NOT EXISTS ( SELECT \`thr-parent-id\` FROM \`mail\` WHERE \`thr-parent-id\` = \`item-uri\`.\`id\` )) \
|
|
||||||
LIMIT ${limit}" \
|
|
||||||
);
|
|
||||||
tmp_item_uri_not_valid_q="${#tmp_item_uri_not_valid[@]}"
|
|
||||||
if [[ "${tmp_item_uri_not_valid_q}" -gt 0 ]]
|
|
||||||
then
|
|
||||||
echo "${tmp_item_uri_not_valid}" | while read -r id
|
|
||||||
do
|
|
||||||
if [[ -n "${id}" ]]
|
|
||||||
then
|
|
||||||
sudo mariadb friendica -v -v -v --show-warnings -e \
|
|
||||||
"DELETE FROM \`item_uri\` WHERE \`id\` = ${id}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
tmp_item_uri_duplicate_q="${limit}"
|
|
||||||
until [[ "${tmp_item_uri_duplicate_q}" -lt "${limit}" ]]
|
|
||||||
do
|
|
||||||
echo "tmp_item_uri_duplicate"
|
|
||||||
tmp_item_uri_duplicate=$(sudo mariadb friendica -N -B -q -e \
|
|
||||||
"SELECT \`id\` FROM \`item-uri\` t1 INNER JOIN \`item-uri\` t2 WHERE t1.\`id\` < t2.\`id\` AND t1.\`uri\` = t2.\`uri\` LIMIT ${limit}" \
|
|
||||||
)
|
|
||||||
tmp_item_uri_duplicate_q="${#tmp_item_uri_duplicate[@]}"
|
|
||||||
if [[ "${tmp_item_uri_duplicate_q}" -gt 0 ]]
|
|
||||||
then
|
|
||||||
echo "${tmp_item_uri_duplicate}" | while read -r id
|
|
||||||
do
|
|
||||||
if [[ -n "${id}" ]]
|
|
||||||
then
|
|
||||||
sudo mariadb friendica -v -v -v --show-warnings -e \
|
|
||||||
"DELETE FROM \`item-uri\` WHERE \`id\` = ${id}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
tmp_post_media_duplicate_q="${limit}"
|
|
||||||
until [[ "${tmp_post_media_duplicate_q}" -lt "${limit}" ]]
|
|
||||||
do
|
|
||||||
echo "tmp_post_media_duplicate"
|
|
||||||
tmp_post_media_duplicate=$(sudo mariadb friendica -N -B -q -e \
|
|
||||||
"SELECT \`id\` FROM \`post-media\` u1 INNER JOIN \`post-media\` u2 WHERE u1.\`id\` < u2.\`id\` AND u1.\`uri-id\` = u2.\`uri-id\` AND u1.\`url\`= u2.\`url\` LIMIT ${limit}" \
|
|
||||||
)
|
|
||||||
tmp_post_media_duplicate_q="${#tmp_post_media_duplicate[@]}"
|
|
||||||
if [[ "${tmp_post_media_duplicate_q}" -gt 0 ]]
|
|
||||||
then
|
|
||||||
echo "${tmp_post_media_duplicate}" | while read -r id
|
|
||||||
do
|
|
||||||
if [[ -n "${id}" ]]
|
|
||||||
then
|
|
||||||
sudo mariadb friendica -v -v -v --show-warnings -e \
|
|
||||||
"DELETE FROM \`post-media\` WHERE \`id\` = ${id}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
tmp_post_user_duplicate_q="${limit}"
|
|
||||||
until [[ "${tmp_post_user_duplicate_q}" -lt "${limit}" ]]
|
|
||||||
do
|
|
||||||
echo "tmp_post_user_duplicate"
|
|
||||||
tmp_post_user_duplicate=$(sudo mariadb friendica -N -B -q -e \
|
|
||||||
"SELECT \`id\` FROM \`post-user\` v1 INNER JOIN \`post-media\` v2 WHERE v1.\`id\` = v2.\`id\` AND v1.\`uri-id\` = v2.\`uri-id\` LIMIT ${limit}" \
|
|
||||||
)
|
|
||||||
tmp_post_user_duplicate_q="${#tmp_post_user_duplicate[@]}"
|
|
||||||
if [[ "${tmp_post_user_duplicate_q}" -gt 0 ]]
|
|
||||||
then
|
|
||||||
echo "${tmp_post_user_duplicate}" | while read -r id
|
|
||||||
do
|
|
||||||
if [[ -n "${id}" ]]
|
|
||||||
then
|
|
||||||
sudo mariadb friendica -v -v -v --show-warnings -e \
|
|
||||||
"DELETE FROM \`post-user\` WHERE \`id\` = ${id}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
|
@ -22,8 +22,7 @@ loop_1(){
|
||||||
#Specific compression for large GIF files
|
#Specific compression for large GIF files
|
||||||
while [[ $(stat -c%s "${p}" || 0) -ge 512000 ]]
|
while [[ $(stat -c%s "${p}" || 0) -ge 512000 ]]
|
||||||
do
|
do
|
||||||
frameamount=$(exiftool -b -FrameCount "${p}" || 1)
|
nice -n 10 gifsicle "${p}" $(seq -f "#%g" 0 2 99) -O3 --lossy=80 --colors=255 -o "${p}" #&> /dev/null
|
||||||
nice -n 10 gifsicle "${p}" $(seq -f "#%g" 0 2 "${frameamount}") -O3 --lossy=80 --colors=255 -o "${p}" #&> /dev/null
|
|
||||||
done
|
done
|
||||||
elif [[ "${p}" =~ .png ]]
|
elif [[ "${p}" =~ .png ]]
|
||||||
then
|
then
|
||||||
|
@ -31,7 +30,7 @@ loop_1(){
|
||||||
elif [[ "${p}" =~ .webp ]]
|
elif [[ "${p}" =~ .webp ]]
|
||||||
then
|
then
|
||||||
#If file is not animated
|
#If file is not animated
|
||||||
if ! grep -v -q -e "ANIM" -e "ANMF" "${p}"
|
if [[ $(grep -v -q -e "ANIM" -e "ANMF" "${p}") ]]
|
||||||
then
|
then
|
||||||
nice -n 10 cwebp -mt -af -quiet "${p}" -o /tmp/temp.webp #&> /dev/null
|
nice -n 10 cwebp -mt -af -quiet "${p}" -o /tmp/temp.webp #&> /dev/null
|
||||||
if [[ -f /tmp/temp.webp ]]
|
if [[ -f /tmp/temp.webp ]]
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
IFS="
|
IFS="
|
||||||
"
|
"
|
||||||
#Set your parameters here
|
#Set your parameters here
|
||||||
url=friendica.example.net
|
url=hub.example.net
|
||||||
db=friendica
|
db=friendica
|
||||||
folder=/var/www/friendica
|
folder=/var/www/friendica
|
||||||
folderavatar=/var/www/friendica/avatar
|
folderavatar=/var/www/friendica/avatar
|
||||||
|
@ -44,12 +44,11 @@ do
|
||||||
do
|
do
|
||||||
m=$(( m + 1 ))
|
m=$(( m + 1 ))
|
||||||
loop "${x}" "${m}" "${n}" "${d}" &
|
loop "${x}" "${m}" "${n}" "${d}" &
|
||||||
if [[ $(jobs -r -p | wc -l) -ge $(( $(getconf _NPROCESSORS_ONLN) * 2 )) ]]
|
if [[ $(jobs -r -p | wc -l) -ge $(( $(getconf _NPROCESSORS_ONLN) / 1 )) ]]
|
||||||
then
|
then
|
||||||
wait -n
|
wait -n
|
||||||
fi
|
fi
|
||||||
#done < <(sudo find "${x}" -type f -mtime -8)
|
done < <(sudo find "${x}" -type f -mtime -8)
|
||||||
done < <(sudo find "${x}" -type f)
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
|
@ -24,18 +24,7 @@ find . -type f -iname "*.gif" -size +500k | (
|
||||||
done;
|
done;
|
||||||
wait
|
wait
|
||||||
)
|
)
|
||||||
#Specific compression for large GIF files
|
find . -type f -iname "*.png" -size +300k | (
|
||||||
find . -type f -iname "*.gif" -size +512000 | (
|
|
||||||
while read p
|
|
||||||
do
|
|
||||||
while [[ $(stat -c%s "${p}" || 0) -ge 512000 ]]
|
|
||||||
do
|
|
||||||
frameamount=$(exiftool -b -FrameCount "${p}")
|
|
||||||
nice -n 15 gifsicle "${p}" $(seq -f "#%g" 0 2 "${frameamount}") -O3 --lossy=80 --colors=255 -o "${p}"
|
|
||||||
done
|
|
||||||
done
|
|
||||||
)
|
|
||||||
find . -type f -iname "*.png" -size +500k | (
|
|
||||||
while read r
|
while read r
|
||||||
do
|
do
|
||||||
nice -n 15 oxipng -o max "${r}" &
|
nice -n 15 oxipng -o max "${r}" &
|
||||||
|
@ -47,25 +36,21 @@ find . -type f -iname "*.png" -size +500k | (
|
||||||
wait
|
wait
|
||||||
)
|
)
|
||||||
#compress-webp
|
#compress-webp
|
||||||
find . -type f -iname "*.webp" -size +50k | (
|
find . -type f -iname "*.webp" -size +200k | (
|
||||||
while read s
|
while read s
|
||||||
do
|
do
|
||||||
#If file is not animated
|
nice -n 15 cwebp -mt -af -quiet "${s}" -o /tmp/"${s##.*\/}"_temp.webp
|
||||||
if ! grep -v -q -e "ANIM" -e "ANMF" "${s}"
|
if [[ -f /tmp/"${s##.*\/}"_temp.webp ]]
|
||||||
then
|
then
|
||||||
cwebp -mt -af -quiet "${s}" -o /tmp/"${s##.*\/}"_temp.webp
|
size_new=$(stat -c%s /tmp/"${s##.*\/}"_temp.webp)
|
||||||
if [ -f /tmp/"${s##.*\/}"_temp.webp ]
|
size_original=$(stat -c%s "${s}")
|
||||||
|
if [[ "${size_original}" -gt "${size_new}" ]]
|
||||||
then
|
then
|
||||||
size_new=$(stat -c%s /tmp/"${s##.*\/}"_temp.webp || 0)
|
mv /tmp/"${s##.*\/}"_temp.webp "${s}"
|
||||||
size_original=$(stat -c%s "${s}" || 0)
|
|
||||||
if [ "$size_original" -gt "$size_new" ]
|
|
||||||
then
|
|
||||||
mv /tmp/"${s##.*\/}"_temp.webp "$s"
|
|
||||||
else
|
else
|
||||||
rm /tmp/"${s##.*\/}"_temp.webp
|
rm /tmp/"${s##.*\/}"_temp.webp
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
done;
|
done;
|
||||||
wait
|
wait
|
||||||
)
|
)
|
||||||
|
|
Loading…
Add table
Reference in a new issue