146 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			146 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/bin/bash
 | ||
| ################################################################################################
 | ||
| ## 
 | ||
| ##  Nom: dl_plowshare.sh 
 | ||
| ##
 | ||
| ##  Version: 0.1
 | ||
| ##
 | ||
| ##  Licence: Creative Commons
 | ||
| ##
 | ||
| ##  Comportement: Analyse un répertoire pour savoir si il contient un fichier .down qui
 | ||
| ##    contiendra des liens ddl (megaupload, DL_FILE). Créée un dossier du même nom que le fichier et
 | ||
| ##    y télécharge les liens qu'il contient avec plowshare. Change ensuite l'extension du fichier
 | ||
| ##    en .old pour qu'il ne soit pas retéléchargé.
 | ||
| ##
 | ||
| ##  /!\ Changer la variable DL_DIR /!\
 | ||
| ##
 | ||
| ##  Appliquer une tache cron du style:
 | ||
| ##  */2 * * * * /chemin/script/dl_plowshare.sh
 | ||
| ##
 | ||
| ##
 | ||
| ##
 | ||
| ################################################################################################
 | ||
| ##
 | ||
| ##  Date de création: 03-10-2011
 | ||
| ##
 | ||
| ##  Auteur: Gardouille
 | ||
| ##
 | ||
| ##
 | ||
| ##  Dernière modifications:
 | ||
| ##  03-10-2011 - 0.1:
 | ||
| ##    - 
 | ||
| # **********************************************************************************************
 | ||
| ##  //2011 - :
 | ||
| ##    - 
 | ||
| ##    - 
 | ||
| # **********************************************************************************************
 | ||
| ##
 | ||
| ##  À modifier:
 | ||
| ##    - Possibilité de récupérer le répertoire à analyser en argument
 | ||
| ##
 | ||
| ##
 | ||
| ################################################################################################
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| # **********************************************************************************************
 | ||
| # 
 | ||
| # Variables globales
 | ||
| # 
 | ||
| # -----------------------------------------------------------
 | ||
| # Fichier temporaire pour savoir si le script est déjà en cours
 | ||
| TMP_FILE="/tmp/dl_plowshare"
 | ||
| # Répertoire à analyser pour trouver un fichier contenant une liste de lien
 | ||
| DL_DIR="/media/data/download/ddl"
 | ||
| # Nom du fichier (sans l'extension) contenant les liens à télécharger
 | ||
| #BASE_DL_FILE=""
 | ||
| # Extension de fichier à analyser  
 | ||
| EXTENSION="down"
 | ||
| 
 | ||
| # Fin des variables globales
 | ||
| # -----------------------------------------------------------
 | ||
| # **********************************************************************************************
 | ||
| 
 | ||
| 
 | ||
| # **********************************************************************************************
 | ||
| # 
 | ||
| # Fichiers globaux
 | ||
| # 
 | ||
| # -----------------------------------------------------------
 | ||
| # 
 | ||
| 
 | ||
| # Fin des fichiers globaux
 | ||
| # -----------------------------------------------------------
 | ||
| # **********************************************************************************************
 | ||
| 
 | ||
| 
 | ||
| # **********************************************************************************************
 | ||
| # 
 | ||
| # Fonctions globales
 | ||
| # 
 | ||
| # -----------------------------------------------------------
 | ||
| # Divers echos DL_FILE
 | ||
| echoi() { echo " (ii) $*" >> "${log}" ; }
 | ||
| echok() { echo " (ok) $*" >> "${log}" ; }
 | ||
| echow() { echo " (!!) $*" >> "${log}" ; }
 | ||
| echnk() { echo " (EE) $*" >> "${log}" ; }
 | ||
| 
 | ||
| # Fin des fonctions globales
 | ||
| # -----------------------------------------------------------
 | ||
| # **********************************************************************************************
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| # **********************************************************************************************
 | ||
| # 
 | ||
| # Programme principale
 | ||
| # 
 | ||
| # -----------------------------------------------------------
 | ||
| 
 | ||
| ## Vérifier que le script n'est pas déjà en cours
 | ||
| if [ ! -f "${TMP_FILE}" ]; then
 | ||
| 
 | ||
| 
 | ||
|   ## Créer un fichier temporaire pour indiquer que le script est en cours d'exécution
 | ||
|   touch "${TMP_FILE}"
 | ||
| 
 | ||
|   ## Se placer dans le dossier à analyser
 | ||
|   pushd "${DL_DIR}" > /dev/null
 | ||
| 
 | ||
|   ## Analyser le dossier pour récupérer UN fichier .down (nom de base + extension)
 | ||
|   DL_FILE=`\ls | \grep ."${EXTENSION}"|head -n 1`
 | ||
| 
 | ||
|   ## Récupérer le nom du fichier (sans extension)
 | ||
|   BASE_DL_FILE=${DL_FILE%.*}
 | ||
| 
 | ||
|   ## Créer un dossier du même nom et se placer dedans
 | ||
|   mkdir "${BASE_DL_FILE}"
 | ||
|   pushd "${DL_DIR}"/"${BASE_DL_FILE}" > /dev/null
 | ||
| 
 | ||
|   ## Déplacer le fichier .down dans le dossier
 | ||
|   mv "${DL_DIR}"/"${DL_FILE}" .
 | ||
| 
 | ||
|   ## Lancer le téléchargement en passant en argument le fichier .down
 | ||
|   plowdown -m "${DL_FILE}"
 | ||
| 
 | ||
|   ## Ressortir du dossier de téléchargement
 | ||
|   popd > /dev/null
 | ||
| 
 | ||
|   ## Ressortir de l'emplacement à analyser
 | ||
|   popd > /dev/null
 | ||
| 
 | ||
|   ## Supprimer le fichier temporaire
 | ||
|   rm "${TMP_FILE}"
 | ||
| 
 | ||
| else
 | ||
|   ## Script déjà en cours
 | ||
|   echo "Script de téléchargement déjà en cours."
 | ||
| fi
 | ||
| 
 | ||
| exit 0
 | ||
| # Fin de la boucle principale
 | ||
| # -----------------------------------------------------------
 | ||
| # **********************************************************************************************
 | ||
| 
 | ||
| 
 |