Des favoris Nextcloud à twtxt et dmenu

twtxt

J'utilise [twtxt] pour microblogguer de façon décentralisée et très très très simple.

En effet, nul besoin d'utiliser le logiciel idoine. J'utilise un script qui appelle dmenu en une fraction de secondes, [twt] :

,----

| #!/bin/sh

| # https://github.com/buckket/twtxt

| #

| # check https://galusik.fr/twtxt.txt

| #

| test -s $HOME/.dmenurc && . $HOME/.dmenurc

|

| OUTDIR=$HOME/code/www

| TWT=${OUTDIR}/twt/twtxt.txt

| PROMPT="twtxt: "

|

| MSG="$(xclip -o | dmenu -sb ${sb} -sf ${sf} -nb ${nb} -nf ${nf} -fn ${fn} -p "$PROMPT")"

| test -z "${MSG}" && exit

| printf '%s\t%s\n' "$(date +%FT%T%:Z)" "${MSG}" >> "${TWT}"

|

| # upload

| cd "${OUTDIR}"

| make twtxt

`----

Le message formaté est copié sur un fichier local qui lui est ensuite copié sur mon serveur auto-hébergé.

De même, pour le suivi de personnes intéressantes, comme [celle-ci] par exemple, je me sers du flux ATOM/RSS.

Ainsi, je peux notamment partager les sites que je trouve intéressants rapidement. Je peux y ajouter des tags ou autres commentaires.

Appréciant de plus en plus la simplicité, je trouvais dommage de ne pas me servir de cette base de favoris pour mon utilisation quotidienne. J'utilisais l'application [bookmarks] de mon instance Nextcloud.

twtxt

twt

celle-ci

bookmarks

De nextcloud bookmarks à twtxt

J'ai exporté ma base de données Nextcloud vers le fichier *bookmark.html*. Un script a ensuite nettoyé ce fichier et appliqué le formatage attendu par twtxt. Voici [ncbkm2twtxt] :

,----

| #!/bin/sh

| #

| # ncbkm2twtxt - Tool to convert Nextcloud bookmarks.html to twtxt.txt format

| # date url tags

| #

| # fredg <f AT galusik.fr>

| #

| # copy this script in your BIN file like $HOME/bin

| # check your file name and run the script

|

| set -ue

|

| # Your nextcloud bookmarks file name

| BKMHTML="bookmarks.html"

|

| #

| OUTFILE="bkm_twtxt.txt"

| SED=$(whence sed)

| GREP=$(whence grep)

| AWK=$(whence awk)

| NOW=$(date +%FT%T%:Z)

|

| # Parse HTML file and keep urls and TAGS parts

| html2txt()

| {

| "${GREP}" http "${BKMHTML}" |\

| awk '{ print $2, $3 }' > "${OUTFILE}"

| }

|

| # Cleanup and twtxt format

| txt2twt()

| {

| "${SED}" -i '

| 1d

| s/HREF="//g

| s/"//g

| s/TAGS=//g

| s/,/ /g

| s/^/'"${NOW}"' /g

| ' "${OUTFILE}"

| }

|

| html2txt

| txt2twt

|

| # Now, you can check your file, remove unneeded bookmarks and then :

| # cat bkm_twtxt.txt >> /your/twtxt/file.txt

`----

Vous obtenez le fichier *bkm_twtxt.txt*. Jetez y un oeil, retirez ce qui ne doit pas être public et copiez son contenu dans votre fichier *twtxt.txt*.

ncbkm2twtxt

Gestion des favoris avec dmenu

[dmenu] est donc utilisé pour lire le fichier twtxt.txt et ne sont affichées que les lignes avec une adresse internet. Les mots clés et commentaires sont conservés afin de faciliter la recherche.

Ensuite dmenu affiche les résultats au fur et à mesure que vous tapez votre recherche. Vous sélectionnez et hop, votre navigateur s'ouvre à l'adresse choisie.

Voici le simple script qui réalise ceci, [dtwtbmk] :

,----

| #!/bin/sh

| #

| # use dmenu to open your bookmarks stored in your twtxt file

| #

|

| set -eu

|

| test -s "$HOME"/.dmenurc && . "$HOME"/.dmenurc

|

| BROWSER=firefox

| TWTXTPATH="$HOME/code/www/twt/"

| FILE=twtxt.txt

| TWTXT="${TWTXTPATH}"/"${FILE}"

| BMK="/tmp/${FILE}.$"

|

| PROMPT="GO> "

|

| # twtxt file cleanup

| awk '$1 = "" ; $2 ~ /^http*/ { print $0 }' < "${TWTXT}" > "${BMK}"

|

| CMD=$(dmenu -l "${l}" -fn "${fn}" -nb "${nb}" -nf "${nf}" -sb "${sb}" -sf "${sf}" -p "${PROMPT}" "$@" < "${BMK}")

|

| # remove tags

| URL=$(echo "${CMD}" | awk ' { print $1 } ')

|

| "${BROWSER}" "${URL}"

|

| exit 0

`----

dmenu

dtwtbmk

Quelques liens

Annuaire des microbloggueurs twtxt

twtxt.net