|
@@ -8913,15 +8913,6 @@ function install_gnu_social {
|
8913
|
8913
|
fi
|
8914
|
8914
|
echo "GNU Social onion domain:${MICROBLOG_ONION_HOSTNAME}" >> $COMPLETION_FILE
|
8915
|
8915
|
|
8916
|
|
- # clear down the database periodically
|
8917
|
|
- echo '$n = new Notice();' > /var/www/$MICROBLOG_DOMAIN_NAME/htdocs/clear-database.php
|
8918
|
|
- echo "\$n->whereAdd('created < NOW() - INTERVAL 1 YEAR');" >> /var/www/$MICROBLOG_DOMAIN_NAME/htdocs/clear-database.php
|
8919
|
|
- echo 'if ($n->find()) { while ($n->fetch()) { $n->deleteAs($n->getProfile()); } }' >> /var/www/$MICROBLOG_DOMAIN_NAME/htdocs/clear-database.php
|
8920
|
|
- echo 'exit' >> /var/www/$MICROBLOG_DOMAIN_NAME/htdocs/clear-database.php
|
8921
|
|
- echo '#!/bin/bash' > /etc/cron.weekly/clear-microblog-database
|
8922
|
|
- echo "cat /var/www/$MICROBLOG_DOMAIN_NAME/htdocs/clear-database.php | php /var/www/$MICROBLOG_DOMAIN_NAME/htdocs/scripts/console.php" >> /etc/cron.weekly/clear-microblog-database
|
8923
|
|
- chmod +x /etc/cron.weekly/clear-microblog-database
|
8924
|
|
-
|
8925
|
8916
|
# some post-install instructions for the user
|
8926
|
8917
|
if ! grep -q $"Microblog administrator" /home/$MY_USERNAME/README; then
|
8927
|
8918
|
echo '' >> /home/$MY_USERNAME/README
|
|
@@ -8939,6 +8930,64 @@ function install_gnu_social {
|
8939
|
8930
|
echo 'install_gnu_social' >> $COMPLETION_FILE
|
8940
|
8931
|
}
|
8941
|
8932
|
|
|
8933
|
+function expire_gnu_social_posts {
|
|
8934
|
+ # To prevent the database size from growing endlessly this script expires posts
|
|
8935
|
+ # after a number of months
|
|
8936
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_DEVELOPER" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
|
|
8937
|
+ return
|
|
8938
|
+ fi
|
|
8939
|
+ if [ ! -d /var/www/$MICROBLOG_DOMAIN_NAME/htdocs ]; then
|
|
8940
|
+ return
|
|
8941
|
+ fi
|
|
8942
|
+
|
|
8943
|
+ gnusocial_expire_script=/usr/bin/gnusocial-expire
|
|
8944
|
+
|
|
8945
|
+ echo '<?php' > $gnusocial_expire_script
|
|
8946
|
+ echo '' >> $gnusocial_expire_script
|
|
8947
|
+ echo '// GNU Social post expiry script, based on StatExpire by Tony Baldwin' > $gnusocial_expire_script
|
|
8948
|
+ echo '// https://github.com/tonybaldwin/statexpire' > $gnusocial_expire_script
|
|
8949
|
+ echo '' >> $gnusocial_expire_script
|
|
8950
|
+ echo '$oldate=date(("Y-m-d"), strtotime("-3 months"));' >> $gnusocial_expire_script
|
|
8951
|
+ echo '$username="root";' >> $gnusocial_expire_script
|
|
8952
|
+ echo "\$password=file_get_contents(\"$DATABASE_PASSWORD_FILE\");" >> $gnusocial_expire_script
|
|
8953
|
+ echo '$database="gnusocial";' >> $gnusocial_expire_script
|
|
8954
|
+ echo '' >> $gnusocial_expire_script
|
|
8955
|
+ echo 'if (!$link = mysql_connect("localhost", $username, $password)) {' >> $gnusocial_expire_script
|
|
8956
|
+ echo ' echo "Could not connect to mariadb";' >> $gnusocial_expire_script
|
|
8957
|
+ echo ' exit;' >> $gnusocial_expire_script
|
|
8958
|
+ echo '}' >> $gnusocial_expire_script
|
|
8959
|
+ echo '' >> $gnusocial_expire_script
|
|
8960
|
+ echo 'if (!mysql_select_db($database, $link)) {' >> $gnusocial_expire_script
|
|
8961
|
+ echo ' echo "Could not select gnusocial database";' >> $gnusocial_expire_script
|
|
8962
|
+ echo ' exit;' >> $gnusocial_expire_script
|
|
8963
|
+ echo '}' >> $gnusocial_expire_script
|
|
8964
|
+ echo '' >> $gnusocial_expire_script
|
|
8965
|
+ echo "\$notice_query=\"DELETE FROM notice WHERE created <= '\$oldate 01:01:01'\";" >> $gnusocial_expire_script
|
|
8966
|
+ echo "\$conversation_query=\"DELETE FROM conversation WHERE created <= '$oldate 01:01:01'\";" >> $gnusocial_expire_script
|
|
8967
|
+ echo "\$reply_query=\"DELETE FROM reply WHERE modified <= '\$oldate 01:01:01'\";" >> $gnusocial_expire_script
|
|
8968
|
+ echo '' >> $gnusocial_expire_script
|
|
8969
|
+ echo 'mysql_query($notice_query);' >> $gnusocial_expire_script
|
|
8970
|
+ echo '$rowaff1=mysql_affected_rows();' >> $gnusocial_expire_script
|
|
8971
|
+ echo 'mysql_query($conversation_query);' >> $gnusocial_expire_script
|
|
8972
|
+ echo '$rowaff2=mysql_affected_rows();' >> $gnusocial_expire_script
|
|
8973
|
+ echo 'mysql_query($reply_query);' >> $gnusocial_expire_script
|
|
8974
|
+ echo '$rowaff3=mysql_affected_rows();' >> $gnusocial_expire_script
|
|
8975
|
+ echo 'mysql_close();' >> $gnusocial_expire_script
|
|
8976
|
+ echo '' >> $gnusocial_expire_script
|
|
8977
|
+ echo 'echo "Expire GNU Social posts: $rowaff1 notices, $rowaff2 conversations, and $rowaff3 replies deleted from database.\n";' >> $gnusocial_expire_script
|
|
8978
|
+ chmod +x $gnusocial_expire_script
|
|
8979
|
+
|
|
8980
|
+ # Add a cron job
|
|
8981
|
+ if ! grep -q "$gnusocial_expire_script" /etc/crontab; then
|
|
8982
|
+ echo "10 3 * * * root /usr/bin/timeout 500 /usr/bin/php $gnusocial_expire_script" >> /etc/crontab
|
|
8983
|
+ fi
|
|
8984
|
+
|
|
8985
|
+ # remove old expire script
|
|
8986
|
+ if [ -f /etc/cron.weekly/clear-microblog-database ]; then
|
|
8987
|
+ rm /etc/cron.weekly/clear-microblog-database
|
|
8988
|
+ fi
|
|
8989
|
+}
|
|
8990
|
+
|
8942
|
8991
|
function install_gnu_social_theme {
|
8943
|
8992
|
if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_DEVELOPER" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
|
8944
|
8993
|
return
|
|
@@ -10490,6 +10539,7 @@ install_wiki
|
10490
|
10539
|
install_blog
|
10491
|
10540
|
mark_blog_domain
|
10492
|
10541
|
install_gnu_social
|
|
10542
|
+expire_gnu_social_posts
|
10493
|
10543
|
install_gnu_social_theme
|
10494
|
10544
|
install_rss_reader
|
10495
|
10545
|
install_rss_mobile_reader
|