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+)