diff --git a/scripts/export-gemini-subscriptions.lisp b/scripts/export-gemini-subscriptions.lisp
new file mode 100644
index 0000000..71fae4d
--- /dev/null
+++ b/scripts/export-gemini-subscriptions.lisp
@@ -0,0 +1,29 @@
+;; follow a list of users
+;; Copyright © 2021 cage
+
+;; This program is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see .
+
+;; usage:
+
+;; tinmop -e export-gemini-subscriptions.lisp
+
+(in-package :scripts)
+
+(defun main ()
+ (db-utils:with-ready-database (:connect t)
+ (let ((all-subscriptions (db:gemini-all-subscriptions)))
+ (loop for row in all-subscriptions do
+ (format t "~a~%" (db-utils:db-getf row :url))))))
+
+(main)
diff --git a/scripts/import-gemini-subscriptions.lisp b/scripts/import-gemini-subscriptions.lisp
new file mode 100644
index 0000000..252990e
--- /dev/null
+++ b/scripts/import-gemini-subscriptions.lisp
@@ -0,0 +1,38 @@
+;; follow a list of users
+;; Copyright © 2021 cage
+
+;; This program is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see .
+
+;; usage:
+
+;; after configuring tinmop (https://www.autistici.org/interzona/tinmop.html)
+;; tinmop -e import-gemini-subscriptions.lisp < subscriptions
+;; the file must be in the format
+;; gemlog-url newline
+;; gemlog-url-2 newline
+;; gemlog-url-3 newline
+;; etc.
+
+(in-package :scripts)
+
+(defun main ()
+ (db-utils:with-ready-database (:connect t)
+ (loop for line = (read-line *standard-input* nil nil nil)
+ while line do
+ (let* ((url (text-utils:trim-blanks line)))
+ (format t "Subscribing to: ~a…" url)
+ (gemini-subscription:subscribe url)
+ (format t "Done~%")))))
+
+(main)
diff --git a/src/main.lisp b/src/main.lisp
index 7741299..47286ea 100644
--- a/src/main.lisp
+++ b/src/main.lisp
@@ -95,7 +95,10 @@ etc.) happened"
(ui:reset-timeline-pagination))
(defun load-configuration-files ()
- (format t (_ "Loading configuration file ~a~%") swconf:+shared-conf-filename+)
+ (when (not command-line:*script-file*)
+ (format t
+ (_ "Loading configuration file ~a~%")
+ swconf:+shared-conf-filename+))
(handler-case
(multiple-value-bind (x configuration-file-path)
(swconf:load-config-file swconf:+shared-conf-filename+)