|  | @@ -54,14 +54,42 @@ MATRIX_REPO="https://github.com/matrix-org/synapse"
 | 
	
		
			
			| 54 | 54 |  MATRIX_COMMIT='c45dc6c62aa2a2e83a10d8116a709dfd8c144e3c'
 | 
	
		
			
			| 55 | 55 |  REPORT_STATS="no"
 | 
	
		
			
			| 56 | 56 |  MATRIX_SECRET=
 | 
	
		
			
			|  | 57 | +MATRIX_EXPIRE_MONTHS=1
 | 
	
		
			
			| 57 | 58 |  
 | 
	
		
			
			| 58 | 59 |  matrix_variables=(ONION_ONLY
 | 
	
		
			
			| 59 | 60 |                    MY_USERNAME
 | 
	
		
			
			| 60 | 61 |                    MATRIX_SECRET
 | 
	
		
			
			| 61 | 62 |                    DEFAULT_DOMAIN_NAME
 | 
	
		
			
			| 62 | 63 |                    MATRIX_DOMAIN_NAME
 | 
	
		
			
			|  | 64 | +                  MATRIX_EXPIRE_MONTHS
 | 
	
		
			
			| 63 | 65 |                    MATRIX_CODE)
 | 
	
		
			
			| 64 | 66 |  
 | 
	
		
			
			|  | 67 | +function matrix_expire_old_posts {
 | 
	
		
			
			|  | 68 | +    read_config_param MY_USERNAME
 | 
	
		
			
			|  | 69 | +    read_config_param MATRIX_DOMAIN_NAME
 | 
	
		
			
			|  | 70 | +    read_config_param MATRIX_EXPIRE_MONTHS
 | 
	
		
			
			|  | 71 | +    read_config_param MATRIX_PORT
 | 
	
		
			
			|  | 72 | +
 | 
	
		
			
			|  | 73 | +    matrix_remove_posts=/usr/bin/matrix-remove
 | 
	
		
			
			|  | 74 | +    echo '#!/bin/bash' > $matrix_remove_posts
 | 
	
		
			
			|  | 75 | +    echo "cd $MATRIX_DATA_DIR" >> $matrix_remove_posts
 | 
	
		
			
			|  | 76 | +    echo 'ROOM=$1' >> $matrix_remove_posts
 | 
	
		
			
			|  | 77 | +    echo "ADMIN=\"@${MY_USERNAME}:$MATRIX_DOMAIN_NAME\"" >> $matrix_remove_posts
 | 
	
		
			
			|  | 78 | +    echo "TIME='$MATRIX_EXPIRE_MONTHS months ago'" >> $matrix_remove_posts
 | 
	
		
			
			|  | 79 | +    echo "UNIX_TIMESTAMP=\$(date +%s%3N --date='TZ=\"UTC+0\" '\"\$TIME\")" >> $matrix_remove_posts
 | 
	
		
			
			|  | 80 | +    echo 'BUSY="pragma busy_timeout=20000"' >> $matrix_remove_posts
 | 
	
		
			
			|  | 81 | +    echo "BUFFER=\$(sqlite3 homeserver.db \"\$BUSY;select event_id from events where type='m.room.message' and received_ts<'\$UNIX_TIMESTAMP' and room_id='\$ROOM' order by received_ts desc limit 1;\")" >> $matrix_remove_posts
 | 
	
		
			
			|  | 82 | +    echo "EVENT_ID=\$(echo \$BUFFER|awk '{print \$2}')" >> $matrix_remove_posts
 | 
	
		
			
			|  | 83 | +
 | 
	
		
			
			|  | 84 | +    echo "BUFFER=\$(sqlite3 homeserver.db \"\$BUSY;select token from access_tokens where user_id like '\$ADMIN' order by id desc limit 1;\")" >> $matrix_remove_posts
 | 
	
		
			
			|  | 85 | +    echo "TOKEN=\$(echo \$BUFFER|awk '{print \$2}')" >> $matrix_remove_posts
 | 
	
		
			
			|  | 86 | +
 | 
	
		
			
			|  | 87 | +    echo 'set -x' >> $matrix_remove_posts
 | 
	
		
			
			|  | 88 | +    echo "curl -v -X POST 'https://$MATRIX_DOMAIN_NAME/_matrix/client/r0/admin/purge_history/'\$ROOM'/'\$EVENT_ID'?access_token='\$TOKEN" >> $matrix_remove_posts
 | 
	
		
			
			|  | 89 | +
 | 
	
		
			
			|  | 90 | +    chmod +x $matrix_remove_posts
 | 
	
		
			
			|  | 91 | +}
 | 
	
		
			
			|  | 92 | +
 | 
	
		
			
			| 65 | 93 |  function logging_on_matrix {
 | 
	
		
			
			| 66 | 94 |      if [ -f /var/lib/matrix/homeserver.yaml ]; then
 | 
	
		
			
			| 67 | 95 |          if ! grep -q "log_file: /etc/matrix/homeserver.log" /var/lib/matrix/homeserver.yaml; then
 | 
	
	
		
			
			|  | @@ -651,6 +679,9 @@ function install_home_server {
 | 
	
		
			
			| 651 | 679 |      fi
 | 
	
		
			
			| 652 | 680 |      chmod -R 700 $MATRIX_DATA_DIR/homeserver.db
 | 
	
		
			
			| 653 | 681 |  
 | 
	
		
			
			|  | 682 | +    cd $MATRIX_DATA_DIR
 | 
	
		
			
			|  | 683 | +    sqlite3 homeserver.db "PRAGMA auto_vacuum = FULL;"
 | 
	
		
			
			|  | 684 | +
 | 
	
		
			
			| 654 | 685 |      MATRIX_ONION_HOSTNAME=$(add_onion_service matrix ${MATRIX_PORT} ${MATRIX_ONION_PORT})
 | 
	
		
			
			| 655 | 686 |      echo "HiddenServicePort ${MATRIX_HTTP_PORT} 127.0.0.1:${MATRIX_FEDERATION_ONION_PORT}" >> /etc/tor/torrc
 | 
	
		
			
			| 656 | 687 |      systemctl restart tor
 |