146 lines
4.4 KiB
Bash
146 lines
4.4 KiB
Bash
|
#!/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
|
|||
|
# -----------------------------------------------------------
|
|||
|
# **********************************************************************************************
|
|||
|
|
|||
|
|