# À lire + tard
2023-10-10T20:51:11Z

Aussi appelé "sous le coude" pour les lecteurs de sebsauvage, l'idée est de noter un lien pour lecture ultérieure.

Pour cela, il existe déjà le service forlater.email. C'est payant, mais tout le monde s'accorde à dire que c'est excellent:
=> https://forlater.email/

D'autres utilisent shaarli et taggent les liens avec "#toread" ou "#souslecoudé" ^^.

En ce qui me concerne, une certaine personne qui se reconnaîtra vite ici m'a envoyé des articles que j'ai vraiment très envie de lire. 
VRAIMENT lire, pas regarder à toute vitesse en 2 minutes entre le grand qui hurle parce qu'il n'arrive pas à terminer son bricolage avec un trait qui n'est pas parfaitement droit et sa petite soeur qui lui chipe ses crayons et en profite pour les mettre dans la bouche tout en criant parce que elle veut elle aussi la même feuille pour dessiner tout en ayant peur du chat qui veut juste des caresses...

Juste, pouvoir lire calmement, car ça semble très intéressant, et ça demande + de 2 minutes de lecture, et être sûr de ne pas l'oublier.

En plus, je suis du genre à être anxieux à l'idée que des textes ou ressources peuvent disparaître entre le moment où je note le lien et celui où je vais effectivement le lire et encore le jour où je vais y faire référence pour un ami ou parce que j'en ai besoin. C'est là qu'intervient archive.org et sa machine à remonter le temps.

Voici donc un petit script nommé ''soulcoud'' (ouais...) qui va récupérer une copie d'un lien avec lynx, 100% plaintext, effectuer une copie chez archive.org et envoyer le tout par mail.
C'est tout nouveau, ça va sans doute être modifié un peu à l'avenir, du coup les conseils sont bienvenus.
Vous remarquerez que l'adresse mail à laquelle l'article doit être envoyé est définie dans une variable d'environnement, ça me paraissait + simple pour l'utiliser via dmenu. De plus, les liens gopher sont supportés, ça ne doit pas être trop dur d'ajouter d'autres protocoles.
Ça s'utilise ainsi : 

```
soulcoud https://www.filfre.net/2023/07/going-rogue/ recommended by f6k
```

Bref, voici soulcoud:

```
#!/bin/sh
# soulcoud: save an url on archive.org and send a copy by email to read later
# the email address is read from environment SOULCOUD_MAIL
# Author: prx <prx@si3t.ch>
# licence: MIT
# Require: curl, lynx or reader
# one may replace mail command with msmtp or else
# improve with wkhtml2pdf or other snapshot tool

usage()
{
	printf "usage:\n\t"
	printf "%s (-h) <url> <title>\n" "$0"
	printf "\t-h : print help\n"
	printf "\nexample:\n"
	printf "\t%s 'http://who-is-clarkkent.net' Superman id?\n" "$0"
	printf "\nThe page is sent to the mail address set in environment variable SOULCOUD_MAIL\n"
	exit
}

archive_url()
{
	# archive the url and output the page link on archive.org
	curl -s "https://web.archive.org/$1" | 
		sed -n 's/.*href="\([^"]*\).*/\1/p'
}

dump_page()
{
	# use reader or lynx to echo page content
	#reader "$1"
	lynx \
		-dump \
		-underline_links \
		-image_links \
		-collapse_br_tags \
		-list_inline \
		"$1"
}

if [ -z "${SOULCOUD_MAIL}" ]; then
	printf "You must set the environment variable SOULCOUD_MAIL\n"
	printf "Example: in ~/.profile, enter\n"
	printf "\texport SOULCOUD_MAIL=bruce.wayne.corp\n"
	exit
fi

while getopts 'h' c
do
    case $c in
    	h) usage ;;
    esac
done
shift $((OPTIND - 1))

test $# -lt 1 && usage

url="$(printf "$*" | cut -d' ' -f1)"
title="$(printf "$*" | cut -d' ' -f2-)"
test -z "${title}" && title="${url}"

(
	# save the page with lynx
	dump_page "${url}"
	printf "\n---\n"
	printf "url: "${url}"
	# then save on archive.org
	case "${url}" in
		http* )
		archived="$(archive_url "${url}")"
		if [ $? -eq 0 ]; then
			printf "Saved on: https://web.archive.org/%s\n" "${archived}"
		fi
		;;
	esac
) | mail -s "${title}" "${SOULCOUD_MAIL}"
```

Pour l'utiliser, vous devrez avoir installé curl, lynx, et un serveur mail en route ou bien remplacer ''mail'' par ''msmtp'' ou équivalent.

---
Une réaction?

Envoyez votre commentaire par mail (anonyme):
=> mailto:bla@bla.si3t.ch?subject=a-lire-+-tard

Voici quelques instructions pour utiliser la liste de diffusion et recevoir les réponses à vos messages:
=> https://si3t.ch/log/_commentaires_.txt