86 lines
3.2 KiB
Bash
86 lines
3.2 KiB
Bash
#!/bin/bash
|
|
source /home/$USER/autopost/common.sh
|
|
|
|
# Vérification et création des dossiers
|
|
for dossier in "$DOSSIER_NFO" "$DOSSIER_NZB_ATTENTE" "$DOSSIER_NZB_FINAL" "$DOSSIER_LOGS"
|
|
do
|
|
if [ ! -d "$dossier" ]; then
|
|
echo -e "${ROUGE} Le dossier $dossier n'existe pas. Création... ${NORMAL}"
|
|
mkdir -p "$dossier"
|
|
fi
|
|
done
|
|
|
|
attente() {
|
|
for ((i=$1; i>0; i--)); do
|
|
echo -ne "Attente : $i secondes\r"
|
|
sleep 1
|
|
done
|
|
}
|
|
|
|
checkusenet(){
|
|
SERVICE="nyuu"
|
|
if pgrep -x "$SERVICE" >/dev/null
|
|
then
|
|
echo "$SERVICE EN COURS"
|
|
sleep 16
|
|
else
|
|
echo "$SERVICE OK"
|
|
fi
|
|
}
|
|
|
|
cd ${DOSSIER_GLOBAL}
|
|
|
|
|
|
while true
|
|
do
|
|
verif=$(sqlite3 "$DB_FILE" "BEGIN IMMEDIATE; SELECT id, nom FROM release WHERE status = 0 LIMIT 1; COMMIT;")
|
|
if [ -n "$verif" ]; then
|
|
id=$(echo "$verif" | awk -F "|" '{print $1}' | sed 's/^[ \t]*//;s/[ \t]*$//')
|
|
name=$(echo "$verif" | awk -F "|" '{print $2}' | sed 's/^[ \t]*//;s/[ \t]*$//')
|
|
FILESANSEXT=${name%.*}
|
|
|
|
{
|
|
echo -e ${VERT}"DEBUT DE TRAITEMENT DE" ${FILESANSEXT}${NORMAL}
|
|
echo -e ${CYAN}"CREATION DES PAR2"${NORMAL}
|
|
parpar -s10M -r20%+2 -m4096M -p1l -o ${FILESANSEXT}.par2 ${name}
|
|
|
|
echo -e ${VERT}"UPLOAD SUR USENET" ${NORMAL}
|
|
checkusenet
|
|
nyuu -h ${NG_HOST} -P ${NG_PORT} -S -u ${NG_USER} -p ${NG_PASS} -n ${NG_NBR_CONN} -g alt.binaries.boneless -o "{fnamebase}.nzb" --nzb-title "${FILESANSEXT}" -f "{rand(14)} {rand(14)}@{rand(5)}.{rand(3)}" --message-id "{rand(32)}@{rand(8)}.{rand(3)}" --subject "{rand(32)}" --nzb-subject "{filename}" --obfuscate-articles ${FILESANSEXT}.*
|
|
|
|
mv ${FILESANSEXT}.nzb ${DOSSIER_NZB_ATTENTE}
|
|
|
|
if [ -e "${DOSSIER_NFO}""${FILESANSEXT}".json ]; then
|
|
echo -e ${JAUNE}"VERIF DU NZB"${NORMAL}
|
|
nzbsizebit=$(bash ${ANALYZER} ${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.nzb | jq '.Taillebit')
|
|
echo -e "NZB_SIZE :"${nzbsizebit}
|
|
jsonsizebit=$(cat ${DOSSIER_NFO}${FILESANSEXT}.json | jq -r '.media.track[] | select(.["@type"] == "General") | .FileSize')
|
|
echo -e "MEDIAINFO_SIZE :"${jsonsizebit}
|
|
|
|
if [[ ${nzbsizebit} -le ${jsonsizebit} ]] || [[ ${nzbsizebit} = "NAN" ]]; then
|
|
echo -e "$ROUGE""PROBLEME TAILLE NZB""$NORMAL"
|
|
rm ${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.nzb ${FILESANSEXT}.par2 ${FILESANSEXT}.vol*
|
|
sqlite3 "$DB_FILE" "BEGIN IMMEDIATE; UPDATE release SET status = 2 WHERE id = ${id}; COMMIT;"
|
|
else
|
|
echo -e ${CYAN}"ENVOI SUR LE SITE"${NORMAL}
|
|
curl -s -k -L -m 60 --output /dev/null -F rlsname=${FILESANSEXT} -F generated_nfo_json=@${DOSSIER_NFO}${FILESANSEXT}.json -F nzb=@${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.nzb -F upload=upload "${URL_API}${APIKEY}"
|
|
first_char=$(echo "${name:0:1}" | tr '[:lower:]' '[:upper:]')
|
|
if [ ! -d ${DOSSIER_NZB_FINAL}${first_char} ]; then
|
|
mkdir ${DOSSIER_NZB_FINAL}${first_char}
|
|
fi
|
|
mv ${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.nzb ${DOSSIER_NZB_FINAL}${first_char}/
|
|
rm -rf ${FILESANSEXT}*
|
|
#rm ${DOSSIER_NFO}${FILESANSEXT}.json
|
|
sqlite3 "$DB_FILE" "BEGIN IMMEDIATE; UPDATE release SET status = 1 WHERE id = ${id}; COMMIT;"
|
|
echo -e ${VERT}"FIN DE TRAITEMENT DE" ${FILESANSEXT}${NORMAL}
|
|
fi
|
|
else
|
|
echo -e ${ROUGE}"ENVOI SUR LE SITE IMPOSSIBLE NFO MANQUANT"${NORMAL}
|
|
fi
|
|
} 2>&1 | tee -a ${DOSSIER_LOGS}${FILESANSEXT}.log
|
|
fi
|
|
|
|
attente 10 # Attente de 10 secondes
|
|
done
|
|
|