Newer
Older
istex-api-harvester / bash / get_page.sh
@perrin perrin on 11 Aug 2015 1 KB Commit -- 11/08/2015 @ 10:40:49
#!/usr/bin/env bash
########################################################################
#
# Récupère les documents (META + FT) d'un résultat de recherche
# (pour être parallélisé)
#
########################################################################

# Conf
PAGE_SIZE=10

# Arguments ligne de commande
PAGE_N="$1"
ISTEX_URI="$2"

# Outils
JQ="jq -c -M -r"

# On récupère les différents documents (hits) de la page

  echo "--> Téléchargement de la page $PAGE_N/$TOTAL_PAGE"
  FROM=$(wcalc -q "$PAGE_N.0 * $PAGE_SIZE")
  URL="$ISTEX_URI&from=$FROM&output=fulltext,metadata"
  PAGE=$(curl -s $URL)
  NB_HITS=$(echo $PAGE | $JQ ".hits | length")
  
  for DOC_IDX in $(seq 1 $NB_HITS)
  do
  
    DOC_IDX=$(wcalc -q "$DOC_IDX - 1")
    DOC=$(echo $PAGE | $JQ ".hits[$DOC_IDX]")
    DOC_ISTEXID=$(echo $DOC | $JQ ".id")
    DOC_FULLTEXT=$(echo $DOC | $JQ ".fulltext")
    DOC_METADATA=$(echo $DOC | $JQ ".metadata")
    DOC_NB_METADATA=$(echo $DOC_METADATA | $JQ ". | length")
    DOC_NB_FULLTEXT=$(echo $DOC_FULLTEXT | $JQ ". | length")

    echo "--> Téléchargement du document $DOC_ISTEXID (nb meta = $DOC_NB_METADATA ; nb ft = $DOC_NB_FULLTEXT)"

    # On télécharge les métadonnées du document
    for DOC_META_IDX in $(seq 1 $DOC_NB_METADATA)
    do
      DOC_META_IDX=$(wcalc -q "$DOC_META_IDX - 1")
      URI=$(echo $DOC_METADATA | $JQ ".[$DOC_META_IDX].uri")
      FILETYPE=$(echo $DOC_METADATA | $JQ ".[$DOC_META_IDX].extension")
      FILENAME="$DOC_ISTEXID.$FILETYPE"
      curl -s $URI > $FILENAME
      echo "--> Métadonnées téléchargé : $FILENAME"
    done

    # On télécharge les plein textes du document
    for DOC_FT_IDX in $(seq 1 $DOC_NB_FULLTEXT)
    do
      DOC_FT_IDX=$(wcalc -q "$DOC_FT_IDX - 1")
      URI=$(echo $DOC_FULLTEXT | $JQ ".[$DOC_FT_IDX].uri")
      FILETYPE=$(echo $DOC_FULLTEXT | $JQ ".[$DOC_FT_IDX].extension")
      FILENAME="$DOC_ISTEXID.$FILETYPE"
      curl -s $URI > $FILENAME
      echo "--> Plein texte téléchargé : $FILENAME"
    done
    
  done