Astroport.ONE/BOOKS/astroport-20h12/player.refresh.sh/usd-moa.md

2.4 KiB

$:/moa

Les tiddlers tagués avec $:/moa dans le script PLAYER.refresh.sh sont utilisés pour gérer les amis du joueur et leurs tiddlers associés. Voici une analyse détaillée de ce processus :

Fonctionnement des Tiddlers Tagués avec $:/moa

  1. Extraction des Tiddlers :
    • Le script utilise la commande tiddlywiki pour charger le TiddlyWiki (TW) du joueur et extraire les tiddlers tagués avec $:/moa. Cette extraction est effectuée avec la commande suivante :

      tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
      --output ~/.zen/tmp/${MOATS} \
      --render '.' 'FRIENDS.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[$:/moa]]'
      
  2. Analyse des Tiddlers :
    • Les tiddlers extraits sont ensuite analysés pour identifier les amis du joueur. Le script lit les titres des tiddlers et vérifie s'ils correspondent à des adresses email valides :

      fplayers=($(cat ~/.zen/tmp/${MOATS}/FRIENDS.json | jq -rc .[].title))
      
  3. Gestion des Amis :
    • Pour chaque ami identifié, le script effectue plusieurs vérifications et actions :
      • Vérifie le format de l'adresse email.
      • Vérifie si l'ami est déjà présent dans le système.
      • Extrait les informations supplémentaires comme le pseudo (player), l'adresse IPFS (tw), et la clé publique Ğ1 (g1pub).
  4. Mise à Jour des Tiddlers des Amis :
    • Si des tiddlers associés à des amis sont trouvés, ils sont importés dans le TW du joueur. Cela permet de maintenir les informations à jour et de synchroniser les données entre les amis :

      tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
      --import ~/.zen/tmp/${MOATS}/${FPLAYER^^}.json 'application/json' \
      --output ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER} \
      --render "$:/core/save/all" "newindex.html" "text/plain"
      
  5. Création de Tiddlers Signés :
    • Les tiddlers des amis sont signés et ajoutés au TW du joueur. Cela permet de garantir l'authenticité des informations partagées :

      cat ~/.zen/tmp/${IPFSNODEID}/WISH/${PLAYER}/g1voeu/${WISHNAME}/_${APLAYER}.tiddlers.rss.json \
      | sed "s~${PLAYER}~~g" \
      | sed "s~${APLAYER}~${APLAYER} ${PLAYER}~g" \
      > ~/.zen/tmp/${IPFSNODEID}/WISH/${PLAYER}/g1voeu/${WISHNAME}/_${APLAYER}.tiddlers.signed.json