Procházet zdrojové kódy

Ability to set gnusocial expire period from control panel

Bob Mottram před 8 roky
rodič
revize
5db30ada00
2 změnil soubory, kde provedl 78 přidání a 6 odebrání
  1. 39
    3
      src/freedombone-app-gnusocial
  2. 39
    3
      src/freedombone-app-postactiv

+ 39
- 3
src/freedombone-app-gnusocial Zobrazit soubor

274
     esac
274
     esac
275
 }
275
 }
276
 
276
 
277
+function gnusocial_set_expire_months {
278
+    GNUSOCIAL_DOMAIN_NAME=$(get_completion_param "gnusocial domain")
279
+    read_config_param "GNUSOCIAL_EXPIRE_MONTHS"
280
+
281
+    data=$(tempfile 2>/dev/null)
282
+    trap "rm -f $data" 0 1 2 5 15
283
+    dialog --title $"GNU Social" \
284
+           --backtitle $"Freedombone Control Panel" \
285
+           --inputbox $'Set an expiry period for posts in months. Anything older will be deleted. Lower values help to keep the database size small and as fast as possible.' 12 60 "$GNUSOCIAL_EXPIRE_MONTHS" 2>$data
286
+    sel=$?
287
+    case $sel in
288
+        0)
289
+            new_expiry_months=$(<$data)
290
+            if [ ${#new_expiry_months} -gt 0 ]; then
291
+                # should contain no spaces
292
+                if [[ "$new_expiry_months" == *" "* ]]; then
293
+                    return
294
+                fi
295
+                # should be a number
296
+                re='^[0-9]+$'
297
+                if ! [[ $new_expiry_months =~ $re ]] ; then
298
+                    return
299
+                fi
300
+                # set the new value
301
+                GNUSOCIAL_EXPIRE_MONTHS=$new_expiry_months
302
+                write_config_param "GNUSOCIAL_EXPIRE_MONTHS" "$GNUSOCIAL_EXPIRE_MONTHS"
303
+                expire_gnusocial_posts "$GNUSOCIAL_DOMAIN_NAME" "gnusocial" "$GNUSOCIAL_EXPIRE_MONTHS"
304
+                dialog --title $"Set GNU Social post expiry period" \
305
+                       --msgbox $"Expiry period set to $GNUSOCIAL_EXPIRE_MONTHS months" 6 60
306
+            fi
307
+           ;;
308
+    esac
309
+}
310
+
277
 function configure_interactive_gnusocial {
311
 function configure_interactive_gnusocial {
278
     while true
312
     while true
279
     do
313
     do
281
         trap "rm -f $data" 0 1 2 5 15
315
         trap "rm -f $data" 0 1 2 5 15
282
         dialog --backtitle $"Freedombone Control Panel" \
316
         dialog --backtitle $"Freedombone Control Panel" \
283
                --title $"GNU Social" \
317
                --title $"GNU Social" \
284
-               --radiolist $"Choose an operation:" 12 70 3 \
318
+               --radiolist $"Choose an operation:" 13 70 4 \
285
                1 $"Set a background image" off \
319
                1 $"Set a background image" off \
286
                2 $"Set the title" off \
320
                2 $"Set the title" off \
287
-               3 $"Exit" on 2> $data
321
+               3 $"Set post expiry period (currently $GNUSOCIAL_EXPIRE_MONTHS months)" off \
322
+               4 $"Exit" on 2> $data
288
         sel=$?
323
         sel=$?
289
         case $sel in
324
         case $sel in
290
             1) return;;
325
             1) return;;
293
         case $(cat $data) in
328
         case $(cat $data) in
294
             1) gnusocial_set_background_image;;
329
             1) gnusocial_set_background_image;;
295
             2) gnusocial_set_title;;
330
             2) gnusocial_set_title;;
296
-            3) break;;
331
+            3) gnusocial_set_expire_months;;
332
+            4) break;;
297
         esac
333
         esac
298
     done
334
     done
299
 }
335
 }

+ 39
- 3
src/freedombone-app-postactiv Zobrazit soubor

258
     esac
258
     esac
259
 }
259
 }
260
 
260
 
261
+function postactiv_set_expire_months {
262
+    POSTACTIV_DOMAIN_NAME=$(get_completion_param "postactiv domain")
263
+    read_config_param "POSTACTIV_EXPIRE_MONTHS"
264
+
265
+    data=$(tempfile 2>/dev/null)
266
+    trap "rm -f $data" 0 1 2 5 15
267
+    dialog --title $"PostActiv" \
268
+           --backtitle $"Freedombone Control Panel" \
269
+           --inputbox $'Set an expiry period for posts in months. Anything older will be deleted. Lower values help to keep the database size small and as fast as possible.' 12 60 "$POSTACTIV_EXPIRE_MONTHS" 2>$data
270
+    sel=$?
271
+    case $sel in
272
+        0)
273
+            new_expiry_months=$(<$data)
274
+            if [ ${#new_expiry_months} -gt 0 ]; then
275
+                # should contain no spaces
276
+                if [[ "$new_expiry_months" == *" "* ]]; then
277
+                    return
278
+                fi
279
+                # should be a number
280
+                re='^[0-9]+$'
281
+                if ! [[ $new_expiry_months =~ $re ]] ; then
282
+                    return
283
+                fi
284
+                # set the new value
285
+                POSTACTIV_EXPIRE_MONTHS=$new_expiry_months
286
+                write_config_param "POSTACTIV_EXPIRE_MONTHS" "$POSTACTIV_EXPIRE_MONTHS"
287
+                expire_gnusocial_posts "$POSTACTIV_DOMAIN_NAME" "postactiv" "$POSTACTIV_EXPIRE_MONTHS"
288
+                dialog --title $"Set PostActiv post expiry period" \
289
+                       --msgbox $"Expiry period set to $POSTACTIV_EXPIRE_MONTHS months" 6 60
290
+            fi
291
+           ;;
292
+    esac
293
+}
294
+
261
 function configure_interactive_postactiv {
295
 function configure_interactive_postactiv {
262
     while true
296
     while true
263
     do
297
     do
265
         trap "rm -f $data" 0 1 2 5 15
299
         trap "rm -f $data" 0 1 2 5 15
266
         dialog --backtitle $"Freedombone Control Panel" \
300
         dialog --backtitle $"Freedombone Control Panel" \
267
                --title $"PostActiv" \
301
                --title $"PostActiv" \
268
-               --radiolist $"Choose an operation:" 12 70 3 \
302
+               --radiolist $"Choose an operation:" 13 70 4 \
269
                1 $"Set a background image" off \
303
                1 $"Set a background image" off \
270
                2 $"Set the title" off \
304
                2 $"Set the title" off \
271
-               3 $"Exit" on 2> $data
305
+               3 $"Set post expiry period (currently $POSTACTIV_EXPIRE_MONTHS months)" off \
306
+               4 $"Exit" on 2> $data
272
         sel=$?
307
         sel=$?
273
         case $sel in
308
         case $sel in
274
             1) return;;
309
             1) return;;
277
         case $(cat $data) in
312
         case $(cat $data) in
278
             1) postactiv_set_background_image;;
313
             1) postactiv_set_background_image;;
279
             2) postactiv_set_title;;
314
             2) postactiv_set_title;;
280
-            3) break;;
315
+            3) postactiv_set_expire_months;;
316
+            4) break;;
281
         esac
317
         esac
282
     done
318
     done
283
 }
319
 }