diff --git a/po/it.po b/po/it.po index dfefa8d..6185f2d 100644 --- a/po/it.po +++ b/po/it.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: tinmop 0.0.1\n" "Report-Msgid-Bugs-To: https://notabug.org/cage/tinmop/\n" -"POT-Creation-Date: 2020-06-29 12:30+0200\n" +"POT-Creation-Date: 2020-07-03 23:10+0200\n" "PO-Revision-Date: 2020-06-29 12:31+0200\n" "Last-Translator: cage \n" "Language-Team: Italian\n" @@ -344,15 +344,15 @@ msgstr "Rilanciato per: " msgid "Date: " msgstr "Scritto il: " -#: src/message-rendering-utils.lisp:273 +#: src/message-rendering-utils.lisp:274 msgid "Multiple choices allowed" msgstr "Sono ammesse scelte multiple" -#: src/message-rendering-utils.lisp:274 +#: src/message-rendering-utils.lisp:275 msgid "A single choice allowed" msgstr "È ammessa una sola scelta" -#: src/message-rendering-utils.lisp:276 +#: src/message-rendering-utils.lisp:277 msgid "The poll has expired" msgstr "Il sondaggio è scaduto" @@ -626,290 +626,290 @@ msgstr "Spostati nella timeline: " msgid "Downloading messages." msgstr "Scarico i messaggi." -#: src/ui-goodies.lisp:533 src/ui-goodies.lisp:558 src/ui-goodies.lisp:600 +#: src/ui-goodies.lisp:533 src/ui-goodies.lisp:558 src/ui-goodies.lisp:601 msgid "Messages downloaded." msgstr "Messaggi scaricati" -#: src/ui-goodies.lisp:579 +#: src/ui-goodies.lisp:580 msgid "Expanding thread" msgstr "Espandi l'albero dei messaggi" -#: src/ui-goodies.lisp:599 +#: src/ui-goodies.lisp:600 msgid "Downloading tags messages." msgstr "Scarico i messaggi dell'etichetta." -#: src/ui-goodies.lisp:612 +#: src/ui-goodies.lisp:613 msgid "Favorite this message?" msgstr "Conservare tra i favoriti questo messaggio?" -#: src/ui-goodies.lisp:621 +#: src/ui-goodies.lisp:622 msgid "Favouring message." msgstr "Conservo il messaggio tra i favoriti." -#: src/ui-goodies.lisp:622 +#: src/ui-goodies.lisp:623 msgid "Favoured message." msgstr "Messaggio conservato tra i favoriti." -#: src/ui-goodies.lisp:627 +#: src/ui-goodies.lisp:628 msgid "Remove this message from your favourites?" msgstr "Rimuovere dai preferiti questo messaggio?" -#: src/ui-goodies.lisp:636 +#: src/ui-goodies.lisp:637 msgid "Unfavouring message." msgstr "Rimuovo messaggio dai favoriti." -#: src/ui-goodies.lisp:637 +#: src/ui-goodies.lisp:638 msgid "Unfavoured message." msgstr "Rimuosso messaggio dai favoriti." -#: src/ui-goodies.lisp:642 +#: src/ui-goodies.lisp:643 msgid "Boost this message?" msgstr "Rilancia questo messaggio?" -#: src/ui-goodies.lisp:651 +#: src/ui-goodies.lisp:652 msgid "Boosting message." msgstr "Rilancio il messaggio." -#: src/ui-goodies.lisp:652 +#: src/ui-goodies.lisp:653 msgid "Boosted message." msgstr "Messaggio rilanciato." -#: src/ui-goodies.lisp:657 +#: src/ui-goodies.lisp:658 msgid "Unboost this message?" msgstr "Ritira il rilancio del messaggio?" -#: src/ui-goodies.lisp:666 +#: src/ui-goodies.lisp:667 msgid "Uboosting message." msgstr "Ritiro il rilancio del messaggio." -#: src/ui-goodies.lisp:667 +#: src/ui-goodies.lisp:668 msgid "Unboosted message." msgstr "Ritirato il rilancio del messaggio." -#: src/ui-goodies.lisp:675 +#: src/ui-goodies.lisp:676 #, lisp-format msgid "Ignore ~s?" msgstr "Ignorare ~s?" -#: src/ui-goodies.lisp:678 +#: src/ui-goodies.lisp:679 #, lisp-format msgid "Ignoring ~s" msgstr "Ignoro ~s" -#: src/ui-goodies.lisp:679 +#: src/ui-goodies.lisp:680 #, lisp-format msgid "User ~s ignored" msgstr "Utente ~s ignorato" -#: src/ui-goodies.lisp:689 +#: src/ui-goodies.lisp:690 msgid "No username specified." msgstr "Nessun nome utente indicato." -#: src/ui-goodies.lisp:691 +#: src/ui-goodies.lisp:692 msgid "Unignore username: " msgstr "Riprendere a leggere i messaggi di:" -#: src/ui-goodies.lisp:720 +#: src/ui-goodies.lisp:721 #, lisp-format msgid "File ~s does not exists." msgstr "Il file ~s non esiste." -#: src/ui-goodies.lisp:722 +#: src/ui-goodies.lisp:723 msgid "Message ready to be sent" msgstr "Messaggio pronto per essere spedito" -#: src/ui-goodies.lisp:724 +#: src/ui-goodies.lisp:725 msgid "Add attachment: " msgstr "Aggiungi allegato: " -#: src/ui-goodies.lisp:734 +#: src/ui-goodies.lisp:735 msgid "New subject: " msgstr "Nuovo oggetto del messaggio: " -#: src/ui-goodies.lisp:743 +#: src/ui-goodies.lisp:744 msgid "New visibility: " msgstr "Nuovo livello di visibilità: " -#: src/ui-goodies.lisp:796 +#: src/ui-goodies.lisp:797 #, lisp-format msgid "Your message is ~a character too long." msgid_plural "Your message is ~a characters too long." msgstr[0] "Il tuo messaggio e più lungo del limite ammesso di ~a carattere." msgstr[1] "Il tuo messaggio e più lungo del limite ammesso di ~a caratteri." -#: src/ui-goodies.lisp:820 +#: src/ui-goodies.lisp:821 msgid "Add subject: " msgstr "Oggetto del messaggio: " -#: src/ui-goodies.lisp:888 +#: src/ui-goodies.lisp:889 #, lisp-format msgid "The maximum allowed number of media is ~a." msgstr "Il numero massimo di file da allegare è ~a." -#: src/ui-goodies.lisp:891 +#: src/ui-goodies.lisp:892 msgid "Sending message" msgstr "Spedisco il messaggio" -#: src/ui-goodies.lisp:982 +#: src/ui-goodies.lisp:983 msgid "Follow: " msgstr "Segui: " -#: src/ui-goodies.lisp:985 +#: src/ui-goodies.lisp:986 #, lisp-format msgid "Following ~a" msgstr "Segui ~a" -#: src/ui-goodies.lisp:986 +#: src/ui-goodies.lisp:987 #, lisp-format msgid "Followed ~a" msgstr "Adesso segui ~a " -#: src/ui-goodies.lisp:990 +#: src/ui-goodies.lisp:991 msgid "Unfollow: " msgstr "Abbandona: " -#: src/ui-goodies.lisp:993 +#: src/ui-goodies.lisp:994 #, lisp-format msgid "Unfollowing ~a" msgstr "Abbandona ~a" -#: src/ui-goodies.lisp:994 +#: src/ui-goodies.lisp:995 #, lisp-format msgid "Unfollowed ~a" msgstr "Hai abbandonato ~a" -#: src/ui-goodies.lisp:1023 +#: src/ui-goodies.lisp:1024 msgid "Confirm operation?" msgstr "Confermi l'operazione?" -#: src/ui-goodies.lisp:1061 +#: src/ui-goodies.lisp:1062 msgid "Updating conversations." msgstr "Aggiorno le conversazioni" -#: src/ui-goodies.lisp:1062 +#: src/ui-goodies.lisp:1063 msgid "Conversations updated." msgstr "Conversazioni aggiornate" -#: src/ui-goodies.lisp:1072 +#: src/ui-goodies.lisp:1073 msgid "Open conversation: " msgstr "Apri una conversazione: " -#: src/ui-goodies.lisp:1107 +#: src/ui-goodies.lisp:1108 msgid "Old name: " msgstr "Nome precedente: " -#: src/ui-goodies.lisp:1121 +#: src/ui-goodies.lisp:1122 #, lisp-format msgid "A conversation with name ~a already exists." msgstr "Una conversazione con nome ~a esiste già." -#: src/ui-goodies.lisp:1127 +#: src/ui-goodies.lisp:1128 msgid "New name: " msgstr "Nuovo nome: " -#: src/ui-goodies.lisp:1143 +#: src/ui-goodies.lisp:1144 #, lisp-format msgid "Ignore conversation ~s? [y/N] " msgstr "Ignorare la conversazione ~s? [s/N] " -#: src/ui-goodies.lisp:1159 +#: src/ui-goodies.lisp:1160 #, lisp-format msgid "Delete conversation ~s? [y/N] " msgstr "Eliminare la conversazione ~s? [s/N] " -#: src/ui-goodies.lisp:1178 +#: src/ui-goodies.lisp:1179 #, lisp-format msgid "Comment too long by ~a character" msgid_plural "Comment too long by ~a characters" msgstr[0] "Il commento è troppo lungo di ~a caratteri" msgstr[1] "Il commento è troppo lungo di ~a caratteri" -#: src/ui-goodies.lisp:1185 +#: src/ui-goodies.lisp:1186 #, lisp-format msgid "Reporting user: ~s" msgstr "Segnalo l'utente ~s" -#: src/ui-goodies.lisp:1186 +#: src/ui-goodies.lisp:1187 msgid "Report trasmitted." msgstr "Segnalazione trasmessa." -#: src/ui-goodies.lisp:1189 +#: src/ui-goodies.lisp:1190 msgid "Comment on reports: " msgstr "Commento sulla segnalazione: " -#: src/ui-goodies.lisp:1205 src/ui-goodies.lisp:1238 src/ui-goodies.lisp:1256 +#: src/ui-goodies.lisp:1206 src/ui-goodies.lisp:1239 src/ui-goodies.lisp:1257 #, lisp-format msgid "User ~s does not exists in database" msgstr "L'utente ~s non esiste nel database" -#: src/ui-goodies.lisp:1208 src/ui-goodies.lisp:1241 src/ui-goodies.lisp:1259 +#: src/ui-goodies.lisp:1209 src/ui-goodies.lisp:1242 src/ui-goodies.lisp:1260 msgid "Username: " msgstr "Nome utente: " -#: src/ui-goodies.lisp:1218 +#: src/ui-goodies.lisp:1219 #, lisp-format msgid "Added crypto key for user ~s" msgstr "Aggiunta chiave crittografica per l'utente ~s" -#: src/ui-goodies.lisp:1221 +#: src/ui-goodies.lisp:1222 msgid "Key: " msgstr "Chiave: " -#: src/ui-goodies.lisp:1235 +#: src/ui-goodies.lisp:1236 #, lisp-format msgid "Generated key for user ~s" msgstr "Generata chiave crittografica per l'utente ~s" -#: src/ui-goodies.lisp:1236 +#: src/ui-goodies.lisp:1237 #, lisp-format msgid "user ~s key ~s" msgstr "utente ~s chiave ~s" -#: src/ui-goodies.lisp:1252 +#: src/ui-goodies.lisp:1253 #, lisp-format msgid "Added key for user ~s: ~a" msgstr "Aggiunta chiave crittografica per l'utente ~s: ~a" -#: src/ui-goodies.lisp:1269 +#: src/ui-goodies.lisp:1270 msgid "About this software" msgstr "Sul programma" -#: src/ui-goodies.lisp:1281 +#: src/ui-goodies.lisp:1282 msgid "Clearing pagination data" msgstr "Elimina i dati della paginazione" -#: src/ui-goodies.lisp:1300 +#: src/ui-goodies.lisp:1301 msgid "Invalid choices, usa a space separated list of positive integers." msgstr "" "Il formato ammesso è costituito da una lista di interi positivi separati da " "spazi." -#: src/ui-goodies.lisp:1317 +#: src/ui-goodies.lisp:1318 #, lisp-format msgid "Invalid choices, index choice out of range (max ~a)." msgstr "Intervallo dei valori delle scelte non valido (massimo ~a)." -#: src/ui-goodies.lisp:1319 +#: src/ui-goodies.lisp:1320 msgid "Voting... " msgstr "Votazione in corso..." -#: src/ui-goodies.lisp:1320 +#: src/ui-goodies.lisp:1321 msgid "Choice sent." msgstr "Voto inserito." -#: src/ui-goodies.lisp:1329 +#: src/ui-goodies.lisp:1330 msgid "Type the index (or space separated indices) of selected choices: " msgstr "Inserisci gli indici associati alle opzioni separati da spazi: " -#: src/ui-goodies.lisp:1330 +#: src/ui-goodies.lisp:1331 msgid "This in not a poll" msgstr "Questo messaggio non è un sondaggio." -#: src/ui-goodies.lisp:1341 +#: src/ui-goodies.lisp:1342 msgid "This is not a valid gemini address" msgstr "Questo non è un indirizzo gemini valido" -#: src/ui-goodies.lisp:1342 +#: src/ui-goodies.lisp:1343 msgid "Open Gemini url: " msgstr "Apri un indirizzo gemini: " diff --git a/po/tinmop.pot b/po/tinmop.pot index 8d6db57..1b91e1c 100644 --- a/po/tinmop.pot +++ b/po/tinmop.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: tinmop 0.0.9\n" +"Project-Id-Version: tinmop 0.1.0\n" "Report-Msgid-Bugs-To: https://notabug.org/cage/tinmop/\n" -"POT-Creation-Date: 2020-06-29 12:30+0200\n" +"POT-Creation-Date: 2020-07-03 23:10+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -333,15 +333,15 @@ msgstr "" msgid "Date: " msgstr "" -#: src/message-rendering-utils.lisp:273 +#: src/message-rendering-utils.lisp:274 msgid "Multiple choices allowed" msgstr "" -#: src/message-rendering-utils.lisp:274 +#: src/message-rendering-utils.lisp:275 msgid "A single choice allowed" msgstr "" -#: src/message-rendering-utils.lisp:276 +#: src/message-rendering-utils.lisp:277 msgid "The poll has expired" msgstr "" @@ -609,288 +609,288 @@ msgstr "" msgid "Downloading messages." msgstr "" -#: src/ui-goodies.lisp:533 src/ui-goodies.lisp:558 src/ui-goodies.lisp:600 +#: src/ui-goodies.lisp:533 src/ui-goodies.lisp:558 src/ui-goodies.lisp:601 msgid "Messages downloaded." msgstr "" -#: src/ui-goodies.lisp:579 +#: src/ui-goodies.lisp:580 msgid "Expanding thread" msgstr "" -#: src/ui-goodies.lisp:599 +#: src/ui-goodies.lisp:600 msgid "Downloading tags messages." msgstr "" -#: src/ui-goodies.lisp:612 +#: src/ui-goodies.lisp:613 msgid "Favorite this message?" msgstr "" -#: src/ui-goodies.lisp:621 +#: src/ui-goodies.lisp:622 msgid "Favouring message." msgstr "" -#: src/ui-goodies.lisp:622 +#: src/ui-goodies.lisp:623 msgid "Favoured message." msgstr "" -#: src/ui-goodies.lisp:627 +#: src/ui-goodies.lisp:628 msgid "Remove this message from your favourites?" msgstr "" -#: src/ui-goodies.lisp:636 +#: src/ui-goodies.lisp:637 msgid "Unfavouring message." msgstr "" -#: src/ui-goodies.lisp:637 +#: src/ui-goodies.lisp:638 msgid "Unfavoured message." msgstr "" -#: src/ui-goodies.lisp:642 +#: src/ui-goodies.lisp:643 msgid "Boost this message?" msgstr "" -#: src/ui-goodies.lisp:651 +#: src/ui-goodies.lisp:652 msgid "Boosting message." msgstr "" -#: src/ui-goodies.lisp:652 +#: src/ui-goodies.lisp:653 msgid "Boosted message." msgstr "" -#: src/ui-goodies.lisp:657 +#: src/ui-goodies.lisp:658 msgid "Unboost this message?" msgstr "" -#: src/ui-goodies.lisp:666 +#: src/ui-goodies.lisp:667 msgid "Uboosting message." msgstr "" -#: src/ui-goodies.lisp:667 +#: src/ui-goodies.lisp:668 msgid "Unboosted message." msgstr "" -#: src/ui-goodies.lisp:675 +#: src/ui-goodies.lisp:676 #, lisp-format msgid "Ignore ~s?" msgstr "" -#: src/ui-goodies.lisp:678 +#: src/ui-goodies.lisp:679 #, lisp-format msgid "Ignoring ~s" msgstr "" -#: src/ui-goodies.lisp:679 +#: src/ui-goodies.lisp:680 #, lisp-format msgid "User ~s ignored" msgstr "" -#: src/ui-goodies.lisp:689 +#: src/ui-goodies.lisp:690 msgid "No username specified." msgstr "" -#: src/ui-goodies.lisp:691 +#: src/ui-goodies.lisp:692 msgid "Unignore username: " msgstr "" -#: src/ui-goodies.lisp:720 +#: src/ui-goodies.lisp:721 #, lisp-format msgid "File ~s does not exists." msgstr "" -#: src/ui-goodies.lisp:722 +#: src/ui-goodies.lisp:723 msgid "Message ready to be sent" msgstr "" -#: src/ui-goodies.lisp:724 +#: src/ui-goodies.lisp:725 msgid "Add attachment: " msgstr "" -#: src/ui-goodies.lisp:734 +#: src/ui-goodies.lisp:735 msgid "New subject: " msgstr "" -#: src/ui-goodies.lisp:743 +#: src/ui-goodies.lisp:744 msgid "New visibility: " msgstr "" -#: src/ui-goodies.lisp:796 +#: src/ui-goodies.lisp:797 #, lisp-format msgid "Your message is ~a character too long." msgid_plural "Your message is ~a characters too long." msgstr[0] "" msgstr[1] "" -#: src/ui-goodies.lisp:820 +#: src/ui-goodies.lisp:821 msgid "Add subject: " msgstr "" -#: src/ui-goodies.lisp:888 +#: src/ui-goodies.lisp:889 #, lisp-format msgid "The maximum allowed number of media is ~a." msgstr "" -#: src/ui-goodies.lisp:891 +#: src/ui-goodies.lisp:892 msgid "Sending message" msgstr "" -#: src/ui-goodies.lisp:982 +#: src/ui-goodies.lisp:983 msgid "Follow: " msgstr "" -#: src/ui-goodies.lisp:985 -#, lisp-format -msgid "Following ~a" -msgstr "" - #: src/ui-goodies.lisp:986 #, lisp-format +msgid "Following ~a" +msgstr "" + +#: src/ui-goodies.lisp:987 +#, lisp-format msgid "Followed ~a" msgstr "" -#: src/ui-goodies.lisp:990 +#: src/ui-goodies.lisp:991 msgid "Unfollow: " msgstr "" -#: src/ui-goodies.lisp:993 -#, lisp-format -msgid "Unfollowing ~a" -msgstr "" - #: src/ui-goodies.lisp:994 #, lisp-format +msgid "Unfollowing ~a" +msgstr "" + +#: src/ui-goodies.lisp:995 +#, lisp-format msgid "Unfollowed ~a" msgstr "" -#: src/ui-goodies.lisp:1023 +#: src/ui-goodies.lisp:1024 msgid "Confirm operation?" msgstr "" -#: src/ui-goodies.lisp:1061 +#: src/ui-goodies.lisp:1062 msgid "Updating conversations." msgstr "" -#: src/ui-goodies.lisp:1062 +#: src/ui-goodies.lisp:1063 msgid "Conversations updated." msgstr "" -#: src/ui-goodies.lisp:1072 +#: src/ui-goodies.lisp:1073 msgid "Open conversation: " msgstr "" -#: src/ui-goodies.lisp:1107 +#: src/ui-goodies.lisp:1108 msgid "Old name: " msgstr "" -#: src/ui-goodies.lisp:1121 +#: src/ui-goodies.lisp:1122 #, lisp-format msgid "A conversation with name ~a already exists." msgstr "" -#: src/ui-goodies.lisp:1127 +#: src/ui-goodies.lisp:1128 msgid "New name: " msgstr "" -#: src/ui-goodies.lisp:1143 +#: src/ui-goodies.lisp:1144 #, lisp-format msgid "Ignore conversation ~s? [y/N] " msgstr "" -#: src/ui-goodies.lisp:1159 +#: src/ui-goodies.lisp:1160 #, lisp-format msgid "Delete conversation ~s? [y/N] " msgstr "" -#: src/ui-goodies.lisp:1178 +#: src/ui-goodies.lisp:1179 #, lisp-format msgid "Comment too long by ~a character" msgid_plural "Comment too long by ~a characters" msgstr[0] "" msgstr[1] "" -#: src/ui-goodies.lisp:1185 +#: src/ui-goodies.lisp:1186 #, lisp-format msgid "Reporting user: ~s" msgstr "" -#: src/ui-goodies.lisp:1186 +#: src/ui-goodies.lisp:1187 msgid "Report trasmitted." msgstr "" -#: src/ui-goodies.lisp:1189 +#: src/ui-goodies.lisp:1190 msgid "Comment on reports: " msgstr "" -#: src/ui-goodies.lisp:1205 src/ui-goodies.lisp:1238 src/ui-goodies.lisp:1256 +#: src/ui-goodies.lisp:1206 src/ui-goodies.lisp:1239 src/ui-goodies.lisp:1257 #, lisp-format msgid "User ~s does not exists in database" msgstr "" -#: src/ui-goodies.lisp:1208 src/ui-goodies.lisp:1241 src/ui-goodies.lisp:1259 +#: src/ui-goodies.lisp:1209 src/ui-goodies.lisp:1242 src/ui-goodies.lisp:1260 msgid "Username: " msgstr "" -#: src/ui-goodies.lisp:1218 +#: src/ui-goodies.lisp:1219 #, lisp-format msgid "Added crypto key for user ~s" msgstr "" -#: src/ui-goodies.lisp:1221 +#: src/ui-goodies.lisp:1222 msgid "Key: " msgstr "" -#: src/ui-goodies.lisp:1235 -#, lisp-format -msgid "Generated key for user ~s" -msgstr "" - #: src/ui-goodies.lisp:1236 #, lisp-format +msgid "Generated key for user ~s" +msgstr "" + +#: src/ui-goodies.lisp:1237 +#, lisp-format msgid "user ~s key ~s" msgstr "" -#: src/ui-goodies.lisp:1252 +#: src/ui-goodies.lisp:1253 #, lisp-format msgid "Added key for user ~s: ~a" msgstr "" -#: src/ui-goodies.lisp:1269 +#: src/ui-goodies.lisp:1270 msgid "About this software" msgstr "" -#: src/ui-goodies.lisp:1281 +#: src/ui-goodies.lisp:1282 msgid "Clearing pagination data" msgstr "" -#: src/ui-goodies.lisp:1300 +#: src/ui-goodies.lisp:1301 msgid "Invalid choices, usa a space separated list of positive integers." msgstr "" -#: src/ui-goodies.lisp:1317 +#: src/ui-goodies.lisp:1318 #, lisp-format msgid "Invalid choices, index choice out of range (max ~a)." msgstr "" -#: src/ui-goodies.lisp:1319 +#: src/ui-goodies.lisp:1320 msgid "Voting... " msgstr "" -#: src/ui-goodies.lisp:1320 +#: src/ui-goodies.lisp:1321 msgid "Choice sent." msgstr "" -#: src/ui-goodies.lisp:1329 +#: src/ui-goodies.lisp:1330 msgid "Type the index (or space separated indices) of selected choices: " msgstr "" -#: src/ui-goodies.lisp:1330 +#: src/ui-goodies.lisp:1331 msgid "This in not a poll" msgstr "" -#: src/ui-goodies.lisp:1341 +#: src/ui-goodies.lisp:1342 msgid "This is not a valid gemini address" msgstr "" -#: src/ui-goodies.lisp:1342 +#: src/ui-goodies.lisp:1343 msgid "Open Gemini url: " msgstr "" diff --git a/quick_quicklisp.sh.in b/quick_quicklisp.sh.in index 10848c6..6e01dd4 100644 --- a/quick_quicklisp.sh.in +++ b/quick_quicklisp.sh.in @@ -121,7 +121,7 @@ install_dependency () { --eval "(ql:quickload \"usocket\")" \ --eval "(ql:quickload \"cffi\")" \ --eval "(ql:quickload \"babel\")" \ - --eval "(ql:quickload \"puri\")" \ + --eval "(ql:quickload \"quri\")" \ --eval "(ql:quickload \"percent-encoding\")" \ --eval "(sb-ext:quit)"; } diff --git a/src/gemini-viewer.lisp b/src/gemini-viewer.lisp index fc100ef..a67e817 100644 --- a/src/gemini-viewer.lisp +++ b/src/gemini-viewer.lisp @@ -37,16 +37,16 @@ (message-window:metadata window)) (defun request (url) - (let ((parsed-uri (puri:parse-uri url))) + (let ((parsed-uri (quri:uri url))) (maybe-initialize-metadata specials:*message-window*) (if (null parsed-uri) (ui:error-message (format nil (_ "Could not understand the address ~s") url)) - (let ((host (puri:uri-host parsed-uri)) - (path (puri:uri-path parsed-uri)) - (query (puri:uri-query parsed-uri)) - (port (or (puri:uri-port parsed-uri) + (let ((host (quri:uri-host parsed-uri)) + (path (quri:uri-path parsed-uri)) + (query (quri:uri-query parsed-uri)) + (port (or (quri:uri-port parsed-uri) gemini-client:+gemini-default-port+))) (handler-case (progn @@ -62,9 +62,9 @@ (flet ((on-input-complete (maybe-accepted) (when (ui::boolean-input-accepted-p maybe-accepted) (let ((new-url (gemini-parser:absolutize-link meta - (puri:uri-host parsed-uri) - (puri:uri-port parsed-uri) - (puri:uri-path parsed-uri)))) + (quri:uri-host parsed-uri) + (quri:uri-port parsed-uri) + (quri:uri-path parsed-uri)))) (db-utils:with-ready-database (:connect nil) (request new-url)))))) (ui:ask-string-input #'on-input-complete @@ -121,6 +121,7 @@ (gemini-client:gemini-protocol-error (e) (ui:notify (format nil "~a" e) :as-error t)) + #-debug-mode (error (e) (ui:notify (format nil (_ "Error getting ~s: ~a") diff --git a/src/gemini/client.lisp b/src/gemini/client.lisp index eee51f2..51fa31a 100644 --- a/src/gemini/client.lisp +++ b/src/gemini/client.lisp @@ -168,7 +168,11 @@ (:documentation "The condition signalled when tofu failed")) (defun parse-response (stream host port path) - (let* ((header (read-line stream)) + (let* ((header-raw (misc:list->array (loop for c = (read-byte stream) + while (/= c 10) + collect c) + '(unsigned-byte 8))) + (header (babel:octets-to-string header-raw :errorp nil)) (parsed-header (parse-gemini-response-header (format nil "~a~a" header #\Newline)))) (with-accessors ((meta meta) (status-code status-code)) parsed-header @@ -212,9 +216,7 @@ (defun absolute-url-p (url) (text-utils:string-starts-with-p +gemini-scheme+ url)) -(defun request (host path &key - (query nil) - (port +gemini-default-port+)) +(defun request (host path &key (query nil) (port +gemini-default-port+)) (let* ((uri (make-gemini-uri host path query port)) (ctx (cl+ssl:make-context :verify-mode cl+ssl:+ssl-verify-none+))) (when query @@ -225,7 +227,7 @@ (when socket (let ((stream (usocket:socket-stream socket))) (let* ((ssl-stream (cl+ssl:make-ssl-client-stream stream - :external-format '(:ascii) + :external-format nil :unwrap-stream-p t :verify nil :hostname host)) @@ -234,7 +236,7 @@ (if (not (db:tofu-passes-p host cert-hash)) (error 'gemini-tofu-error :host host) (progn - (write-string request ssl-stream) + (write-sequence (babel:string-to-octets request) ssl-stream) (force-output ssl-stream) (multiple-value-bind (status description meta body gemini-text gemini-links) (parse-response ssl-stream host port path) diff --git a/src/gemini/gemini-parser.lisp b/src/gemini/gemini-parser.lisp index 949c8f6..ce276a4 100644 --- a/src/gemini/gemini-parser.lisp +++ b/src/gemini/gemini-parser.lisp @@ -229,23 +229,23 @@ "/"))) (regex-replace-all "//" merged "")))))) -(defmethod normalize-path ((object puri:uri)) - (let ((clean-path (normalize-path (puri:uri-path object))) - (copy (puri:copy-uri object))) +(defmethod normalize-path ((object quri:uri)) + (let ((clean-path (normalize-path (quri:uri-path object))) + (copy (quri:copy-uri object))) (when clean-path - (setf (puri:uri-path copy) clean-path)) + (setf (quri:uri-path copy) clean-path)) copy)) -(defmethod to-s ((object puri:uri)) +(defmethod to-s ((object quri:uri)) (with-output-to-string (stream) - (puri:render-uri object stream))) + (quri:render-uri object stream))) (defun absolutize-link (link-value original-host original-port original-path) - (let ((parsed (puri:parse-uri link-value))) + (let ((parsed (quri:uri link-value))) (cond ((null parsed) (error "Unparsable address")) - ((null (puri:uri-host parsed)) + ((null (quri:uri-host parsed)) (let* ((absolute-path-p (string-starts-with-p "/" link-value)) (path (if absolute-path-p link-value @@ -257,7 +257,7 @@ (normalize-path path) nil original-port))) - ((null (puri:uri-scheme parsed)) + ((null (quri:uri-scheme parsed)) (strcat +gemini-scheme+ ":" (to-s (normalize-path parsed)))) (t @@ -381,8 +381,8 @@ (defun gemini-uri-p (maybe-uri) (conditions:with-default-on-error (nil) - (let ((parsed (puri:parse-uri maybe-uri))) + (let ((parsed (quri:uri maybe-uri))) (and parsed (string-equal +gemini-scheme+ - (puri:uri-scheme parsed)) - (puri:uri-host parsed))))) + (quri:uri-scheme parsed)) + (quri:uri-host parsed))))) diff --git a/src/misc-utils.lisp b/src/misc-utils.lisp index 486c71f..67c9a92 100644 --- a/src/misc-utils.lisp +++ b/src/misc-utils.lisp @@ -577,8 +577,9 @@ Name from Emacs Lisp." el)))) res))) -(defun list->array (the-list) +(defun list->array (the-list &optional (element-type t)) (make-array (length the-list) + :element-type element-type :fill-pointer (length the-list) :adjustable t :initial-contents (copy-list the-list))) diff --git a/src/package.lisp b/src/package.lisp index f1e2f33..a82ac9a 100644 --- a/src/package.lisp +++ b/src/package.lisp @@ -1048,6 +1048,7 @@ :combine-attributes :colorize-line :colorized-line->tui-string + :standard-error-notify-life :with-notify-errors)) (defpackage :command-line diff --git a/src/tui-utils.lisp b/src/tui-utils.lisp index bf407bf..2cb248f 100644 --- a/src/tui-utils.lisp +++ b/src/tui-utils.lisp @@ -469,6 +469,9 @@ (loop for i across (complex-char-array object) do (print-debug i)))) +(defun standard-error-notify-life () + (* (swconf:config-notification-life) 5)) + (defmacro with-notify-errors (&body body) #+debug-mode `(progn ,@body) #-debug-mode `(handler-case diff --git a/src/ui-goodies.lisp b/src/ui-goodies.lisp index 6843b94..0458d62 100644 --- a/src/ui-goodies.lisp +++ b/src/ui-goodies.lisp @@ -48,7 +48,9 @@ (defun notify (message &key (life nil) (as-error nil)) (let ((event (make-instance 'notify-user-event - :life life + :life (if as-error + (tui:standard-error-notify-life) + life) :notify-error as-error :payload message))) (push-event event))) diff --git a/tinmop.asd b/tinmop.asd index 6c3afe4..69d6896 100644 --- a/tinmop.asd +++ b/tinmop.asd @@ -49,7 +49,7 @@ :drakma :usocket :babel - :puri + :quri :percent-encoding :uiop) :components ((:file "package")