#!/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 } DOSSIER_GLOBAL while true do verif=$(sqlite3 $DB_FILE "SELECT COUNT(ID) FROM release WHERE status = 0") if [ $verif -ge 1 ]; then verif=$(sqlite3 $DB_FILE "SELECT * FROM release WHERE status = '0' LIMIT 1") 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 "UPDATE release SET status = '2' WHERE id = ${id}" 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 "UPDATE release SET status = '1' WHERE id = ${id}" 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